import clr clr.AddReference("System") clr.AddReference("Kingdee.BOS") clr.AddReference("Kingdee.BOS.Core") clr.AddReference("Kingdee.BOS.DataEntity") clr.AddReference("Kingdee.BOS.App") clr.AddReference("Kingdee.BOS.Contracts") clr.AddReference("Kingdee.BOS.ServiceHelper") from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Metadata.EntityElement import * from Kingdee.BOS.Orm.DataEntity import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * from Kingdee.BOS.Util import * from System import * from System.ComponentModel import * from System.Collections.Generic import * from System.Text import* from Kingdee.BOS.ServiceHelper import * def DataChanged(e): if e.Field.Key == "FLot": # raise Exception(str(JsonUtil.Serialize(e.NewValue))) SetEntryData(e.NewValue, e.Row) def SetEntryData(lotVal,row): materialObjVal = this.View.Model.GetValue("FMaterialID", row) materialVal = 0 if materialObjVal == None else materialObjVal["Id"] if materialVal != 0 and lotVal != "" : sqlL = """ EXEC INVENTORYData_20240710 {0} ,'{1}' """.format(materialVal,lotVal) datas = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL) if datas != None and datas.Count > 0: data = datas[0] stockIdVal = data["FSTOCKID"]; stockLocIdVal = data["FSTOCKLOCID"]; this.Model.SetItemValueByID("FStockID", stockIdVal, row); this.Model.SetItemValueByID("FStockLocID", stockLocIdVal, row); else : this.Model.SetItemValueByID("FStockID", 0, row); this.Model.SetItemValueByID("FStockLocID", 0, row);