Odoo 8 - Qweb输出人力资源评估报告PDF

时间:2015-12-18 15:01:00

标签: pdf report openerp qweb

单击“打印调查”按钮(人力资源 - Apraissal - 面试请求)时,标准输出为HTML(action_print_survey方法)。我想将输出更改为PDF。 我找不到Odoo配置,也没有Qweb的标准结构报告他们这样做的方式作为标准站(模板是,菜单号,python包装器没有)。 我试图纠正一个包装但它不起作用。 有任何想法吗? 提前致谢 古斯塔沃

2 个答案:

答案 0 :(得分:0)

报告

必须通过报告操作声明每个报告。

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

id

生成的记录的外部ID

名称(必填)

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

型号(必填)

您的报告所针对的模型

report_type(必填)

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

report_name

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

<强>基

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

<强> attachment_use

如果设置为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

答案 1 :(得分:0)

@Gustavo 这不是一个HTML报告,它是一个渲染模板,用于响应使用该按钮操作打印调查的请求。这就是为什么你无法找到报告的任何声明,但你可以通过改变模型调查的方法定义来轻松完成。如:

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