数据校验能否转发成js校验

下方代码校验方式,能否用js校验实现

IF(

AND(J2="常规",

OR(AND(LEN(sql("gz","SELECT 1 FROM BANK_CASE WHERE  ISNULL(cas_file_no,'')='" + A2 + "' AND ISNULL(cas_area_3,'') IN ('温州支行','苏州分行','无锡支行','台州分行')",1)) > 0,K2 = "华东包干区"),

AND(LEN(sql("gz","SELECT 1 FROM BANK_CASE WHERE  ISNULL(cas_file_no,'')='" + A2 + "' AND ISNULL(cas_area_3,'') IN ('南充分行')",1)) > 0,K2 = "成都分行"),

AND(LEN(sql("gz","SELECT 1 FROM BANK_CASE WHERE  ISNULL(cas_file_no,'')='" + A2 + "' AND ISNULL(cas_area_3,'') IN ('温州支行','苏州分行','无锡支行','台州分行','南充分行')",1)) <= 0,K2 = sql("gz","SELECT cas_area_3 FROM BANK_CASE WHERE ISNULL(cas_file_no,'')='" + A2 + "' AND ISNULL(cas_area_3,'') not IN ('温州支行','苏州分行','无锡支行','台州分行','南充分行')",1)))),true,

IF(J2="专项"&&H2="DQ"&&K2="宁波分行",true,

IF(J2="专项"&&H2 = "DR" &&K2="宁波分行",true,

IF(J2="专项"&&H2="AY"&&k2="全辖",true,

IF(J2="专项"&&H2="AI"&&k2="全辖",true,false)))))

ec0fefabd4fe8d4ca9a3e1c1baefdcbf.png

FineReport lose 发布于 2022-7-6 15:31
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
吾姓独孤Lv6高级互助
发布于2022-7-6 15:34

js就改写下比较繁琐和公式差不多,sql公式也可以用FR.remoteEvaluate('=公式')去改写

  • lose lose(提问者) 主要是我这个公式数据校验的时候比较慢,就想问下能不能改成js
    2022-07-06 15:52 
  • 吾姓独孤 吾姓独孤 回复 lose(提问者) 你这个慢是因为sql公式慢吧,那换js也要用sql公式一样的,除非js有比sql公式更快获取数据库数据的脚本代码,那我就不是很清楚了,你可以试试优化看看sql公式, 比如 ISNULL(cas_file_no,\'\')=\'\" + A2 这个感觉没必要加ISNULL,A2应该不会为空值的吧,加了这个会有点影响
    2022-07-06 15:56 
  • lose lose(提问者) 回复 吾姓独孤 那这个ISNULL去掉这里怎么写
    2022-07-06 16:03 
  • 吾姓独孤 吾姓独孤 回复 lose(提问者) WHERE cas_file_no =\'\" + A2 就这样,为空就过滤掉就好了,不太懂你加这个的目的
    2022-07-06 16:04 
  • 吾姓独孤 吾姓独孤 回复 lose(提问者) 你如果觉得还是慢,建议你先单独测试下这几段sql按你的条件查询出来要多久,可不可以优化啥的
    2022-07-06 16:05 
  • 2关注人数
  • 275浏览人数
  • 最后回答于:2022-7-6 15:34
    请选择关闭问题的原因
    确定 取消
    返回顶部