报表知识库
我要提问

对于用分页标签展现的报表中序号重置的解决办法

我们来下面一个现象,展现报表的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″
/>

报表模版的设计:

11

报表模版里中到了序号&B2,就是对展现出来的记录进行计数.

我们来看一下页面:

第一页:

21
第二页:

3
第三页:

4

我们可以看到序号重置了.又回到了从1开始.这是为什么呢?

是因为我们在标签中设置了cachePageNum=”2″属性,它的意思就是缓存页数,是为了提高分页效率的,当设置了2时,就是提前缓存了2页数据,当到第3页时,报表重新取数据进行计算,这时,序号也重新计算了,所以就被重置了.

那如何来解决这个问题呢?

我们可以利用分页标签里的startRowParamName=”start”和endRowParamName=”end”这俩个参数来计算当前的序号:

在报表中增加一列:

5
然后隐藏掉A列.

在报表分页标签中,将cachePageNum设置为1,即每次缓存1页

这样我们在页面上就可以看到正确的效果了:

第一页:

6

第二页:


第三页:


第四页:

7