如何在PerformancePoint中使用自定义MDX保留展开/折叠

时间:2011-07-22 19:12:42

标签: mdx performancepoint

在PerformancePoint Services(PPS)中创建仪表板时,我经常在许多方面使用自定义MDX:

  • 自定义过滤器
  • 自定义记分卡轴

但是,在这两种情况下,PPS都会立即降低展开/折叠功能(树视图)。我已经使用SQL Profiler探索了PPS发布的MDX,并试图模仿它无济于事。

例如,MDX过滤器中的以下MDX创建一个没有中间学期和季度的年/月层次结构:

SELECT GENERATE(
  [Date].[Calendar].[Month].Members
  , {
      Ancestors([Date].[Calendar].CurrentMember, [Date].[Calendar].[Calendar Year])
    , Ancestors([Date].[Calendar].CurrentMember, [Date].[Calendar].[Month])
    }
  )
DIMENSION PROPERTIES MEMBER_TYPE ON 0
FROM [Adventure Works]

这会生成一份年份和月份的列表,并正确排序。但是,尽管选择“树视图”作为过滤器视图类型,但仍然没有树视图功能。

那么,如何为PPS提供MDX结果集并以最终的工作树视图结束?

1 个答案:

答案 0 :(得分:1)

我认为不使用祖先只是使用后代。

我通常在我的PPS过滤器中使用此结构,它为您提供树视图:

NonEmpty(
    Order(
        Descendants(
            [Date].[Fiscal Calendar].[All].Children, 
            [Date].[Fiscal Calendar].[Month], 
            SELF_AND_BEFORE), 
        [Date].[Fiscal Calendar].CurrentMember.Member_Key, 
        DESC)
    )

结果是数月的数月。后代非常有用。在PPS过滤器表达式中,CurrentMember不在上下文中。那时你没有CurrentMember。

让我知道你是否有所帮助。