You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Odoo中实现打印带"Duplicate Report"标识的重复QWeb报表?

实现QWeb报表打印副本时显示"Duplicate Report"标识的方案

要实现点击"Print Duplicate"按钮时在报表顶部显示副本标识,核心思路是给报表传递一个"是否为副本"的参数,然后在QWeb模板中根据这个参数条件渲染标识文本。具体步骤如下:

1. 修改Python按钮方法,传递副本标识参数

更新你的print_duplicate_report方法,通过report_action的data参数把is_duplicate标志传递给报表:

def print_duplicate_report(self):
    return self.env.ref('token_management.report_token_receipt').report_action(
        self,
        data={'is_duplicate': True}  # 传递副本标识参数
    )

2. 确保报表上下文能接收并传递该参数

如果你的报表有对应的抽象模型(继承自models.AbstractModel的报表类),需要重写_get_report_values方法,把传递的参数注入到模板上下文里:

from odoo import models, api

class ReportTokenReceipt(models.AbstractModel):
    _name = 'report.token_management.report_token_receipt'
    _inherit = 'report.report_qweb_html'  # 对应QWeb报表的父类

    @api.model
    def _get_report_values(self, docids, data=None):
        # 调用父类方法获取基础上下文
        report_values = super()._get_report_values(docids, data=data)
        # 注入副本标识参数,默认设为False防止正常打印时出错
        report_values['is_duplicate'] = data.get('is_duplicate', False) if data else False
        return report_values

如果之前没有自定义报表类,你需要创建这个类来对接参数传递逻辑。

3. 修改QWeb模板,添加条件渲染的副本标识

在你的QWeb报表模板(report_token_receipt对应的XML文件)的顶部位置,添加一个条件显示的区块:

<template id="report_token_receipt">
    <t t-call="web.html_container">
        <t t-foreach="docs" t-as="doc">
            <!-- 新增副本标识区块 -->
            <t t-if="is_duplicate">
                <div style="text-align: center; font-size: 28px; font-weight: bold; color: #dc3545; margin-bottom: 30px; text-transform: uppercase;">
                    *Duplicate Report*
                </div>
            </t>
            <!-- 原报表内容 -->
            <div class="page">
                <!-- 你的报表原有内容... -->
            </div>
        </t>
    </t>
</template>

这里的样式可以根据需求调整:比如颜色、字体大小、位置,甚至可以添加斜体、下划线或者水印效果(如果需要更醒目的标识)。

测试验证

做完以上修改后,升级你的模块,点击"Print Duplicate"按钮,报表顶部就会显示"Duplicate Report"的红色加粗标识;而正常打印报表时(比如原打印按钮),这个标识不会出现。

内容的提问来源于stack exchange,提问作者Faraz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 15:52:43