报表知识库
对于用分页标签展现的报表中序号重置的解决办法
我们来下面一个现象,展现报表的jsp写法:
<report:extHtml
name=”report1″
reportFileName=”fenye.raq”
funcBarLocation=”top”
needPageMark=”yes”
generateParamForm=”no”
needScroll=”no”
exceptionPage=”/reportJsp/myError2.jsp”
totalCountExp=”query(‘select count(*) from book’)”
pageCount=”5″
startRowParamName=”start”
endRowParamName=”end”
cachePageNum=”2″
/>
报表模版的设计:
报表模版里中到了序号&B2,就是对展现出来的记录进行计数.
我们来看一下页面:
第一页:
第二页:
第三页:
我们可以看到序号重置了.又回到了从1开始.这是为什么呢?
是因为我们在标签中设置了cachePageNum=”2″属性,它的意思就是缓存页数,是为了提高分页效率的,当设置了2时,就是提前缓存了2页数据,当到第3页时,报表重新取数据进行计算,这时,序号也重新计算了,所以就被重置了.
那如何来解决这个问题呢?
我们可以利用分页标签里的startRowParamName=”start”和endRowParamName=”end”这俩个参数来计算当前的序号:
在报表中增加一列:
然后隐藏掉A列.
在报表分页标签中,将cachePageNum设置为1,即每次缓存1页
这样我们在页面上就可以看到正确的效果了:
第一页:
第二页:
第三页:
第四页: