【问题标题】:How to use the same hierarchy for two different cascading parameters?如何为两个不同的级联参数使用相同的层次结构?
【发布时间】:2015-09-02 21:42:27
【问题描述】:

我正在使用多维数据集构建 SSRS 报告。我想添加两个参数,以便它们级联。我想对两个参数使用相同的 Dimension AND 层次结构。

例如,如果我有 Person > Department > Domain > Unit,那么我希望第一个参数将 Domain 作为值。然后,当用户选择第一个参数时,我希望第二个参数根据第一个选择过滤结果。所以在用户选择了一个域之后,他们可以选择一个单元,这些单元将根据域的选择进行过滤。

问题是,当我尝试设置第二个参数时,Department 层次结构不可用,这是一个问题,因为 Unit 在同一层次结构下。我只能为参数提供一次层次结构,然后在查询设计器中无法为第二个参数选择一个可用选项。

有谁知道这是为什么或解决方法。如果有一些自定义解决方案,我可以使用 MDX。请帮忙。

【问题讨论】:

    标签: reporting-services parameters mdx hierarchy cube


    【解决方案1】:

    在构建“月”时不要给出默认值。因此,不要在 SSRS 中传递完全限定的成员名称,而是只传递成员值并在查询中构建其余部分。

    StrToSet("[Accident Date].[Year-Quarter-Month-Date].&[" + @months+ "]")
    

    因此,您将参数作为文字字符串传递,如下所示。

    我建议,您对所有其他与日期相关的参数执行相同操作,以免遇到此问题。

    对于“months”参数对应的数据集,MDX如下:

    SELECT [Measures].[SomeMeasure] on 0,
    [Date].[Y-Q-M-D].[Month].MEMBERS ON 1
    FROM (
            SELECT StrToSet("[Date].[Y-Q-M-D].&[" + @year + "]") ON 0 
            FROM [SomeCube]
         )
    

    将月份列映射到参数属性中@months 的值。

    【讨论】:

      【解决方案2】:

      我快速浏览了 MDX 的 SSRS 查询设计器,它非常糟糕。它会为您做出有关底层 MDX 代码的决策,并且实际编辑原始 MDX 非常困难(如果不是不可能的话)。

      你试过这个workaround吗?您将数据源指定为 OLEDB,使用 OLEDB Provider for SSAS,您将有更多机会编写自己的 MDX。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-09
        • 2017-02-05
        • 1970-01-01
        相关资源
        最近更新 更多