黑名单禁止提交

做了个黑名单弹出框,现在想实现填报提交时,做内置数据校验,但校验公式怎么写?

image.png

下面是黑名单的操作

image.png都是文本框的编辑后事件

image.png

这是姓名的js

setTimeout(function(){

    var inputNames = _g().getCellValue("M1"); // 获取M1单元格的姓名

    inputNames = String(inputNames || "").trim(); // 转为字符串并去空格

    if (!inputNames) return; // 如果为空,直接返回

    

    var names = inputNames.split(","); // 按逗号分割成数组

    var alertMessage = ""; // 存储所有匹配到的黑名单信息

    

    for (var i = 0; i < names.length; i++) {

        var currentName = names[i].trim(); // 当前要查询的姓名

        if (!currentName) continue; // 跳过空值

        

        // 查询黑名单数据集(匹配第一列=currentName)

        var cpmc = FR.remoteEvaluate("value('黑名单', 1, 1, '" + currentName + "')"); // 第一列数据(姓名)

        var dwsl = FR.remoteEvaluate("value('黑名单', 2, 1, '" + currentName + "')"); // 第二列数据(身份证号)

        var mine = FR.remoteEvaluate("value('黑名单', 5, 1, '" + currentName + "')");  // 第五列数据(是否自营)

        var pro = FR.remoteEvaluate("value('黑名单', 6, 1, '" + currentName + "')");   // 第六列数据(状态)

        

        // 如果找到匹配数据(cpmc不为空),则添加到 alertMessage

        if (cpmc) {

            if (String(mine).trim() === '否' || mine === false) {

                alertMessage += "姓名:" + cpmc + "\n身份证号:" + dwsl + "\n----------------\n";

            } else {

                alertMessage += "姓名:" + cpmc + "\n身份证号:" + dwsl + 

                              "\n维护原因:" + mine + "\n状态:" + pro + "\n----------------\n";

            }

        }

    }

    

    // 如果 alertMessage 不为空,则弹窗一次

    if (alertMessage) {

        alert("发现以下黑名单记录:\n\n" + alertMessage + "\n请核实!");

    }

}, 100);

身份证是同样的操作

FineReport 新用户胖虎是女生 发布于 2025-7-24 11:53
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
用户k6280494Lv6专家互助
发布于2025-7-24 11:57

len(value('黑名单', 1, 1, m1)) >0  || len(value('黑名单', 2, 1, m1)) >0 

  • 新用户胖虎是女生 新用户胖虎是女生(提问者) 不太对 模拟计算的结果不管如何都是false,M1是姓名 不管是哪个姓名都为false
    2025-07-24 13:39 
  • 用户k6280494 用户k6280494 回复 新用户胖虎是女生(提问者) value('黑名单', 1, 1, m1) 和 value('黑名单', 2, 1, m1)看看能不能取到职
    2025-07-24 15:58 
  • 用户k6280494 用户k6280494 回复 新用户胖虎是女生(提问者) 黑名单.select(sfz,xm=m1) 或改成select 公式试试
    2025-07-24 15:59 
最佳回答
0
twsheLv6初级互助
发布于2025-7-24 13:22

验证身份证号就行了吧,谁的身份证号会重复?

最佳回答
0
CD20160914Lv8专家互助
发布于2025-7-24 13:44

 用数据集写一个黑名单的数据,这个数据集全部返回所有黑名单的身份证号,而且只有一列字段,不要姓名,比如数据集的名称为:hmd

那么写公式

/*如果用f11单元格的身份证号码在hmd数据集中返回为假,否则 为真*/

if(count(value("hmd",1,1,f11))>0,false,true)

最佳回答
0
农夫三拳1Lv6中级互助
发布于2025-7-24 13:49(编辑于 2025-7-24 13:50)

黑名单的身份证号找个单元格放,设置左父格和上父格为无,不扩展

数据检验的校验公式按下面的写法就可以了

FIND(身份证号单元格,黑名单身份证号单元格)=0

image.png

最佳回答
0
江思成Lv5见习互助
发布于2025-7-24 14:16

可以这样做,例如右边的辅助格里面写sql公式,例如: select  count(身份证号码)  from 黑名单  where 身份证号码 = 辅助格 如果他有就是1 没有就是0 ,然后js 获取这个单元格的值 , 如果 获取到 值是0 那就是不在黑名单,不msg弹窗,如果是 1 那就msg弹窗

  • 6关注人数
  • 52浏览人数
  • 最后回答于:2025-7-24 14:16
    请选择关闭问题的原因
    确定 取消
    返回顶部