0

单击打印调查按钮(人力资源 - 评估 - 面试请求)时,标准输出为 HTML(action_print_survey 方法)。我想将输出更改为 PDF。我找不到关于 Odoo 配置和 Qweb 标准结构的报告,它们作为标准代表的方式(模板是,菜单否,python 包装器否)。我试图纠正一个包装,但它不起作用。有任何想法吗?在此先感谢古斯塔沃

4

2 回答 2

0

报告

每个报告都必须由报告操作声明。

为简单起见,可以使用快捷方式<report>元素来定义报告,而不必手动设置操作及其周围环境。这<report>可以采用以下属性:

身份证

生成记录的外部 id

姓名(必填)

仅在在某种列表中查找报告时用作报告的助记符/描述

型号(强制)

您的报告将涉及的模型

报告类型(强制)

  • qweb-pdf 用于 PDF 报告或 qweb-html 用于 HTML

报告名称:

您的报告的名称(将是 PDF 输出的名称)

团体

允许查看/使用当前报告的组的 Many2many 字段

附件使用

如果设置为 True,报告将使用附件表达式生成的名称存储为记录的附件;如果您只需要生成一次报告(例如出于法律原因),则可以使用此功能

附件

定义报告名称的python表达式;记录可作为变量对象访问

例子 :

<report
    id="account_invoices"
    model="account.invoice"
    string="Invoices"
    report_type="qweb-pdf"
    name="account.report_invoice"
    file="account.report_invoice"
    attachment_use="True"
    attachment="(object.state in ('open','paid')) and
        ('INV'+(object.number or '').replace('/','')+'.pdf')"
/>

参考链接:https ://www.odoo.com/documentation/8.0/reference/reports.html

于 2015-12-21T12:35:11.543 回答
0

@Gustavo这不是html报告,它是响应使用该按钮操作打印调查的请求而呈现的模板。这就是为什么您找不到报告的任何声明,但您可以通过更改模型survey.survey 的方法定义轻松地做到这一点,例如:

def action_print_survey(self, cr, uid, ids, context=None):
    context = dict(context or {}, active_ids=ids, active_model=self._name)
    return {
        'type': 'ir.actions.report.xml',
        'report_name': 'module.survey_print',
        'context': context,
    }

您还需要定义报告 module.survey_print 以使用原始模板。为此,您可以看到如何做到这一点: https ://www.odoo.com/fr_FR/forum/help-1/question/how-to-define-a-custom-methods-functions-to-be-used -in-a-qweb-report-how-to-define-and-use-a-report-parser-92244

于 2016-01-21T06:36:40.700 回答