Odoo 10 Qweb报告,定义PDF文件的文件名
我有以下自定义报告:Odoo 10 Qweb报告,定义PDF文件的文件名,odoo,odoo-10,qweb,Odoo,Odoo 10,Qweb,我有以下自定义报告: 对于带有参考/顺序SO003的销售订单,我希望将PDF下载为SO003.PDF,对于未指定参考/顺序的草稿销售订单,我希望将其下载为SaleOrder.PDF 当我试图用report_name实现这种行为时,我得到以下错误: AssertionError: Element odoo has extra content: report, line 11 ParseError: "null value in column "name" violates not-null
对于带有参考/顺序SO003
的销售订单,我希望将PDF下载为SO003.PDF
,对于未指定参考/顺序的草稿销售订单,我希望将其下载为SaleOrder.PDF
当我试图用report_name实现这种行为时,我得到以下错误:
AssertionError: Element odoo has extra content: report, line 11
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>
应如何使用报告名称
以下是我尝试过的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>
我得到了以下错误:
AssertionError: Element odoo has extra content: report, line 11
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>
ParseError:“name”列中的null值违反了非null约束
详细信息:失败的行包含(523,1,null,12018-02-13 17:17:20.385168,null,2018-02-13 17:17:20.385168,ir.actions.report.xml,null,null,null,t,pdf,null,null,null,null,t,null,f,null,null,null,null,((object.number或'SaleOrder')。替换('/','')+'.pdf'))。
“在解析/usr/lib/python2.7/dist packages/odoo/custom_addons/custom_saleorder_v2/reports/sale_report.xml:12时
((object.number或“SaleOrder”).replace(“/”、“)+”.pdf'))
注意:如果我使用
object.name
而不是object.number
(我认为这是获取文档引用/顺序的正确方法。您对报表名称和对象使用了不同的字段。我已经用正确的字段名称更新了您的代码,如下所示
<?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"
print_report_name = "((object.name or 'SaleOrder').replace('/','')+'.pdf')"
attachment_use = "False"
/>
我希望这将对您有所帮助。您正在为报表名称和对象使用不同的字段。我已使用正确的字段名称更新了您的代码,如下所示
<?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"
print_report_name = "((object.name or 'SaleOrder').replace('/','')+'.pdf')"
attachment_use = "False"
/>
我希望这将对您有所帮助。您可以使用
打印报告\u name
您可以使用
打印报告\u名称
在数据XML中使用特殊标记
report
时,字段print\u report\u name
不会被转换。因此,只需在之后添加具有普通XML记录的字段:
在数据XMLs中使用特殊标记
report
时,不会转换字段print\u report\u name
。因此,只需在之后添加具有普通XML记录的字段即可:
它没有被转换,但在字段中被添加。我仍然会收到相同的错误。如果我删除特定行,它工作正常。我仍然会收到相同的错误。如果我删除特定行,它工作正常。我仍然会收到错误。如果我删除特定行,它工作正常。请在此处添加您收到错误的行。这是print\U report\u命名失败的特定行。如果我删除该行,它可以正常工作。您是否在print\u report\u name属性值中使用
object.number
?仅供参考,销售订单对象中没有带数字的字段名。请使用object.name
而不是object.number
。我正在使用object.name
我已经意识到了这一点没有object.number
。似乎问题可能与
的使用有关。我将测试CZoellner的建议,我仍然得到一个错误。如果我删除该特定行,它工作正常。请在此处添加您得到错误的行。打印报告将指定失败的行命名。如果我删除t行它工作正常。您是否在打印报告中使用object.number
名称属性值?仅供参考,销售订单对象中没有带编号的字段名称。请使用object.name
而不是object.number
。我正在使用object.name
我已经意识到没有object.number
。看起来sue可能与
用法有关。我将测试CZoellner的建议,尝试将您的模块名称添加到记录id中,如,这就是问题所在。谢谢!尝试将您的模块名称添加到记录id中,如,这就是问题所在。谢谢!