3

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

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

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

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

4

3 回答 3

4

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

在此处输入图像描述

表达式在哪里:

=IIf(Parameters!FilterColumn.Value = Fields!Category.Value
        or Parameters!FilterColumn.Value = "All products"
    , "Include"
    , "Exclude")

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

正如评论和其他答案中所提到的,这在 SP 中也是可能的,但由于它似乎是专门为了演示功能,所以这应该在报告级别起到作用。

于 2013-08-13T08:32:54.763 回答
2

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

在此处输入图像描述

Expression现场,我把第一个表达式:

1.  Iif(Parameters!FilterColumn.Value = "All", 1, Fields!Category.Value)

Value现场,我提出了第二个表达式:

2.  Iif(Parameters!FilterColumn.Value = "All", 1, Parameters!FilterColumn.Value)

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

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

于 2013-08-13T08:55:17.403 回答
0

将附加参数传递给您的存储过程,以便您将已排序的数据发送到您的报表。这将避免根据您的参数选择创建多个 Tablix。

于 2013-08-13T08:07:07.180 回答