End If
4.3 系统登录界面
本系统在登录之前,首先是调用系统的公共模块,获得一些基本数据,比如数据库打开,创建关系,初始化端口,初始化排班等,都是在公用模块中进行的。然后出现登录界面。登录界面的具体实现如下:
Dim name As String
Dim password As String
name = Trim(txtUserName.Text) password = Trim(txtpassword.Text) Dim Rst As DAO.Recordset
Set Rst = gDataBase.OpenRecordset(\ & \ If Rst.RecordCount <= 0 Then
If MsgBox(\用户名或密码错误!!请重试!!\= vbOK Then
LoginSucceeded = True gLoginGrade = 0 Me.Hide End If Else
LoginSucceeded = True gLoginGrade = 1 Me.Hide End If
4.4 员工信息管理
图4-2 员工管理界面
第 13 页 共 21页
员工管理基本的信息是重要的,系统中所有功能是围绕员工展开的,如IC卡的管理、人员考勤查询等。员工管理界面如图4-2所示。
员工管理的核心代码:
Public Sub cmdEdit_Click(Index As Integer) ‘ 员工管理按钮的编辑 Dim strTmp As String Select Case Index
Case gCMDAPPEND ‘ 添加按钮编辑 Dim blnIsToGo As Boolean blnIsToGo = True
If Not mblnIsAdd Then
strTmp = gSTRCANCEL AddAction InitxtEmp
txtEmp(mWorkNo).SetFocus Else
If mblnIsNeedSave Then
If MsgBox(\您确定不保存吗?\ vbYesNo + vbDefaultButton2, gTitle) _ = vbNo Then
blnIsToGo = False End If End If
If blnIsToGo Then
strTmp = gSTRAPPEND InitxtEmp
ChangeColor False
mblnIsNeedSave = False
RefreshButton cmdEdit, gCMDEDITCANCEL Else
strTmp = gSTRCANCEL End If End If
strTmp = strTmp & \
cmdEdit(gCMDAPPEND).Caption = strTmp If blnIsToGo Then
mblnIsAdd = Not mblnIsAdd End If
Case gCMDSAVE ‘保存按钮编辑 If AddToDataBase Then AfterSave
strTmp = gSTRMODIFY & \
cmdEdit(gCMDEDIT).Caption = strTmp mnuEditModify.Caption = strTmp
第 14 页 共 21页
End If
Case gCMDEDIT ‘ 修改按钮编辑 If Not mblnIsModify Then strTmp = gSTRRESET ToModify Else
strTmp = gSTRMODIFY AfterSave End If
strTmp = strTmp & \
mnuEditModify.Caption = strTmp
cmdEdit(gCMDEDIT).Caption = strTmp Case gCMDDELETE ‘删除按钮编辑
MsgBox \您如果删除了该员工,\
& \则有关该员工所有信息都将删除\ & \包括考勤记录、请假记录,出差记录等...\
' DeleteForEmployee msfGrid, 1, \您确定要删除此名员工的信息?\' gDataBase, \ If DeleteForEmployee Then
If Not txtEmp(mName).Locked Then InitxtEmp RefreshButton cmdEdit, gCMDEDITNORMAL End If
Case gCMDQUERY ‘查询按钮编辑 Set mcolWorkno = New Collection
frmEmpFind.Show vbModal
If mblnIsToCloseColor Then mblnIsToCloseColor = False CloseColor msfGrid ChgcmdCloseColor End If
If mcolWorkno.Count > 0 Then ShowQueryMan Case gCMDRETURN ‘ 返回按钮编辑 Unload Me End Select End Sub
为了编程方便,也为了使代码简洁、易懂,本系统相关的按钮组成控件数组;为了系统界面简练、大方,不杂乱无章,系统按钮设置成双向按钮,比如添加按钮,当点击添加按钮时,按钮的标题(caption)由“添加”变为“取消”。添加员工信息时,添加按钮变成取消按钮,保存按钮被激活,编辑区(文本框部分)呈可编辑状态,修改、删除、查询等按钮处在失活状态;当用户点击员工表的某
第 15 页 共 21页
条记录时,修改、删除、查询按钮被激活,当点击修改按钮时,修改按钮变成还原按钮,同时编辑区被激活,表中记录的信息被显示在编辑区,删除、查询按钮失活。员工管理系模块中,管理员可以对员工持卡情况进行管理,如缺卡、丢失、有卡等。
4.5 报表功能
报表功能在本系统中是最关键的。考勤系统之所以能够支持管理者的决策,是因为能够及时地给管理者提供员工的考勤报表,使管理者能够及时准确地分析出公司员工的工作情况和工作态度,并能够及时地对员工做出正确的领导管理,从而促进员工的工作积极性,提高工作效率。本系统主要实现了日常动态考勤报表、打卡流水报表、考勤明细报表、考勤月报表的报表功能。报表功能主要分为两个部分:查询;打印。
1)日考勤动态报表查询功能的核心代码。 Private Sub FindFlow() Dim Rst As Recordset Dim strIn As String Dim intRows As Integer Dim intCols As Integer
Set Rst = gDataBase.OpenRecordset(Sql) If Rst.RecordCount > 0 Then Do While Not Rst.EOF intRows = intRows + 1 With Rst
' If IsKq Then
strIn = strIn & !WorkNo & vbTab _
& !Name & vbTab & !Sex & vbTab _
& !DeptName & vbTab & !TitleName & vbTab _
& Format(!KqDate, \& vbTab & !KqTime
' End If
If Not .EOF Then strIn = strIn & vbCr .MoveNext End With Loop Rst.Close 'Unload Me Else
MsgBox \没有符合条件的记录\ End If
intRows = intRows
第 16 页 共 21页
intCols = 7
Dim i As Integer With msfGrid
'.Rows = .FixedRows
ClipToGrid msfGrid, strIn, intRows + 1, intCols
.MergeCells = flexMergeRestrictRows For i = 0 To .Cols - 2 .MergeCol(i) = True Next End With Exit Sub FindErr:
MsgBox \查询未成功!\ Err.Clear
Me.Enabled = True Me.MousePointer = 0 End Sub
2)日动态考勤报表打印功能核心代码。 '打印条件
If optSel(mNOTCARD).Value Then
Str = optSel(mNOTCARD).Caption & Space(5) Trim(Label1(0)) & Space(1) & Trim(txtDate(0)) Else
If optSel(mALL).Value Then Str = optSel(mALL).Caption Else
Str = optSel(mLATE).Caption End If
Str = Str & Space(5) & Trim(Label1(0)) & Space(1) Trim(txtDate(0)) _
& Space(5) & Trim(Label1(2)) & Space(1) Trim(cboDept.Text)
If Trim(txtEmp) <> Empty Then
Str = Str & Space(5) & Trim(Label1(3)) & Space(1) Trim(txtEmp)
End If End If
'打印正文
If ForTimes = DataRows \\ Rows + 1 Then Lines = DataRows Mod Rows
&
& &
&
第 17 页 共 21页