用料清单更新仓库不更新原来的库存状态原创
80人赞赏了该文章
568次浏览
编辑于2023年07月14日 11:48:01
场景:现在用料清单更新仓库时会有携带库存状态默认值的逻辑,客户想取消掉
方式:这段逻辑时代码中datachange写死的,只能通过别的方法绕开。增加一个新字段先存放原来的库存状态内码,然后走完标准的携带默认值逻辑后,再从刚刚的字段中把值赋值到库存状态中。
1、先在用料清单的子项明细上加一个文本控件,用于存放原库存状态内码。
2、python插件需要写两个方法。一个beforeupdatevalue和一个datachange,携带默认值逻辑是在标准的datachange里面的,我们的python里的datachange跑在标准的后面,beforeupdatevalue跑在标准的datachange前面,这样就给我们取数再赋值创造了条件。
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);
推荐阅读