FR.Msg.confirm不起作用,直接跳过了里面的代码执行后面的了

如题,我在【填报前】事件里加了判断是否已有数据的代码,点确定就更新提交,点取消就返回。但代码实际的运行效果是不管我点哪个按钮,甚至不点,页面就自己提交了并且提示“成功”。效果图和代码如下,求大神指导怎么回事?代码里插入了几个alert()用来检验执行顺序,发现跳过了 if(v>0)的部分,直接到最后的执行完了,然后才回头执行if部分。求解这到底是fr.msg.confirm的问题还是if函数的问题?





  1. var duty = contentPane.getWidgetByName("drop").getValue();   
  2. var kefu = contentPane.getWidgetByName("kefu").getValue();   
  3. var str1 = '${=E2+B2}';
  4. var sn = str1 +duty +kefu  ;
  5. //alert(sn);  

  6. var sql="select count(UID) from czdutykefu where  SN= '"+sn+"'  " ;
  7. alert(sql);
  8. var v=FR.remoteEvaluate('=SQL("zhizhan","'+sql+'",1,1)');
  9. if (v>0)
  10. {
  11. FR.Msg.confirm("警告","已经提交过本班结算信息!请核对“班别”及“客服中心岗员工号”是否正确!\n\n 点击确认将删除已有数据并重新提交。\n\n ",function(flag){
  12.         if (flag){
  13.                 FR.Msg.alert("提示", "\n 更新成功!");
  14.                 alert("\n 更新成功!");
  15.         }
  16.         else{
  17.                 FR.Msg.alert("提示", "\n 已取消提交!");
  18.                 alert("\n 取消提交!");
  19.                 return false;
  20.         }
  21.         },10)
  22. }
  23. else{ return; }
  24. alert("执行完了");
复制代码



参考了官方文档 :
Msg-http://help.finereport.com/finereport8.0/doc-view-603.html
js实现删除行前先确认-http://help.finereport.com/finereport8.0/doc-view-627.html
数据逻辑删除的实现-http://help.finereport.com/finereport8.0/doc-view-1863.html(这个文档的最后一行代码contentPane.setCellValue(col,row,"China");   看不懂这行代码的作用,还请大神指点下)


补充更新:
如果把if(v>0)的整个代码部分换成confirm(),就会陷入死循环,如下图。点击确定会进入死循环,一直不会出现alert("执行完了");, 只有点取消,才能结束死循环,但偏偏又更新入库了数据。



编辑于 2018-4-25 14:26  
FineReport地铁 发布于 2018-4-25 13:52
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
迈达斯之手发布于2018-4-25 13:52(编辑于 2023-9-6 09:34)
555
最佳回答
0
地铁发布于2018-4-25 15:41(编辑于 2023-9-6 09:34)
555
  • 2关注人数
  • 653浏览人数
  • 最后回答于:2018-4-25 15:53
    活动推荐 更多
    热门课程 更多
    返回顶部