关于提交时如何验证数据库中对应值是否存在

填报提交的时候验证  人员编码 是否存在,如存在提示:人员编码存在,不存在则提交成功。

填报内设置内置效验公式

B2==sql("人员","select * from 内部编号",2)


填报预览提交直接成功,无进行效验,,不知道这个效验公式该怎么写


FineReport jiouyaoni9 发布于 2019-1-29 23:21
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
孤陌Lv6资深互助
发布于2019-1-30 13:29

看这个例子 就可以了

内置提交校验使用公式示例一-http://help.finereport.com/doc-view-566.html 

  • jiouyaoni9 jiouyaoni9(提问者) 他通过用户名取得唯一对应了, 我是这个编号数据库存在的话就不能填报,不存在就能填报, 只是小白,不懂怎么弄。。。。
    2019-01-30 13:37 
  • 孤陌 孤陌 回复 jiouyaoni9(提问者) 例子是单元格的数据和数据库的相同了 就不可以提交入库 和你是一样的啊 你只需要把公式函数 $fr_username 替换成你的单元格就好了 B3==sql(\"FRDemo\",\"select * from userinfo where username=\'\"+B3+\"\'\",3)
    2019-01-30 13:41 
  • jiouyaoni9 jiouyaoni9(提问者) 大佬 我还有个提问给我看看怎么弄 http://bbs.fanruan.com/wenda/question/4585.html
    2019-01-30 15:07 
最佳回答
0
flyingsnakeLv6资深互助
发布于2019-1-30 09:00(编辑于 2019-1-30 09:02)

sql("人员","select count(*) from 内部编号 where 编号='"+B2+"'",1,1)>0

这样可以判断b2在编号这列中是不是存在


因为在校验的过程中,b2是单个的值。你不能把单个的值与* 这种一组值进行对比。



  • jiouyaoni9 jiouyaoni9(提问者) 按照你的内置效验写进去也不行啊 怎么回事。。。。 sql(\"人员\",\"select count(*) from 内部编号 where 内部编号=\'\"+B2+\"\'\",1,1)>0
    2019-01-30 11:08 
最佳回答
0
yinli1989Lv6见习互助
发布于2019-1-30 10:08

内置校验公式可以用这个:inarray(B2,数据集.group(人员))=0,如果不满足条件提示:人员编码存在,不存在则提交成功。

  • 4关注人数
  • 711浏览人数
  • 最后回答于:2019-1-30 13:29
    请选择关闭问题的原因
    确定 取消
    返回顶部