形态装换单、库存状态转换携带转换前数据到转换后二开插件原创
4人赞赏了该文章
239次浏览
编辑于2023年06月07日 13:50:32
注册插件到单据表单插件处,需要注意的是弹性域字段的处理,直接给转换后赋值会出现保存后出现空的情况。
Python脚本如下(有源码附件):
import clr clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.DataEntity') from System import * from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Metadata import * from Kingdee.BOS.Core.Bill import * from Kingdee.BOS.Core.Metadata.FieldElement import * from Kingdee.BOS.Orm.DataEntity import * from Kingdee.BOS.Util import * def DataChanged(e): strType = str(this.View.Model.GetValue('FConvertType', e.Row)) #弹性域字段携带到转换后,如仓位、辅助属性 if(strType == 'A' and e.Field.Key == 'FStockLocId'): entity = this.View.Model.BusinessInfo.GetEntity('FEntity') entityObj = this.View.Model.GetEntityDataObject(entity) iCount = int(this.View.Model.GetEntryRowCount('FEntity')) dy = this.View.Model.GetValue(e.Field.Key, e.Row) parEntry =this.View.Model.GetEntityDataObject(entity, e.Row) for i in range(e.Row + 1,iCount): strAfterType = str(this.View.Model.GetValue('FConvertType', i)) if(strAfterType == 'A'): break valueId = Convert.ToInt64(((e.Field)).RefIDDynamicProperty.GetValue<long>(parEntry)) cloneFlexObj = ObjectUtils.CreateCopy(dy) cloneFlexObj["Id"] = valueId this.Model.SetValue(e.Field.Key, cloneFlexObj, i) dycol = this.Model.GetEntityDataObject(entity, i) e.Field.RefIDDynamicProperty.SetValue(dycol, valueId) this.View.UpdateView(e.Field.Key, i) #其他字段 if(strType == 'A' and (e.Field.Key == 'FConvertQty' or e.Field.Key == 'FStockId')): entity = this.View.Model.BusinessInfo.GetEntity('FEntity') entityObj = this.View.Model.GetEntityDataObject(entity) iCount = int(this.View.Model.GetEntryRowCount('FEntity')) dy = this.View.Model.GetValue(e.Field.Key, e.Row) for i in range(e.Row + 1,iCount): strAfterType = str(this.View.Model.GetValue('FConvertType', i)) if(strAfterType == 'A'): break this.View.Model.SetValue(e.Field.Key, dy, i) this.View.InvokeFieldUpdateService(e.Field.Key, i)
转换单携带转换前数据到转换后.zip(0.84KB)
推荐阅读