odoo 12中pdf打印模板

pdf打印模板

# -*- coding:utf-8 -*-

from odoo import models, fields, api, _
import decimal


class PDFDemoTemplate(models.AbstractModel):
    _name = 'report.report_demo_pdf.pdf_demo_tempalte'
    # 模板 :'report.Module.TemplateName'

    # 1. 主要取数方法
    @api.model
    def _get_report_values(self, docids, data=None):
        docs = []
        docs.append({
            'title_name':'PDF-员工信息打印示例'
        })
        th_list = ['ID','名称','部门','手机','地点']
        return {
            'docs': docs,
            'th_list': th_list,
            '_format': self._format,
            'get_lines': self.get_lines,

        }

    # 2. 支持自定义函数调用和数据块获取
    @api.model
    def get_lines(self):
        employee_obj = self.env['hr.employee']
        employee_ids = employee_obj.search([], limit=10)
        return employee_ids

    def _format(self, data):
        return "{:,}".format(decimal.Decimal("%.2f" % data))

视图

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
    <data>
        <!--模板定义-->
        <template id="pdf_demo_tempalte">
            <t t-call="web.html_container">
                <!--docs不是记录集的时候 请不要使用o 或 doc ,会检测模板报错 一般来说docs里存的都是记录集 这里我们假定不是记录集-->
                <!--<t t-foreach="docs" t-as="o">-->
                <!--<t t-foreach="docs" t-as="doc">-->
                <t t-foreach="docs" t-as="do">
                    <t t-call="web.external_layout">
                        <div class="page">
                            <h2 class="text-center">
                                <t t-esc="do['title_name']"/>
                            </h2>
                            <table class="table table-bordered mb64">
                                <tr>
                                    <t t-foreach="th_list" t-as="thd">
                                        <td>
                                            <t t-esc="thd"/>
                                        </td>
                                    </t>
                                </tr>
                                <t t-foreach="get_lines()" t-as="l">
                                    <tr>
                                        <td>
                                            <t t-esc="l.id"/>
                                        </td>
                                        <td>
                                            <t t-esc="l.name"/>
                                        </td>
                                        <td>
                                            <t t-esc="l.department_id.name"/>
                                        </td>
                                        <td>
                                            <t t-esc="l.work_phone"/>
                                        </td>
                                        <td>
                                            <t t-esc="l.work_location"/>
                                        </td>
                                    </tr>
                                </t>
                            </table>
                        </div>
                    </t>
                </t>
            </t>
        </template>

        <!--PDF报表定义-->
        <report
                id="action_report_pdf_demo"
                model="hr.employee"
                string="PDF打印模板"
                report_type="qweb-pdf"
                name="report_demo_pdf.pdf_demo_tempalte"
                file="report_demo_pdf.pdf_demo_tempalte"
                print_report_name="'PDF - %s' % ('模板')"
        />
    </data>
</odoo>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值