WEB扩展开发-二开单据多选分录字段后新增多行分录原创
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.清空存储当前多选值的变量。
推荐阅读