在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]
?
答案 0 :(得分:2)
我没有更改MDX。在我的报告的数据集属性中,我将Parameter Value
更改为:
="[Create Date].[Year].&[" + Parameters!Year.Value + "]"
问题解决了
答案 1 :(得分:0)
使用字符串连接在MDX中添加“前缀”'[创建日期]。[年]。& ['和“后缀”']':
STRTOSET('{ [Create Date].[Year].&[' + @CreateDateYear + '] }', CONSTRAINED)
如果@CreateDateYear
包含类似“2014”的内容。
注意:我还在成员唯一名称周围添加了大括号,因为这是MDX中集合的正确语法。如果您希望允许多个选择,那么最好在Reporting Services中而不是MDX中进行字符串连接。