1. 概述
1.1 学习视频
本文学习视频:插入删除行
1.2 功能简介
填报时如果有插入和删除记录的操作,那么需要通过点击按钮插入空白记录或删除已有记录,FineReport 提供了 2 种设置插入和删除按钮的方法,分别如下:
内置插入删除按钮(不支持移动端)
自定义插入删除按钮(支持移动端)
2. 内置插入删除按钮
注:该方案不支持移动端预览,如果您有移动端需求请不要使用该方案。
2.1 设计填报模板
1)新建数据库查询数据集 ds1,SQL 语句为:SELECT * FROM Sales
2)设计填报表格,A2~F2 单元格添加文本控件,将数据集字段拖入对应单元格,如下图所示:
3)设计器菜单栏点击模板>报表填报属性,新增一个 内置SQL提交 ,如下图所示:
2.2 设置插入删除按钮
设计器菜单栏选择模板>模板Web属性,打开的界面选择填报页面设置>为该模板单独设置,双击分别将插入记录和删除记录按钮添加到顶部工具栏,如下图所示:
2.3 效果预览
保存模板,点击填报预览,插入和删除操作如下图所示:
插入记录
删除记录
注1:该方式会以鼠标焦点所在单元格为父格进行插入和删除操作,所以点击按钮前需确保鼠标焦点所在单元格是正确的。
注2:该方案不支持移动端预览,如果您有移动端需求请不要使用该方案。
3. 自定义插入删除按钮
注:该方案支持移动端预览。
3.1 设计填报模板
1)新建数据库查询数据集 ds1,SQL 语句为:SELECT * FROM Sales
2)设计填报表格,A2~F2 单元格添加文本控件,将数据集字段拖入对应单元格,如下图所示:
3)设计器菜单栏点击模板>报表填报属性,新增一个 内置SQL提交 ,如下图所示:
3.2 设置插入行按钮
选中 G2 单元格,给单元格添加一个按钮控件,按钮类型下拉选择插入行,指定单元格设置为A2,其余默认设置即可,如下图所示:
有关插入行按钮的属性设置介绍如下表所示:
按钮类型 | 属性 | 说明 |
---|---|---|
插入行按钮 | 按钮名字 | 前端展示时按钮显示的文本信息,默认为:插入行 |
按钮图标 | 按钮名字前显示的图标,默认为绿色加号 | |
快捷键 | 目前不支持快捷键设置 | |
指定单元格 | 指定以哪个单元格为父格开始插入,该单元格必须设置为可扩展 | |
行数 | 点击插入行按钮后,一次插入的行数,默认为 1 |
3.3 设置删除行按钮
选中 H2 单元格,给单元格添加一个按钮控件,按钮类型下拉选择删除行,指定单元格设置为A2,其余默认设置即可,如下图所示:
有关插入行按钮的属性设置介绍如下表所示:
按钮类型 | 属性 | 说明 |
---|---|---|
删除行按钮 | 按钮名字 | 前端展示时按钮显示的文本信息,默认为:删除行 |
按钮图标 | 按钮名字前显示的图标,默认为红色叉 | |
快捷键 | 目前不支持快捷键设置 | |
指定单元格 | 指定以哪个单元格为父格进行删除,该单元格必须设置为可扩展 |
注:删除行按钮中不能设置提交事件,会有逻辑冲突问题。如果要设置,必须使用普通按钮。
3.4 效果预览
1)PC 端
保存模板,点击填报预览,插入和删除操作如下图所示:
插入记录
删除记录
2)移动端
同时支持 App 端和 H5 端填报,效果如下图所示:
注:删除行按钮的删除只是将数据从页面上删除,不会和数据库有交互。如果希望删除行的同时将该数据从数据库中一并删除,可以参考:删除时二次确认
4. 模板下载
4.1 内置插入删除按钮
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\内置插入和删除按钮.cpt
点击下载模板:内置插入和删除按钮.cpt
4.2 自定义插入删除按钮
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\自定义插入和删除按钮.cpt
点击下载模板:自定义插入和删除按钮.cpt
5.注意事项
1)插入删除行会对页面上所有的公式进行重计算,页面会有一个刷新效果。所以如果页面本身加载速度较慢,比如开启了直接显示控件或者用了sql函数等,那插入删除行的速度也会变慢。
2)插入删除行会触发页面的加载结束后事件。
3)插入的行中单元格的值会受到插入行策略的影响,具体可以参考:插入行策略。
4)10.0.18版本之前,被删除行中的公式在提交时,会统一返回空字符串,所以如果填报主键绑定的单元格是一个写了公式的单元格,就会导致删除失败。解决方案为将公式直接写到填报属性中,或者取消勾选公式的「填报/分析时,保留公式用于计算」。