2012-02-08 102 views
0

我在报告中显示jobid。我希望如果工作ID是02,07.11,19,21,29,31,40等,那么这些报告行将不会显示。我知道如何隐藏写表达式的行,但我只需要知道是否有任何捷径说我的工作是02,07.11,19,21,29,31,40。Reporting Services - 根据报告参数值隐藏表格行

还是我在做类似= IIF(领域!JID.Value = 02或领域!JID.Value = 07或领域!JID.Value = 11或领域!JID.Value = 19,真,假)

是否有任何方式像= IIF(Fields!JID.Value in(02,07.11,19,21,29,31,40),True,False)

如果我发送作业ID作为参数值发送来自呼叫环境如“02,07.11,19,21,29,31,40”,那么如何去做。

请让我通知。

回答

0

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

  1. 选项1

    设置报表中的多值,字符串参数称为@JIDValues。 SQL sprocs不接受值的数组,因此您需要将它作为字符串数组传递给您的存储过程。为了做到这一点,您需要在执行存储过程的报告代码中将您的值连接在一起。

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

    的存储过程里面(或者根据您的喜好报告),你将需要追加和前面加上逗号你的绳子,让下面将用于在结束自己的价值观工作,以及在中间的字符串。以下WHERE子句将能够确定在传递给存储区的逗号分隔字符串中是否包含特定的作业ID。

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

  2. 选项2

    或者,如果这是一个静态列表,你可以硬编码您的存储过程将它们排除在外。

+0

我想在报告级别做到这一点。您的第二个选项为SProc,但您的第一个选项似乎是报告,但如何工作JOIN(参数!SiteGroupList.Value,“,”)以及放置此表达式的位置?如果我没有发送作为参数值逗号分隔的作业ID,那么连接将添加更多的逗号....我只是不明白它是如何工作的基于逗号分隔值来隐藏行? plzz详细讨论 – Thomas 2012-02-09 06:09:42

+0

通过“隐藏行”你的意思是排除他们从你的结果一起吗?如果不是,那么你的意思是什么? 我提交的解决方案都不严格处理报告。两者都需要代表sproc的一些工作。我会修改我的答案,以更清楚地反映您的选择。 – unforgiven1987 2012-02-09 13:11:43

+0

托马斯,你有没有运气? – unforgiven1987 2012-02-16 21:24:23

相关问题