SSRS行可见性表达式

时间:2017-04-03 20:37:48

标签: reporting-services sql-server-2012

我的报告有两个日期参数(StartDate和StartInMarketDate)。在某些情况下,StartInMarketDate值是数据库可以为NULL。当两个参数都为NULL或StartInMarketDate参数为NULL时,所有记录都应出现在报表上。当为StartInMarketDate参数指定日期且StartDate为NULL时,报告应排除StartInMarketDate为NULL的所有记录。

我假设我应该能够根据表达式解决隐藏行的问题,但是我无法获得正确的语法。

下面是我提出的语法,但它包括我输入StartInMarketDate参数时的所有记录,并在我使用StartDate参数时排除了正确的记录。

=IIF(IsNothing(Parameters!StartInMarketDate.Value), IIF(IsNothing(Fields!StartInMarketDate.Value), IIF(IsNothing(Parameters!StartDate.Value), False, True), False), False)

对于我出错的地方的任何建议表示赞赏。

感谢。

2 个答案:

答案 0 :(得分:0)

如果要使用表达式,请记住您正在设置隐藏属性,而不是可见属性。如果你看外面的IIF你基本上说IF StartInMarketDate不是空的,那么将Hidden设置为False(显示全部)。

基本上是真=隐藏;假=显示。

您可能只需要交换所有的True / False。

答案 1 :(得分:0)

我认为你的隐藏表达式向后 - 当隐藏行时,该值应为 TRUE ,而不是显示它。

你的表情似乎有点过于复杂。根据您的条件,您只想排除行:

  

为StartInMarketDate参数和StartDate指定日期   为NULL ...排除StartInMarketDate字段所在的所有记录   NULL。

=IIF(NOT IsNothing(Parameters!StartInMarketDate.Value) AND IsNothing(Parameters!StartDate.Value) AND IsNothing(Fields!StartInMarketDate.Value), TRUE, FALSE)

您是否希望过滤StartInMarketDate日期字段与StartInMarketDate参数匹配的位置?