1. 问题描述
进行FineReport数据填报时,如果数据量过大,由于前端浏览器的性能限制,如果将数据全部展现出来,速度会非常的慢,影响用户体验,这时候大家就会想,填报是否能像分页预览一样进行分页呢,实现只加载当前页,从而提高性能,下面我们就来介绍填报分页的制作与浏览过程,在op=write下,使用__cutpage__=v参数(即在url后增加&__cutpage__=v)来启用填报横向不分页纵向分页。
2. 示例
下面我们以1000行数据为例,每页显示200行,分5页显示。
2.1 数据准备
新建数据集ds1:SELECT top 1000 * FROM 订单明细。
ds2:SELECT * FROM 产品。
2.2 模板设计
如下图所示,在模板主体中拖曳数据列至C2~O2单元格,并设置标题:
2.3 过滤
数据列来源于2个数据集,需要在单元格中设置过滤条件,双击E2单元格,选择过滤,条件设置为产品id等于单元格D2,如下图:
注:数据列中来自于ds1的数据列的父格需设置为C2,来自于ds2的数据列的父格需设置为E2。
2.4 分页设置
形如分页预览中的每页显示固定行数,填报分页也如此设置,如下图,在C2单元格中添加一个条件属性:
2.5 重复标题行、冻结行列设置
由于上面的报表主体中包含的数据列比较多,并且数据量也比较大,则在web端查看报表时,需要设置重复标题行,并且冻结行列,使查看报表时,仍然能知道该行数据的意义。
重复标题行
选中标题行,右键,选择设置重复标题行。
冻结行列
点击菜单栏的模板>重复与冻结设置,在填报冻结栏里面讲第一行以及第三列冻结起来,如下图:
2.6 报表样式设计
给FineReport报表设置样式,如下图:
2.7 效果查看
点击填报预览,在URL后面添加参数__cutpage__=v,即可启用填报分页,查看效果:
在线查看模板效果请点击Cutpage.cpt
注:填报分页状态下,翻页前,如果修改了当前页的数据,需先保存该页面内容,即传输到服务器端进行保存,那么下次再查看该页内容时,页面显示内容即为编辑后的内容,在保存的过程中,不允许编辑,保存不是提交,报表会自动保存。
另:__cutpage__参数前后都有2个下划线。