Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
 
'编码:钱坤
'日期:20160215
'功能:新增职员
'参数
'1 strAcctNumber:账套编码 eg:02.uitest5
'2 strNumber:    工号,当职员编码
'3 strName:      姓名
'4 strDeptID:    部门ID
'5 strSex:       性别,值(男,女)
'6 strCenterID:  责任中心ID
'7 strOAUser:    OAUser  域名
'调用:AddEmp("02.uitest5","11000","张三","4820","男","4782","zhangshan")
'返回:结果标志|结果描述,如果执行成功,则返回内容为"1|成功",如果执行失败,则返回内容为"0|失败原因"
Public Function AddEmp(strAcctNumber As String, strNumber As String, strName As String, strDeptID As String, strSex As String, strCenterID As String, strOAUser As String) As String
Dim m_oLogin As New KDLogin.NoUILogin
Dim oItemClassSet      As New EBCGL.ItemClassSet
Dim oItemClass         As New EBCGL.ItemClass
Dim oItemSet           As New EBCGL.ItemSet
Dim oItem              As New EBCGL.Item
Dim m_oSpmMgr          As Object
Dim strTemp            As String
Dim strSexID           As String
Dim BillDataAccess As Object
Dim Rs             As ADODB.Recordset
Dim strSQL         As String
On Error GoTo err_handle:
'所有参数均不允许为空

'无界面登录
strTemp = m_oLogin.LoginUser("-LoginUser", strAcctNumber, "", "qiankun", "qiankun19860205")
If strTemp <> "" Then
   AddEmp = "0|" & strTemp
   GoTo A
   Exit Function
End If
'以下这段代码如果不加,则oitemset执行报错,在mmts中,该段代码的作用是打开链接
lProc = GetCurrentProcessId()
Set m_oSpmMgr = CreateObject("PropsMgr.ShareProps")
m_oSpmMgr.addproperty lProc, "UserName", m_oLogin.UserName
m_oSpmMgr.addproperty lProc, "PropsString", m_oLogin.PropsString
m_oSpmMgr.addproperty lProc, "LogStatus", m_oLogin.LogStatus
m_oSpmMgr.addproperty lProc, "AcctName", m_oLogin.AcctName
m_oSpmMgr.addproperty lProc, "KDLogin", m_oLogin
'参数检测
If strAcctNumber = "" Or strNumber = "" Or strName = "" Or strDeptID = "" Or strSex = "" Or strCenterID = "" Or strOAUser = "" Then
   AddEmp = "0|有参数为空,新增失败"
   GoTo A
End If
Set BillDataAccess = CreateObject("BillDataAccess.GetData")
'1.职员是否存在,如果存在,返回错误信息
strSQL = "select 1 from t_emp where fitemid>0 and  fnumber='" & strNumber & "' or f_104='" & strOAUser & "'"
Set Rs = BillDataAccess.ExecuteSQL(m_oLogin.PropsString, strSQL)
If Not Rs.EOF Then
   AddEmp = "0|职员编码或者OAUser已存在,新增失败"
   GoTo A
End If
'2.部门是否存在
strSQL = "select 1 from t_Department where FNumber like 'N%' and fitemid=" & strDeptID
Set Rs = BillDataAccess.ExecuteSQL(m_oLogin.PropsString, strSQL)
If Rs.EOF Then
   AddEmp = "0|部门不存在,新增失败"
    GoTo A
End If
'3.性别是否存在
strSQL = "select * from t_SubMessage where FTypeID =102 and fname='" & strSex & "'"
Set Rs = BillDataAccess.ExecuteSQL(m_oLogin.PropsString, strSQL)
If Rs.EOF Then
   AddEmp = "0|性别不存在,新增失败"
    GoTo A
Else
   strSexID = Rs.Fields("FInterID")
End If
'4.责任中心检测
strSQL = "select 1 from t_Item where FItemClassID =2040 and fitemid=" & strCenterID
Set Rs = BillDataAccess.ExecuteSQL(m_oLogin.PropsString, strSQL)
If Rs.EOF Then
  AddEmp = "0|责任中心不存在,新增失败"
   GoTo A
End If

