当前位置: 代码迷 >> 报表 >> [iReport小结2]iReport分页
  详细解决方案

[iReport小结2]iReport分页

热度:2752   发布时间:2013-02-26 00:00:00.0
[iReport总结2]iReport分页

开发工具:iReport 4.0.1


在做EBS中的报表开发,客户舍弃BI Publisher,而使用Jasper Report,使用过程中进行小小总结。


1,Report Properties中的“Ignore pagination”可以控制不分页。


2,Pallet中的Break组件,可以控制表中多少行数据分页。

Type: Page break, Column break

Print When Expression: 用来控制何时打印Break组件,就是执行分页操作,可以填写:$F{PAGINATION_FLAG}.equals( "Y")。


3,使用Report Group的"Start on a new page"

Report Group根据Group Expression中定义的字段来确定那些行可以同组,值相同的组相同,如果本行与上一行不同,就分组,如果设置了"Start on a new page",同时分页。

下面的例子中,james一组,jack一组,jim和joe一组,jone一组。

0jamesG0
1jackG1
2jimG2
3joeG2
4joneG1

如果要求每页10行,组内不足10行打印空白行,可以在数据库表中插入空白行来实现。


4,关于合计

定义了组后,可以进行分组计算,也可以做Report内的合计,组内合计的时候,variableExpression是必要的,组内计算依赖定义好的分组。

<variable name="quantitySumInGroup" class="java.lang.Integer" resetType="Group" resetGroup="positionNoGroup" calculation="Sum">        <variableExpression><![CDATA[$F{QUANTITY}]]></variableExpression>        <initialValueExpression><![CDATA[0]]></initialValueExpression>    </variable>

调整resetType为Report来合计所有行。


合计参考:http://asmitasapkota.blogspot.com/2009/06/calculating-sum-in-each-group-in