clr.AddReference('System')
clr.AddReference('System.Web') # 这行可能不是必需的,取决于你的具体需求
clr.AddReference('Kingdee.BOS')
from Kingdee.BOS.Util import *
def DataChanged(e):
# 处理物料属性FErpClsID和物料编码FNUMBER字段
if StringUtils.EqualsIgnoreCase(e.Field.Key, "FErpClsID") or StringUtils.EqualsIgnoreCase(e.Field.Key, "FNUMBER"):
FNUMBER = this.View.Model.GetValue("FNUMBER")
FErpClsID = this.View.Model.GetValue("FErpClsID")
# 判断物料编码FNUMBER 包含8.不包含8.9999且物料属性FErpClsID 值为1 就赋值仓管员F_RQWJ_CGY 仓库FStockId 仓位FStockPlaceId,如不满足则清空。
if FNUMBER and '8' in FNUMBER and not (FNUMBER.startswith('8.9999') or (FNUMBER.startswith('8.') and len(FNUMBER) <= len('8.9999'))) and FErpClsID == '1':
F_RQWJ_CGY = '00979'
FStockId = '01.84'
FStockPlaceId = 102131
this.View.Model.SetItemValueByNumber("F_RQWJ_CGY", F_RQWJ_CGY, 0)
this.View.Model.SetItemValueByNumber("FStockId", FStockId, 0)
this.Model.SetItemValueByID("FStockPlaceId",FStockPlaceId,0);#####仓位赋值
this.View.UpdateView("FStockPlaceId",0);
if FNUMBER and '8' in FNUMBER and not (FNUMBER.startswith('8.9999') or (FNUMBER.startswith('8.') and len(FNUMBER) <= len('8.9999'))) and FErpClsID != '1':
F_RQWJ_CGY = ''
FStockId = ''
FStockPlaceId = 0
this.View.Model.SetItemValueByNumber("F_RQWJ_CGY", F_RQWJ_CGY, 0)
this.View.Model.SetItemValueByNumber("FStockId", FStockId, 0)
this.Model.SetItemValueByID("FStockPlaceId",FStockPlaceId,0);#####仓位赋值
this.View.UpdateView("FStockPlaceId",0);
推荐阅读