如何在odoo 11中使用报告打印记录?

时间:2019-04-16 11:07:41

标签: python odoo

我无法使用报告打印记录,出现错误:

AttributeError: 'report.my_module.certificate_template' object has no attribute 'get_report_values'

以下是我正在使用的代码。

class Reports(models.AbstractModel):
_name = 'report.my_module.certificate_template'

@api.model

def render_html(self, docids, data=None):
    report_object = self.env['report']
    report = report_object._get_report_from_name('my_module.certificate_template')
    docargs = {
          'doc_ids': docids,
          'doc_model': report.res_partner,
          'docs': self,  
    }
    return report_object.render('my_module.certificate_template', docargs)

2 个答案:

答案 0 :(得分:1)

您只需要编写方法名称“ get_report_values”。如下所示:

    class Reports(models.AbstractModel):
       _name = 'report.my_module.certificate_template'

       @api.model
       def get_report_values(self, docids, data=None):
           report_object = self.env['report']
           report = report_object._get_report_from_name('my_module.certificate_template')
           docargs = {
                       'doc_ids': docids,
                       'doc_model': report.res_partner,
                       'docs': self,  
                     }
           return report_object.render('my_module.certificate_template', docargs)

因此,您只需要更改方法名称即可。

希望对您有所帮助。谢谢

答案 1 :(得分:0)

您必须返回如下对象:

@api.model
def get_report_values(self, docids, data=None):
    report = self.env['ir.actions.report']._get_report_from_name('your_module.certificate_template')
    records = self.env['your_module_name'].browse(self.ids)
    return {
        'doc_ids': self._ids,
        'doc_model': report.model,
        'docs': records,
        'data': data
    }