autoBig分页标签实现连续序号和分页合计
问题背景:
之前已写文章已经介绍了润乾的新分页标签autoBig,本文进而针对一个常见的需求:连续序号和分页合计功能,进行详细介绍说明。
解决方案:
首先继承之前介绍autoBig标签时使用的报表模板,请参见《性能优化:分页标签对比(extHtml与aotuBig)》内部RBP地址:http://192.168.0.6:80/reportmis/RBP-27102。另外需要在此报表模板基础之上增加序号列显示分页连续序号,并且在每页进行当前页数据的合计值计算。
报表模板如下:
1、增加报表参数:
首先在该报表模板新增两个参数,参数名分别为:_startRow和_endRow。
【说明:】
这两个参数名称是不是有些熟悉呢?还记不记得润乾之前废弃的extHtml标签?在使用extHtml标签时,我们就是需要建立类似这两个名称的参数,用作计算起、始行的标志位,在此,润乾的新autoBig标签不需要设置这两个参数,是因为在后台实现中润乾自动封装了,所以省去了我们手动设置的麻烦,但是为了实现我们本文所介绍的序号功能,那么就需要获得这两个隐藏的参数值,所以建立同名参数名接收隐藏参数的值。
2、设置报表模板:
设置A1、A2行属性为报表头;设置A4行属性为报表尾。
B2:=@_startRow
C2:=@_endRow
A3:=&C3 扩展-左主格:C3
B3:=A3+int(@_startRow)-1 说明:实现序号值。
C4:=pcsum(I3{}) 说明:利用内置分页函数pcsum(I3{})实现每页的合计值计算。
【说明:】
通过上面的报表模板单元格内容的设置,就在使用分页标签的报表实现了连续序号和页内合计值计算效果,A3单元格设置&C3显示每页的序号,如果在autoBIg标签中设置pageCount=”10″ 和cachePageNum=”5″,即该序号会一直连续排到第50行,但是A3单元格在报表第6页第一行序号值变成了1,又重新循环排列序号了。
为了解决该问题,设置A1列不可视,引入参数@_startRow),利用在B3单元格设置表达式:=A3+int(@_startRow)-1,增加起始参数的标记值,这样,再出现之前的情况时就可以实现所有页数的连续序号排序了。
3、展现报表如下:
此时报表设置的参数,_startRow值为:1;_endRow值为:50;
报表展现第1页截图:
报表展现第5页截图:
报表展现第6页截图: