1

谁能告诉我如何在这里使用 SSRS 参数?我使用 SSAS 作为数据源,报告显示一切正常,除了我想根据参数值过滤结果。

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。

4

1 回答 1

4

最简单的方法是在设置 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

将DimensionNameAttributeName替换为多维数据集定义中的实际值。这假设您的@Region参数与我上面指定的格式相同。如果没有,您可以在将报表参数分配给 DataSet 时替换 DataSet 属性中的其余语法。

Apologies if this doesn't work, I'm working off a limited knowledge of MDX at the moment, but I figured a partial answer is better than none at all, right?

于 2012-04-25T16:38:00.290 回答