形态装换单、库存状态转换携带转换前数据到转换后二开插件

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

形态装换单、库存状态转换携带转换前数据到转换后二开插件

注册插件到单据表单插件处,需要注意的是弹性域字段的处理,直接给转换后赋值会出现保存后出现空的情况。


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

形态装换单、库存状态转换携带转换前数据到转换后二开插件

注册插件到单据表单插件处,需要注意的是弹性域字段的处理,直接给转换后赋值会出现保存后出现空的情况。Python脚本如下(有源码附件):im...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息