'开始新增职员
Set oItem = oItemSet.CreateNew(3, 0, strNumber, strName)

Set dic = GetNameFieldMap(oItemClassSet(3))

oItem.Properties(dic("部门名称")) = strDeptID

oItem.Properties(dic("性别")) = strSexID 'select * from t_SubMessage where FTypeID =102

oItem.Properties(dic("责任中心")) = strCenterID 'select * from t_Item where FItemClassID =2040

oItem.Properties(dic("OAUser")) = strOAUser
oItem.SaveChanges

AddEmp = "1|成功"

A:
'关闭连接,释放资源
m_oSpmMgr.DelProperty lProc, "UserName", ""
m_oSpmMgr.DelProperty lProc, "PropsString", ""
m_oSpmMgr.DelProperty lProc, "LogStatus", ""
m_oSpmMgr.DelProperty lProc, "AcctName", ""
m_oSpmMgr.DelProperty lProc, "KDLogin", Null
Set m_oSpmMgr = Nothing

Set BillDataAccess = Nothing
Set Rs = Nothing
Set m_oLogin = Nothing
Set oItemClassSet = Nothing
Set oItemClass = Nothing
Set oItemSet = Nothing
Set oItem = Nothing

Exit Function
err_handle:
AddEmp = "0|" & Err.Description
End Function

'编码:钱坤
'日期:20160216
'功能:修改职员
'参数
'1 strAcctNumber:账套编码 eg:02.uitest5
'2 strNumber:    工号,当职员编码
'3 strName:      姓名
'4 strDeptID:    部门ID
'5 strSex:       性别,值(男,女)
'6 strCenterID:  责任中心ID
'7 strOAUser:    OAUser  域名
'调用:UpdateEmp("02.uitest5","11000","张三","4820","男","4782","zhangshan")
'返回:结果标志|结果描述,如果执行成功,则返回内容为"1|成功",如果执行失败,则返回内容为"0|失败原因"
Public Function UpdateEmp(strAcctNumber As String, strNumber As String, strName As String, strDeptID As String, strSex As String, strCenterID As String, strOAUser As String) As String
Dim m_oLogin As New KDLogin.NoUILogin
Dim oItemClassSet      As New EBCGL.ItemClassSet
Dim oItemClass         As New EBCGL.ItemClass
Dim oItemSet           As New EBCGL.ItemSet
Dim oItem              As New EBCGL.Item
Dim m_oSpmMgr          As Object
Dim strTemp            As String
Dim strSexID           As String
Dim strK3Number        As String
Dim BillDataAccess As Object
Dim Rs             As ADODB.Recordset
Dim strSQL         As String
On Error GoTo err_handle:
'无界面登录
strTemp = m_oLogin.LoginUser("-LoginUser", strAcctNumber, "", "qiankun", "qiankun19860205")
If strTemp <> "" Then
   UpdateEmp = "0|" & strTemp
   GoTo A
   Exit Function
End If
'以下这段代码如果不加,则oitemset执行报错,在mmts中,该段代码的作用是打开链接
lProc = GetCurrentProcessId()
Set m_oSpmMgr = CreateObject("PropsMgr.ShareProps")
m_oSpmMgr.addproperty lProc, "UserName", m_oLogin.UserName
m_oSpmMgr.addproperty lProc, "PropsString", m_oLogin.PropsString
m_oSpmMgr.addproperty lProc, "LogStatus", m_oLogin.LogStatus
m_oSpmMgr.addproperty lProc, "AcctName", m_oLogin.AcctName
m_oSpmMgr.addproperty lProc, "KDLogin", m_oLogin
'参数检测
'所有参数均不允许为空
If strAcctNumber = "" Or strNumber = "" Or strName = "" Or strDeptID = "" Or strSex = "" Or strCenterID = "" Or strOAUser = "" Then
   UpdateEmp = "0|有参数为空,修改失败"
   GoTo A
End If

