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

如何在Odoo 17采购订单打印按钮添加自定义XLSX报表?

在Odoo 17中添加采购订单自定义XLSX报表的正确步骤

1. 编写XLSX报表生成的Python类

Odoo 17的XLSX报表需要继承ReportXlsxAbstract类实现具体生成逻辑,在模块的report目录下创建purchase_order_report_xlsx.py文件:

from odoo import models
from odoo.report.report_xlsx import ReportXlsxAbstract

class PurchaseOrderXlsxReport(ReportXlsxAbstract):
    _name = 'report.module_name.purchase_order_report_xlsx'
    _description = '采购订单XLSX报表'
    _inherit = 'report.report_xlsx.abstract'
    _template = False

    def generate_xlsx_report(self, workbook, data, orders):
        # 编写XLSX报表生成逻辑,以下为示例
        for order in orders:
            sheet = workbook.add_worksheet(f"采购订单 {order.name}")
            # 写入表头
            sheet.write(0, 0, '订单编号')
            sheet.write(0, 1, '供应商')
            # 写入订单数据
            sheet.write(1, 0, order.name)
            sheet.write(1, 1, order.partner_id.name)
            # 按需添加更多报表内容

2. 修正XML报表动作配置

Odoo 17已移除旧的binding_type和binding_model_id配置,改用binding_view_types绑定视图,同时需关联Python类的标识:

<odoo>
    <record id="action_report_purchase_order_es" model="ir.actions.report">
        <field name="name">Orden de compra Español</field>
        <field name="model">purchase.order</field>
        <field name="report_type">xlsx</field>
        <!-- 对应Python类中的_name值 -->
        <field name="report_name">module_name.purchase_order_report_xlsx</field>
        <!-- 自定义报表文件名模板 -->
        <field name="report_file">module_name.purchase_order_report</field>
        <!-- 绑定到采购订单表单视图,使打印按钮显示该报表 -->
        <field name="binding_view_types">form</field>
    </record>
</odoo>

3. 注册Python类

在模块根目录的__init__.py中导入报表模块:

from . import report

在report/__init__.py中添加:

from . import purchase_order_report_xlsx

4. 模块更新与测试

升级模块后,打开采购订单表单视图,点击打印按钮即可看到自定义的XLSX报表选项。

关键注意事项

  • report_name必须与Python类中的_name完全匹配
  • 必须实现generate_xlsx_report方法处理报表数据写入逻辑
  • 仅配置XML而缺少Python报表类会导致报表无法生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:53:13