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

Power BI中TOM的Group By Columns属性数据刷新后重置问题

解决Tabular Editor中Group By Columns属性刷新重置及Field Parameters复合键配置问题

一、普通表Group By Columns刷新后重置的解决方案

手动设置表的Group By Columns属性后执行数据刷新会被重置,核心原因是默认的Full刷新策略会同步数据源元数据,覆盖自定义分组配置。解决方式如下:

  • 修改目标表刷新策略:
    1. 在Tabular Editor中定位到目标表,打开属性面板
    2. 找到Refresh Policy选项,将其从默认的Full改为Preserve
  • 批量配置(TOM脚本):
    若需给多个表设置,可运行以下脚本:
    // 替换为你的目标表名集合
    var targetTables = new[] { "Table1", "Table2" };
    foreach(var tableName in targetTables)
    {
        var table = Model.Tables[tableName];
        table.RefreshPolicy = RefreshPolicy.Preserve;
    }
    

注意:设置Preserve后,数据源的结构变更不会自动同步到模型,需手动更新表结构适配数据源变化。

二、Field Parameters中配置复合分组键并保留设置

要利用Group By Columns将[fieldparametername]Fields和[fieldparametername]Fields Fields设为复合键,同时确保刷新后配置不丢失,按以下步骤操作:

  1. 定位Field Parameters对应表:在Tabular Editor中找到名称包含Parameter Table - [fieldparametername]的表
  2. 设置Group By Columns:
    • 打开该表的属性面板,找到Group By Columns字段,点击编辑按钮
    • 添加[fieldparametername]Fields和[fieldparametername]Fields Fields两列到分组列表
  3. 锁定配置:将该表的Refresh Policy设置为Preserve,避免刷新时覆盖分组配置
  4. 脚本化配置(可选):
    若需批量处理Field Parameters表,可使用:
    // 替换为你的Field Parameter名称
    var paramName = "YourFieldParameterName";
    var paramTable = Model.Tables.First(t => t.Name == $"Parameter Table - {paramName}");
    // 添加复合分组列
    var groupColumns = paramTable.Columns.Where(c => 
        c.Name == $"{paramName}Fields" || 
        c.Name == $"{paramName}Fields Fields"
    );
    paramTable.GroupByColumns.Clear();
    paramTable.GroupByColumns.AddRange(groupColumns);
    // 设置保留刷新策略
    paramTable.RefreshPolicy = RefreshPolicy.Preserve;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:08:20