DEP实现特殊需求单据被引用后,被引用的基础资料不能被删除。原创
金蝶云社区-Hadwin
Hadwin
1人赞赏了该文章 429次浏览 未经作者许可,禁止转载编辑于2021年01月09日 14:27:08

需求背景:

如下图在费用报销单中加了一个F7字段引用的是自定义核算项目。做完单据后后台表中存的是这个对应F7的关联FID。

image.png

数据库中存了原煤种类,那么就证明被引用了,基础资料不让删除。

image.png

需求分析:

     该问题可通过在删除前置脚本进行校验,当检测到数据库有值时不让删除即可。先调用框架:getAllSelecteIDListValues()方法获取选中行数list,遍历此list获取fid,然后字符串拼接。再查库最后校验即可。


实现步骤:

1、编辑界面--界面加载--删除前置脚本编写校验逻辑

image.png


2、实现效果:

image.png


参考脚本:

var idList = pluginCtx.getUI().getAllSelecteIDListValues();  

var stringBuffer =  new java.lang.StringBuffer();  var idList1;     

    if(idList!=null){    

           for(var i=0;i<idList.size();i++){    

                   idList1 = stringBuffer.append(idList.get(i)).append(",");    

             }  

          var sendDocNum = idList1.substring(0, idList1.length() - 1);        

      //查询数据库     

   var sql = "select count(1) from T_BC_BizAccountBillEntry where cftestid IN('"+ sendDocNum +"')"; 

  var fMIsqlFacade =com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance(); 

  var rs = fMIsqlFacade.executeQuery(sql.toString(),null);

  if( rs != null && rs.next()){   

         if( rs.getInt(1) > 0){    

             com.kingdee.eas.util.client.MsgBox.showInfo("数据被引用不能删除");                                    com.kingdee.eas.util.SysUtil.abort();    

                   } 

           } 

 }

赞 1