K3无界面登录新增职员
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无界面登录新增职员相关推荐
- 爬虫三(Bs4搜索、Selenium基本使用、无界面浏览器、Selenium自动登录百度案例、自动获取12306登录验证码案例、切换选项卡、浏览器前进后退、登录Cnblogs获取Cookie自动点赞)
文章标题 一.Bs4搜索文档树 二.CSS选择器 三.selenium基本使用 四.无界面浏览器 五.selenium其他使用 1)自动登录百度案例 2)获取位置属性大小.文本 3)自动获取12306 ...
- 【python】简单使用selenium编写无界面谷歌浏览器的网页登录和签到功能
使用python编写简单的关于服务器端网页自动登录及签到的功能 注:仅用于测试人员自动化脚本测试,请勿用于其他用途 ------------------------------------------ ...
- 使用无界面方式登录人人网
在上一篇提到,使用无界面的方式搜索,查找,此篇是做一个复习 同样,先导入selenium模块 from selenium import webdriver import time driver = w ...
- MacBook M1芯片 安装Centos8 教程(无界面安装)
M1 安装Centos8 教程 MacBook Pro M1芯片 安装Centos8 教程(无界面安装) Centos8 支持M1芯片下载地址 0.Linux关机命令 1.安装截图 2.安装完成重启后 ...
- Jenkins构建自动化脚本执行无界面解决方法
场景: jenkins构建selenium自动化用例的时候,会有jenkins自带服务后台运行自动化脚本,可无界面运行IE.Chrome.Firefox. 然而运行IE浏览器时候(IE比较特殊),Je ...
- windows远程连接Ubuntu16.04桌面版,有界面链接和无界面链接两种方式
0.开放端口 Ubuntu自带一个ufw防火墙, 使用sudo ufw enable 启用防火墙, 然后开放5900和22端口 sudo ufw allow 22 sudo ufw allow 590 ...
- Jetson Nano B01 无界面初始化安装系统+飞桨(Paddle)v2.0
Jetson Nano B01 无界面安装飞桨(Paddle) 一.说明 二.配置环境 (一)主机配置 (二)开发板配置 三.镜像准备 (一)镜像下载 (二)镜像烧录 四.系统初始化 (一)系统初始配 ...
- python爬虫之无界面模式操作/scrapy框架
文章目录 前情回顾 cookie模拟登陆 三个池子 selenium+phantomjs/chrome/firefox 今日笔记 chromedriver设置无界面模式 selenium - 键盘操作 ...
- 爬虫Spider 08 - chromedriver设置无界面模式 | selenium - 键盘操作 | 鼠标操作 | 切换页面 | iframe子框架 | scrapy框架
文章目录 Spider 07回顾 cookie模拟登陆 三个池子 selenium+phantomjs/chrome/firefox Spider 08 笔记 chromedriver设置无界面模式 ...
最新文章
- Java 内存泄漏排查,新技能+1
- 做了5年Java,java读写锁使用
- 与、或、短路或、自增、自减、的执行过程
- 数据分析模型和工具_数据分析师工具包:模型
- 饥荒联机版服务器显示错误,小白求问 搭服务器出现这种情况是怎么回事
- shell中的括号(小括号,大括号/花括号)
- caffe+vs2013+window10+GPU(CPU)配置
- flowable 控制台打印 sql 语句
- python面向对象实例王者荣耀_python王者荣耀
- 量子保密通信技术基本原理
- xml 中的 大于号,小于号
- html当前页面的脚本发生错误,如何解决“当前页面脚本发生错误”的问题
- c语言正弦波程序_怎样很好的恢复一个正弦波信号
- canvas教程9-线型的属性
- 集合 - Java篇
- 电脑软件没运行,内存爆满可以这样解决
- 例5.8求Fibonacci(斐波那契)数列的前40个数。
- 对接接口需要注意的事项
- PyQt5 使用 webdings,Wingdings 字体来替代某些常用图片
- java 下载junit的jar包_junit4下载-Junit4.11完整包【附使用方法】-东坡下载