Reporting services 不要';s在SSR中显示行

Reporting services 不要';s在SSR中显示行,reporting-services,expression,Reporting Services,Expression,如果查询中没有返回结果,我将尝试实现显示“无可用数据”消息的报告 我试图通过一个针对行可见性的表达式来实现这一点 所以我有一张这样的小报- 如果有可用的数据,那么我希望显示第三行、第四行和第五行。 如果不存在数据,则我希望显示前两行 在前两行的行可见性中,我有以下内容- =iif(CountRows("RentTransactions") = 0, true, false) =iif(CountRows("RentTransactions") > 0, true, false) 在其

如果查询中没有返回结果,我将尝试实现显示“无可用数据”消息的报告

我试图通过一个针对行可见性的表达式来实现这一点

所以我有一张这样的小报-

如果有可用的数据,那么我希望显示第三行、第四行和第五行。 如果不存在数据,则我希望显示前两行

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

=iif(CountRows("RentTransactions") = 0, true, false)
=iif(CountRows("RentTransactions") > 0, true, false)
在其余三行的行可见性中,我有以下内容-

=iif(CountRows("RentTransactions") = 0, true, false)
=iif(CountRows("RentTransactions") > 0, true, false)
我在Tablix上有一个过滤器,它只将其限制为“AccountType”=水

当我在2016年6月1日至2016年6月30日之间运行报告时——我知道没有交易——因此我希望我的报告返回前两行。。。。 不是吗?它返回的是最下面的那些,里面没有数据

我做错了什么

这个数据集被称为RentTransactions


这里有一些问题

  • 带有数据集名称的
    CountRows
    将始终返回整个数据集中的总行数
  • 行可见性将使整行为空,但仍会占用空间。如果有交替的空白行,这看起来很糟糕
您真正想要做的是控制每个单元格中显示的内容。因此,在每个单元格中,都需要一个表达式来检查是否显示值。例如,对于Description字段,它看起来如下所示:

=IIf(Count(Fields!Transaction_Type.Value) > 0, Fields!Description.Value, "")
对于空事务类型,此表达式将返回0计数。如果需要,您可以自定义它


还要确保查询返回的是没有事务的日期行。否则,首先就没有原始数据可供报告处理。

这里有一些问题

  • 带有数据集名称的
    CountRows
    将始终返回整个数据集中的总行数
  • 行可见性将使整行为空,但仍会占用空间。如果有交替的空白行,这看起来很糟糕
您真正想要做的是控制每个单元格中显示的内容。因此,在每个单元格中,都需要一个表达式来检查是否显示值。例如,对于Description字段,它看起来如下所示:

=IIf(Count(Fields!Transaction_Type.Value) > 0, Fields!Description.Value, "")
对于空事务类型,此表达式将返回0计数。如果需要,您可以自定义它

还要确保查询返回的是没有事务的日期行。否则,首先就没有原始数据可供报表处理