【问题标题】:SSRS Row Visibility ExpressionSSRS 行可见性表达式
【发布时间】:2017-04-03 20:37:47
【问题描述】:

我有一个包含两个日期参数(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)

感谢任何关于我哪里出错的建议。

谢谢。

【问题讨论】:

  • 我建议您在数据集查询中执行此过滤。编写和保存从服务器返回的永远不会被看到的行会更容易。

标签: reporting-services sql-server-2012


【解决方案1】:

我认为你有 Hidden 表达式向后 - 当它应该 Hide 行而不是 Show 时,值应该是 TRUE 它。

你的表情似乎有点太复杂了。根据您的标准,您只想排除行:

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

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

您是否要过滤 StartInMarketDate 日期字段与 StartInMarketDate 参数匹配的地方?

【讨论】:

    【解决方案2】:

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

    基本正确 = 隐藏;错误 = 显示。

    你可能只需要交换你所有的真/假。

    【讨论】:

      猜你喜欢
      • 2017-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多