odoo - Odoo 多个 qweb 报告共享一篇论文
问题描述
我有一份报告应该在一张纸上打印多张工资单。
使用 AbstractModel,该_get_report_values(self, docids, data=None)
函数返回值数据,其中数据是一个列表,其中包含我要为每个报告循环遍历的所有值。
这个想法是使用 flexbox 并使用引导类在一篇论文中安排 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, docids, 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>
解决方案
推荐阅读
- reactjs - 如何在 React JS 中为多个 API 调用设置状态?
- django - 同一页面上的项目列表、表单、响应。我错过了什么?
- firebase - Lodash : orderBy 如何将没有我们排序的字段的文档放在排序列表的顶部?
- .net - 尽管空闲时间超时为 0,但安静的服务第一次性能下降
- jenkins - 工件和詹金斯的建议工作流程
- android - 播放核心库给予非致命
- javascript - 如何在我的 javascript 代码中消除使用多个 if else 条件
- rust - rust 编译器如何生成“这里发生不可变借用”?
- java - 如何在android studio的Jitsi Meet Activity中关闭邀请人选项
- amazon-s3 - 在 bitbucket-s3 部署中拒绝访问