在 Odoo 版本 8 中使用 qweb 模板报告

sha*_*pha 2 python xml qwebpage qwebkit odoo

我想了解 Odoo 8 中的 QWeb Report。在版本 6 和 7 中,我使用了 jasper_report...对我来说还可以。但是……现在是第 8 版,我找不到这个版本的 jasper_report。在第8版中,他们使用了qweb模板报告..我不知道如何使用。我想自定义 account_invoice 报告。这就是为什么...我创建了视图文件夹并添加了 report_account_extend.xml。我没有更改 report_account.xml 文件中的任何内容,只是更改名称 report_account_extend.xml。然后我添加了 account_report.xml 文件进行声明,只需像这样更改 id、字符串、名称和文件:

id="account_invoices_extend"
string="Invoices Extend"
name="report_invoice_extend"
file="report_invoice_extend"
Run Code Online (Sandbox Code Playgroud)

我从“客户发票”表单打印了这份报告,它引发了错误:

 File "/home/erp/Odoo/prjoject/odoo/openerp/tools/cache.py", line 119, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/home/erp/Odoo/prjoject/odoo/openerp/addons/base/ir/ir_ui_view.py", line 848, in read_template
    raise ValueError('Invalid template id: %r' % (xml_id,))
QWebTemplateNotFound: Invalid template id: u'report_invoice_extend'
Run Code Online (Sandbox Code Playgroud)

我想知道如何解决此错误以及如何创建示例 qweb 模板报告。Qweb 模板 xml 文件是否在视图文件夹中?相关的python文件在哪里?

如果你不介意,请一步一步解释我。谢谢

小智 5

我遇到了这个“QWebTemplateNotFound: Invalid template id”问题。我解决它的方法是命名模板ID。我猜 'report_invoice_extend' 是模板的 id,所以你需要在它前面加上你的模块名(你的模块名是文件夹的名称)。所以它会是:

modulename.report_invoice_extend
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!