分页web报表如何统计当前页与其前几页的信息
Web报表分页显示是最常见的展示方式之一,润乾报表可以根据不同的条件来设置报表的分页,然而报表分页也带来了许多新的需求,如:如何只对当前页某列数据进行统计、如何对当前页及其前几页某列数据进行统计、以及如何实现对所有页某列数据的统计。对所有页某列数据统计可以直接使用数据集函数,如:ds1.sum(某字段名)
对于要求实现当前页及其前几页某列数据统计,润乾报表没有提供专门的函数实现,但是我们可以使用变通的方法,使用手动分组分页加层次坐标功能来实现该需求。这里的手动分组是指一组数据内让其显示固定条数的数据(如20条),用数据总条数/20就是分组的个数(如果总条数%20!=0,需要加1),然后在每组后面设置强制分页,这样就可实现每页固定显示20行数据的效果。
本文介绍润乾报表实现当前页及其前几页某列数据统计的报表设计过程,以例子形式说明。
设计一个简单的报表模板,设计步骤如下。
第一步:报表数据集定义如下图所示。
这数据集很简单,只包含一个字段,这样方便报表设计完成后检验统计结果是否正确。ID为数据集的字段名,数据类型为字符串,总共增加40条数据。
第二步:按每页展现20行数据,根据查询数据的总记录条数计算出总共分几页显示,本例中在A1单元格存放计算出的分页结果,表达式为:=if(ds1.count()%20==0,int(ds1.count()/20),int(ds1.count()/20)+1)
第三步:根据上步中计算出的分页总页数,手动设置分组,本例中表达式写在A2单元格,为:=to(1,A1)。这一步的作用就是用分组模拟出分页。
第四步:按每页显示20条数据,分配查询每页的数据。
本例在B2单元格设置表达式为=to(1,20),这里实际作用相当于按行分页,每页20行数据。C3中表达式为=(A2-1)*20+B2,作用为生成所有数据的连续序列号。D4单元格为根据序列号生成的查询字段(ID)表达式。
第五步:计算数据
计算数据分当前页计算及当前页与前几页数据和。当前页数统计直接使用=sum(D2{}),而当前页与前几页的数据统计则需要用到层次坐标,这里设置表达式为=D3+D4[-1]。
第六步:设置模拟分页列A列与设置模拟每页显示20条数据列B列为隐藏列。
第七步:设置第4行为强制行后分页,实现分页效果,如下图所示。
下图为设计完成后的报表模板。
报表发布后,分页效果图如下(第一页)。
下图为第二页效果图,检验计算结果。
到此我们可以看到数据统计结果是正确的,实现了当前页与前几页数据求和的要求。
润乾报表设计器为用户设计了完善的设计方法和渠道,用户在熟悉了润乾设计器后,可通过一些巧妙的设计方法来变通的实现需求,是非常便捷且充满趣味性的。