DEP脚本

新方式添加表格监听,解决扩展脚本添加的监听无法移除的问题
新方式添加表格监听,解决扩展脚本添加的监听无法移除的问题,目的是跳过methodName参数
最近和部门大神在调试的时候,发现一个神奇的现象。使用脚本给一个表格增加了监听,脚本如下:
pluginCtx.getKDTable("kdtEntrys").addKDTEditListener(function(event,methodName){
    
        if(methodName == "editStopped")
        
        {
        
            com.kingdee.eas.util.client.MsgBox.showInfo("$$$$$EditStopped");
    
        }
    });
 然后业务代码中在提交后有移除表格监听的动作。居然报错了,
var obj = { 
          editStarting : function (e) 
         { 
              com.kingdee.eas.util.client.MsgBox.showInfo("editStarting");
         } ,
          editStarted : function (e) 
         { 
              com.kingdee.eas.util.client.MsgBox.showInfo("editStarted");
         } ,
         
          editValueChanged : function (e) 
         { 
              com.kingdee.eas.util.client.MsgBox.showInfo("editValueChanged");
         } ,

          editStopping : function (e) 
         { 
              com.kingdee.eas.util.client.MsgBox.showInfo("editStopping");
         } ,

          editStopped : function (e) 
         { 
              com.kingdee.eas.util.client.MsgBox.showInfo("editStopped");
         } ,

          editCanceled : function (e) 
         { 
              com.kingdee.eas.util.client.MsgBox.showInfo("editCanceled");
         } 
       } ;

       kdtable.addKDTEditListener( new com.kingdee.bos.ctrl.kdf.table.event.KDTEditListener(obj));

  使用DEP给采购入库单的分录物料编码F7增加值改变监听时,使用Dep提供的表格表格编辑监听事件方式进行业务逻辑处理,通过F7物料编码值改变,查询并携带给物料新增F7的值填充到采购入库单分录的字符串字段中。

  注意:因为使用表格值改变事件(table.addKDTPropertyChangeListener(function(event,methodName)),保存单据时,出现了点击保存按钮无任何反应,但客户端日志中会提示 去掉表格监听事件出错。此问题未解决,因此,采用上面的事件方式进行监听。

var easImporter = JavaImporter();
easImporter.importPackage(Packages.com.kingdee.bos.dao.query);
easImporter.importPackage(Packages.com.kingdee.eas.util.client);
easImporter.importPackage(Packages.com.kingdee.eas.basedata.master.material);

with(easImporter){
    var table = pluginCtx.getKDTable("detailTable");
    var obj = { 
          editStopped : function (e) 
         { 
              com.kingdee.eas.util.client.MsgBox.showInfo("editStopped");
              var row = e.getRowIndex();
               var col = e.getColIndex();

               if(col==2){
                // 获取物料编码F7的MaterialInfo
                var material =  table.getRow(row).getCell("materialNum").getValue();
                var sql = "select material.fname_l2 as mName,cp.fname_l2 as cpName, bizType.fname_l2 as btName, levy.fname_l2 as leName from T_BD_Material material left join CT_CUS_Levy levy on levy.fid = material.cflevyid left join CT_CUS_CarPrice cp on cp.fid = material.cfcarpriceid left join CT_CUS_BizType bizType  on bizType.fid = material.cfbiztypeid where material.fid = '"+ material.getId()+"'";
                var se = new SQLExecutor(sql);
                var rs = se.executeSQL();
                var leName = "",cpName = "",btName = "";
                while(rs.next()){
                    // 税款
                    if(rs.getString("leName") != null){
                        leName = rs.getString("leName").toString();
                    }
                    
                    // 车款
                    if(rs.getString("cpName") != null){
                        cpName = rs.getString("cpName").toString();
                    }
                    
                    // 业务类型 
                    if(rs.getString("btName") != null){
                        btName = rs.getString("btName").toString();
                    }
                

                }    
               //给kdtable 测试单元格赋值
               table.getRow(row).getCell("levy").setValue(leName);
               table.getRow(row).getCell("carPrice").setValue(cpName);
               table.getRow(row).getCell("bizType").setValue(btName);

            }

         }
       };

       table.addKDTEditListener( new com.kingdee.bos.ctrl.kdf.table.event.KDTEditListener(obj));
}

猜你喜欢

转载自www.cnblogs.com/lyc-smile/p/9077267.html
DEP