控件设置
为需要录入数据的单元格设置表单控件,并且设置控件的属性。如果需要将数据提交到数据库中,还需要绑定数据库字段。
设置方式
- 1、选中单元格
- 2、右侧选择控件设置。
- 3、选择组件。
系统支持通过拖拽的方式快速设置控件
- 4、修改数据绑定key(可选)
数据绑定key
是当前控件的唯一标识,不可以重复,这个值在提交时,作为java和api处理器的字段key。每设置一个新的组件时,系统都会自动为该组件初始化一个唯一的绑定key。
- 5、设置绑定数据库表(条件)
只有在添加了sql处理器之后,控件设置中才会出现该配置项。
该配置项用于将当前控件(单元格)和数据库表的字段关联起来。
- 6、设置校验。
提交前系统将按照设置好的校验条件对数据进行校验。目前支持的校验有:
- 必填
- 限定输入格式(正则表达式匹配)
- 重复校验 (version 1.8.2+)
支持的组件类型
控件类型 | 使用场景 |
---|---|
单行文本 | 填写单行文本信息,如:姓名 |
多行文本 | 填写多行文本,如:描述信息、个人简介等 |
数字 | 填写数字,如:数量 |
金额 | 填写金额,可设置前缀或后缀 如:单价、销售额等 |
单选框组 | 多个选项,只可选择一个, 如:性别 |
多选框组 | 多个选项,可选中多项 如:爱好 |
下拉选择框 | 点击下拉显示多个选择,可设置单选或多选 |
日期 | 可选择日期 年、年月、年月日三种类型可选 如:2024-09-06 |
日期时间 | 可选择日期和时间 如:2024-09-06 08:00:00 |
时间 | 可选择时间 如:08:00:00 |
开关 | 开启关闭 |
颜色 | 可根据需要选择颜色 |
省市区 | 选择省市区 可设置省、省-市、省-市-区 三种方式 |
图片上传 | 上传图片 可设置上传图片个数 |
文件上传 | 上传文件,可设置上传文件个数 |
组织角色 | 通过api获取角色选项,可设置单选或多选 |
部门 | 通过api获取部门选项,可设置单选或多选 |
用户 | 通过api获取用户选项,可设置单选或多选 |
下拉树 | 通过api获取选项,以树形方式展现,可设置单选或多选 |
重复校验
重复校验效果:
配置方式:
- 选中控件
- 在控件设置-校验中,勾选不允许重复。
- 保存报表。
如果填报数据源使用的是sql处理器,那么积木报表会自动检查配置好的数据库表中是否存在重复数据。 但如果使用sql和java处理器,积木报表就无法自动检查数据是否重复了。此时就需要自行实现重复接口来检查是否重复。
java处理器
实现方法repeatCheck
:
/**
* @Description: 提交处理器示例
* @Author: chenrui
* @Date: 2024/8/14 17:33
*/
@Component("demoSubmitHandler")
public class DemoSubmitHandler implements ISubmitHandler {
// ..... other override ......
/**
* 重复验证
*
* @param field 字段名-对应控件数据绑定Key
* @param value 字段值-用户在页面上填写的字段的内容
* @param dataId 数据id-仅编辑时有值,被编辑数据的主键值
* @return
* @author chenrui
* @date 2024/9/14 15:21
*/
@Override
public boolean repeatCheck(String field, String value, String dataId) {
// TODO 检查数据是否重复.
return true;
}
}
api处理器
新增重复校验接口:
/**
* 重复校验
* @param field 字段名-对应控件数据绑定Key
* @param value 字段值-用户在页面上填写的字段的内容
* @param dataId 数据id-仅编辑时有值,被编辑数据的主键值
* @return
* @author chenrui
* @date 2024/8/29 16:58
*/
@GetMapping("/submit/handle/repeat/check")
public Result<?> formCheckRepeat(@RequestParam("field") String field, @RequestParam("value") String value,@RequestParam("dataId") String dataId) {
log.info("开始检查重复{}-{}-{}", field, value, dataId);
return Result.OK(true);
}
url规则: api填报数据源中设置的api地址+
/repeat/check
。 如下api处理器的地址是:jmreport/test/submit/handle
,那么重复校验的地址就是:jmreport/test/submit/handle/repeat/check