Set BillDataAccess = CreateObject("BillDataAccess.GetData")
'1.职员是否存在,如果存在,返回错误信息,修改时,以域用户为准
strSQL = "select fnumber from t_emp where fitemid>0 and  f_104='" & strOAUser & "'"
Set Rs = BillDataAccess.ExecuteSQL(m_oLogin.PropsString, strSQL)
If Rs.EOF Then
   UpdateEmp = "0|OAUser(域用户)不存在,修改失败"
   GoTo A
Else
   strK3Number = Rs.Fields("fnumber")
End If
'2.部门是否存在
strSQL = "select 1 from t_Department where FNumber like 'N%' and fitemid=" & strDeptID
Set Rs = BillDataAccess.ExecuteSQL(m_oLogin.PropsString, strSQL)
If Rs.EOF Then
   UpdateEmp = "0|部门不存在,修改失败"
    GoTo A
End If
'3.性别是否存在
strSQL = "select * from t_SubMessage where FTypeID =102 and fname='" & strSex & "'"
Set Rs = BillDataAccess.ExecuteSQL(m_oLogin.PropsString, strSQL)
If Rs.EOF Then
   UpdateEmp = "0|性别不存在,修改失败"
    GoTo A
Else
   strSexID = Rs.Fields("FInterID")
End If
'4.责任中心检测
strSQL = "select 1 from t_Item where FItemClassID =2040 and fitemid=" & strCenterID
Set Rs = BillDataAccess.ExecuteSQL(m_oLogin.PropsString, strSQL)
If Rs.EOF Then
  UpdateEmp = "0|责任中心不存在,修改失败"
   GoTo A
End If

'开始修改职员

Set oItem = oItemSet.Item(, 3, strK3Number)
Set dic = GetNameFieldMap(oItemClassSet(3))
oItem.Properties("fnumber") = strK3Number
oItem.Properties("fname") = strName
oItem.Properties(dic("部门名称")) = strDeptID

oItem.Properties(dic("性别")) = strSexID 'select * from t_SubMessage where FTypeID =102

oItem.Properties(dic("责任中心")) = strCenterID 'select * from t_Item where FItemClassID =2040

oItem.Properties(dic("OAUser")) = strOAUser
oItem.SaveChanges

UpdateEmp = "1|成功"

A:
'关闭连接,释放资源
m_oSpmMgr.DelProperty lProc, "UserName", ""
m_oSpmMgr.DelProperty lProc, "PropsString", ""
m_oSpmMgr.DelProperty lProc, "LogStatus", ""
m_oSpmMgr.DelProperty lProc, "AcctName", ""
m_oSpmMgr.DelProperty lProc, "KDLogin", Null
Set m_oSpmMgr = Nothing

Set BillDataAccess = Nothing
Set Rs = Nothing
Set m_oLogin = Nothing
Set oItemClassSet = Nothing
Set oItemClass = Nothing
Set oItemSet = Nothing
Set oItem = Nothing

Exit Function
err_handle:
UpdateEmp = "0|" & Err.Description
End Function
Public Function GetNameFieldMap(ByVal oItemClass As EBCGL.ItemClass) As KFO.Dictionary
'功能:根据传入的核算项目,返回属性名称和对应的字段名,如 电话-fphone
On Error GoTo err_handle
Dim dic   As New KFO.Dictionary
Dim i     As Long

For i = 1 To oItemClass.CustomProperties.Count

dic(oItemClass.CustomProperties.Item(i).Name) = oItemClass.CustomProperties.Item(i).SQLColumnName
  
Next i

Set GetNameFieldMap = dic

Exit Function

err_handle:

MsgBox Err.Description

End Function
————————————————
版权声明:本文为CSDN博主「hzvcan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hzvcan/article/details/50674732

