编辑代码

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.App.Core')
clr.AddReference('Kingdee.BOS.ServiceHelper')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.DependencyRules import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
from Kingdee.BOS.Orm.DataEntity import *

def DataChanged(e):
    #fldKey=e.Field.Key.ToUpperInvariant();#字段标识大写 MaterialId
    billObj = this.View.Model.DataObject;#获取单据头的数据包,即单据的数据包,DynamicObject类型,可进一步解析
    entity=billObj["SaleOrderEntry"];#订单明细单据体,DynamicObjectCollection类型  POOrderEntry 
    FBillTypeID= this.Model.GetValue("FBillTypeID")["Number"]
    #this.View.ShowMessage(str(FBillTypeID));
    if e.Key=="FMaterialId":
        row=e.Row;
        #this.View.ShowMessage(str(row));
        number= this.Model.GetValue("FMaterialID",row)["Number"]
        FMaterialID= this.Model.GetValue("FMaterialID",row)["ID"] # 物料ID
        dbsql = ("SELECT FNUMBER,deptName,CSSName,xmName,xmjd,empName,FMATERIALID FROM  [WDI_YFXM]  where FNUMBER='{0}' ").format(number);
        #this.View.ShowMessage(dbsql);
        dbresult = DBServiceHelper.ExecuteDynamicObject(this.Context, dbsql)
        if len(dbresult) > 0:
            #this.View.ShowMessage(str(len(dbresult)));
            this.Model.SetValue("F_VCDB_Text1",dbresult[0][2],row) #CCS方案
            this.Model.SetValue("F_VCDB_Text2",dbresult[0][4],row) #项目所处阶段
            this.Model.SetValue("F_VCDB_Text4",dbresult[0][3],row) #研发项目
            this.Model.SetValue("F_VCDB_Text3",dbresult[0][5],row) #研发工程师