我是JasperReports的新手,基本上我想在主报道中放一个子报告
问题是我将子报告放在Detail band中,所以当我查询具有多个数据的数据库时,当我将报告输出到pdf时,子报告将总是重复多次。我想要一个不会重复的报告,无论我连接的数据库中有多少数据
我搜索了互联网,解决方案是添加
new Boolean($V{REPORT_COUNT}.intValue()==1)
在 打印时,子报表的表达式 属性,由于现在我的子报表只打印一次但仍然离开,这确实解决了我的问题的一部分显示我的子报表后的一些空白页
所以我认为它仍然在重复,但由于我添加了表达式而没有打印数据,人们说细节带的性质应该是这样的,我不应该这样做。 ; t将子报表放在详细信息区域中,但是如果我把它放在其他一些波段中,我会收到此错误:
Error filling print... Subreport overflowed on a band that does not support overflow.
如果我有大量数据可能占用超过一页的数据,则会发生上述错误。
如何删除这些空白页?如果我要求不把它放在一个详细的乐队中那么我该怎么办?或者有什么解决方案?
答案 0 :(得分:7)
详细信息带的生成次数将与主数据集中的记录数一样多(由顶级查询填充)。
如果您想将子报表保留在详细信息区域中,顺便说一下,您可以执行以下操作之一:
$V{REPORT_COUNT}.intValue()==1
)直接添加到详细信息区域,而不是在子报表上。请注意,这只是一个可能影响报告性能的丑陋黑客。您的主要查询仍然会返回大量您不会使用的数据,因此您应该考虑其他选项。如果您可以将子报告移出Detail带,请将其放在允许溢出的带中,如Title或Summary band。然后:
<jasperReport>
标记中),以便除了详细信息之外的所有其他部分生成