1. 概述编辑
1.1 问题描述
填报前端预览时,所有数据都是在一页展示,如果数据量过大,由于前端浏览器的性能限制,将数据全部展现出来,速度会非常的慢,极大影响用户体验。
那么填报能否像分页预览一样进行分页展示,从而提高填报预览的速度呢?效果如下图所示:
1.2 解决思路
在填报预览(op=write)下,使用__cutpage__=v参数(即在 URL 后增加 &__cutpage__=v),来启用填报分页效果。
注1:该方法不支持新填报预览。
注2:该方法同样适用于多 sheet 填报。
注3:__是两个下划线,填报分页预览不支持列分页(列后分页和列前分页)。
注4:由于填报分页下,移动端无法一次提交所有页面,因此移动端不支持该参数该功能。
2. 示例编辑
2.1 准备数据
新建普通报表,新建数据库查询数据集,SQL 语句为:SELECT * FROM 订单明细 limit 1000
2.2 设计填报表格
设计填报表格,将数据集字段拖到对应单元格中,A2~F2 单元格添加文本控件,如下图所示:
2.3 设置填报属性
菜单栏点击模板>报表填报属性,新增内置 SQL 提交,如下图所示:
2.4 设置行后分页
设置行后分页是为了限制每页展示多少行数据,通过分页>行后分页条件属性实现,公式为:(row() - 1) % 200 = 0,如下图所示
注:此公式中的 -1 是因为示例中有一行为表头标题,所以需要减去不参与计算,实际应用时请根据自己的报表表头的行数进行减行!
2.5 设置模板参数
打开目录,找到对应的报表,类型选择填报,并设置参数名称为__cutpage__=v,类型为字符串,值为 v
2.6 冻结标题行
为了翻页时冻结标题行,需要如下图设置:
2.7 效果预览
保存模板,点击填报预览,并在 URL 后面添加参数&__cutpage__=v并回车重新预览模板,效果如下图所示
注:不支持移动端预览。
3. 模板下载编辑
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\Cutpage\填报分页.cpt
点击下载模板:填报分页.cpt