python插件开发-BOM保存前新增物料

公司业务部门提出需求,希望一些特殊物料依据一定的规则在保存BOM时,能自动增加到单据体中,
下面是利用python编写的插件,插件注册在菜单插件中,特殊物料按照一定的规则通过SQL存储过程获取。
import clr
clr.AddReference("mscorlib")
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.ServiceHelper')
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Core.Validation import *
from Kingdee.BOS.Log import Logger
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Core.Bill.PlugIn import *
from Kingdee.BOS.Core.Bill.PlugIn.Args import *
from Kingdee.BOS.App.Data import *
def BeforeDoOperation(e):
opCode=e.Operation.FormOperation.Operation.ToUpperInvariant();#触发操作代码大写,例如保存:SAVE
if(opCode=="SAVE"):
fmodel = this.View.Model.GetValue("F_BLNS_Text") #获取表头规格型号
FMATERIALID = this.View.Model.GetValue("FMATERIALID",0) #获取表头物料ID
FDESCRIPTION = this.View.Model.GetValue("FDESCRIPTION",0) #获取备注内容
FFNUMBER = FMATERIALID["Number"]
FNAME = FMATERIALID["Name"]
FNAME = str(FNAME) #此处一定要转为str
FDESCRIPTION = str(FDESCRIPTION)
FNAME = FNAME.rstrip() #清除字符串后的空格
FDESCRIPTION = FDESCRIPTION.rstrip() #清除字符串后的空格
#只有符合条件的BOM才新增物料
if FFNUMBER[0:3] == 'QGC' and FNAME == "改造机器" and FDESCRIPTION != "系统自动生成":
#执行MSSQL存储过程,获取物料编码
sql = """/*dialect*/exec ZRL_ZJ_QueryMaterial '{0}' """.format(fmodel)
result = DBUtils.ExecuteDataSet(this.Context, sql)
#操作盒贴纸
python插件开发-BOM保存前新增物料
公司业务部门提出需求,希望一些特殊物料依据一定的规则在保存BOM时,能自动增加到单据体中,下面是利用python编写的插件,插件注册在菜单...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



