Odoo多个qweb报告共享一份论文

问题描述

我有一份报告,应该在一张纸上打印多个工资单。

_get_report_values(self,docids,data=None)函数使用AbstractModel返回值数据,其中data是一个列表,其中包含我想为每个报告循环的所有值。

这个想法是使用flexBox并使用bootstrap类在一篇论文中安排3列。 这个想法适用于大约5张工资单,但之后只打印1张工资单,占据整个页面

我正在寻找实现这一目标的任何可能方式。

python代码的示例是:

from odoo import models,api


class AlpharamaPayslip(models.AbstractModel):
    _name = 'report.employee_allowances.alpharama_payslip'
    _description = 'Alpharama Payslip'

    @api.model
    def _get_report_values(self,data=None):
        docs = self.env['hr.payslip'].browse(docids)
        data = []
        for doc in docs:
            val = {
                'name': doc.employee_id.name,'department': doc.employee_id.department_id.name,'payroll': doc.employee_id.payroll_no,}
        data.append(val)

    return {
       'docs':docs,'data': data,}

我已经设法通过下面的XML代码创建此功能: 我删除了一些不必要的部分,仅维护了一个裸模板。

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <data noupdate="0">
        <template id="alpharama_payslip">
            <t t-call="web.html_container">
                <t t-call="web.external_layout">
                    <div class="page d-flex" style="flex-wrap: wrap;">
                        <div class="row">
                            <t t-foreach="data" t-as="d">
                                <div class="col-4" style="height: 100%">
                                    <div style="border-bottom: 1px solid black; padding: 10px 0;">
                                        <div>
                                            Name:
                                            <t t-esc="d['name']" />
                                        </div>
                                        <div>
                                            Department:
                                            <t t-esc="d['department']" />
                                        </div>
                                    </div>
                                </div>
                            </t>
                        </div>
                    </div>
                </t>
            </t>

        </template>
    </data>
</odoo>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)