列表式报表分页时统计图跟随动态变化的实现

 

今天做表的时候,忽然遇到了这样的一个需求:

报表是普通的列表式报表
每页 10 行的显示方式
在列表下方需要有一张统计图跟随

报表数据是比较多的 统计图如果统计全部数据,样式必然很难看,所以考虑能否统计图只统计当前页的数据呢?
这样的话 展现翻页后,统计图数据也跟随变化

设计思路:

使用 to 函数扩展与 valueat 函数结合的方式来实现。

先获取数据集总条数 ds1.count()
每页 10 条数据,则需要 ds1.count()/10 的页数

数据展示采用 valueat 的写法

imagepng
A1–A4 单元格合并
写入表达式:=to(1,ds1.count()/10)
B2 单元格写表达式:to(0,9) 从 0 开始是为了 valueat 函数取值时从 0 开始取数,0 位取到值的首位。
C1–H1 为表头部分。
C2 单元格表达式为:=valueat(ds1.select( 订单 ID),A2**10+B2)(预防乱码,写两个乘号)
A2*10+B2 确保取到的值是从 0 开始 9 结尾,10 开始,19 结尾,以此类推。顺序不会乱掉。
D2–H2 写法类似,更换字段即可。

统计图设置:

imagepng

客户名称为 X 轴 运会费为 Y 轴。简单指定即可。

最后一步:

选中 A4 单元格,在单元格属性栏的行后分页上勾选

imagepng

同时,设计器菜单栏–报表–报表属性–分页–分页方式选择 按纸分页

imagepng

展现效果如下图所示:

imagepng
至此,问题解决。