今天遇到一个需求,需要在查询的时候20条一页 导出的时候 5w一页来进行分页 设计器版本为V4.5
解决办法为在showReport.jsp里面增加大报表的标签autoBig。
Autobig实现原理:
把报表根据每页展现行数,以及从数据库里获取的最大行数,分成n页,然后把所有页的报表定义组成一个报表组,利用报表组实现了逐页计算逐页输出功能。
使用autobig标签需要配置reportConfig.xml文件中alwaysReloadDefine为no,启用缓存。
此项设置的目的是使得设置的缓存页数cachePageNum生效。实现展现、翻页、打印、导出都是逐页计算逐页输出的
具体代码为:
<table align="center" width="100%" height="100%">
<tr><td align=center valign=top height=100%>
<report:autoBig
name="report1"
reportFileName="<%=report%>"
dbType="oracle"
dsName="ds1"
totalCountExp=""
pageCount="20"
cachePageNum="500"
exportExcelOneSheet="false"
countPerExportPage="50000"
needScroll="yes"
scrollHeight="80%"
scrollWidth="80%"
exceptionPage="/reportJsp/myError2.jsp"
appletJarName="runqianReport4Applet.jar,dmGraphApplet.jar"
/>
</td></tr>
</table>
其中:
pageCount——每页记录数(非必填) 分页后每一页包含的记录数,其值需为整数。 默认值为20。
cachePageNum——缓存页数(非必填) 根据pageCount和cachePageNum,每次取pageCount* cachePageNum条记录,其值需为整数,默认值为100
exportExcelOneSheet="false" 是用于设置导出excel分页 true为不分页
countPerExportPage="50000" 这个标签的值是导出的数量为50000条。
解决办法为在showReport.jsp里面增加大报表的标签autoBig。
Autobig实现原理:
把报表根据每页展现行数,以及从数据库里获取的最大行数,分成n页,然后把所有页的报表定义组成一个报表组,利用报表组实现了逐页计算逐页输出功能。
使用autobig标签需要配置reportConfig.xml文件中alwaysReloadDefine为no,启用缓存。
此项设置的目的是使得设置的缓存页数cachePageNum生效。实现展现、翻页、打印、导出都是逐页计算逐页输出的
具体代码为:
<table align="center" width="100%" height="100%">
<tr><td align=center valign=top height=100%>
<report:autoBig
name="report1"
reportFileName="<%=report%>"
dbType="oracle"
dsName="ds1"
totalCountExp=""
pageCount="20"
cachePageNum="500"
exportExcelOneSheet="false"
countPerExportPage="50000"
needScroll="yes"
scrollHeight="80%"
scrollWidth="80%"
exceptionPage="/reportJsp/myError2.jsp"
appletJarName="runqianReport4Applet.jar,dmGraphApplet.jar"
/>
</td></tr>
</table>
其中:
pageCount——每页记录数(非必填) 分页后每一页包含的记录数,其值需为整数。 默认值为20。
cachePageNum——缓存页数(非必填) 根据pageCount和cachePageNum,每次取pageCount* cachePageNum条记录,其值需为整数,默认值为100
exportExcelOneSheet="false" 是用于设置导出excel分页 true为不分页
countPerExportPage="50000" 这个标签的值是导出的数量为50000条。