表格组
表格组是一项新功能,从 3.5.0 版本 起可在 Tabular Editor 3 中使用。此功能可让你快速将表格整理到文件夹中,使你在 Tabular Editor 3 的 TOM Explorer 中更轻松地管理和浏览大型复杂模型。

你可以通过两种方式创建表格组:在表格上右键并选择 创建 > 表格组 菜单选项;或者在选中一个或多个表格时,在 属性视图 中为表格组指定名称。
你也可以在选中一个或多个表后,通过右键菜单中的 移至组 子菜单进行操作。该子菜单会列出现有的表格组、用于根据所选表创建新组并打开组名编辑器的 (新建...) 项,以及用于取消表格组归属的 (无) 项。
你可以在 TOM Explorer 中通过拖放,将表格在不同表格组之间移动。注意:与度量值、列和层次结构的显示文件夹不同,表格组不能嵌套。
在 TOM Explorer 中右键点击某个表格组,会显示与你选中该表格组内表格(s)时相同的上下文菜单选项。
Note
表格组是 Tabular Editor 的专有功能。客户端工具(如 Excel、Power BI Desktop 等)由于用于定义 Data model 概念架构的 CSDL 格式 不支持表格组,因此将不会处理表格组。
元数据和脚本
Tabular Editor 会在每个表格上使用一个注释,用于指定该表格属于哪个表格组。该注释的名称为 TabularEditor_TableGroup。不过,当你使用 C# Script 对模型进行更改时,可以通过新的 Table.TableGroup(string)属性直接修改表格组。
下面是一个 C# Script 示例:它会遍历模型中的所有表格,并根据表格的类型和用途将其整理到相应的表格组中:
// Loop through all tables:
foreach(var table in Model.Tables)
{
if (table is CalculationGroupTable)
{
table.TableGroup = "Calculation Groups";
}
else if (!table.UsedInRelationships.Any() && table.Measures.Any(m => m.IsVisible))
{
// Tables containing visible measures, but no relationships to other tables
table.TableGroup = "Measure Groups";
}
else if (table.UsedInRelationships.All(r => r.FromTable == table) && table.UsedInRelationships.Any())
{
// Tables exclusively on the "many" side of relationships:
table.TableGroup = "Facts";
}
else if (!table.UsedInRelationships.Any() && table is CalculatedTable && !table.Measures.Any())
{
// Tables without any relationships, that are Calculated Tables and do not have measures:
table.TableGroup = "Parameter Tables";
}
else if (table.UsedInRelationships.Any(r => r.ToTable == table))
{
// Tables on the "one" side of relationships:
table.TableGroup = "Dimensions";
}
else
{
// All other tables:
table.TableGroup = "Misc";
}
}
隐藏表格组
如果你希望在 TOM Explorer 中始终看到完整的未分组表列表,但又需要与他人协作处理包含表格组注释的模型,你仍然可以在自己的 Tabular Editor 3 安装中完全禁用表格组。可在 工具 > 偏好设置 对话框中进行设置。转到 TOM Explorer 页面,然后在 显示和筛选 下取消选中 使用表格组:

Note
即使你按上述方法禁用了表格组,模型中的表仍可能已分配 TabularEditor_TableGroup 注释。如果你想从模型中清除所有此类注释,可以使用以下 C# Script:
foreach(var table in Model.Tables) table.TableGroup = null;