对没有数据的子报表不进行加载

需求背景:

通常对于报表主题之间比较独立,又有一定关联的报表,我们可以通过润乾的主子表功能去实现,有些使用主子表功能的用户通常都想对于子报表中没有结果集的报表不进行加载数据的效果。

需求实现:

报表设计如下图所示:

我们可以使用内建数据集,做一张子报表,单元格设计如下图所示:

在子报表中设置A2单元格的表达式=ds1.count(),将该单元格设置成隐藏,我们主要通过该单元格在住报表中进行判断使用;在主报表的Q7单元格中的”隐藏行属性中,我们进行条件判断,根据子报表中数据集的个数来控制子报表的显示与隐藏,其表达式设置为:”if(eval(“A2″,C7)==0,true,false)“。

当子报表中有数据时,子报表正常加载,灰色区域为子报表中的数据。

验证子报表中没有数据的时候,不进行显示,我们可以通过将内建数据集的数据删除或者将表达式中设置为:”if(eval(“A2″,C7)==0,false,true)”;在本例中是将该内建数据的全部数据进行删除,预览后的效果如下图所示:

功能概述:

对没有数据的子报表不进行加载,主要是通过”if(eval(“A2″,C7)==0,true,false)”表达式进行判断,控制子报表所在行的显示与隐藏,来实现的;eval(“A2″,C7),参数1:A2“是子报表中用来计算子报表数据集表达式所在的单元格,参数2

是子报表嵌入到母报表中所在的单元格。