SSRS 2012 - 隐藏包含没有数据的子报表的表行

时间:2018-04-10 18:45:01

标签: reporting-services grouping ssrs-2012

我有一个包含两行详细信息分组的表。顶行是几个单元格,数据详细信息,底行是所有列合并到一个单元格,该单元格包含子报表。此子报表有一个参数,即顶行中单元格的值。我需要的是,当子报表没有任何数据显示特定值时,该行根本不显示。现在,它在其顶部详细信息行和下一个详细信息行之间显示为空行。我可以让它显示一个" No Rows"消息,但我不想要它,我只是希望它不占用任何空间,即细节行将紧跟下一个细节行。我发现了几个类似的答案:How to supress empty subreports in SSRS 2008,但正如我所说,我不需要有无行信息。提前致谢

2 个答案:

答案 0 :(得分:1)

我认为'唯一可以执行此操作的方法是从主报表中查询数据,如果没有返回任何行,则隐藏该行。如果子报表是一个简单的查询,那么这应该没问题,但如果它是一个长时间运行的查询,那么这将有效地使执行时间加倍。

您还没有提供关于子报表内容的任何线索,但如果说,主报表行中显示的发票的发票行,那么您可以修改主数据集以包括记录的计数将出现在子报表中并使用该值来控制行可见性。

如果这没有意义,请编辑您的问题并发布您要实现的内容的屏幕截图和/或发布您从主报告和子报告中获取的数据样本。

答案 1 :(得分:0)

对我有用的一种简单方法如下:

选择将包含子报表的行。将CanGrowCanShrink属性设置为true。将子报表插入行中。在 SubReport Properties > Visibility > Show or hide…下,并添加以下表达式:

=IIF(RowNumber(Nothing)>0,False,True)

然后再次选择该行,并使用手柄使该行尽可能小或尽可能小。运行主报表时,如果子报表返回记录,则将显示该子报表,否则该行将为空白,高度将是您在上面使用手柄设置的高度。