用料清单更新仓库不更新原来的库存状态原创
金蝶云社区-kaiming
kaiming
80人赞赏了该文章 568次浏览 未经作者许可,禁止转载编辑于2023年07月14日 11:48:01

场景:现在用料清单更新仓库时会有携带库存状态默认值的逻辑,客户想取消掉


方式:这段逻辑时代码中datachange写死的,只能通过别的方法绕开。增加一个新字段先存放原来的库存状态内码,然后走完标准的携带默认值逻辑后,再从刚刚的字段中把值赋值到库存状态中。

1、先在用料清单的子项明细上加一个文本控件,用于存放原库存状态内码。

image.png

2、python插件需要写两个方法。一个beforeupdatevalue和一个datachange,携带默认值逻辑是在标准的datachange里面的,我们的python里的datachange跑在标准的后面,beforeupdatevalue跑在标准的datachange前面,这样就给我们取数再赋值创造了条件。

image.png

import clr
clr.AddReference('Kingdee.BOS.App')
from Kingdee.BOS.App.Data import *

def BeforeUpdateValue(e):
	if e.Key == "FStockID":
	        this.Model.SetValue("FText1",0,e.Row);
		temp = this.Model.GetValue("FStockStatusId",e.Row);
		if temp is not None:
			this.Model.SetValue("FText1", temp["Id"],e.Row);
			
def DataChanged(e):
	if e.Field.Key == "FStockID":
	        if this.Model.GetValue("FText1", e.Row) is not None:
		        this.Model.SetItemValueByID("FStockStatusId", this.Model.GetValue("FText1", e.Row), e.Row);
		        this.Model.SetValue("FText1",0,e.Row);


赞 80