用一個id卡,通過串口第一次刷代表上班,第二次刷代表下班。通過軟體記錄卡ID號和上班時間、下班時間
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
沒搞過,有懂的人可以說說uj5u.com熱心網友回復:
百度搜相關關鍵字。uj5u.com熱心網友回復:
真要做一個可以實用的考勤系統,實際上是蠻復雜的。如果僅僅是記錄刷卡,會做讀卡器事件回應(一般刷 ID 卡就相當于鍵盤輸入)和資料庫表寫入就可以了。
你設定一個上班時間上限,此前的刷卡都寫入到上班時間欄位;再設定一個下班時間下限,此后的刷卡都寫入到下班時間欄位。
uj5u.com熱心網友回復:
真正的考勤系統,資料庫只單純地保留刷卡記錄。也就是刷卡時不做分析,只保存卡號和刷卡時間。這樣是既是為了允許員工陸續快速刷卡,也為了允許管理人員在月底統計前上報班次臨時調整、請假、加班等等資訊。要實作考勤,需要給管理員留出考勤規則介面。如規定某人(對應某卡號)應在何時前上班刷卡,何時起算遲到,何時應下班刷卡,何時算早退。以及如何處理請假、加班等等。
如有倒班,對某人的考勤還要分時間段規定多個規則。
因此,需要有單位、班次等等多表關聯來簡化規則的輸入。
然后,有一個月末統計功能,根據規則分析刷卡記錄。還有講究,同在上班允許刷卡時間內,多次刷卡的取最后一次;同在允許下班刷卡時間內,多次刷卡的取第一次……等等,等等。最后給出每個人的全月統計,出勤、請假、加班、遲到、早退、礦工……
uj5u.com熱心網友回復:
確實是這樣。不過我們的要求是使用一現成的讀卡器,RFID卡,通過USB連入PC,然后在VB上通過MSComm讀取卡號在text框中顯示,卡號例如95 D7 92 1D這樣子。
uj5u.com熱心網友回復:
目前如下代碼還是無法通過刷卡顯示卡號Option Explicit
Private Sub Command1_Click()
Dim number As Integer
Dim outbyte(0) As Byte
number = Val(Text1.Text)
outbyte(0) = CByte(number)
MSComm1.OutBufferCount = 0
MSComm1.Output = outbyte
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.Settings = "9600,N,8,1"
MSComm1.EOFEnable = True
MSComm1.RThreshold = 1
MSComm1.InputLen = 0
MSComm1.PortOpen = True
MSComm1.InBufferCount = 0
End Sub
Private Sub MSComm1_OnComm()
Dim indata As Variant
Dim arr(0) As Byte
Select Case MSComm1.CommEvent
Case commEvReceive
indata = MSComm1.Input
arr(0) = AscB(indata)
Text1.Text = arr(0)
MSComm1.InBufferCount = 0
End Select
End Sub
uj5u.com熱心網友回復:
萬能答案:要供應商提供樣例啊!
你付錢賣硬體還不要服務,太傻了吧!
uj5u.com熱心網友回復:
這個有點復雜的uj5u.com熱心網友回復:
現在都流行app考勤打卡了。還帶地理位置的。uj5u.com熱心網友回復:
這種設計方式肯定是有問題的,比如說:員工打過卡了,忘了,又重新打一次卡,算下班嗎?
一天中出現多次打卡怎么辦?
上班忘記打卡,下班打卡了,算下班時間上班嗎?
=======================================
軟體設計中,要充分考慮到可能出現的各種情況,并提出解決的策略。
uj5u.com熱心網友回復:
rfid 應該有現成的開發包,按要求呼叫就可以了。打卡記錄直接扔資料庫就行了
上班打卡下班打卡 你怎么判斷遲到或者早退呢? 所以就得有班次表與之對應
某天沒打卡 是因為休息還是因為曠工呢 ? 所以就得有排班表
某人凌晨2點打卡 是算今天的上班呢 還是算 前一天的加班呢?
等等 等等 各種各樣的情況想想都頭大啊
所以樓主你想得太簡單了
uj5u.com熱心網友回復:
定位打卡不是很靠譜,因為有誤差,還因為不能防止代打卡
現在都是人臉識別打卡了,進門 -- 識別 -- 完成打卡
uj5u.com熱心網友回復:
現在都流行app考勤打卡了。還帶地理位置的。
定位打卡不是很靠譜,因為有誤差,還因為不能防止代打卡
現在都是人臉識別打卡了,進門 -- 識別 -- 完成打卡
我說得可是跟人臉考勤機不是一個概念, 身份識別完全是自動的,對被識別人完全是無感的。
uj5u.com熱心網友回復:
又到一年畢設時間
uj5u.com熱心網友回復:
能用超級終端之類的工具能讀出串口資料,剩下就是寫代碼的事情了。uj5u.com熱心網友回復:
“還有講究,同在上班允許刷卡時間內,多次刷卡的取最后一次;同在允許下班刷卡時間內,多次刷卡的取第一次……等等,等等。”這明顯是偏袒資本家,極盡所能剝削工人階級嘛!馬克思不答應!!
uj5u.com熱心網友回復:
先搞清楚,你目前遇到的是讀卡問題還是讀完卡以后的考勤邏輯問題。這個標題20個字符,要做的東西說小可以很小,說大可以很大
uj5u.com熱心網友回復:
還有不同人不同班別的問題uj5u.com熱心網友回復:
讀卡器一般不會自動去檢測上面有沒有卡片,你需要做一個定時器不停的檢測讀卡器上是否有卡,有卡的情況下把資料讀出來轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/46875.html
標籤:VB基礎類
