【问题标题】:How to create MDX parameters for SQL Server Reporting Services (SSRS)?如何为 SQL Server Reporting Services (SSRS) 创建 MDX 参数?
【发布时间】:2014-10-11 18:03:08
【问题描述】:

在 SQL Server Reporting Service 中,当我连接到我的多维数据集以创建数据集时,在查询设计器中,我使用过滤器创建查询。它为我创建了以下 MDX:

  SELECT NON EMPTY { KPIValue("KPI1"), KPIGoal("KPI1"), KPIStatus("KPI1") } 
ON COLUMNS, NON EMPTY { ([Create Date].[Month Num].[Month Num].ALLMEMBERS * [Create Date].[Hierarchy].[Month].ALLMEMBERS ) } 
DIMENSION PROPERTIES MEMBER_CAPTION, 
MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT 
( STRTOSET(@CreateDateYear, CONSTRAINED) ) 
ON COLUMNS FROM [ERP]) 
WHERE ( IIF( STRTOSET(@CreateDateYear, CONSTRAINED).Count = 1, 
STRTOSET(@CreateDateYear, CONSTRAINED), 
[Create Date].[Year].currentmember ) ) 
CELL PROPERTIES VALUE, BACK_COLOR, 
FORE_COLOR, FORMATTED_VALUE, 
FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

当我添加此数据集时,Reporting Services 会创建一个名为 CreateDateYear 的参数。当我将像“2014”这样的值传递给这个参数时,我什么也得不到,我必须传递像[Create Date].[Year].&[2014] 这样的值。

如何更改我的报告以更改此参数以传递诸如“2014”之类的值而不是丑陋且不方便用户使用的字符串[Create Date].[Year].&[2014]

【问题讨论】:

    标签: reporting-services mdx olap-cube reportparameter


    【解决方案1】:

    我没有更改 MDX。在我的报告的数据集属性中,我将Parameter Value 更改为:

    ="[Create Date].[Year].&[" + Parameters!Year.Value + "]"
    

    问题解决了

    【讨论】:

      【解决方案2】:

      使用字符串连接在MDX中添加“前缀”'[Create Date].[Year].&['和“后缀”']':

      STRTOSET('{ [Create Date].[Year].&[' + @CreateDateYear + '] }', CONSTRAINED)
      

      如果@CreateDateYear 包含类似“2014”的内容。

      注意:我还在成员唯一名称周围添加了大括号,因为这是 MDX 中集合的正确语法。如果您希望允许多项选择,那么在 Reporting Services 而不是 MDX 中进行字符串连接可能会更好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        相关资源
        最近更新 更多