2012-04-25 81 views
1

任何人都可以告诉我如何在这里使用SSRS参数吗?我使用SSAS作为数据源,报告显示一切正常,但我想根据参数值筛选结果。以SSAS作为数据源和参数的SSRS

SELECT NON EMPTY { [Measures].[Count of ID], [Measures].[Average of Amount] } ON COLUMNS, NON EMPTY { (STRTOMEMBER(@Region,CONSTRAINED) * [Query].[State].[State].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Model] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS 

参数是报告中的@Region。

回答

3

最简单的方法是,当您设置您的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知识,但我认为部分答案总比没有答案好,对吧?

+0

感谢您的帮助,但是当我手动操作时,我在MDX查询中出现错误“区域层次结构已经出现在Axis1轴中 – user1284460 2012-04-25 17:50:13

+0

从来没有错,当我使用数据集设置它工作。 – user1284460 2012-04-25 17:58:03

+0

没问题,我很高兴它帮助你到达那里! – GShenanigan 2012-04-25 18:07:43