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

如何修改Odoo搜索视图代码实现ID按不同月份分组

解决Odoo中ID按实际业务月份分组的问题

你的核心问题是当前分组逻辑仅基于记录首次录入的日期月份,没有结合业务实际发生的月份与ID维度,导致同一ID的跨月业务被错误合并。下面是针对性的修改方案和详细说明:

修改后的搜索视图代码

<record id="project_rc.count_view_search" model="ir.ui.view">
    <field name="name">project_rc.cuenta.search</field>
    <field name="model">project_rc.account</field>
    <field name="arch" type="xml">
        <search string="String ...">
            <field name="date" />
            <group expand="1" string="Group By">
                <!-- 按业务月份单独分组 -->
                <filter string="Month" name="by_month" help="Group by business month" context="{'group_by': 'date:month'}" />
                <!-- 按ID + 月份联合分组(满足同一ID跨月业务独立分组的需求) -->
                <filter string="ID &amp; Month" name="by_id_month" help="Group by account ID and business month" context="{'group_by': ['name', 'date:month']}" />
            </group>
        </search>
    </field>
</record>

关键修改点解析

  1. 精准按月份粒度分组:
    把原代码中的'group_by': 'date'改为'date:month',Odoo会自动提取日期字段的「年+月」作为分组维度,而不是完整的日期值,确保同月份的业务会被归到同一组,而非按天拆分。

  2. ID与月份联合分组:
    新增了ID & Month过滤选项,通过['name', 'date:month']实现先按ID(这里假设你的ID字段是name,如果是其他字段比如account_code,直接替换即可)分组,再按月份细分,这样同一个ID在不同月份的业务会被拆分成独立分组,完全匹配你的需求。

额外注意事项

  • 确认date字段存储的是实际业务发生日期,而非记录的创建日期(create_date),否则分组仍然会基于首次录入时间。
  • 如果你的ID字段不是name,请将context中的'name'替换为模型中对应的标识字段。

内容的提问来源于stack exchange,提问作者Francisco González Mejías

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 12:12:52