采购单据分录字段,如何自动携带第一行的值原创
金蝶云社区-果然如此
果然如此
5人赞赏了该文章 369次浏览 未经作者许可,禁止转载编辑于2021年12月07日 19:31:13

常见个性化需求,如采购申请单使用部门自动携带第一行,便于快速录入,可通过DEP扩展方案扩展脚本实现。

在扩展点的loadfiles里面加入前置脚本和后置脚本。

1)前置脚本:

var receivebill_tableDataChangeListener = pluginCtx.getUIContext().get("receivebill_tableDataChangeListener");

var table = pluginCtx.getKDTable("kdtEntries");//不同单据kdtEntries命名不一样,注意修改

 

if(receivebill_tableDataChangeListener !=null ){

  table.removeKDTEditListener(receivebill_tableDataChangeListener);

}

 

2)后置脚本:

var receivebill_tableDataChangeListener = pluginCtx.getUIContext().get("receivebill_tableDataChangeListener");

var table = pluginCtx.getKDTable("kdtEntries");//不同单据kdtEntries命名不一样,注意修改

if(receivebill_tableDataChangeListener==null){

 receivebill_tableDataChangeListener = function(event,methodName){

  if(methodName == "equals"){

         return event.toString().length()==9;

  }

  if(methodName == "editStopped"){

          var curRow =  table.getRow(event.getRowIndex());

          var colName=table.getColumn(event.getColIndex()).getKey();

           //如果当前列为使用部门,如果是其他字段请注意修改useAdminOrgUniti字段名

           if("useAdminOrgUnit"==colName){

               var oppBgItem = curRow.getCell(colName).getValue();

               if(oppBgItem==null){

                return;

               }

               var size = table.getRowCount();

                  var ioppBgItem ;

                   for(var i=1;i<size;i++){  

                          ioppBgItem=table.getRow(i).getCell(colName).getValue();

                          //从第二行开始,如果使用部门为空,赋值为第一行的值

                          if(ioppBgItem==null){

                                 table.getRow(i).getCell(colName).setValue(oppBgItem);

                          }

                   }

            }

  }

};

  pluginCtx.getUIContext().put("receivebill_tableDataChangeListener",receivebill_tableDataChangeListener);

}

table.addKDTEditListener(receivebill_tableDataChangeListener);

请参考脚本配置截图:

image.png

image.png


赞 5