FineRrport填报重复数据校验

参考:

校验填报页面的数据是否重复- FineReport帮助文档 - 全面的报表使用教程和学习资料

联立多字段校验是否与数据库中数据重复- FineReport帮助文档 - 全面的报表使用教程和学习资料 

1、校验填报页面数据是否重复(多列)

1)在列表中添加一列用于设置该列的重复校验内容:

如添加M2列,该列的内容为公示:

CONCATENATE(C2,D2,E2,F2)

表示将C2、D2、E2 和 F2 单元格的填入的内容拼接在一起

2)在列表中添加一列用于设置整个列表的校验数据内容:

如添加B5列,该列的内容为公示:

JOINARRAY([M2],",")

表示用于获取M2扩展出的所有值作为一个字符串,以“,”分隔。

3)填报提交时,添加数据校验:

校验公示为:

len(GREPARRAY(split(B5,","),item = CONCATENATE(C2,D2,E2,F2))) <= 1

 

2、校验填报页面数据是否与数据库中数据重复(多列)

1)新建数据集“ds1”,查询获取数据库中已有的数据;

SELECT  concat(column1,  column2,  column3,  column4) AS 'aa' from table;

2)在列表中添加一列用于设置该列的重复校验内容:

如添加M2列,该列的内容为公示:

CONCATENATE(C2,D2,E2,F2)

表示将C2、D2、E2 和 F2 单元格的填入的内容拼接在一起

3)填报提交时,添加数据校验:

校验公示为:

IF(B2 = '' || ISNULL(B2), INARRAY(CONCATENATE(C2,D2,E2,F2), if(COUNT((ds1.group(aa))) > 1, ds1.group(aa), ARRAY(ds1.group(aa)))) = 0,true)

公示说明:

公式说明
ds1.group(aa)对 ds1 中的 aa 数据列数据分类汇总,当个数为 1 的时候,返回值为字符串;>1 返回数组
ARRAY(ds1.group(aa))将 ds1.group(aa) 汇总的数据转换为数组格式
if(COUNT((ds1.group(aa)))>1,ds1.group(aa),ARRAY(ds1.group(aa)))如果汇总后数据个数<1,将字符串转换为数组
INARRAY(H2,if(COUNT((ds1.group(aa)))>1,ds1.group(aa),ARRAY(ds1.group(aa))))返回 H2 中拼接的联合主键在已有数据数组中的位置,如果不存在返回 0

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值