大数据量展现

为了应对海量数据的清单式列表在读取、展现及导出过程中可能会出现速度过慢、内存溢出、系统死机等问题。满足大数据量的报表展示需求,为客户提供了大数据量展现(big分页标签发布报表)。

实现原理

把报表根据每页展现行数,以及从数据库里获取的最大行数,分成n页,然后把所有页的报表定义组成一个报表组,利用报表组实现了逐页计算逐页输出功能。

使用big标签建议配置globalReportConfig.xml文件中alwaysReloadDefine为no,启用缓存。此项设置的目的是使得设置的缓存页数cachePageNum生效。实现展现、翻页、打印、导出都是逐页计算逐页输出的。

标签说明

通用展现页面集合了大数据量报表展现标签big标签,直接调用SR设置一些标签参数即可使用SR进行大数据量报表的分页取数展现。

进行如下参数设置:

标签类型:showType=html、报表类型:vrType=big、自动分页:autoBig=yes、总数据条数:totalCountExp、每页显示数据条数:pageCount、缓存页数:cachePageNum、阀值:cellsNum,总数据条数超过该值时,使用big标签展现,不超过时不使用分页标签展现。设置为0时,始终使用big标签展现。

参数的介绍可参考展现设置->参数说明 章节。

注意事项:

Big标签设置

报表展现设置中设置

展现设置更多设置中添加big相关的参数即可:

  按照报表的不同,设置不同的标签值就行。

配置文件中设置

通用展现页面提供了使用模式进行报表展现的方法,可以将一组报表展现属性保存为一种展现模式,直接调用模式进行报表的展现。

例如:将以下展现大数据量报表的参数保存为模式:test。在配置文件\mis2\custom\vrsr\SRParamSchema.json 文件中配置,格式如下:

"params":"showType=html&vrType=big&autoMode=yes&totalCountExp=10000&pageCount=50&cachePageNum=40&cellsNum=0

调用方式

         http://localhost:8800/reportmis/mis2/reportcenter/showReport1.jsp?raq=\test.raq&schemaId=test

         例如用已设置的模式进行big展现,已有里每次缓存页数是40页,在展现某张数据量较大的报表时需要设置缓存页数为50。

         只需要在schemaId=test的基础上增加参数cachePageNum=50即可。示例代码:

         http://localhost:8800/reportmis/mis2/reportcenter/showReport1.jsp?raq=\test.raq&schemaId=test&cachePageNum=50

big标签的局限性

big标签不能应用于以下几种情况

分组报表

报表和数据集表达式包含sum(),count(),等统计型函数。

由于autobig标签是通过标签dbType=”unknown”、dsName=”ds1″、 totalCountExp="50000" 、pageCount="10″、cachePageNum="5″做数据集的数据量统计划分,所以不能对数据集数据做分组,汇总等统计

不支持group

group函数需要对数据集所有数据进行排序,big标签是分页取数,无法排序。所以不支持group。

不支持横向扩展

big标签是通过控制每页显示的行数进行分页的,横向扩展会导致big标签分页混乱。