校验字段下是否有重复填报数据

  • 文档创建者:cyb435
  • 编辑次数:10次
  • 最近更新:Leo.Tsai 于 2020-08-31
  • 1. 概述

    1.1 应用场景

    有时候需要校验某个字段下的填报数据是否重复,如有重复值,则提示校验出错信息且不允许提交入库。

    Snag_3eb5bb5f.png

    1.2 实现思路

    将填报单元格作为数组,在另外两个单元格中设置公式,其中一个公式得到数组原值,另一个公式得到数组去重后的值。

    如果数组内有重复数据,那么这两个单元格的值是不一样的,最后在提交校验中对这两个单元格进行校验,如果单元格值相等,则允许提交,不相等则报错。

    2. 示例

    2.1 准备数据

    新建数据查询数据集 ds1,SQL 语句为:SELECT * FROM 销售总额

    Snag_3ec45bf0.png

    2.2 设计表格

    1)设计填报表格,将销售员和销售总额字段分别拖入到 A2 和 B2 单元格,并添加文本控件,A5 和 B5 单元格添加 2 个公式,如下图所示:

    Snag_3ec99874.png

    • A5 单元格公式:JOINARRAY([A2], ""),返回 A2 单元格扩展出来所有值的字符串,重复数据保留,不加间隔符号

    • B5 单元格公式:JOINARRAY(UNIQUEARRAY([A2]), ""),返回 A2 单元格扩展出来所有值的字符串,去掉重复数据,不加间隔符号

    2)隐藏 A5 和 B5 单元格,前端填报时无需展示作为条件的数据,最终表格如下图所示:

    Snag_3edd2cc8.png

    2.3 设置提交

    菜单栏点击模板>报表填报属性,新增内置SQL提交,设置如下图所示:

    1596529665250672.png

    2.4 设置数据校验

    设计器菜单栏点击模板>报表填报属性,数据校验设置项下新增一个内置校验,如下图所示:

    1598865328178443.png

    • 校验公式:A5=B5

    • 校验出错信息:"销售员字段有重复填报数据!"

    注:A5 跟 B5 值不相等,那么即存在重复数据。

    2.5 效果预览

    1)PC 端

    保存报表,点击填报预览,销售员字段下有重复填报数据时,校验失败,如下图所示:

    6795499E-5092-4AAB-A3C1-8E9EAB4EF01D.GIF

    2)移动端

    同时支持 App 端和 H5 端预览,效果如下图所示:

    22B3EA34-380F-4D74-AE24-AF62A031863C.GIF

    3. 模板下载

    已完成模板参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\VerifyForm\校验字段下是否有重复填报数据.cpt

    点击下载模板:校验字段下是否有重复填报数据.cpt

    4. 公式拓展

    A5 和 B5 单元格插入的公式可以替换成下面 2 组:

    序号公式定义
    1LEN(JOINARRAY([A2], ""))数组转换为字符串长度,不加间隔符
    LEN(joinarray(UNIQUEARRAY([A2]), ""))数组去重复值后转换为字符串,不加间隔符
    2count(A2)数组内元素个数
    count(UNIQUEARRAY(A2))数组去掉重复值后元素个数


    附件列表


    主题: 填报应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!