我认为由于分析服务脚本的处理顺序,使用自定义集合中的currentmember
等上下文驱动函数是没有意义的,即在处理器知道currentmember
实际上是什么之前评估集合是
上述规则是否有任何例外情况?即在自定义集中使用currentmember
函数的示例是什么?
答案 0 :(得分:1)
根据您在自定义设置"中的含义,Currentmember
可能有其用途。我在这里假设您的意思是在集合的定义表达式中使用。
查询级别集考虑了WHERE条件,该条件可以设置一个或多个CurrentMembers
。
自2008版以来,多维数据集级别命名集可以定义为dynamic
,因此行为相同。
虽然您可以在CurrentMember
和Filter
的集合中使用Generate
,但您也可以使用集合别名和Current
属性,即我找到更清楚:
Generate([Customer].[Country].[Country].Members as c,
c.Current.Name,
', '
)
或
Filter([Customer].[Country].[Country].Members as c,
InStr(c.Current.Name, 'a') > 0
)
本来可以写的
Generate([Customer].[Country].[Country].Members,
[Customer].[Country].CurrentMember.Name,
', '
)
和
Filter([Customer].[Country].[Country].Members,
InStr([Customer].[Country].CurrentMember.Name, 'a') > 0
)
。
请注意,第二种情况不涉及在您迭代的集合的定义中CurrentMember
的使用,而是在Generate
的字符串或集合的定义中或Filter
表达。