科密KD-36考勤机二次开发技术详解
項目詳細:科密KD-36 delphi接口 VB 6.0程序讀取數據
KD-36
程序:
Private Sub Cmd_CheckNet_Click()??? ' 檢查網絡
Dim ECHO As ICMP_ECHO_REPLY
Dim Pos As Long
Dim Success As Long
Dim IP As String
?
IPAddress = Trim(txtIPAddress.Text)
PortNumber = Trim(txtPortNumber.Text)
PassWord = Trim(txtPassWord.Text)
MacNo = Trim(txtMacNo.Text)
If IPAddress = "" Then
MsgBox "請先輸入IP地址,再檢查網絡!", vbInformation, Jxjr
txtIPAddress.SetFocus
Else
?? If SocketsInitialize() Then
????????? Success = Pings(IPAddress, MyIP, ECHO)
????????? If Success = 0 Then
????????????? 'MsgBox "考勤機網絡連接正常!", vbInformation, Jxjr
????????????? If MacNo = "" Then
????????????? MsgBox "機號不能為空!", vbInformation, Jxjr
????????????? Else
??????????????? If kd.OpenCommPort(MacNo) = True Then
??????????????? Call kd.EnableDevice(MacNo, 1)
??????????????? Call kd.CloseCommPort
??????????????? MsgBox "考勤機網絡連接正常!", vbInformation, Jxjr
??????????????? Else
??????????????? MsgBox "考勤機機號錯誤,請重新輸入!", vbInformation, Jxjr
??????????????? txtMacNo.SetFocus
??????????????? End If
???????????? End If
????????? Else
????????????? MsgBox "考勤機網絡連接不正常,請檢查IP和網絡連接!", vbInformation, Jxjr
????????? End If
????????? SocketsCleanup
??? End If
End If
End Sub
Private Sub Cmd_GetAllData_Click()???? '得到全部數據
Dim TMacNo As Long
Dim EnrollNo As Long
Dim EMacNo As Long
Dim VerMode As Long
Dim kdYear As Long
Dim kdMonth As Long
Dim kdDay As Long
Dim kdHour As Long
Dim kdMinute As Long
Dim kddate As Date
Dim kdtime As String
Dim MacPr As Long
Dim EnrollNumber As Variant
Dim EnrollWord As Long
Dim SqlEnrollWord As String
Dim OldNum As Integer
Dim i As Integer
MacPr = 3?? '用戶的權限
Dim iSql As String
IPAddress = GetSetting("jxjr", "jrhr", "ipaddress", IPAddress)
PortNumber = GetSetting("jxjr", "jrhr", "portnumber", PortNumber)
PassWord = GetSetting("jxjr", "jrhr", "password", PassWord)
MacNo = GetSetting("jxjr", "jrhr", "macno", MacNo)
If kd.SetIPAddress(IPAddress, PortNumber, PassWord) = True Then
??? If kd.OpenCommPort(MacNo) = True Then
?????? Call kd.EnableDevice(MacNo, 0)
?????? Call kd.ReadAllGLogData(MacNo)
?????? If kd.GetAllGLogData(MacNo, TMacNo, EnrollNo, EMacNo, VerMode, kdYear, kdMonth, kdDay, kdHour, kdMinute) = True Then
??????????? Do Until kd.GetAllGLogData(MacNo, TMacNo, EnrollNo, EMacNo, VerMode, kdYear, kdMonth, kdDay, kdHour, kdMinute) = False
???????????????? Call kd.GetEnrollData(MacNo, EnrollNo, TMacNo, 11, MacPr, EnrollNumber, EnrollWord)
???????????????? SqlEnrollWord = CStr(EnrollWord)
???????????????? OldNum = Len(SqlEnrollWord)
???????????????? For i = 0 To 9 - OldNum
???????????????? SqlEnrollWord = "0" + CStr(SqlEnrollWord)
???????????????? Next i
???????????????? 'kd.ReadMark = False
???????????????? 'Call kd.GetAllGLogData(MacNo, TMacNo, EnrollNo, EMacNo, VerMode, kdYear, kdMonth, kdDay, kdHour, kdMinute)
???????????????? kdtime = kdYear & "-" & kdMonth & "-" & kdDay & " " & kdHour & ":" & kdMinute & ":" & "00" & "." & "000"
???????????????? iSql = "insert into HR_ATS_OriginalityCard(FCardID,FHostName,FCardDateTime)values('" & SqlEnrollWord & "','" & MacNo & "','" & kdtime & "')"
???????????????? Pcnn.Execute (iSql)
??????????? Loop
??????????? MsgBox "全部考勤記錄讀取成功!", vbInformation, Jxjr
??????????? Call kd.EnableDevice(MacNo, 1)
??????????? Call kd.CloseCommPort
??????? Else
??????? MsgBox "沒有考勤記錄!", vbInformation, Jxjr
??????? End If
??? Else
??? MsgBox "終端機號[" & MacNo & "]打開失敗!", vbInformation, Jxjr
??? End If
Else
??? MsgBox "連接設置錯誤!", vbInformation, Jxjr
End If
End Sub
Private Sub Cmd_GetNewData_Click()??? '得到最新數據
Dim TMacNo As Long
Dim EnrollNo As Long
Dim EMacNo As Long
Dim VerMode As Long
Dim kdYear As Long
Dim kdMonth As Long
Dim kdDay As Long
Dim kdHour As Long
Dim kdMinute As Long
Dim kddate As Date
Dim kdtime As String
Dim MacPr As Long
Dim EnrollNumber As Variant
Dim EnrollWord As Long
Dim SqlEnrollWord As String
Dim OldNum As Integer
Dim i As Integer
MacPr = 3?? '用戶的權限
Dim iSql As String
IPAddress = GetSetting("jxjr", "jrhr", "ipaddress", IPAddress)
PortNumber = GetSetting("jxjr", "jrhr", "portnumber", PortNumber)
PassWord = GetSetting("jxjr", "jrhr", "password", PassWord)
MacNo = GetSetting("jxjr", "jrhr", "macno", MacNo)
If kd.SetIPAddress(IPAddress, PortNumber, PassWord) = True Then
??? If kd.OpenCommPort(MacNo) = True Then
?????? Call kd.EnableDevice(MacNo, 0)
?????? Call kd.ReadGeneralLogData(MacNo)
??????????? If kd.GetGeneralLogData(MacNo, TMacNo, EnrollNo, EMacNo, VerMode, kdYear, kdMonth, kdDay, kdHour, kdMinute) = True Then
???????????????? Do Until kd.GetGeneralLogData(MacNo, TMacNo, EnrollNo, EMacNo, VerMode, kdYear, kdMonth, kdDay, kdHour, kdMinute) = False
????????????????????? Call kd.GetEnrollData(MacNo, EnrollNo, TMacNo, 11, MacPr, EnrollNumber, EnrollWord)
????????????????????? SqlEnrollWord = CStr(EnrollWord)
????????????????????? OldNum = Len(SqlEnrollWord)
????????????????????? For i = 0 To 9 - OldNum
????????????????????? SqlEnrollWord = "0" + CStr(SqlEnrollWord)
????????????????????? Next i
????????????????????? 'kd.ReadMark = False
????????????????????? 'Call kd.GetAllGLogData(MacNo, TMacNo, EnrollNo, EMacNo, VerMode, kdYear, kdMonth, kdDay, kdHour, kdMinute)
????????????????????? kdtime = kdYear & "-" & kdMonth & "-" & kdDay & " " & kdHour & ":" & kdMinute & ":" & "00" & "." & "000"
????????????????????? iSql = "insert into HR_ATS_OriginalityCard(FCardID,FHostName,FCardDateTime)values('" & SqlEnrollWord & "','" & MacNo & "','" & kdtime & "')"
????????????????????? Pcnn.Execute (iSql)
???????????????? Loop
???????????????? MsgBox "最新考勤記錄讀取成功!", vbInformation, Jxjr
???????????? Else
???????????? MsgBox "沒有最新的考勤記錄!", vbInformation, Jxjr
???????????? End If
??????? Call kd.EnableDevice(MacNo, 1)
??????? Call kd.CloseCommPort
??? Else
??? MsgBox "終端機號[" & MacNo & "]打開失敗!", vbInformation, Jxjr
??? End If
Else
??? MsgBox "連接設置錯誤!", vbInformation, Jxjr
End If
End Sub
Private Sub Cmd_SetIP_Click()???? '設置IP信息
IPAddress = Trim(txtIPAddress.Text)
PortNumber = Trim(txtPortNumber.Text)
PassWord = Trim(txtPassWord.Text)
MacNo = Trim(txtMacNo.Text)
If IPAddress = "" Then
MsgBox "IP地址不能為空!", vbInformation, Jxjr
txtIPAddress.SetFocus
Else
??? If PortNumber = "" Then
??? MsgBox "端口號不能為空!", vbInformation, Jxjr
??? txtPortNumber.SetFocus
??? Else
??????? If PassWord = "" Then
??????? MsgBox "密碼不能為空!", vbInformation, Jxjr
??????? txtPassWord.SetFocus
??????? Else
??????????? If MacNo = "" Then
??????????? MsgBox "機號不能為空!", vbInformation, Jxjr
??????????? txtMacNo.SetFocus
??????????? Else
?????????????? SaveSetting "jxjr", "jrhr", "ipaddress", IPAddress
?????????????? SaveSetting "jxjr", "jrhr", "portnumber", PortNumber
?????????????? SaveSetting "jxjr", "jrhr", "password", PassWord
?????????????? SaveSetting "jxjr", "jrhr", "macno", MacNo
?????????????? If kd.SetIPAddress(IPAddress, PortNumber, PassWord) = True Then
????????????????? MsgBox "連接數據設置成功!", vbInformation, Jxjr
?????????????? Else
????????????????? MsgBox "無法設置連接數據!", vbInformation, Jxjr
?????????????? End If
??????????? End If
??????? End If
??? End If
End If
End Sub
Private Sub Cmd_SetMacTime_Click()? '設置系統時間
IPAddress = GetSetting("jxjr", "jrhr", "ipaddress", IPAddress)
PortNumber = GetSetting("jxjr", "jrhr", "portnumber", PortNumber)
PassWord = GetSetting("jxjr", "jrhr", "password", PassWord)
MacNo = GetSetting("jxjr", "jrhr", "macno", MacNo)
If kd.SetIPAddress(IPAddress, PortNumber, PassWord) = True Then
??? If kd.OpenCommPort(MacNo) = True Then
?????? Call kd.EnableDevice(MacNo, 0)
????????? If kd.SetDeviceTime(MacNo) = True Then
????????? MsgBox "考勤機時間同步成功!", vbInformation, Jxjr
????????? Else
????????? MsgBox "考勤機時間同步失敗,請檢查!", vbInformation, Jxjr
????????? End If
?????? Call kd.EnableDevice(MacNo, 1)
?????? Call kd.CloseCommPort
??? Else
??? MsgBox "終端機號[" & MacNo & "]打開失敗!", vbInformation, Jxjr
??? End If
Else
??? MsgBox "連接設置錯誤!", vbInformation, Jxjr
End If
End Sub
Private Sub Com_ClearData_Click()???? '清除記錄數據
IPAddress = GetSetting("jxjr", "jrhr", "ipaddress", IPAddress)
PortNumber = GetSetting("jxjr", "jrhr", "portnumber", PortNumber)
PassWord = GetSetting("jxjr", "jrhr", "password", PassWord)
MacNo = GetSetting("jxjr", "jrhr", "macno", MacNo)
If kd.SetIPAddress(IPAddress, PortNumber, PassWord) = True Then
??? If kd.OpenCommPort(MacNo) = True Then
?????? Call kd.EnableDevice(MacNo, 0)
??????????? If kd.EmptyGeneralLogData(MacNo) = True Then
??????????? MsgBox "所有記錄清空成功!", vbInformation, Jxjr
??????????? Else
??????????? MsgBox "清空失敗,請檢查!", vbInformation, Jxjr
??????????? End If
?????? Call kd.EnableDevice(MacNo, 1)
?????? Call kd.CloseCommPort
??? Else
??? MsgBox "終端機號[" & MacNo & "]打開失敗!", vbInformation, Jxjr
??? End If
Else
??? MsgBox "連接設置錯誤!", vbInformation, Jxjr
End If
End Sub
Private Sub Com_DeleteAll_Click()?? '清除全部數據
IPAddress = GetSetting("jxjr", "jrhr", "ipaddress", IPAddress)
PortNumber = GetSetting("jxjr", "jrhr", "portnumber", PortNumber)
PassWord = GetSetting("jxjr", "jrhr", "password", PassWord)
MacNo = GetSetting("jxjr", "jrhr", "macno", MacNo)
If kd.SetIPAddress(IPAddress, PortNumber, PassWord) = True Then
??? If kd.OpenCommPort(MacNo) = True Then
?????? Call kd.EnableDevice(MacNo, 0)
??????????? If kd.EmptyEnrollData(MacNo) = True Then
??????????? MsgBox "所有信息清空成功!", vbInformation, Jxjr
??????????? Else
??????????? MsgBox "清空失敗,請檢查!", vbInformation, Jxjr
??????????? End If
?????? Call kd.EnableDevice(MacNo, 1)
?????? Call kd.CloseCommPort
??? Else
??? MsgBox "終端機號[" & MacNo & "]打開失敗!", vbInformation, Jxjr
??? End If
Else
??? MsgBox "連接設置錯誤!", vbInformation, Jxjr
End If
End Sub
Private Sub Com_TimeSet_Click()
Dim dblReturn As Double
dblReturn = Shell("rundll32.exe?? shell32.dll,Control_RunDLL?? timedate.cpl", 5)
End Sub
Private Sub Form_Load()
txtIPAddress.Text = GetSetting("jxjr", "jrhr", "ipaddress", IPAddress)
txtPortNumber.Text = GetSetting("jxjr", "jrhr", "portnumber", PortNumber)
txtPassWord.Text = GetSetting("jxjr", "jrhr", "password", PassWord)
txtMacNo.Text = GetSetting("jxjr", "jrhr", "macno", MacNo)
Timer.Interval = 500
End Sub
Private Sub Timer_Timer()
LbTime = Year(Date) & "年" & Month(Date) & "月" & Day(Date) & "日? 星期" & GetWeekDay(Weekday(Date)) & "" & Format$(Time, "hh:mm:ss")
??? '"xx年xx月xx日 星期幾 系統時間hh:mm:ss"
End Sub
轉載于:https://www.cnblogs.com/zhulidong/archive/2010/02/08/1666116.html
總結
以上是生活随笔為你收集整理的科密KD-36考勤机二次开发技术详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么网站能赚钱
- 下一篇: Redis学习笔记记录1【图灵】