Reporting Services - 根据报告参数值隐藏表行

时间:2012-02-08 12:38:53

标签: reporting-services

我在报告中显示了jobid。我希望如果作业ID是这个02,07.11,19,21,29,31,40等,那么这些报告行将不会显示。我知道如何隐藏写表达式的行,但我只需要知道是否有任何捷径可以说我的工作是02,07.11,19,21,29,31,40。

我仍然在做= IIF(Fields!JID.Value = 02或Fields!JID.Value = 07或Fields!JID.Value = 11或Fields!JID.Value = 19,True,False)

有没有像= IIF(Fields!JID.Value in(02,07.11,19,21,29,31,40),True,False)

如果我发送作业id作为参数值从调用环境发送,如“02,07.11,19,21,29,31,40”,那么如何发送它。

请告诉我。

1 个答案:

答案 0 :(得分:0)

它是否适合您的目的在SQL中处理此问题?你有两个选择...

  1. 选项1

    在报表中设置一个名为@JIDValues的多值字符串参数。 SQL sprocs不接受值数组,因此您需要将其作为字符串数组传递给您的sproc。为此,您需要在执行存储过程的报告代码中将您的值一起加入。

    JOIN(Parameters!SiteGroupList.Value, ",") & "'"

    在sproc内部(或报告取决于您的偏好),您需要在字符串中附加并添加逗号,以便以下内容适用于字符串末尾和中间的值。以下WHERE子句将能够确定您传递给sproc的逗号分隔字符串中是否包含特定的作业ID。

    WHERE @JIDValues LIKE '%,' + LTRIM(RTRIM(STR(tableA.JID))) + ',%'

  2. 选项2

    或者,如果这是一个静态列表,您可以对您的sproc进行硬编码以排除它们。