Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Odoo 10 Qweb报告,定义PDF文件的文件名_Odoo_Odoo 10_Qweb - Fatal编程技术网

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中,如
,这就是问题所在。谢谢!