我为odoo 12开发了一个account.invoice的新报告,但是当我想打印此报告时,它在12.0分支中给了我这样的警告:
报告的模板“模板名称”错误,请与管理员联系。
无法将文件另存为附件,因为报表模板不包含div上具有“文章”类名的属性“ data-oe-model”和“ data-oe-id”。
在主分支中,它说的是数据模型而不是data-oe-model,数据id而不是data-oe-id以及“页面”类名而不是“文章”类名
如果有人遇到相同的问题并找到解决方案,请告诉我。
谢谢
答案 0 :(得分:1)
我在朋友的帮助下解决了该问题:
在external_layout中,您必须定义't-att-data-oe-model'和't-att-data-oe-id'。添加此内容:
<div class="article o_report_layout_standard" t-att-data-oe-model="o and o._name" t-att-data-oe-id="o and o.id">
<t t-call="web.address_layout"/>
<t t-raw="0"/>
</div>
以前这段代码(v11)是这样的:
<div class="article o_report_layout_standard">
<t t-raw="0" />
</div>
希望它可以解决您的问题。发生这种变化是因为现在可以使用Studio应用在v12中对报告进行编辑。
答案 1 :(得分:1)
是的,您需要修改external_layout,就我而言,这是自定义布局,我使用下面的XML进行了解决
<template id="custom_layout">
<!-- Multicompany -->
<div class="article o_report_layout_standard" t-att-data-oe-model="doc and doc._name" t-att-data-oe-id="doc and doc.id">
<t t-if ="doc and 'company_id' in doc" >
<t t-set="company" t-value="doc.company_id"/>
<t t-set="customer" t-value="doc.partner_id"/>
</t>
<t t-call="custom_sale_report_v12.custom_layout_header"/>
<t t-raw="0"/>
<t t-call="ce_sale_report_v12.custom_layout_footer"/>
</div>
</template>
答案 2 :(得分:0)
如果没有report_type =“ qweb-pdf”的report_type =“ qweb-html”,则可能发生此错误。 要解决这个问题,只需要两个……
<report
id="report_invoice_html"
model="MY_MODEL_NAME"
string="Invoice HTML"
name="MODULE.report_invoice_view"
file="MODULE.report_invoice"
report_type="qweb-html" />
<report
id="report_invoice_pdf"
model="MY_MODEL_NAME"
string="Invoice PDF"
name="MODULE.report_invoice_view"
file="MODULE.report_invoice"
report_type="qweb-pdf" />
如果您在ir_actions_report.py上查看Odoo代码源,则会看到一条比较set(res_ids)!= set(html_ids)的语句,如果HTML模板不存在,它将返回True,然后引发Error < / p>