康虎云报表免写代码模块可以极大地提高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)