好的,这是我的设置。
包含子报表的主报表。 子报表是交叉表报表。 交叉表中的一个字段有可能很长,但这需要这样。 当长字段不长时,报告呈现正常。 如果它包含大量文本,则jasper炸弹抱怨无限循环超过3页。
我觉得这是一个错误,但我想知道我是否应该以不同的方式处理此报告以避免此问题。 是否可以使用另一个控件来显示动态列,如交叉表,还支持更长的文本?
谢谢,如果有关我的报告的任何其他信息会有所帮助,请随时提出,我会尽我所能。
错误消息是:
错误JRFillSubreport - 填写1:异常 net.sf.jasperreports.engine.JRRuntimeException:交叉表在3个连续页面上没有打印任何内容,可能是无限循环
答案 0 :(得分:0)
当我使用交叉表报告时,我遇到了同样的问题,因为我的一些单元格是1.5K +字符......我概述了我做的方式here。
基本上我使用子数据集而不是子报告。对我来说最重要的是我在“crosstabCell”和“reportElement”元素上设置的高度和宽度值。
我发现我不得不破解XML以使其正常运行但最终它全部正常工作。
希望有所帮助:)
答案 1 :(得分:0)
在使用Jasper报告时,我在生产系统上遇到了这个“无限循环”问题 - 交叉表。我不知道它发生的确切原因,因为没有记录错误/异常。唯一的提示是,它只发生在几个案例中,交叉表列数据很长,不得不溢出到下一页。我意识到“带有溢出的拉伸”的元素可能会混淆Jasper Engine并进入“无限循环”。可以理解的是,Crosstab无法满足您的要求,因为某些“拉伸”功能并不合理。至于我的报告设计,我通过添加额外的元素(占用额外的空间)和一些带有“Stretch with overflow”功能的元素来定制一些交叉表。
报告此问题后,我使用交叉表创建了一个简单的报告,没有任何自定义或拉伸功能,并使用各种测试用例对其进行了测试....并且它有效。已经有一段时间了,这次变化后没有报告这个“无限循环”问题。