Odoo有不同类型的视图,如树、图、看板、pivot等等。此外,Odoo报表还可以通过不同的视图获取,如pivot报表、图形报表和其他形式。
在这个博客中,我们将讨论如何继承Odoo的pivot视图报告。
继承的观点? ?为了演示继承视图的方面,让我们看一看销售报告。下面的截图描述了销售分析报告的pivot视图。
在上面的截图中,顶部(列)是销售团队,左侧(行)是日期。在这里,我将反转字段,即将Date作为列,将Sales Team作为行。
为了继承视图,我们需要继承模型sale.report这可以用下面描述的代码来完成。
类PivotInheritReport (models.Model):
_inherit = ' sale.report '
然后我们需要继承pivot视图,这可以通过使用下面的命令来完成。<记录id = " view_order_product_pivot_inherit”模式= " ir.ui.view”>
<字段名= "名称" > sale.report.pivot.inherit > < /字段
<字段name = "模型" > sale.report > < /字段
<字段名称=“拱”类型=“xml”>
< xpath expr = " / / [@ name = ' team_id ']”位置=“替换”>
<字段name = " team_id " type = "行" / >
xpath > < /
< xpath expr = " / / [@ name = '日']”位置=“替换”>
xpath > < /
> < /字段
> < /记录
pivot报告的外部id是sales .view_order_product_pivot。在这里,我们继承和替换该字段,并将date字段的类型作为列,将team_id字段的类型作为行。
我们需要在清单中给出依赖模块。下面的屏幕截图描述了继承后的Analysis报告的结果。
此外,如果您想要将新添加的字段或其他字段添加到度量下拉列表中,那么请将该字段的类型设置为度量
例如:
<字段name = " amount_total " type = "测量" / >
这将把该字段添加到度量下拉列表中。上面的示例是销售枢轴视图中使用的现有字段。
此外,我们可以添加多个字段作为行或列。现在让我们看一个示例,以了解在行和列中配置多个字段的各个方面。示例:在XML文件中定义以下代码。
<字段name = " company_id " type = "行" / >
在这里,我已作为一行添加了公司字段。现在,公司领域也可以在枢轴行中看到。如果添加了以下代码,则在枢轴行中可以看出为日期字段的子字段[扩展字段]。
<字段name = " company_id " type = "行" / >
现在,日期字段将显示为公司的子字段或扩展字段。我们可以添加多个像这样的字段,并将显示为上面字段的扩展字段。此外,也可以对列字段进行相同的操作:
<字段name = " team_id " type = "出口" / >
<字段name = " partner_id " type = "出口" / >
向报告添加新字段
如果想要向报表中添加新字段,则必须继承模型并向其中添加新字段。通常,报表是使用SQL视图创建的。因此,字段值是从查询中获得的。
类PivotInheritReport (models.Model):
_inherit = ' sale.report '
new_name =字段。Char(新名称)
def _query(自我,with_clause = "字段= {},groupby = ", from_clause = "):
Fields ['new_name'] = ", s.new_name as new_name"
返回超级(PivotInheritReport自我)。_query(with_clause, fields, groupby, from_clause)
因为我们需要从这里的查询中获取字段的值,所以我从销售订单中获取它[fields['new_name'] = s.new_name as new_name]因为我添加了一个新的字段销售订单(sale.order)模型还。如果我们简单地将字段添加到sale.report如果不计算或获取该字段的值,然后将其添加到视图中,它将给出一些错误。因此,请确保您已经使用查询计算了新添加字段的值。
现在你可以在透视视图中添加这个字段如果你想让这个字段在测量中出现,你需要给出下拉列表键入=“测量”如果你想把它添加到数据透视表的行或列中,你需要像我们上面讨论的那样,将类型添加为row或col。