【发布时间】:2018-02-13 06:20:01
【问题描述】:
我有以下自定义报告:
<?xml version="1.0"?>
<odoo>
<report
id = "report_custom_sale_order"
name = "custom_saleorder_v2.custom_report_saleorder"
string = "Custom Quotation / Order"
model = "sale.order"
report_type = "qweb-pdf"
report_name = "((object.number or 'SaleOrder').replace('/','')+'.pdf')"
attachment_use = "False"
/>
</odoo>
对于带有参考/顺序SO003 的销售订单,我希望将PDF 下载为SO003.pdf,对于没有指定参考/顺序的草稿销售订单,我希望下载为SaleOrder.pdf。
当我尝试使用 report_name 实现此类行为时,出现以下错误:
AssertionError: Element odoo has extra content: report, line 11
report_name应该如何使用?
按照我试过的 CZoellner 评论:
<?xml version="1.0"?>
<odoo>
<report
id = "report_custom_sale_order"
name = "custom_saleorder_v2.custom_report_saleorder"
string = "Custom Quotation / Order"
model = "sale.order"
report_type = "qweb-pdf"
attachment_use = "False"
/>
<record id="report_custom_sale_order" model="ir.actions.report.xml">
<field name="print_report_name"><![CDATA[((object.number or 'SaleOrder').replace('/','')+'.pdf')]]></field>
</record>
</odoo>
我收到以下错误:
ParseError: "null value in column "name" violates not-null constraint
DETAIL: Failing row contains (523, 1, null, 1, 2018-02-13 17:17:20.385168, null, 2018-02-13 17:17:20.385168, ir.actions.report.xml, null, null, t, pdf, null, null, null, null, null, t, null, f, null, null, null, f, null, null, ((object.number or 'SaleOrder').replace('/','')+'.pdf')).
" while parsing /usr/lib/python2.7/dist-packages/odoo/custom_addons/custom_saleorder_v2/reports/sale_report.xml:12, near
<record id="report_custom_sale_order" model="ir.actions.report.xml">
<field name="print_report_name">((object.number or 'SaleOrder').replace('/','')+'.pdf')</field>
</record>
注意:如果我使用object.name 而不是object.number 也是一样的(我认为这是获取文档引用/顺序的正确方法。
【问题讨论】: