在填报模板中,常规校验方式有时难以满足实际需求,此时可借助公式实现更灵活的单元格校验。以下以Java平台下的自定义报表工具FineReport为例进行说明。
1、 假设用户权限配置表名为userinfo,其数据内容如下所示
2、 模板构思
3、 设置报表参数fr_username,用于密码修改功能,表样按此要求进行设计布局。
4、 设置报表填报属性
5、 参照下图配置报表填写属性
6、 配置数据验证规则
7、 进入模板设置,选择报表填报属性中的数据校验功能,在校验公式栏输入:B2==sql(FRDemo,select * from userinfo where username=+\$fr_username+,3),并在错误提示信息中填写:密码与原始密码不一致,无法进行修改!。完成后效果所示。此设置用于确保用户修改密码时,新密码需与数据库中原始密码匹配,否则将弹出提示阻止操作,保障数据安全性和操作合规性。
8、 验证B2数据与用户密码一致性,不匹配则提示错误。
9、 此例用于演示如何比对单元格数据与数据库内容,实现校验功能,也可根据需要设置其他类型的单元格验证规则。
10、 预览填报
11、 登录用户名aaa,进入模板预览页面,若输入的旧密码非123,点击提交后将弹出提示对话框。
12、 当输入原密码123、新密码1234并提交后,用户名aaa的密码已成功更改为1234,所示。
