我有一份贾斯珀报告,里面有几个子报告。它们大多数都工作良好,但出于某种原因,如果它足够长到页面的末尾,我的一个子报告就不会分裂,相反,它会跳回其详细信息部分的顶部,并继续在那里写作,覆盖前面的文本。我看不出这份子报告和正确的报告有什么区别。目前,我的项目使用jasper 1.2.5,但是我尝试升级到4.0.1 (仅针对这一份报告),结果是一样的。
这是jrxml的部分,其中包含了不起作用的子报告:
<subreport isUsingCache="true">
<reportElement
x="0"
y="172"
width="468"
height="21"
key="subreport-3"
positionType="Float"/>
<dataSourceExpression><![CDATA[$P{dataSourcePreviousYukonLicence}]]></dataSourceExpression>
<subreportExpression class="java.io.InputStream"><![CDATA[this.getClass().getResourceAsStream("/config/template/subreportPreviousYukonLicence2.jasper")]]></subreportExpression>
这是所做的工作的部分:
<subreport isUsingCache="true">
<reportElement
x="0"
y="43"
width="468"
height="21"
key="subreport-2"
positionType="Float"/>
<dataSourceExpression><![CDATA[$P{dataSourceConvictionHistory}]]></dataSourceExpression>
<subreportExpression class="java.io.InputStream"><![CDATA[this.getClass().getResourceAsStream("/config/template/subreportConvictionHistory.jasper")]]></subreportExpression>
子报表本身的设计非常类似,所有的带都有isSplitAllowed="true",它们使用相同的字体和相同类型的报表元素。
如果有人知道为什么一个人会正确地分开而另一个人不会,你的帮助会受到很大的感谢。
发布于 2012-07-19 11:27:32
我们也有同样的问题,或者至少是极其相似的问题。原因不在报告中,而是在子报告的定义中。它被配置为有多个列,并且当它到达报告的最后一行时,它再次在第二列的顶部开始显示。
将其设置为单列固定。在我们的例子中,以下是简化的增量
-<jasperReport ... columnCount="3" pageWidth="240" pageHeight="555" ...>
+<jasperReport ... pageWidth="240" pageHeight="555" ...>现在,如果子报表不适合当前页面,则在下一页开始带带。
https://stackoverflow.com/questions/6272367
复制相似问题