#引入clr运行库 import clr #添加对cloud插件开发的常用组件引用 clr.AddReference('System') clr.AddReference('System.Data') # 常用金蝶插件类库start clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.App') clr.AddReference('Kingdee.BOS.App.Core') clr.AddReference('Kingdee.BOS.Business.DynamicForm') clr.AddReference('Kingdee.BOS.Contracts') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.DataEntity') clr.AddReference('Kingdee.BOS.ServiceHelper') # 常用金蝶插件类库end #dairycloud基础库中的常用实体对象(分命名空间导入,不会递归导入) from System import * from System.Data import * from System.Collections.Generic import List from Kingdee.BOS.Core import * from Kingdee.BOS.Util import * from Kingdee.BOS.Core.List import * from Kingdee.BOS.Core.List.PlugIn 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.App.Data import * from Kingdee.BOS.ServiceHelper import * # def OnPreparePropertys(e): # e.FieldKeys.Add("FWorkTimeType") def AfterDoOperation(e): # 保存8提交9审核1反审核26 if e.Operation.Operation == "DoUpdatePPBOMLevel": datas = this.View.SelectedRowsInfo whereSql = "" if datas.Count > 0: whereSql = "AND t0.FID IN({0})".format( ",".join(set(map(lambda x :str(x.PrimaryKeyValue),datas)))) sql = """/*dialect*/ UPDATE t0e SET t0e.FFORECASTGROUP = t1e.FFORECASTGROUP ,t0e.FFORECASTGROUPFRIST = CASE WHEN CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0) = 0 THEN t1e.FFORECASTGROUP ELSE SUBSTRING(t1e.FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0)) END FROM T_PRD_PPBOM t0 INNER JOIN T_PRD_PPBOMENTRY t0e on t0.FID = t0e.FID INNER JOIN T_PRD_MOENTRY t1e on t1e.FID = t0.FMOID WHERE 1 = 1 AND t1e.FFORECASTGROUP != '' AND t0e.FFORECASTGROUP = '' AND t0e.FFORECASTGROUPFRIST != t1e.FFORECASTGROUPFRIST {0} """.format(whereSql) # raise Exception(sql) # count = DBUtils.Execute(this.Context, sql) # def EndOperationTransaction(e): # if this.FormOperation.Operation == "DoUpdatePPBOMLevel": # datas = e.DataEntitys; # whereSql = "" # if datas.Count > 0: # whereSql = "AND t0.FID IN({0})".format( ",".join(set(map(lambda x :str(x.Id),datas)))) # sql = """/*dialect*/ # UPDATE t0e SET t0e.FFORECASTGROUP = t1e.FFORECASTGROUP # ,t0e.FFORECASTGROUPFRIST = CASE # WHEN CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0) = 0 # THEN t1e.FFORECASTGROUP # ELSE SUBSTRING(t1e.FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0)) # END # FROM T_PRD_PPBOM t0 # INNER JOIN T_PRD_PPBOMENTRY t0e on t0.FID = t0e.FID # INNER JOIN T_PRD_MOENTRY t1e on t1e.FID = t0.FMOID # WHERE 1 = 1 AND t1e.FFORECASTGROUP != '' # AND t0e.FFORECASTGROUP = '' # AND t0e.FFORECASTGROUPFRIST != t1e.FFORECASTGROUPFRIST # {0} # """.format(whereSql) # raise Exception(sql)