最简单的方法是,当您设置您的DataSet时,使用QueryDesigner从SSAS中撤回所需内容。当您指定尺寸过滤器时,在最右边是“参数”标题下的复选框。选中它,它会自动为您生成SSRS参数。
这将创建一个参数期待像下面这样,这实际上是一个维度筛选器的值:
\[DimensionName\].\[AttributeName\].&\[Value\]
如果您需要通过MDX做手工不过,看你的MDX表达式,它看起来对我来说(在我非常有限的MDX经验中 - 仍在学习)你试图在你的ROWS中指定你的参数(过滤器),而不是在FROM子句中应用它。
我预计它可能是更喜欢这个?:
SELECT
NON EMPTY { [Measures].[Count of ID], [Measures].[Average of Amount] } ON COLUMNS
,NON EMPTY { ([DimensionName].[AttributeName].ALLMEMBERS * [Query].[State].[State].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM
(SELECT (STRTOSET(@Region,CONSTRAINED) ON COLUMNS FROM [Model])
WHERE (IIF(STRTOSET(@Region, CONSTRAINED).Count = 1, STRTOSET(@Region, CONSTRAINED), [DimensionName].[AttributeName].currentmember)) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
从您的多维数据集定义与实际值更换DimensionName和为AttributeName。这假设您的@Region
参数格式与上面指定的格式相同。如果不是这样,那么在将报表参数分配给DataSet时,可以用DataSet属性中的其余语法替换它。
如果这不起作用,我表示道歉,目前我正在掌握有限的MDX知识,但我认为部分答案总比没有答案好,对吧?
感谢您的帮助,但是当我手动操作时,我在MDX查询中出现错误“区域层次结构已经出现在Axis1轴中 – user1284460 2012-04-25 17:50:13
从来没有错,当我使用数据集设置它工作。 – user1284460 2012-04-25 17:58:03
没问题,我很高兴它帮助你到达那里! – GShenanigan 2012-04-25 18:07:43