C#二开——单据新增获取当前用户对应的职员名称
之前用python代码写的获取当前用户对应的职员名称,不知道是因为升级到了8.2后的原因,还是用了半年时间,导致单据新增或者在列表打开单据查看都很慢慢很慢慢的,我就想着改成C#代码看会不会也这样,结果用了C#代码跟没挂插件一样的速度,特地把代码分享一下,劝告一下各位,8.1以后尽量用C#开发,不要直接挂python语句注册;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS;
using Kingdee.BOS.Core.Bill.PlugIn;
using System.ComponentModel;
//用于写sql
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.Metadata;
namespace ZJX.T_PLN_PLANORDER.Business.PlugIn
{
[Kingdee.BOS.Util.HotUpdate]
[Description("【表单插件】简单生产领料新增获取用户名")]
public class GetuserID : AbstractBillPlugIn
{
public override void AfterBindData(EventArgs e)
{
base.AfterBindData(e);
//这个方法是判断单据状态。
//有四种:ADDNEW、EDIT、VIEW、DISASSEMBLY
//新增、编辑、查看、卸载
//如果是,新增状态 ADDNEW
if (this.View.OpenParameter.Status.Equals(OperationStatus.ADDNEW))
{
//给领料人,赋值
var empId = DBUtils.ExecuteScalar<string>(this.Context, @"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 = @UserId;",string.Empty,new Kingdee.BOS.SqlParam("@UserId", Kingdee.BOS.KDDbType.Int64, this.Context.UserId));
this.View.Model.SetItemValueByID("FPICKERID", empId, 0);//根据实际情况在此修改员工字段标识
//刷新这个字段
this.View.UpdateView("FPICKERID");
}
}
}
}
骚的一比
C#二开——单据新增获取当前用户对应的职员名称
本文2024-09-16 18:11:47发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-20570.html