数据校验问题:校验不通过,修改正确后还是校验不通过

需求:做了一个表格数据提交数据库的页面,想在数据提交前,数据校验中判断所提交的编号是否存在。(编号是一个文本控件)

问题:打开填报页面后,不管编号存在还是不存在,第一次点完数据校验后,验证过程正常。如果对数据修改后,不管编号是否存在数据库,再次验证的结果都是第一次的。

措施:

措施一、在“数据提交”-“数据验证”-“内置验证”中,条件:SQL("CDP", "select nvl(count(u_num),0) from ps_info where u_num = "+D7+"", 3, 6) == 0;

 措施二:条件:在数据集将SQL写入,u_num作为参数,一是取指定单元格的值;二是去模板参数的值;在“内置验证”中的条件为:ds1.group(u_num) == 0


不管怎么试,都是第一次校验好使,值修改了就不好使了。

是不是页面打开后,只取了一次单元格的值?再校验,还是页面第一次打开时取的值,不是修改后的值。


这个问题有没有什么好办法解决?有没有什么办法,能在“数据校验”中,判断编号是否在数据库中存在?

FineReport defend2111 发布于 2019-5-26 13:55
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
defend2111Lv4见习互助
发布于2019-5-27 14:03

已经找到问题的原因了,应该浏览器出现的问题,对于新修改的值记录的还是一次写入的值 。重新启动一下电脑就可以了。


最佳回答
0
promiseykl1988Lv7初级互助
发布于2019-5-26 14:11

你弹下单元格的值就知道是什么了。有时候需要延迟加载

最佳回答
0
孤陌Lv6资深互助
发布于2019-5-26 14:16(编辑于 2019-5-26 15:05)

没有遇到你说的问题 

第一你的内置SQL 写的有问题吧

措施二 描述不清楚 感觉做的有问题 

/获取当前控件的值

var name = this.getValue();

//判断填报内容在数据库中是否存在

var sql ="SQL(\"FRDemo\",\"SELECT 销售员 FROM 销量 where 销售员='"+name+"'\",1,1)";

var len = FR.remoteEvaluate(sql).length;

if(len == 0)

{

FR.Msg.alert(FR.i18n.Alert,"该销售员不存在,请重新输入。");

this.setValue("");

}   判断填报内容在数据库中是否存在


  • defend2111 defend2111(提问者) 内置sql是没有问题的,因为第一次校验是正确的。 措施二是将判断是否存在的SQL写在结果集中,设置参数,在内置校验中判断。这个第一次校验也是正确的。 你发的这段js我看到过,这个写到什么地方?校验前还是校验后?
    2019-05-27 08:44 
  • 孤陌 孤陌 回复 defend2111(提问者) 写在编号单元格里的编辑结束事件里 这样直接当场就查询这个编号存在不存在
    2019-05-27 09:38 
最佳回答
0
圣体叶小凡Lv6高级互助
发布于2019-5-27 09:32

你想要啥结果,是在数据库有就不能重新提交入库??还是这个单元格只能写数据集已经有的值?

  • 3关注人数
  • 1853浏览人数
  • 最后回答于:2019-5-27 14:03
    请选择关闭问题的原因
    确定 取消
    返回顶部