有人知道如何更改自定义报告中的文档来源吗?我需要从继承自我的模型的视图中加载数据集。列与模型相同,它只是一个数据过滤器。
答案 0 :(得分:3)
在v11中,报告模块已与报告对象一起删除。因此,您将面临此错误。您必须从依赖中删除报告,因为它在基本模块中添加/合并。你可以在这里查看。
您可以使用report_action方法调用您的报告,如下所示:
self.env.ref('your_report_name').report_action(self, data=data)
希望这会帮助您并解决您的问题。
答案 1 :(得分:1)
不再需要使用show()
库。它已被弃用。你可以使用odoo.tools:
hide()
正如here
所解释的那样你可以像Muhsin k在his answer
中所说的那样发送数据odoo.report
您拥有所有文档here。无论如何,如果你想自定义可以在报告中使用的数据,你可以使用这样的方法:
from odoo.tools import report
模型self.env.ref('your_report_name').report_action(self, data=data)
是您想要获取信息的模型
标记from odoo import api, models
class ParticularReport(models.AbstractModel):
_name = 'report.module.report_name'
@api.model
def render_html(self, docids, data=None):
report_obj = self.env['report']
report = report_obj._get_report_from_name('module.report_name')
custom_data = self.env['model.name'].get_data()
docargs = {
'doc_ids': docids,
'doc_model': report.model,
'docs': self,
'custom_data': custom_data,
}
return report_obj.render('module.report_name', docargs)
是某些视图的快捷方式。此处也可以使用model.name
属性。大多数报告都是以这种观点构建的:
template
答案 2 :(得分:0)
render_html
被功能get_report_values
代替:
@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,
}