电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

审批流程二开:二叉树(python,感谢周老师)

来源:金蝶云社区作者:金蝶2024-09-163

审批流程二开:二叉树(python,感谢周老师)

#需求: 审批流程大多数是:发起人->部门领导->票据审核1->票据审核2->财务总监->总经理->出纳 k3cloud里面不断的新增公司和人员变更。 现在:公司1财务总监变更变了,需要修改公司1财务总监员工任刚明细 公司10总经理变更了,需要修改总经理10的员工任刚明细 公司70总经理变更了,需要修改总经理70的员工任刚明细 #应用场景: 通过试试一下代码。可以通过sql表格设置公司的人员,不在通过岗位任刚实现,还可以用sql表查询到所有公司的人员信息 ![134c678b6b418c8c5bc928d99379cb1.webp](/download/010053f11abdda8440c4bd893b8a2c9c665f.webp) 说明:通过数据库sql表更新审批人、审批岗位。对多组织修改流程非常方便 此程序sql表是通过其他数据库表获取,所有用了存储过程更新。 # 1.BOS->费用报销单->新建基础资料->关联基础资料类型:员工 F_PAEZ_BASECEO 总经理 F_PAEZ_Basecfo 财务总监 F_PAEZ_Basepiaoshen1 票据审核1 F_PAEZ_Basepiaoshen2 票据审核2 F_PAEZ_Basecashier 出纳 ![image.webp](/download/0100941c8d94b29046fe9a0359ddfa07e2b5.webp) ![image.webp](/download/0100b07efcabf1014e22a6c4392dad79178f.webp) # 2.上传代码 # 引入clr运行库 import clr # 添加对cloud插件开发的常用组件的引用 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.ServiceHelper') # 导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入) 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.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.Metadata.EntityElement import * # 保存提交触发 def BeforeDoOperation(e): opCode = e.Operation.FormOperation.Operation.ToUpperInvariant(); # 触发操作代码大写,例如保存:SAVE SUBMIT Status=this.View.OpenParameter.Status;#0新增 1查看 2 修改 if (opCode == "SUBMIT"):#opCode == "SAVE" #if Status==0: init()#防止复制单据出错 #复制单据触发流程 def AfterCopyData(e): init() # 开始自动加载代码 def AfterCreateModelData(e): init() def init(): jichuziliao()#基础资料获取 lodeShenPi() # 赋值总经理财务总监 gangWeiXingMing() #更新岗位 #基础资料获取 def jichuziliao(): #全局函数定义 global billObj global orgName #组织名称内码 global orgNum #组织名称ID global gcxm global gcName #工程项目名称编码 billObj = this.View.Model.DataObject; # 单据头的数据包,即单据的数据包 orgObj = billObj["OrgID"]; # DynamicObject类型,基础资料、组织、辅助资料取值均是DynamicObject if (orgObj == None): # 如果是空系统会报错 orgName ="" orgNum ="" else: orgNum = ("{0}").format(orgObj["Number"]) orgName = ("{0}").format(orgObj["Name"]) gcxm = billObj["F_PAEZ_Assistant1"]; # DynamicObject类型,基础资料、组织、辅助资料取值均是DynamicObject if (gcxm == None): gcName = "无工程项目" else: gcName = ("{0}").format(gcxm["Fdatavalue"]) # 更新函数 def lodeShenPi(): jichuziliao()#基础资料获取 # 获取当前组织ID # ceo=str(emp(orgNum+"总经理")) # result = DBUtils.ExecuteScalar(this.Context,sql,None); ceo = str(ceocfo("ceo", orgName)) cfo = str(ceocfo("cfo", orgName)) piaoshen1 = str(ceocfo("piaoshen1", orgName)) piaoshen2 = str(ceocfo("piaoshen2", orgName)) cashier = str(ceocfo("cashier", orgName)) # this.View.ShowMessage(ceo+" "+cfo + " " +piaoshen1 + " "+ piaoshen2 + " "+cashier) if (ceo != None): this.Model.SetItemValueByID("F_PAEZ_BASEceo", ceo, 0); if (cfo !=None): this.Model.SetItemValueByID("F_PAEZ_BASEcfo", cfo, 0); if (piaoshen1 !=None): this.Model.SetItemValueByID("F_PAEZ_BASEpiaoshen1", piaoshen1, 0); if (piaoshen2 !=None): this.Model.SetItemValueByID("F_PAEZ_BASEpiaoshen2", piaoshen2, 0); if (cashier !=None): this.Model.SetItemValueByID("F_PAEZ_BASEcashier", cashier, 0); # 刷新单据 this.View.ParentFormView.Refresh(); # 获取员工FID def ygid(empName): # 员工ID sql = "select FID from T_HR_EMPINFO_L where FNAME='{0}'".format(empName); #raise Exception("问题SQL:"+sql);#SQL排错 result = DBUtils.ExecuteScalar(this.Context, sql, None); if (result == None): result = "" # result ="1658754"马保山 return result # 获取ceocfo def ceocfo(emptype, orgName): # emptype 员工类型 如总经理,财务总监 orgName 组织名称 sql = "select {0} from gongsiweihu2020

审批流程二开:二叉树(python,感谢周老师)

#需求: 审批流程大多数是:发起人->部门领导->票据审核1->票据审核2->财务总监->总经理->出纳 k3cloud里面不断的新增公...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信