我不知道"切割"是正确的术语......
我必须完成一个基于Applet遗留系统的大型复杂报告,一个研究员,我决定尝试重用applet中的所有逻辑,以避免执行大量子报告的复杂性。我们所做的是复制applet中包含许多condictionals / SQL的所有逻辑,并生成一个巨大且格式正确的String,这样在我们的Jasper文件中它只有一个名为" myVo.getBody()的方法"除了页眉和页脚之外的东西。
不幸的是,我们发现了一些问题,即文本的某些部分在页面之间丢失了。我认为随着文本变得越来越大并且由于某种原因达到Jasper页面限制它继续在#34;无可见区域中被写入"当下一页内容开始时,某些部分丢失了。
例如,有一个包含19个项目的列表,会发生什么:
第2页结束 1项 2项 开始第3页 第18项 第19项 -
3至17的项目未显示。
这种情况有没有Jasper配置?
我们尝试过: 位置类型:相对于顶部和浮动修复 拉伸类型:相对于Tallers对象和相对于带高度 拉伸与Overflot:真或假
我不认为显示Java代码会很有用,因为它只是使用StringBuffer来构建String,将它放在PreparedDocumentVO中的body属性上,以便Jasper模型可以使用它。它似乎是一些Jasper设置,或者创建一个巨大的String的想法并不像我们想象的那么好。
答案 0 :(得分:1)
我会考虑打破结果。
Jasper根据相对页面大小格式化信息。这意味着在某个时间点,当处理不太可能适合页面的信息时,Jasper可能会做出一个不成立的假设(并且您的数据可能不会被格式化到页面中)。
如果您有一个特别长的字符串,请考虑将其拆分。此外,人们向下滚动网页,而不是侧面,所以一个沉重的横向滚动文档可能会导致用户问题,除非每条记录都向右侧滚动。