康虎云报表 Odoo免写代码模块 开发的报表如何通过任意按钮调用?

admin 2020-4-23 13765

康虎云报表免写代码模块可以极大地提高odoo报表开发效率。在有些场景下,需要通过任意按钮(比如Form视图定义的按钮或Tree视图定义的按钮)来调用打印报表功能。要实现这样的功能很简单,这里贴一个例子:

def act_print_label(self):
    """打印产品标签"""
    ids = [self.product_id.id]
    model = "product.product"

    # 注意:下面一行中 cf_report_designer.report_cf_product_label 是康虎云报表定义界面显示的技术名称
    report_id = "cf_report_designer.report_cf_product_label"
    
    if not model:
        raise ValidationError(_("未指定要打印的报表数据model!"))
    if not report_id:
        raise ValidationError(_("未指定要打印的报表ID!"))
    if not ids or len(ids)<1:
        raise ValidationError(_("未指定要打印的报表数据ID!"))

    report = self.env["ir.actions.report"].search([('report_name', '=', report_id)], limit=1)
    return report.report_action(docids=ids, data=None)



=======================================

odoo10:

def _print_report(self, data)
    records = self.env[data['model']].browse(data.get('ids', []))
    
    # 下面 account.report_trialbalance 是是康虎云报表定义界面显示的技术名称
    return self.env['report'].get_action(records, 'account.report_trialbalance', data=None)


最新回复 (0)
返回