。在一个命名集中的当前成员

时间:2014-10-18 10:16:22

标签: ssas mdx olap

我认为由于分析服务脚本的处理顺序,使用自定义集合中的currentmember等上下文驱动函数是没有意义的,即在处理器知道currentmember实际上是什么之前评估集合是

上述规则是否有任何例外情况?即在自定义集中使用currentmember函数的示例是什么?

1 个答案:

答案 0 :(得分:1)

根据您在自定义设置"中的含义,Currentmember可能有其用途。我在这里假设您的意思是在集合的定义表达式中使用。

查询级别集考虑了WHERE条件,该条件可以设置一个或多个CurrentMembers。 自2008版以来,多维数据集级别命名集可以定义为dynamic,因此行为相同。

虽然您可以在CurrentMemberFilter的集合中使用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表达。