SSAS - 以哪种方式订购属性?

mon*_*131 4 ssas

我们的 SSAS 多维数据集有一个日期维度,对于 DayName 字符串成员,它按字母顺序而不是按时间顺序显示。我添加了一个 DayOfWeek 整数 1-7 用于排序。我有两种选择来实现这一点,不确定两者的优点/缺点。

  1. 使 DayName 属性可见,并使用 DayOfWeek 作为 OrderBYAttribute
  2. 使 DayOfWeek 属性可见,并使用 DayName 作为 NameColumn

像这样设置时,属性在功能上是相同的。我倾向于#2,因为它是一个整数。

Tom*_*m V 6

您的术语有点错误,这使得很难说出您的 2 个选项究竟是什么意思,但您应该使用OrderByAttribute(这就是我认为您在选项 1 中的意思)。TheOrderByAttribute正是用于此目的,按 Key 或 Value 以外的其他内容对属性进行排序。

如果选择2,你的意思是你创建使用属性DayOfWeek栏(本质上创建了一个属性KeyColumnDayOfWeek),然后设置NameColumnDayName你会在这种情况下,实质上具有相同的最终用户体验,但不是什么这些属性是为了做.

KeyAttribute应被用来定义哪些成员是唯一的,并且NameColumn应该被用来定义要显示给用户的东西。这些属性中的每一个都有自己的用途,您应该像这样使用它们。

KeyColumn当您实际上需要该属性来解决重复项等问题时,滥用定义订单会给您带来麻烦。

文档中的一些摘录:

KeyColumns:包含表示属性键的一列或多列,即属性绑定到的数据源视图中底层关系表中的列。除非为 NameColumn 属性指定了值,否则每个成员的此列的值都会显示给用户。

NameColumn 标识提供向用户显示的属性名称的列,而不是属性的键列中的值。当属性成员的键列值不明确或对用户没有其他用处时,或者当键列基于组合键时,将使用此列。NameColumn 属性不用于父子层次结构;相反,子成员的 NameColumn 属性用作父子层次结构中的成员名称。

OrderBy 描述如何对包含在属性层次结构中的成员进行排序。默认值为 Name,它指定属性成员的排序基于 NameColumn 属性的值(如果有)。否则,成员按键列的值排序。可用选项如下: