Report 如何在Qweb中定制Odoo 11中的报告?如何将其他模型的数据发送到qweb报表?

Report 如何在Qweb中定制Odoo 11中的报告?如何将其他模型的数据发送到qweb报表?,report,odoo,qweb,odoo-11,Report,Odoo,Qweb,Odoo 11,有人知道如何更改自定义报告中文档的来源吗?我需要从从模型继承的视图加载数据集。列与模型相同,只是一个数据过滤器 奥多11 不再需要使用odoo.report库。它已被弃用。您可以使用odoo.tools代替: 从odoo.tools导入报告 正如所解释的那样 你也可以像穆信克在书中说的那样发送数据 以前的奥多版本 你有所有的文件。无论如何,如果要自定义可在报告中使用的数据,可以使用以下方法: 来自odoo导入api,型号 类SpecificularReportModels.AbstractMod

有人知道如何更改自定义报告中文档的来源吗?我需要从从模型继承的视图加载数据集。列与模型相同,只是一个数据过滤器

奥多11 不再需要使用odoo.report库。它已被弃用。您可以使用odoo.tools代替:

从odoo.tools导入报告 正如所解释的那样

你也可以像穆信克在书中说的那样发送数据

以前的奥多版本 你有所有的文件。无论如何,如果要自定义可在报告中使用的数据,可以使用以下方法:

来自odoo导入api,型号 类SpecificularReportModels.AbstractModel: _名称='report.module.report\u name' @api.model def render_htmlself,docid,data=None: report_obj=self.env['report'] report=report\u obj.\u从模块名'module.report\u name'获取\u report\u 自定义_数据=self.env['model.name']。获取_数据 docargs={ “文档ID”:文档ID, “文档模型”:report.model, “医生”:自我, “自定义数据”:自定义数据, } 返回报表对象呈现'module.report\u name',docargs model model.name是要从中获取信息的模型

继承Qweb模板 标记样板是某些视图的快捷方式。这里也可以使用inherit_id属性。大多数报表都是使用这种视图生成的:


在v11中,报表模块与报表对象一起被删除。因此,您将面临此错误。在基本模块中添加/合并报表时,必须从中删除报表。你可以在这里查一下

您可以使用report\u action方法调用您的报告,如下所示:

self.env.ref('your_report_name').report_action(self, data=data)
希望这将帮助您并解决您的问题。

已将render\u html替换为函数get\u report\u values:


我已经知道文档的位置,你只要复制过去就可以了。这是没有用的。我正在寻找一种方法或一个示例,说明如何用具有相同列的视图替换报表的完整数据集。当然,但您不需要其他任何东西。您可以使用该方法将所有需要的信息发送到报表。我在我的答案中添加了一个自定义的_数据,以澄清它。我的问题可能是因为我不知道如何使我的模型指向视图而不是表格。在我看来只有一个模型需要…我不明白你的意思?我可以向您展示一个完整的报告示例,如果它对您有帮助的话,这就是我为什么要为之前的Odoo版本@m3asmi编写报告的原因。这只是额外的信息
self.env.ref('your_report_name').report_action(self, data=data)
    @api.model
    def get_report_values(self, docids, data=None): 
        docs = self.env['model.name'].browse(docids)
        return {
             'doc_ids': docids,
             'doc_model': 'model.name',
             'docs': docs,
             'lines': self.some_func(docs),
             'data': data,
        }