大数据量网格式报表采用大数据集

对于大数据量的网格式报表,数据全部取到内存,不仅耗时,而且内存压力大,而且这类报表没有报表端的分组汇总计算,也不需要在一页里展现全部,所以这类报表可以将数据集标记为大数据集,通过大报表tag标签发布后,取数和展现同步进行,数据不断分批取出,存储到临时文件中,内存压力解除,同时分批展现,预览速度无异于普通报表。

比如下图这个网格式报表,假设记录数为1千万:

该数据集标记为大报表:

大报表数据管理方式分为两种:缓存文件和spl自管理

1、采用缓存文件的管理方式:

通过big标签发布后,程序会根据tag里的fetchSize指定的值分批取数,然后根据rowNumPerPage指定的值决定每页显示的记录数

比如:

<report:big name="report1"

……

rowNumPerPage="20"

fetchSize="1000"

/>

一千万条记录,每次取1000条记录,则分10000次取出,每取1000条记录,分50页展现,每页显示20条记录。

2、采用spl自管理方式:

采用该方式,数据集必须是集算器数据集,通过big标签发布后,程序会根据页号与每页记录数(tag标签里指定的rowNumPerPage)自动计算出用于取数的行号,通过_start_end变量传入splspl计算取数,取一页算一页。

比如:rowNumPerPage="20"

每页20行,取第一页时程序会自动将_start设为0_end设为20;取第2页时程序会自动将_start设为20_end设为40,以此类推,在spl脚本里通过_start确定跳过记录数,_end-_start确定取记录条数。

 

具体大报表的制作方法,可参考《教程》大报表