根据参数值显示所有记录/部分记录

vel*_*ije 4 reporting-services ssrs-2008 ssrs-2012

我的存储过程返回大约 100 行。一列是类别。

在 SSRS 中,我创建了与该存储过程相关的数据集。在报告正文中,我有 Tablix,它与数据集相关。

现在,我有一个名为 FilterColumn 的附加参数,它包含数据集中的所有不同类别,加上一行名为“所有产品”的行。

如何根据该参数过滤 Tablix 以显示特定类别的产品还是所有产品?

Ian*_*ton 5

您需要设置一个类似于以下内容的过滤器:

在此输入图像描述

其中表达式为:

=IIf(Parameters!FilterColumn.Value = Fields!Category.Value
        or Parameters!FilterColumn.Value = "All products"
    , "Include"
    , "Exclude")
Run Code Online (Sandbox Code Playgroud)

这将根据参数值匹配行类别,或者,如果值 = All products,则将包括所有行。

正如评论和其他答案中提到的,这在 SP 中也是可能的,但由于它似乎是专门为了演示功能,因此应该在报告级别上实现这一点。


vel*_*ije 5

我创建了一些解决方案并为我工作:

在此输入图像描述

Expression字段中,我放置了第一个表达式:

1.  Iif(Parameters!FilterColumn.Value = "All", 1, Fields!Category.Value)
Run Code Online (Sandbox Code Playgroud)

Value字段中,我放置了第二个表达式:

2.  Iif(Parameters!FilterColumn.Value = "All", 1, Parameters!FilterColumn.Value)
Run Code Online (Sandbox Code Playgroud)

因此,当我在参数中选择“全部”值时,第一个表达式的结果将是 1,第二个表达式的结果将是 1,并且我的1 = 1所有行都为 true,并且我得到了表中的所有行。

当我从参数中选择特定类别时,第一个表达式结果将是Fields!Category.Value,第二个表达式结果将是Parameters!FilterColumn.Value。很简单,我得到了Fields!Category.Value = Parameters!FilterColumn.Value,或者只是给我行,其中类别是在参数中选择的。