WEB扩展开发-二开单据多选分录字段后新增多行分录原创
金蝶云社区-vivi_ww
vivi_ww
10人赞赏了该文章 193次浏览 未经作者许可,禁止转载编辑于2023年10月06日 21:26:43

   WEB端二开单据通过扩展开发实现 多选分录字段后新增多行分录, 如图【检验项目】字段

 

上传图片

    

1.编辑表格-设置-对事件beforeSaveCell进行扩展,定义处理函数afterEditCell,设置-脚本编写逻辑:

afterEditCell:function(rowid,cellname,value,iRow,iCol){
     if(cellname!="item"){return value;//如果不是多选列直接返回}
if(waf.isArray(value)){//如果当前列多选时value值是一个数组
for(var i = 1 ; i < value.length; i++){//将多余的数值保存至一个全局变量中
entryOrgData.push(value[i]);
}
return  value[0];//返回最小索引值
}  
        },

在单元格保存之前将多选的值保存到一个全局变量中,然后返回多选值(数组)中的最小索引值,对当前单元格保存一个值;


2.编辑表格-设置-对事件afterSaveCell进行扩展,定义处理函数changeItems,设置-脚本编写逻辑:

changeItems:function(rowid,cellname,value,iRow,Col,oldValue){
if(entryOrgData.length>0){  //如果变量中有值,一定是多选列
        for(var i = 0 ; i < entryOrgData.length; i++){//组织分录行数据,
        var object = { "item" : entryOrgData[i],"itemName" : entryOrgData[i].name[waf.getContext().locale],"inspectIdea" : { "alias" :"UV" , "isenum" :true, "value" : 1},"upperComper":{"alias" :"空" , "isenum" :true, "value" : 0},"lowerComper":{"alias" :"空" , "isenum" :true, "value" : 0},"judgement":{"alias" :"合格" , "isenum" :true, "value" : 0}} ; 
        waf("#entrys").wafGrid('addRow',{data:object});//在当前行后面新增分录数据
        }
        entryOrgData=[];//清空变量
        }
      }

在单元格保存之后,拿到存储当前多选值的变量,遍历数组,然后将值构造一个分录行数据Data,依次调用addRow方法新增分录行;

3.清空存储当前多选值的变量。

上传图片

赞 10