当参数为空时,如何根据参数过滤Tablix,但不过滤?

时间:2019-06-14 17:40:38

标签: reporting-services ssrs-tablix

我有一个Tablix,其数据来自数据集,有一列称为Productgroup,可能有些用户希望对其应用过滤器。

我正在尝试构建一个ssrs表达式,该表达式将过滤该特定列上的tablix,但是仅当名为@Filter的参数不为null时(如果为null,则不需要应用过滤器)

我尝试过 表达式:产品组 接线员:喜欢 值:=IIF(IsNothing(Parameters!Filter.Value), false, Fields!ProductGroup=Parameters!Filter.Value)

似乎没有任何效果:(

1 个答案:

答案 0 :(得分:0)

首先,最好将参数发送到数据集并在服务器上过滤,而不是在客户端取回所有数据和过滤器。因此,这意味着需要对存储过程进行参数化,或者使用WHERE子句来过滤要连接的表/视图。

如果您坚持使用这种方法:

您希望表达式为“ ProductGroup”。

您希望您的运算符为“ =”。

您希望自己的价值是=IIF(IsNothing(Parameters!paramFilter.Value), Fields!Productgroup.Value, Parameters!paramFilter.Value)

您正在说的是如果参数为空,则我需要ProductGroup等于ProductGroup。一直都是这样。但是,如果参数不为空,则ProductGroup必须等于参数值。