乐于分享
好东西不私藏

金蝶云星空二开python表单插件之新增单据设置默认值,获取当前用户对应员工案例!!

本文最后更新于2026-01-04,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜

金蝶云星空二开python表单插件之新增单据设置默认值,获取当前用户对应员工案例!!

大家好,我叫大伟,今天开始给大家继续倒腾金蝶二开插件案列分享,大部分都是非常实用而且能够提升工作效率和增强体验感的小功能。

在日常业务中,员工提交单据时,经常需要填写大量重复信息:自己的员工信息、固定的日期、默认的业务类型等等。这些重复性工作不仅效率低下,还容易出错。今天,我们就来分享一个实用的Python插件开发技巧:让系统在单据新增时,自动填充这些默认值

运用场景非常广泛,比如设置默认的固定日期,固定的销售员采购人员或者动态数据值,在新增单据的是时候自动赋值,如当前日期、满足条件自动带出供应商、客户、单据类型等,都可以通过OnInitialize事件初始化的时候动态获取值,在AfterCreateNewData事件中新增单据将值赋值到对应字段。本次案例介绍核心思路如下:

  1. OnInitialize事件:单据初始化时,获取当前登录用户对应的员工ID

  2. AfterCreateNewData事件:新增单据时,将获取到的员工ID和预设的默认值自动填入对应字段

Python插件案例一之表单插件

新增单据设置默认值

(获取当前用户对应员工)

代码案例如下

# 引入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 Listfrom Kingdee.BOS.ServiceHelper import *# 全局变量,存储员工IDempId = 0# 事件1:单据初始化完成时触发def OnInitialize(e):    """    单据初始化完毕,在这里可以获取一些控件备用    通常用于准备后续需要使用的数据    """    # 获取当前登录用户ID    userID = str(this.Context.UserId)    # SQL查询:根据用户ID获取对应的员工信息    sqlGetEmpId = """    SELECT E.FID, E_L.FNAME, P.FPERSONID, U.FUSERID, U.FNAME     FROM T_SEC_USER U     INNER JOIN T_BD_Person P ON (U.FLINKOBJECT = P.FPERSONID)     INNER JOIN T_HR_EmpInfo E ON (P.FPERSONID = E.FPERSONID)     LEFT JOIN T_HR_EmpInfo_L E_L ON (E.FID = E_L.FID AND E_L.FLOCALEID = 2052)     WHERE U.FUserId = {0}    """.format(userID)    global empId    # 执行SQL查询    ds = DBServiceHelper.ExecuteDataSet(this.Context, sqlGetEmpId)    tab = ds.Tables[0]    # 获取员工ID,如果没有找到则默认为0    empId = tab.Rows[0]["FID"] if tab.Rows.Count > 0 else 0# 事件2:单据新增界面打开时触发def AfterCreateNewData(e):    """    单据新增界面打开时触发,可以获取到单据初始化之后的数据    通常用于对单据新增进行默认值填充    """    global empId    # 设置员工字段默认值(根据实际情况修改字段标识)    if empId != 0:        this.Model.SetItemValueByID("F_empid", empId, 0)    # 设置日期默认值    this.Model.SetValue("FDate", "2025-12-31")    # 这里可以补充其他默认值设置    # 例如:this.Model.SetValue("FBillTypeID", "001")    # 例如:this.Model.SetItemValueByID("FSaleDeptId", "部门ID", 0)

操作步骤如下

1、打开BOS设计器,找到需要批改的单据,如果单据是只读状态,不要慌!只需在单据上右键点击【扩展】,就能以可编辑模式打开

2、注册Python脚本,进入【表单插件】配置,注册下面的Python脚本代码,保存配置

3、保存所有配置,新增单据,自动获取了固定销售订单日期和对应当前用户的员工!如下图:

温馨提示

  1. 字段标识F_empid需要替换为实际的员工字段标识,切记唯一标识一定是自己系统的标识

  2. 复制脚本注意缩进,严格遵守PYTHON缩进规则,否则保存会报错

如果这篇文章对你有帮助,欢迎点赞、收藏、转发!有任何问题也欢迎在评论区留言交流!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 金蝶云星空二开python表单插件之新增单据设置默认值,获取当前用户对应员工案例!!

评论 抢沙发

6 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