在odoo 12中报告问题

时间:2018-10-17 06:16:00

标签: odoo odoo-12

我为odoo 12开发了一个account.invoice的新报告,但是当我想打印此报告时,它在12.0分支中给了我这样的警告:

报告的模板“模板名称”错误,请与管理员联系。

无法将文件另存为附件,因为报表模板不包含div上具有“文章”类名的属性“ data-oe-model”和“ data-oe-id”。

在主分支中,它说的是数据模型而不是data-oe-model,数据id而不是data-oe-id以及“页面”类名而不是“文章”类名

如果有人遇到相同的问题并找到解决方案,请告诉我。

谢谢

3 个答案:

答案 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>