【发布时间】:2016-05-18 07:18:55
【问题描述】:
我是 JasperReports 的新手,基本上我想将子报表放在主报表中
问题是我将子报表放在详细信息带中,因此当我查询具有多个数据的数据库时,当我将报表输出为 pdf 时,子报表总是会重复多次。我想要一份无论我连接的数据库中有多少数据都不会重复的报告
我已经在网上搜索了,解决方法是添加
new Boolean($V{REPORT_COUNT}.intValue()==1)
在子报表的 print when expression 属性中,这确实解决了我的部分问题,因为现在我的子报表只打印一次但它仍然离开显示我的子报表后的一些空白页
所以我认为它仍在重复,但由于我添加的表达式而不会打印数据,人们说细节带的性质应该以这种方式工作,我不应该把子报表在细节带,但如果我把它放在其他带我得到这个错误:
Error filling print... Subreport overflowed on a band that does not support overflow.
如果我有很多数据,可能会占用一页以上的数据,就会发生上述错误。
如何删除那些空白页?如果我被要求不把它放在细节带中,那我该怎么办?或者有什么解决办法?
【问题讨论】:
-
1) 在迭代主数据源的过程中,Detail带中的每条记录都会重复; 2) 您应该了解更多关于 JasperReports 的信息。指南JasperReports Ultimate Guide 是一个好的开始; 3)有很多关于JasperReports的帖子。例如这篇文章对你有用:Subreport overflowed on a band that does not support overflow
-
谢谢您的建议,但我想我知道细节带在从 db 迭代期间重复,这就是为什么我问是否有解决方案可以解决它,我也知道溢出问题之一是由于您给我一个链接的大数据,我没有问为什么会发生错误我问有什么解决方案,谢谢你给我一个 300 多页的指南,我希望得到答案,如果真的没有,那么也许可以解释原因。我实际上并不认为我问了一个可怕的问题,但无论如何谢谢,我会花时间阅读指南。
-
))) 好的,我认为,最好发布您所拥有的图像和一些 jrxml 示例来重现问题
-
当然您也可以将子报告添加到 Detail 波段 - 这是法律行为。这取决于您解决的任务