不要在SSRS中显示行

时间:2016-11-09 10:35:00

标签: reporting-services expression

如果我的查询中未返回任何结果,我正在尝试实现显示“无数据可用”消息的报告。

我试图通过针对Row Visibility的表达来实现这一点。

所以我有一个看起来像这样的Tablix -

enter image description here

如果有可用数据,那么我想要显示第三,第四和第五行。 如果没有数据,那么我希望前两行显示.....

在前两行的行可见性中,我有以下内容 -

=iif(CountRows("RentTransactions") = 0, true, false)

在其余三行的行可见性中,我有以下内容 -

=iif(CountRows("RentTransactions") > 0, true, false)

我在Tablix上有一个过滤器,只是将其限制为“AccountType”= Water。

当我在2016年6月1日到2016年6月30日之间运行报告时 - 我知道没有交易 - 所以我希望我的报告返回前两行.... 它不会返回底部的,没有数据吗?

我做错了什么?

DataSet绝对称为RentTransactions

enter image description here

1 个答案:

答案 0 :(得分:0)

这里有一些问题。

    带有数据集名称的
  • CountRows将始终返回整个数据集中的总行数。
  • 行可见性会使整行空白,但仍会占用空间。如果有交替的空行,这看起来会很糟糕。

您真正想要做的是控制每个单元格中显示的内容。因此,在每个单元格中,您将需要一个表达式来检查是否显示值。例如,对于描述字段,它看起来像这样:

=IIf(Count(Fields!Transaction_Type.Value) > 0, Fields!Description.Value, "")

此表达式将通过为NULL事务类型返回0的计数来​​工作。如果需要,您可以自定义。

还要确保查询返回没有事务的日期的行。否则报告中没有原始数据可以首先执行任何操作。