- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
书馆职工考勤自动化管理系统的设计与实现
1.引言
加强考勤管理、严格考勤制度是企事业单位搞好各项经营管理的前提与保障。我馆原有考勤系统是门禁系统集成的,采用的是C/S模式,只能运行于局域网,不仅功能局限,考勤的过程需要大量的人工,而且人工方式考勤管理不科学,统计工作量大,容易出错。本系统的目标是实现门禁考勤的自动化管理,让管理人员从繁重的考勤管理工作中解脱出来,使考勤管理工作更加科学化、智能化,提高单位考勤管理的效率,避免人为疏忽、遗漏等错误,强化图书馆的科学管理。
2.需求分析和设计目标
考勤管理人员设置考勤的时间范围,由系统自动生成每月相对应的考勤表,职工根据自己的实际出勤情况,申请请假、休假、出差、加班等,由各部门管理员审批,最后系统根据实际的刷卡情况已经考勤表进行考勤。管理员使用系统流程如图1所示:
根据应用需求,进行系统设计时应完成以下目标:
(1).系统能够根据每周排班情况,自动生成规定时间段内的考勤表;
(2).职工通过申请请假、休假、出差、加班,由部门管理员来审批,从而更改考勤表的信息,作为考勤的准确依据;
(3).系统能够生成详细的考勤报表。
3.系统设计
3.1实现平台
本系统采用B/S架构,基于SQLServer 2000数据库,采用ASP为主要开发语言,借助VBScript脚本语言,系统运行环境为Windows 2000 Server操作系统,并且安装IIS6.0。
3.2功能模块设计
(1).用户登录模块,该模块主要实现用户身份的识别。
(2).用户管理模块,该模块用于实现用户的增删改,修改用户的考勤表信息。
(3).系统设定模块,该模块主要用于自动生成规定时间内的考勤表;从刷卡记录表中复制规定时间段内的刷卡信息到考勤临时表,这是为了解决门禁记录表记录数过大,从而影响查询比较的速度。
(4).考勤管理模块,该模块分为简单考勤,能够一键自动生成所有职工的考勤报表;详细考勤,可生成单独某个职工的详细考勤报表。
3.3数据库设计
门禁机刷卡记录表(visit)用来保存刷卡信息:记录编号(VisitNo),卡号职工(CardID),刷卡时间(VisitTime)。
管理员表(kaoqin_admin)用来保存管理员信息:管理员名称(UserName),密码(Password),所属部门(Department)。
考勤系统时间表(kaoqin_system)用来保存系统设定的考勤起始和结束时间:起始时间(starttime),结束时间(endtime)。
考勤临时表(visit_temp)用来保存系统时间表范围内的刷卡信息:记录编号(VisitNo),卡号(CariID),刷卡时间(VisitTime)。
普通用户表(kaoqin_user)用来保存每周规定到馆时间:卡号(CardID),姓名(Username),密码(Password),周一规定时间1(MonTime1),周一规定时间2(MonTime2)…周日规定时间2(SunTime2)。
考勤表(kaoqin_table)用来保存每月考勤表:卡号(CardID),起始时间(starttime),结束时间(endtime),姓名(UserName),部门(Department),是否有效标识(Flag),每月1号时间1(Time01a),每月时间1号时间2(Time01b)…每月时间31号2(Time31b)。
3.4关键技术及实现
(1) ASP的技术
ASP全称为Active Server Pages,是Microsoft公司提供的一种开发动态网页的技术。通过ASP,开发人员可以结合HTML网页、ASP指令和ActiveX控件建立动态的、交互的、高效的Web服务器应用程序,且能较容易实现复杂的Web扩展功能。ASP具有无需编译、易于生成、独立于浏览器等特点。论文参考网。
(2) ADO访问数据库技术
ADO(ActiveX Data Objects)是一组优化的访问数据库专用对象集,为ASP提供了完整的站点数据库访问解决方案。它可作用于服务器端,以提供含有数据库信息的主页内容。ADO 使用内置的RecordSets对象作为数据的主要接口。ADO可使用VBScript语言来控制对数据库的访问,以及查询结果的输出显示。
(3)系统的关键步骤在于如何判断出勤的状态,实现该功能的代码如下所示:
<%
If len(trim(rs("Time01a")))<>0 Then
time_temp=TimeValue(Cdate(rs("Time01a")))
starttime=dateadd("h",-2,time_temp)
starttime=variableday&""&starttime
midtime=variableday&""&time_temp
endtime=time_temp+TimeValue("1:00:00")
endtime=variableday&""&endtime
str1="select * From Visit_tempWhere CardID='"&cardid&"' andVisitTime>'"&starttime&"' andVisitTime<'"&midtime&"'"
Setrs1=Server.CreateObject("ADODB.Recordset")
rs1.Open str1, Conn,1,1
If rs1.eof Then
str2="select* From Visit_temp Where CardID='"&cardid&"' and VisitTime>'"&midtime&"'and VisitTime<'"&endtime&"' "
Setrs2=Server.CreateObject("ADODB.Recordset")
rs2.openstr2, Conn,1,1
Ifrs2.eof Then%>
<tr><td><divstyle="text-align:center"
><%=rs("CardID")%></div></td>
<td><divstyle="text-align:center"
><%=rs("UserName")%></div></td>
<td><divstyle="text-align:center"
class="style2">缺席<%=midtime%></div></td></tr>
<%Else%>
<tr><td><divstyle="text-align:center"
><%=rs("CardID")%></div></td>
<td><divstyle="text-align:center"
><%=rs("UserName")%></div></td>
<td><divstyle="text-align:center"
><span class="style2">迟到<%=rs2("VisitTime")%></span></div></td></tr>
<%endif
end if
end if%>
4.结语
本系统已在我校图书馆稳定运行多年,实时性强,充分利用了现有的门禁设备,无需添加任何其他设备。论文参考网。门禁考勤系统的设计与开发使得考勤数据处理,数据维护,手动更改数据,对数据库中的数据进行统计查询,自动生成考勤报表等考勤管理工作变得方便迅捷。论文参考网。实现了南航图书馆考勤的自动化,能在每学期根据职工排班、上课情况调整各人考勤表,实现将迟到、应到岗未刷卡的情况直接列出,减少人工反复核对,避免人为的疏忽、遗漏等错误,提高了考勤工作效率。