问题描述
我有一份报告,应该在一张纸上打印多个工资单。
_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 (将#修改为@)