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

Odoo15如何在Profit and Loss Statement(利润表)金额列后新增列

Odoo 15 利润表新增列操作方案

Odoo15的利润表属于会计模块的动态财务报表,新增列分无代码配置和代码开发两种实现路径,根据需求复杂度选择即可:

方法一:Studio无代码配置(适合简单列场景)

适合新增固定对比列、简单公式计算列,不需要写代码:

  • 先激活开发者模式:点右上角个人头像选「关于Odoo」,在弹窗右上角点激活开发者模式
  • 进入会计模块,打开「报表-利润表」,等报表完全加载后点右上角的Studio编辑按钮(小扳手图标)
  • 进入编辑状态后,点击现有金额列的表头,右侧属性面板会出现列配置项,点击「添加列」
  • 配置新列参数:
    • 填列标题,比如「上年同期金额」「预算占比」
    • 选数据来源:如果是取系统已有财务指标,直接绑定对应字段;如果是计算列,在表达式栏写计算公式,比如计算营收占比就写line.balance / total_revenue * 100
    • 拖动新列到现有金额列的正后方,调整列宽、对齐方式、数字显示格式(金额保留2位小数、百分比加%符号等)
  • 保存配置后退出Studio,刷新页面即可看到新增列,记得给需要查看该列的用户组开放对应访问权限。

方法二:自定义模块开发(适合复杂逻辑、多环境同步场景)

如果新列有复杂计算规则,或者需要把改动同步到测试、生产多个环境,不要直接用Studio修改,建议开发小型自定义模块实现:

  • 继承利润表核心模型
    利润表对应的模型是account.financial.html.report,在自定义模块中重写列获取方法,在原金额列后追加新列定义,参考代码:
    from odoo import models
    
    class CustomProfitLossReport(models.Model):
        _inherit = 'account.financial.html.report'
    
        def _get_columns(self, options):
            # 取原生报表的列配置
            origin_columns = super()._get_columns(options)
            # 定义新列属性
            custom_col = {
                'name': '你需要的列名称',
                'figure_type': 'monetary', # 金额类选monetary,比率类选percent
                'sortable': True,
                'expression': '_compute_custom_col_value',
            }
            # 将新列插入到原金额列(默认索引为0)后方,即索引1的位置
            origin_columns.insert(1, custom_col)
            return origin_columns
    
        def _compute_custom_col_value(self, options, line):
            # 在这里写自定义计算逻辑,返回当前行对应列的数值
            # 可实现取预算数、同期数、自定义分摊值等复杂逻辑
            return calc_result
    
  • 适配前端渲染
    如果新列需要特殊的显示规则,继承利润表的QWeb模板,添加新列对应的渲染节点,同时配置合计行的计算规则,避免总计数出错。
  • 模块开发完成后安装到系统,更新会计模块报表缓存,打开利润表即可看到新增列,后续升级模块就能同步改动到所有环境。

注意事项:多公司账套下配置完新列后,要切换不同公司验证列显示和数值计算是否正常;代码开发的改动一定要先在测试环境校验明细行、合计行的数据准确性,再更新到生产环境,避免财务数据错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:24:27