'Declare Validable
Dim iMachineNumber As Integer
Dim employeeID As Integer
Dim idwVerifyMode As Integer
Dim idwInOutMode As Integer
Dim idwYear As Integer
Dim idwMonth As Integer
Dim idwDay As Integer
Dim idwHour As Integer
Dim idwMinute As Integer
Dim idwSecond As Integer
Dim idwWorkCode As Integer
Dim idwReserved As Integer
Dim scanTime As New Date()
'scanTime.ToString("yyyy-MM-dd", DateTimeFormatEng)
Dim machineTimeInOut As New MP_TIME_INOUT()
Dim machine As New MP_MACHINE()
Dim machineID As Integer = 0
Dim siteID As Integer = 0
'Dim condition
Dim connection As New ConnectDB(config.ConnectionString())
connection.Open()
bIsConnected = axCZKEM1.Connect_Net(ip, port)
If bIsConnected Then
axCZKEM1.EnableDevice(iMachineNumber, False) 'disable the device
If axCZKEM1.ReadGeneralLogData(iMachineNumber) Then
While axCZKEM1.GetGeneralExtLogData(iMachineNumber, employeeID, idwVerifyMode, idwInOutMode, idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond, idwWorkCode, idwReserved)
scanTime = getFormatScanTime(idwYear.ToString(), idwMonth.ToString(), idwDay.ToString(), idwHour, idwMinute, idwSecond)
'If endDateTime = #12:00:00 AM# Then
' condition = (startDateTime <= scanTime)
'Else
' condition = (startDateTime <= scanTime) And (endDateTime >= scanTime)
'End If
'If condition Then
machineTimeInOut.EMP_ID = employeeID
machineTimeInOut.SCAN_TIME = scanTime
machineTimeInOut.SCAN_TYPE = idwInOutMode
machineTimeInOut.MACHINE_ID = machineID
machineTimeInOut.SITE_ID = siteID
machineTimeInOut.CREATED_DATE = DateTime.Now()
machineTimeInOut.UPDATED_DATE = DateTime.Now()
machineTimeInOut.IS_ACTIVE = config.ACTIVE
machineTimeInOut.CREATED_BY = config.getUserLog()
machineTimeInOut.UPDATED_BY = config.getUserLog()
Try
machineTimeInOut.ExecuteInsert(connection)
'Dim updateCommand As New StringBuilder()
'updateCommand.AppendLine("UPDATE MP_MACHINE ")
'updateCommand.AppendLine("SET UPDATED_DATE_SYNC = @UPDATED_DATE_SYNC")
'Dim paramArrayList As New ParamArrayList()
'paramArrayList.AddWithValue("@UPDATED_DATE_SYNC", scanTime)
'connection.ExcuteQuery(updateCommand.ToString(), paramArrayList)
Catch ex As Exception
End Try
'End If
End While
End If
axCZKEM1.EnableDevice(iMachineNumber, True)
End If
connection.Dispose()
โดย Function นี้ axCZKEM1.GetGeneralExtLogData จะเป็นตัว Read ออกมาทีละ record น่ะครับ
ประเด็นของผม ถ้ากรณีข้อมูลเยอะ เพราะ เครื่อง Finger SCan สามารถเก็บได้ เป็นแสน Record และ ในโรงงาน มี ถึง 10 เครื่อง
ผมต้องการ ตั้งเวลา อย่างเช่น ช่วงเช้า9.00 ก็จะโหลดข้อมูลทั้งหมดมาเก็บไว้ ใน DB เพื่อจะนำข้อมูลไปใช้ต่อไปครับ
ปัญหาที่ผมอยากทราบคือ
1. จะมี solution ไหนที่จะทำให้มัน Read ข้อมูลมาเฉพาะที่ต้องการได้ป่ะครับ เพราะอ่านในคู่มือแล้วไม่มี
2. ระหว่าง เขียนเป็น web กับ app มันจะต่างกันมากป่ะครับ เพราะเค้าต้องการเป็น web
3. กรณี ที่ Export ออกมาแล้ว insert ไปใน DB อีกที มันจะเร็วขึ้นหรือเปล่าครับ
4. แล้วมีวิธีไหนที่ไม่จำเป็นต้องใช้ FUnction นี้หรือเปล่าครับ
6 FAQs
6.1 How to Download Attendance Records?
First, use ReadGeneralLogData to read all attendance records and write them into the memory.
Then, use GetGeneralLogData repeatedly to obtain attendance records. When
GetGeneralLogData returns False, it means that all attendance records are obtained. Then, you
can write the obtained records into database or display them in other forms to finish downloading.
You can follow the same steps to down operation records