K3无界面登录新增职员相关推荐

  1. 爬虫三(Bs4搜索、Selenium基本使用、无界面浏览器、Selenium自动登录百度案例、自动获取12306登录验证码案例、切换选项卡、浏览器前进后退、登录Cnblogs获取Cookie自动点赞)

    文章标题 一.Bs4搜索文档树 二.CSS选择器 三.selenium基本使用 四.无界面浏览器 五.selenium其他使用 1)自动登录百度案例 2)获取位置属性大小.文本 3)自动获取12306 ...

  2. 【python】简单使用selenium编写无界面谷歌浏览器的网页登录和签到功能

    使用python编写简单的关于服务器端网页自动登录及签到的功能 注:仅用于测试人员自动化脚本测试,请勿用于其他用途 ------------------------------------------ ...

  3. 使用无界面方式登录人人网

    在上一篇提到,使用无界面的方式搜索,查找,此篇是做一个复习 同样,先导入selenium模块 from selenium import webdriver import time driver = w ...

  4. MacBook M1芯片 安装Centos8 教程(无界面安装)

    M1 安装Centos8 教程 MacBook Pro M1芯片 安装Centos8 教程(无界面安装) Centos8 支持M1芯片下载地址 0.Linux关机命令 1.安装截图 2.安装完成重启后 ...

  5. Jenkins构建自动化脚本执行无界面解决方法

    场景: jenkins构建selenium自动化用例的时候,会有jenkins自带服务后台运行自动化脚本,可无界面运行IE.Chrome.Firefox. 然而运行IE浏览器时候(IE比较特殊),Je ...

  6. windows远程连接Ubuntu16.04桌面版,有界面链接和无界面链接两种方式

    0.开放端口 Ubuntu自带一个ufw防火墙, 使用sudo ufw enable 启用防火墙, 然后开放5900和22端口 sudo ufw allow 22 sudo ufw allow 590 ...

  7. Jetson Nano B01 无界面初始化安装系统+飞桨(Paddle)v2.0

    Jetson Nano B01 无界面安装飞桨(Paddle) 一.说明 二.配置环境 (一)主机配置 (二)开发板配置 三.镜像准备 (一)镜像下载 (二)镜像烧录 四.系统初始化 (一)系统初始配 ...

  8. python爬虫之无界面模式操作/scrapy框架

    文章目录 前情回顾 cookie模拟登陆 三个池子 selenium+phantomjs/chrome/firefox 今日笔记 chromedriver设置无界面模式 selenium - 键盘操作 ...

  9. 爬虫Spider 08 - chromedriver设置无界面模式 | selenium - 键盘操作 | 鼠标操作 | 切换页面 | iframe子框架 | scrapy框架

    文章目录 Spider 07回顾 cookie模拟登陆 三个池子 selenium+phantomjs/chrome/firefox Spider 08 笔记 chromedriver设置无界面模式 ...

最新文章

  1. Java 内存泄漏排查,新技能+1
  2. 做了5年Java,java读写锁使用
  3. 与、或、短路或、自增、自减、的执行过程
  4. 数据分析模型和工具_数据分析师工具包:模型
  5. 饥荒联机版服务器显示错误,小白求问 搭服务器出现这种情况是怎么回事
  6. shell中的括号(小括号,大括号/花括号)
  7. caffe+vs2013+window10+GPU(CPU)配置
  8. flowable 控制台打印 sql 语句
  9. python面向对象实例王者荣耀_python王者荣耀
  10. 量子保密通信技术基本原理
  11. xml 中的 大于号,小于号
  12. html当前页面的脚本发生错误,如何解决“当前页面脚本发生错误”的问题
  13. c语言正弦波程序_怎样很好的恢复一个正弦波信号
  14. canvas教程9-线型的属性
  15. 集合 - Java篇
  16. 电脑软件没运行,内存爆满可以这样解决
  17. 例5.8求Fibonacci(斐波那契)数列的前40个数。
  18. 对接接口需要注意的事项
  19. PyQt5 使用 webdings,Wingdings 字体来替代某些常用图片
  20. java 下载junit的jar包_junit4下载-Junit4.11完整包【附使用方法】-东坡下载

热门文章

  1. 历史上的今天:NetBSD 系统发布;Windows 8 诞生;微软推出 Surface 系列
  2. 神策数据丨企业微信数字化营销解决方案
  3. 图片批量黑白处理,将彩色图片变成黑白
  4. AM2302温湿度单总线测量的问题
  5. 基本路径测试案例分析
  6. java中级开发面试总结
  7. 血压血氧健康监测,一个手环就搞定,dido Y1S体验
  8. 正则表达式------基础
  9. php通过sftp上传文件
  10. Lpad函数和Rpad函数