SSRS Group By Parameter

时间:2013-07-18 16:41:04

标签: reporting-services parameters group-by

如果我有一个允许多项选择的报告参数(@Fruit),如何将该参数用作SSRS矩阵中的列组?

通常,我会在查询中使用该参数,如下所示:

WHERE tbl.fruit In ( @Fruit )

然后我会使用数据集中的列作为我的组。但是,在这种情况下,我需要返回完整的数据集。我无法过滤查询,但我仍然只想显示参数选择的组。如果我的查询返回Apples,Oranges和Bananas,但参数只选择Apples和Oranges,我的tablix应该只有2列。

我尝试将Group By表达式设置为=Parameters!Fruit.Value,但后来我收到此错误:

  

分组'ColumnGroup'时使用的Group表达式返回了一个数据   类型无效。 (rsInvalidExpressionDataType)

我的参数类型是文字,我尝试过它,不允许空白值。

1 个答案:

答案 0 :(得分:5)

因此,似乎您希望根据多值参数中的选定值过滤报表对象,@Fruit

如果如您所说,您无法在数据集查询/存储过程中应用过滤器,则可以在Tablix级别应用过滤器,如:

enter image description here

表达式为:

=IIf(InStr(Join(Parameters!Fruit.Value, ","), Fields!Fruit.Value)) > 0
  , "INCLUDE"
  , "EXCLUDE")

基本上这是使用JOIN函数来获取所选值的逗号分隔列表,然后检查对象数据集中的 Fruit 字段是否在该列表中;如果是的话,包括它。