包含和排除子报告(iReport-JasperReports)

时间:2008-12-16 04:25:41

标签: jasper-reports ireport

我需要根据条件包含或排除子报表。我正在使用iReport创建JasperReports。即,如果子报表具有值,则需要包含该子报表,否则不包括该子报表。任何人都可以发送样品或告诉我如何解决这个问题。

3 个答案:

答案 0 :(得分:6)

您可以在主报表中获取数据源中的数据,以便识别是否应包含子报表,然后使用子报表元素上的“printWhenExpression”字段来检查该数据。

我经常使用它 - 例如printWhenExpression字段可能包含:

new Boolean($F{TOTAL_STATS}.intValue() != 0)

其中TOTAL_STATS来自主报告的数据库查询。如果非零,我们会显示一个详细说明某些数据的子报告。

答案 1 :(得分:0)

据我所知,如果子报表中没有打印任何数据,Jasper会删除空白区域。换句话说,如果您的子报表通常占用半页,但没有数据,则删除空白区域。我不确定这是包含或排除报告的含义。

另一个解决方案是将子报表放在主报表中,然后右键单击 - >属性 - >子报告选项卡,您选择“子报告条件”选项卡并在那里写下您的条件。如果条件为真,则将打印子报表的内容,否则将不会打印。

答案 2 :(得分:0)

Jamie Love关于“printWhenExpression”的回答是针对目标的。

  

如果子报表中没有打印任何数据,则Jasper会删除空格

实际上,至少在JasperReports 3.7.0中有一个控制该行为的子报表属性“删除行空白”。默认情况下 - 至少在我使用iReport时 - 该参数已关闭。

WEG