odoo 10 QWEB报告如何传递解析器方法中使用的值?

时间:2018-06-29 11:13:09

标签: html report odoo-10 qweb

我有一个将报告保存在二进制字段中以进行归档的模型。为此,我使用pdf_get()。

document = self.env['report'].sudo().get_pdf(ids, report_name)

问题是,当我想创建一个不使用模型字段的报表,而必须使用带有id的模型来计算相关模型的值时。

我的报告模型

class ReportHistory(models.AbstractModel):
    _name = 'report.hr.report_history'


    def _get_report(self, ids[0]):
        record = self.env['hr.history'].search([('id', '=', ids[0])])
        return record



    def _get_company(self, ids):
        rec = self._get_report(ids)
        if len(rec) > 0:
            return rec[0].company_name

最大的问题是我无法调试,因此无法传递什么数据。打印或记录器或引发ValidationError将不起作用。可能是由于在Windows PC上运行了odoo。 我发现的每个答案都据说会传递这样的值进行报告,但这是行不通的。

@api.model
def render_html(self, docids, data=None):

    docargs = 
        'doc_ids': self.ids,
        'doc_model': self.model,
        'data': data,
        'company': self._get_company,
    }
    return self.env['report'].render()

那么如何正确地将值从方法传递给报表?还是我只是犯了一个愚蠢的错误?

1 个答案:

答案 0 :(得分:0)

尝试一下:

return self.env['report'].render(report_name, docargs)