如题,我在【填报前】事件里加了判断是否已有数据的代码,点确定就更新提交,点取消就返回。但代码实际的运行效果是不管我点哪个按钮,甚至不点,页面就自己提交了并且提示“成功”。效果图和代码如下,求大神指导怎么回事?代码里插入了几个alert()用来检验执行顺序,发现跳过了 if(v>0)的部分,直接到最后的执行完了,然后才回头执行if部分。求解这到底是fr.msg.confirm的问题还是if函数的问题?
102196
102191
var duty = contentPane.getWidgetByName("drop").getValue();
var kefu = contentPane.getWidgetByName("kefu").getValue();
var str1 = '${=E2+B2}';
var sn = str1 +duty +kefu ;
//alert(sn);
var sql="select count(UID) from czdutykefu where SN= '"+sn+"' " ;
alert(sql);
var v=FR.remoteEvaluate('=SQL("zhizhan","'+sql+'",1,1)');
if (v>0)
{
FR.Msg.confirm("警告","已经提交过本班结算信息!请核对“班别”及“客服中心岗员工号”是否正确!\n\n 点击确认将删除已有数据并重新提交。\n\n ",function(flag){
if (flag){
FR.Msg.alert("提示", "\n 更新成功!");
alert("\n 更新成功!");
}
else{
FR.Msg.alert("提示", "\n 已取消提交!");
alert("\n 取消提交!");
return false;
}
},10)
}
else{ return; }
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("执行完了");, 只有点取消,才能结束死循环,但偏偏又更新入库了数据。
102214
102216
编辑于 2018-4-25 14:26