润乾报表性能管理之分页计算标签
功能背景
报表大到一定程度,必然会内存溢出,此时比较好的解决办法似乎是边算边输出。分页计算标签是产品部自己做的,利用报表组来实现的逐页计算逐页输出的tag标签。
实现原理
把报表根据每页展现行数,以及从数据库里获取的最大行数,分成n页,然后把所有页的报表定义组成一个报表组,利用报表组实现了逐页计算逐页输出功能。
此tag标签可以实现展现、翻页、打印、导出都是逐页计算逐页输出的。
需要注意的是:
1、 当页数太多时,报表组的定义本身会导致内存溢出,因为生成的报表组定义是存在内存里的。比如我们做过试验,5000万条记录,每页20条,则在1g内存情况下内存溢出
了。
2、 导出txt文件时,我们采取往文件里追加的方式,所以基本没问题;但是导出word、pdf、excel的时候,都是先在内存里生成一个word、pdf、excel文件的装载类,然后再
由这个装载类统一输出到文件里,当数据量太大的时候,这个装载类本身会导致内存溢出。
3、 授权文件必须支持报表组的功能。
4、目前提供两种分页标签,一种是比较旧的report:extHtml,一种是比较新的report:autoBig.建议使用autoBig,因为这里面做了一定优化且增加很多方便的使用方法.