如何限制jasper报告不要在每个组的新页面上启动?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何限制jasper报告不要在每个组的新页面上启动?相关的知识,希望对你有一定的参考价值。

我是Jasper Reports的新手。在我的项目中,使用的版本是Jasper Reports 3.1.2。问题是:我有一个主报告显示摘要和其他2个子报告。数据基于2个字段进行分组,数据从后端开始(已经分组)。在我的jasper报告中,我有以下组和以下属性集:

<group name="groupName" isStartNewPage="true" isResetPageNumber="true" isReprintHeaderOnEachPage="true" >
        <groupExpression><![CDATA[$V{REPORT_COUNT}]]></groupExpression>
        <groupHeader>
        <band height="0"  isSplitAllowed="true" >
        </band>
        </groupHeader>
        <groupFooter>
        <band height="0"  isSplitAllowed="true" >
        </band>
        </groupFooter>
    </group>

每当看到新组时,它就会在新页面上打印数据。当当前页面上有足够的空间来容纳其他组数据时,我希望数据不会打印在新页面上。

我已经尝试删除“isStartNewPage”属性。另外,尝试使用“keepTogether”属性,但由于它是旧版本的Jasper报告,因此不支持此属性。我也尝试过更改高度值,但没有运气。

当有足够的空间在单个页面上显示记录时,我想将数据保留在一个页面上。

输出:第一页显示摘要数据和2个数据分组的组。第二页显示第一组的数据,该组是第一组的子报告。同样,第三页将在摘要中包含与第二组相关的数据。

贾斯珀报告第1页

enter image description here

贾斯珀报告第2页

enter image description here

答案

该组通过isStartNewPage="true"属性在新页面上打印数据。当当前页面上有足够的空间时,删除此属性行以在当前页面上打印数据。

试试这个,

<group name="groupName" isResetPageNumber="true" isReprintHeaderOnEachPage="true" >
    .......
</group>

以上是关于如何限制jasper报告不要在每个组的新页面上启动?的主要内容,如果未能解决你的问题,请参考以下文章

Jasper Reports在显示组详细信息之前总结了所有组

JasperReports:如何在jsp页面中调用报表

如何在(Jasper Studio)的 mongo DB 查询中制作动态/可选过滤器(参数)

Java合并了两个Jasper Report

碧玉报告中的边界

如果已经发布,如何限制用户不要在同一页面上再次发布