企业考勤管理系统的设计说明书

上传人:cn****1 文档编号:567649575 上传时间:2024-07-21 格式:PDF 页数:32 大小:794.63KB
返回 下载 相关 举报
企业考勤管理系统的设计说明书_第1页
第1页 / 共32页
企业考勤管理系统的设计说明书_第2页
第2页 / 共32页
企业考勤管理系统的设计说明书_第3页
第3页 / 共32页
企业考勤管理系统的设计说明书_第4页
第4页 / 共32页
企业考勤管理系统的设计说明书_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《企业考勤管理系统的设计说明书》由会员分享,可在线阅读,更多相关《企业考勤管理系统的设计说明书(32页珍藏版)》请在金锄头文库上搜索。

1、广西大学数学与信息科学学院广西大学数学与信息科学学院数据库开发与应用数据库开发与应用课程设计报告课程设计报告题目题目 : 企业考勤管理系统企业考勤管理系统班班级:级:信息与计算科学 121学学号号: :1211100xxx姓姓名:名:xxxxx日日期:期:二一四年六月一、 背景与意义考勤管理系统是企业单位管理系统中最重要的信息。 通过员工考勤考核管理,反映员工在一定阶段的工作成绩。而我国众多的企业都是采用传统的手工方式记录企业员工每日的出勤情况,这种方式繁琐易错 ,准确性、透明度、实时性差,受人为因素影响过大,增加了企业的人力资源成本。随着现代科技的进步, 利用信息和计算机技术来进行企业员工考

2、勤的管理也成为现代化企业运作必不可少的一部分。一个企业对其职工的正常上下班、 延时工作及加班工作进行考勤,通过报表的形式输出,合理调整员工工作安排 ,用计算机对考勤数据进行统计分析处理,得到我们所需要的各种统计报表和考勤原始数据,方便了企业对员工的管理.因此,开发一个合适的、高质量的、界面友好、 易于操作的企业考勤管理系统进行企业员工的考勤管理,对企业的长远发展有重大的意义。本考勤管理系统的开发,是为了规范企业中考勤的管理工作, 为考勤管理部门提供一套高效、快捷的应用软件。使用计算机进行考勤信息的处理,具有如下优点:(1)及时信息交流,改善管理质量通过本系统对考勤信息的规范管理,可以及时掌握员

3、工的信息,也能让员工及时了解部门主管发布的通知信息。(2)方便查询,提高工作效率。二、需求分析本系统要实现的功能模块主要有:基本信息设置模块、档案管理模块、审批模块、查询模块、考勤记录模块、汇总统计模块和系统管理模块。要求提供数据输入、输出和整理功能,满足日常工作的需要;具有查询、统计等功能,方便用户快捷使用和管理信息,提高工作效率;采用一定的安全保护措施,应分有不同的使用权限,保证系统的实用性;具有系统备份和恢复功能,使系统使用者能容易进行维护,同时软件功能完整、运行稳定、界面友好、操作简便。1.对功能的规定针对企业的考勤管理业务,本系统要实现以下功能:(1)基本信息设置拥有对系统中的基本信

4、息,包括:部门信息、员工职称信息、请假类型信息、加班类型信息、出差类型信息的添加、修改、删除、查询等操作的功能,当大量新的信息需要录入时,可以通过EXCEL 表格导入方式实现,同时也可将相应信息分别导出到 EXCEL 表格中。(2)档案管理拥有对系统中的员工信息、考勤制度信息、通知信息进行增加、修改、删除、查询等操作的功能。在录入员工信息时,输入员工的身份证号,进行回车操作即可自动填充员工性别,年龄,身份属地,生日信息。当有大量新11的员工信息、通知信息需要录入时,可以通过 EXCEL 表格导入方式实现,同时也可将相应信息导出到 EXCEL 表格中。(3)审批管理拥有对系统中的请假信息、加班信

5、息、出差信息进行审批的功能。查询出相应的记录,对该记录进行审批,审批通过则说明该条请假记录生效,否则为无效记录。此功能只有考勤主管和部门主管有操作权限。(4)查询管理拥有对系统中员工信息、企业考勤制度、出勤信息、请假信息、加班信息、出差信息进行查询的功能.可以按照员工编号,姓名,部门名等条件对员工具体信息进行模糊/精确查询。(5)考勤记录管理拥有对企业员工中的出勤信息、请假信息、加班信息、出差信息进行增加、修改、删除、查询等操作,同时具有将相应信息导出到EXCEL 表格中的功能。其中只有可以对出勤信息进行操作 ,当有大量员工考勤相关信息需要录入时,只有考勤管理员可以通过 EXCEL 表格导入方

6、式实现.(6)汇总统计管理拥有对考勤情况进行统计以及报表查看的功能。选择某一时间段, 可对该时间段员工的考勤信息进行统计 ,其中只有审核通过的请假记录 ,加班记录,出差记录能够参与到考勤情况统计中。 可以对统计过的考勤情况通过报表来查看到具体信息。(7)系统管理拥有密码修改、用户管理、系统初始化、数据备份 /恢复、日志查看的功能。密码修改供当前登录用户修改自己的密码, 修改时需要对新密码提供二次输入校对.用户管理提供用户的添加,修改,删除,用户名使用的是员工的编号.系统初始化将系统中的数据都删除,初始化前需对系统中的数据进行备份。数据备份/恢复拥有对系统中的数据进行备份和恢复的功能。日志查看拥

7、有对使用本系统的用户的登录及退出信息进行查看的功能, 以维护系统的正常操作。222.对性能的规定为保证本系统能够长期、安全、稳定、可靠、高效的运行,系统须满足以下性能要求:(1)实用性:本系统应能够系统,便捷,快速的实现对员工作休时间的管理,从而保障企业的高效运营.(2)操作简单:本系统应适用于不同计算机水平的使用者,系统的操作尽可能简单易行。(3)技术先进:产品的系统设计和开发应紧跟计算机的发展潮流,产用目前较先进的设计思想,利用最先进的开发技术和开发工具。(4)安装使用简便:服务器端安装简洁明了,客户机无需再装任何软件,可直接使用。(5)适应性和可扩充性: 应能广泛使用与不同的企业,开发过

8、程中,应充分考虑可扩充问题。3。数据管理能力的要求为保证企业使用本系统中数据的完整性,须满足以下数据管理要求:(1)尽可能减少故障的发生,保障好数据的备份,数据的备份采用数据库服务器的备份功能实现.(2)当系统发生故障时,当重新启动的时候,系统能够正常运行,若有数据遗失,能够通过备份来还原。(3)要保证数据的安全性 ,只有授权的人员才能进入系统进行相应的操作.(4)发现有错误的数据,及时地进行修改。三、系统总体分析与设计1. 1. 解决方案解决方案33为企业中的员工分别分配一个用户号和密码及相应角色, 员工可用该用户名和密码登录进入企业考勤管理系统。 不同的角色对应有不同的使用权限:普通员工可

9、以进入系统可以对各类信息进行查询,录入自己的请假, 加班及出差的记录,对考勤的统计报表进行查看以及对自己的登录密码进行修改;部门主管除拥有普通员工所有权限外, 还可对员工信息, 通知信息进行添加,修改,删除的操作,对员工输入的请假,加班,出差记录进行审批,对员工某一阶段的考勤进行统计;考勤管理员除拥有普通员工所有权限外 ,还可对企业的考勤制度进行设置,对员工的出勤信息进行录入或导入 ,同时也可对员工的请假,加班及出差记录进行批量导入; 考勤主管具有系统的完全管理权限,要定期对系统进行检查和备份,以维护系统的安全。系统设计分八个模块:主菜单模块,登录模块,档案管理模块,审批管理模块,查询管理模块

10、,考勤记录管理模块,汇总统计管理模块和系统管理模块.具体的功能结构图如图 11 所示.图 31 企业考勤管理系统功能结构图本系统采用 Delphi 技术,以及 SQL Server 数据管理技术进行主要的设计,数据库用 SQL Server 进行设计和管理。系统使用分三种角色,包括:员工,考勤管理员,部门主管,考勤主管。体现各角色的使用权限的功能结构图如图 12。图 3-2 体现各角色使用权限的功能结构图2. 数据库设计(1)Personal(员工信息表)员工信息表主要存放员工的基本信息,具体字段信息如表 31.表 31 员工信息表字段字段PnoPnameDnoPTno名称名称姓名类型类型VA

11、RCHAR长度长度141014144码码PKFKFK说明说明P+日期+序号Not nullNot nullNot null4员工编号CHAR部门编号CHAR职务编号CHARIDCardShuDiSexAgeBirthTelPhoto身份证性别年龄生日相片CHARCHARINTDATEVARBINARY182022050身份属地CHAR电话号码VARCHAR(2)PersonalType(职称表)职称表主要存放员工职称信息,被员工信息表所调用, 具体字段信息如表 4-9。表 4-9 职称表字段字段PTnoPTname名称名称职称编号职称名称类型类型CHARVARCHAR长度长度1420码码PK说

12、明说明PT+序号Not null(3)Department(部门信息表)部门信息表主要存放部门基本信息,提供给员工信息表调用, 具体字段信息如表 410。表 4-10 部门信息表字段字段DnoDnameIntroduce名称名称部门编号部门名称部门简介类型类型CHARVARCHARVARCHAR长度长度1420100码码PK说明说明D+序号Not null(4)Attendance(考勤记录表)考勤记录表主要存放员工日常的出勤信息,具体字段信息如表 411。表 4-11 考勤记录表字段字段AnoPno名称名称记录编号员工编号类型类型CHARCHAR5长度长度1414码码PKFK说明说明A+日期

13、+序号Not null5InOutATime出入情况时间CHARDATETIME2Not nullNot null(5)Overwork(加班记录表)加班记录表主要存放员工日常加班的记录信息, 只有主管审批通过后才能生效,才能进行相应的加班统计,具体字段信息见表 412。表 412 加班记录表字段字段OnoPnoEndTimeOTno名称名称记录编号员工编号结束时间加班类型编号类型类型CHARCHARDATETIMEDATETIMECHARCHAR长度长度1414- - -141码码FKFK说明说明Not nullNot nullPKO+日期+序号StartTime开始时间APProval审核

14、结果(6)OverworkType(加班类型表)加班类型表主要存放加班类型信息,提供给加班记录表调用,具体字段信息如表 413.表 4-13 加班类型表字段字段OTnoOTname名称名称加班类型编号加班类型名类型类型CHARVARCHAR长度长度1420码码PK说明说明OT+序号Not null(7)Errand(出差记录表)出差记录表主要存放出差记录信息,只有主管审批通过后才能生效 ,才能进行相应的出差统计,具体字段如表 4-14。表 4-14 出差记录表字段字段EnoPno名称名称记录编号员工编号类型类型CHARCHARDATETIME6长长度度1414码码说明说明PKE+日期+序号FK

15、Not null6StartTime开始时间EndTimePlaceETno结束时间出差地点出差类型编号DATETIMEVARCHARCHARCHAR20141FKNot nullAPProval审核结果(8)ErrandType(出差类型表)出差类型表主要存放加班类型信息,提供给出差记录表调用,具体字段信息如表 4-15。表 4-15 出差类型表字段字段ETnoETname名称名称出差类型名类型类型VARCHAR长度长度码码1420PK说明说明ET+序号Not null出差类型编号CHAR(9)Leave(请假记录表)请假记录表主要存放请假记录信息,只有主管审批通过后才能生效, 才能进行相应

16、的请假统计,具体字段如表 416.表 4-16 请假记录表字段字段LnoPnoEndTimeLTnoDemo名称名称记录编号员工编号结束时间请假类型编号情况说明类型类型CHARCHARDATETIMEDATETIMECHARVARCHARCHAR长长度度1414141001PKL+日期+序号FKFKNot nullNot null码码说明说明StartTime开始时间APProval审核结果(10)LeaveType(请假类型表)请假类型表主要存放加班类型信息,提供给请假记录表调用,具体字段信息如表 417。表 417 请假类型表字段字段名称名称类型类型7长长码码说明说明7度度LTnoLTna

17、me请假类型编号CHAR请假类型名VARCHAR1420PKLT+序号Not null(11)AttendanceCount(出勤情况统计表)出勤情况统计表主要记录的是员工出勤,请假,加班,出差的一些统计信息,提供给企业管理着进行查看,具体字段信息如表 418。表 4-18 出勤情况统计表字段字段ACnoPnoARnoYearMonthShouldTimeActualTimeLeaveTimeErrandTimeLateLateTimeEarlyEarlyTimeAbsenceAbsenceTime名称名称记录编号员工编号制度编号年月应工作时间实际工作时间累计请假时间累计出差时间迟到次数迟到时

18、间累计早退次数早退时间累计旷工次数旷工时间累计类型类型CHARCHARCHARCHARINTINTINTINTINTSMALLINTINTSMALLINTINTSMALLINTINT长度长度1414147 7- - - - - -码码PKFKFK说明说明G+日期+序号Not nullNot nullNot null小时小时半天小时半天次小时次小时次小时OverworkTime累计加班时间(12)Logdb(日志信息表)日志信息表主要记录的是企业中的员工登录到系统以及退出系统的信息,具体字段信息如表 419。表 4-19 日志信息表字段字段Logno名称名称日志编号类型类型INT8长度长度-码码

19、PK说明说明自动编号8UnoLoginTimeLogoutTime用户编号登录时间退出时间CHARDATETIMEDATETIME14- -FKNot null(13)Userdb(用户信息表)用户信息表主要存储用户的信息,其中员工编号作为用户名进行登录,密码默认为123456,同时也定义了用户的角色,具体字段信息如表 4-20。表 4-20 用户信息表字段字段UnoPnoPasswd名称名称用户编号员工编号密码类型类型CHARCHARCHARVARCHAR长度长度1414220码码FK说明说明Not null默认为 123456PKU+日期+序号Authority角色(14)ARegulat

20、ion(考勤制度表)考勤制度表主要存储的是企业的考勤制度,具体字段信息如表 4-21。表 4-21 考勤制度表字段字段ARnoComeTime名称名称制度编号上午上班时间类型类型CHARTIMETIMETIMETIMEVARCHAR长度长度14- - - -10000码码说明说明Not nullNot nullNot nullNot nullPKAR+序号GooffTimepm上午下班时间ComeTimepm下午上班时间GooffTimeAmemo下午下班时间考勤制度(15)ShuDi(属地表)属地表主要存储的是身份证前 6 位所对应的属地名称的信息, 录入员工数据中身份证数据时快速得出员工性

21、别,年龄,身份属地,生日信息,减小因手工输入产生的信息错误概率,具体字段信息如表 422.表 4-22 属地表字段字段ID名称名称编号类型类型CHAR9长度长度6码码PK说明说明Not null9BMDQ属地编号属地名称CHARVARCHAR1430Not nullNot null(16)Notice(通知表)通知表主要存储的是企业中的一些通知信息,具体字段信息如表 423。表 4-23 通知表字段字段NnoNTimeTitleContent名称名称通知编号通知时间通知标题通知内容类型类型CHARDatetimeVARCHARCHAR长度长度14-305000码码说明说明Not nullPKN

22、+日期+序号四、系统的实现1. 界面设计系统设计中的界面设计不同于一般的平面设计,拥有自身的设计特征 .网页设计应时刻围绕“信息传达”这一主题来进行。界面力求清晰、准确、有力地传达信息。本系统主要采用的的界面模板主要包括:登录界面、主菜单界面、基本信息设置界面、档案管理界面、查询管理界面、考勤记录管理界面、审核管理界面、汇总统计界面、系统管理设置界面。 (1 1). . 登录界面登录界面运行本系统后,出现如图 41 的登录界面,输入用户名和密码,选择用户角色,点击 “登录按钮,如果输入的信息不正确, 会有 “用户名或密码错误,请检查! ”的错误提醒 ,如果三次登陆错误,会有“你无权使用本系统!

23、 ”的错误提醒,即每次登录,最多允许有三次登录错误的机会。当所有信息都输入正确后,可以登录到主界面, 不用的用户角色进入的主界面中的功能菜单不同。登录界面允许效果图如图 4-1。41 登录界面(2 2) 。 主菜单界面主菜单界面用户登录后,可进入到如图 4-2 的主菜单界面, 在主菜单界面中, 用户可1 010以看到企业中发布的通知信息, 这有利于让企业中的员工尽可能快而全面地掌握企业中消息的动态。主菜单界面如图 42图 42 主菜单界面(3).(3).查询管理界面查询管理界面在主菜单上点击查询菜单下的“请假情况查询” ,即可进入到如下图 43 请假情况查询界面,在界面中输入员工号或员工姓名、

24、部门名称、请假类型等信息,以及选择时间范围的信息,即可进行组合查询以及模糊查询 .其他信息的查询功能跟此功能基本一致,在此不再赘述。 请假情况查询界面如图 43.图 4-3 请假情况查询界面(4).(4). 信息管理界面信息管理界面信息管理界面包括:基本信息设置界面(图4-4) 、档案管理界面(图45) 、考勤记录管理界面(图 4-6).点击信息管理界面中的“添加按钮,相应的记录信息将自动编号,在输入相应信息即可。以员工信息管理为例,点击“添加”按钮,编号处将自动填充,编号规则为: : “P+年月日+001” ,输入省份证号后,回车即可得出性别、年龄、省份属地、生日等信息,在部门的编辑框处双击

25、,即可得出企业中的部门信息,选择相应的部门,则可在该编辑框中得出相应的部门编号,也可手动输入正确的部门编号 ,职称的填写方式和部门的填写方式相同,再相应地填写其他信息,点击保存,如果信息填写无误,会有“保存成功!的提示,添加信息完成。同时也可选中相应的员工信息,对其进行删除操作.也可导入/导出 Excel 表格。其他信息管理的功能跟此功能类似,不再赘述。档案管理界面如图 44。图 44 档案管理界面图 45 基础信息设置界面图 46 考勤记录管理界面(5).5). 审批界面审批界面在主菜单上点击查询菜单下的“出差审批”,即可进入到出差审批界面,如图 4-7。查询出相应的员工出差信息,觉得员工的

26、出差信息无误后即可进行审批,点击“确定”按钮后,会出现“审批完成 !的提示.出差审批界面如图 47。图 4-7 审批界面1 111(6).(6). 统计界面统计界面在主菜单上点击查询菜单下的“出差审批”,即可进入到出差审批界面,如图 48。选择需要统计的起始时间,点击统计,即可得到员工考勤情况的统计表(统计的信息包括:应工作时间(小时) ,实际工作时间(小时),累计请假时间(半天) ,累计加班时间(小时) ,累计出差时间(半天) ,迟到次数(次) ,迟到时间累计(小时) ,早退次数(次),早退时间累计(小时) ,旷工次数(次),旷工时间累计(小时) ) 。统计需要一些时间,进度条会显示统计的进

27、度。统计界面如图 48。图 48 统计界面2. 系统实现关键技术(1(1) 。 添加数据时自动编号添加数据时自动编号运行系统时,当需要新增信息时,点击“添加”按钮,即可进行自动对记录的 ID 进行编号,以实现编号的规范性。添加数据时自动编号的代码如下:1. 自定义函数:根据原来编号 bh,构造新编号:年月日+3 位序列。function xbh(bh:string):string;vard0,d1,c : string;begind0:=copy(bh,2,8);c:=copy(bh,10,3);ifd0 =#48) and (key=#57) ;if not kk then key:=#0;

28、/键盘输入过滤掉非身份证号码if key=#13 thenbeginNewID:= DBedit13。Text;/1。 检查长度if Length(NewID) 18 thenbeginmessageDlg(输入的数字不是18 位,请重新输入 !,mtError,mbOK ,0) ;DBedit13。SetFocus;exit;end;/2.检查属地ADOquery1.close;1 414ADOquery1。Parameters。ParamByName( sd)。Value:= copy(NewID,1,6);语句赋值ADOquery1。open;/打开,查询记录if ADOquery1。R

29、ecordCount=0 then/如果找不到 sd 相同的记录beginMessageDlg(前面六位数字无效,请检查!,mtinformation,mbok,0);DBedit13.SetFocus;exit;endelseshud :=ADOquery1。FieldByName(DQ).Value;/获取属地/3. 检查年年份i:=strtoint(copy(NewID,7,4)) ;年份if( i1900) or ( i2020)thenbeginMessageDlg(年份号码无效,请检查! ,mtinformation,mbok,0);DBedit13。SetFocus;exit;e

30、nd ;j:=strtoint(copy(NewID,11,2);if( j1) or ( j12)thenbeginMessageDlg(月份号码无效,请检查!,mtinformation,mbok,0);/给动态 SQL/获取/获取月份1 515DBedit13。SetFocus;exit;end ;s:=strtoint(copy(NewID,13,2) );if( s31)thenbeginMessageDlg (日数号码无效, 请检查!,mtinformation, mbok ,0);DBedit13.SetFocus;exit;end ;da:= EncodeDate(i,j,s)

31、 ;/4. 检查校验码s:= 0;for i:=1 to 17 dobeginj:= StrToInt(NewIDi) Wi;s:= s + j;end;s:= s mod 11;if NewID18=X then NewID18:=x; /将大写字母 X 变成小写字母 xif NewID18AS thenbeginmessageDlg(校验码错!请重新输入!,mtError,mbOK ,0);showmessagefmt(校验码错! 应该是%s! 请重新输入! , AS ) ;DBedit13。SetFocus;exit;end;/5. 填写证件的详细信息/构造生日1 616ADOTable

32、1.Edit;DBedit16.Text :=shud;/属地DBedit17.Text :=formatdatetime(ddddd,da) ; /生日DBedit18.Text :=formatdatetime(yy ,dateda); /年龄if NewID17 in 1,3,5 ,7,9 then/以下是判别性别DBedit15.Text :=男elseDBedit15。Text :=女;end;end;(4 4) 。 导出导出 EXCELEXCEL 表格表格运行系统时,可以对系统中的相应数据信息导出到 excel 表格中,方便用户使用相应的数据信息。1。 将某个数据表导出成 Exce

33、l 表的通用函数function ExportDBGrid(DBGrid: TDBGrid; SheetName: string):boolean;EXCELVarc, r, i, j: integer;app: Olevariant;TempFileName, ResultFileName: string;begintryresult := True;app := CreateOLEObject(Excel。application ) ;app。WorkBooks.Add(xlWBatWorkSheet);exceptApplication。MessageBox(Excel 没有正确安装!,

34、 警告 ,MB_OK);/ 直 接 保 存 , 不 显 示1 717result := False;exit;end;mainForm.SaveDialog1.DefaultExt:=xls ;mainForm。SaveDialog1。FileName := SheetName;if mainForm。SaveDialog1.Execute thenTempFileName := mainForm.SaveDialog1.FileNameelseExit;app。Workbooks。add;app.Visible := false;Screen。Cursor := crHourGlass;DB

35、Grid.DataSource。DataSet.First;c := DBGrid.DataSource。DataSet.FieldCount;r := DBGrid.DataSource。DataSet。RecordCount;Application.ProcessMessages;for i := 0 to c 1 doapp。cells(1, 1 + i ) := DBGrid.DataSource。DataSet.Fieldsi 。DisplayLabel;for j := 1 to r dobeginfor i := 0 to c - 1 doapp.cells(j + 1, 1 +

36、 i) := DBGrid。DataSource。DataSet.Fieldsi.AsString;DBGrid。DataSource。DataSet。Next;end;ResultFileName := TempFileName;if ResultFileName = thenResultFileName := 数据导出;if FileExists(TempFileName) then1 818DeleteFile(TempFileName);app.Activeworkbook。saveas(TempFileName);app.Activeworkbook.close(false);app

37、。quit;app := unassigned;end;2. 调用导出 Excel 数据的函数,“导出 Excel 表格” 按钮的点击事件代码。procedure TDanganForm。SpeedButton5Click(Sender: TObject);begintryScreen。Cursor := crHourGlass;finallyScreen。Cursor := crDefault;end;end;(5)(5)。导入。导入 EXCELEXCEL 表格表格运行系统时, 当需要新增大量数据时,可以通过导入 Excel 表格实现批量增加的操作.注意: 需要导入的 Excel 表格中的数

38、据一定要与数据表中的数据类型一致, 否则会出现导入失败的情况。 导入 Excel 表格中数据的代码如下:procedure TDanganForm.SpeedButton9Click(Sender: TObject) ;varoe:variant;str:string;i,j,n:integer;beginif opendialog1。Execute thenopendialog1。DefaultExt:=xls;str:=opendialog1.FileName;oe:=CreateOleObject(Excel。Application) ;/将鼠标成沙漏状main.ExportDBGrid

39、(DBGrid2,);/调用函数导出数据/回复鼠标原状1 919oe.workbooks。open(str) ;/连接所选定的 Excel表n:=oe.Worksheets1.UsedRange.Rows。Count;/求工作表 sheet1 中已有数据的行数tryfor i:=2 ton do/从 Excel 表第 2 行开始, 逐行读入(假设第一行为表头)beginADoTable2。Append;/添加空记录for j:=1 to ADOTable2。fieldcount doADOTable2.Fieldsj1。Value:=oe。worksheets1.cellsi,j 。value

40、;end;ADoTable2。Refresh;showmessage(导入完毕);exceptshowmessage(数据库错误或有重复编号,请检查);end;end;(6).(6). 组合查询配合模糊查询组合查询配合模糊查询组合查询配合模糊查询能够满足查询的各种需求。 本系统中多处都实现了组合查询以及模糊查询.以查询请假记录为例,代码如下:1。 查询请假记录, “查询”按钮的事件代码。procedure TSelectForm.SpeedButton3Click(Sender: TObject);varsqlstr:string;begdate: string;enddate: string

41、;beginif ComboBox2。Text = + begdate+ and Pno like %+ edit4。text + and Pname like %+ edit10.Text+ and Dname like + edit9。Text + and LTname like + edit17.Text + %else if combobox2.Text=在。.。间 thensqlstr := select * from Leave_Per_D where StarTime = + begdate+ and StarTime= + enddate + and Pno like + ed

42、it4.text + %and Pname like + edit10.Text + % and Dname like + edit9.Text+ % and LTname like %+ edit17。Text + % ;endelsesqlstr : = select from Leave_Per_D wherePno like + edit4。text + and Pname like %+ edit10。 Text + and Dname like %+edit9.Text + % and LTname like %+ edit17。Text + %;ADOQuery2。Close;A

43、DOQuery2.SQL.Clear;2 121ADOQuery2。SQL.Add(sqlstr);ADOQuery2.open;end;查询效果如图 4-10。图 410 请假查询效果图(7)7)。 汇总统计汇总统计运行本系统时,选择需要统计的起始时间,点击统计,即可得到员工考勤情况的统计表(统计的信息包括:应工作时间(小时) ,实际工作时间(小时) ,累计请假时间(半天),累计加班时间(小时) ,累计出差时间(半天) ,迟到次数(次) ,迟到时间累计(小时) ,早退次数(次),早退时间累计(小时),旷工次数(次),旷工时间累计(小时)) 。具体代码如下:1.“统计”按钮事件代码。proce

44、dure THuizForm。SpeedButton2Click(Sender: TObject) ;varbm,Pno,ARno:string;i,j,n,counter:integer;时间/Hour:array0。.1of double;时间/a: double;Hour:array0.。1of integer;a: integer;StartTime,EndTime:TDate;/保存始末时间/保存中间判断时间Late,Early,Absent,Leave,Errand:Boolean;WorkHour/保存员工号/用于循环和计数/保存上下班Time:Array0。 。3of TTim

45、e;/保存上下午工作TimeStamp,Late_Time,Early_Time,Work_Start,Work_end:TDateTime;/保存判断结果,OverHour,LeaveHDay,ErrandHDay,LateTime/保存时间间隔长度2 2EarlyTime,AbsentTime,ActualTime:Integer;22LateTimes,EarlyTimes,AbsentTimes:SmallInt;Temp:String;beginTime0:= strtotime(DanganForm.ADOTable4ComeTime) ;Time1:= strtotime(Dan

46、ganForm。ADOTable4GooffTimepm);Time2:= strtotime(DanganForm.ADOTable4ComeTimepm );Time3:= strtotime(DanganForm。ADOTable4GooffTime ) ;Hour0 :=Round(Time1Time0)24);工作时间Hour1:=Round((Time3Time2)*24);工作时间a:=Hour0+Hour1;/一天工作时间ARno:= DanganForm。ADOTable4ARno ;StartTime:=DateTimePicker1。Date;EndTime:=DateT

47、imePicker2。Date;begin/提取员工列表T_person。Filtered:=True;T_person.Open;n:=T_person。RecordCount;i:=0;Gauge1.Progress:=0;T_person。First;while not T_person。Eof dobegin/获取出勤记录Pno:=T_personPno ;Q_attend.Close;Q_attend.Parameters.ParamValuesPno:=Pno;Q_attend.Parameters。ParamValuesSTARTTIME :=StartTime;/上午/下午2

48、323Q_attend.Parameters.ParamValuesENDTIME:=EndTime+1;Q_attend.Open;Q_attend.First;/初始化WorkHour:=0;LeaveHDay:=0;ErrandHDay:=0;LateTimes:=0;LateTime:=0;EarlyTime:=0;AbsentTime:=0;EarlyTimes:=0;AbsentTimes:=0;ActualTime:=0;OverHour:=0;TimeStamp:=StartTime;while TimeStamp1 )and ( DayOfWeek(TimeStamp) 7)

49、 thenbeginActualTime:=ActualTime+a;for j:=0 to 1 dobeginLate_Time:=TimeStamp+Time2j ;Early_Time:=TimeStamp+Time2*j+1 ;/判断是否请假Q_leave.Close;Q_leave.Parameters.ParamValuesPno:=Pno;Q_leave.Parameters/遍历班次。2 4ParamValues24STARTTIME:=Late_Time;Q_leave 。 Parameters 。 ParamValues ENDTIME :=Early_Time;Q_lea

50、ve.Open;Leave:=(Q_leave。RecordCount0);/判断是否出差Q_errand.Close;Q_errand.Parameters.ParamValuesPno :=Pno;Q_errand.Parameters.ParamValues STARTTIME :=Late_Time;Q_errandQ_errand.Open;errand:=(Q_leave。RecordCount0);if leave thenInc(LeaveHDay)else if errand thenbeginInc(ErrandHDay);WorkHour:=WorkHour+Hourj

51、;endelsebeginWork_start:=Late_Time;Work_end:=Early_Time;Late:=True;Absent:=False;/判断是否迟到while (not Q_attend.Eof) and (Q_attendIOTime =Late_Time)do。Parameters。ParamValuesENDTIME :=Early_Time;/请假/出差/正常上班2 525beginLate:=(Q_attendInOut=O) ;Q_attend.Next;end;/判断是否旷工if Late thenbeginif (not Q_attend.Eof)

52、and (Q_attendIOTimeEarly_Time)thenbeginWork_start:=Q_attendIOTime;/记录迟到时间LateTime:=LateTime+Round( (Work_Start-Late_Time)*24);endelseAbsent:=True;AbsentTime:=AbsentTime+Round((Early_TimeLate_Time)24) ;end;Early:=False;/判断是否早退while(not Q_attend。 Eof) and (Q_attend IOTime Early_Time)dobeginEarly:=(Q_a

53、ttendInOut=O);if Early thenbeginWork_end:=Q_attendendelseIOTime;EarlyTime:=EarlyTime+Round(Early_Time-Late_Time)24) ;2 626Work_end:=Early_Time;Q_attend.Next;end;if Absent thenInc(AbsentTimes)elsebeginif Late thenInc(LateTimes);if Early thenInc(EarlyTimes) ;WorkHour: =WorkHour+Round(Work_endWork_star

54、t)24) ;/计算实际工作时间end;end;end;end;end;/一个班次判断结束/下一班次/是否休息日/推进一天/后一天考勤TimeStamp:=TimeStamp+1;/统计加班时间Q_overtime.Close;Q_overtime.Parameters。ParamValuesPno :=Pno;Q_overtime.Parameters。 ParamValues STARTTIME : =StartTime;Q_overtime.Parameters.ParamValuesENDTIME :=EndTime;Q_overtime.Open;try/OverHour:=7;Ov

55、erHour:=Q_overtimeSUM ;except2 727OverHour:=0;end;/增加/修改考勤记录if ADOTable1。IsEmpty thenbm:=G+formatdatetime(yyyymmdd ,now)+ 001/构造第一个编号elsebeginADOTable1。Last;bm:=ADOTable1ACno;编号bm:=G+dangan。xbh(bm);end;/追加统计记录ADOTable1.AppendRecord(bm, Pno, ARno,datetostr (DateTimePicker3。date ) ,ActualTime , WorkHo

56、ur, LeaveHDay , OverHour,ErrandHDay ,LateTimes,LateTime,EarlyTimes,EarlyTime,AbsentTimes,AbsentTime);Inc(i);Gauge1.Progress:=(100i) div n;T_person。Next;end;end;adoquery1。Refresh;end;效果图如图 47./下一个员工考勤/ 读取数据表末尾记录的五、总结2 8281. 设计心得经过几个月来的设计, “企业考勤管理信息系统”已经基本设计完成。在这几个月的开发过程中,我获得了许多从课堂上学不到得知识, 其中我对以下几点有较深

57、刻的体会。(1)编程中定义的窗体及变量的名称,一定要规范,必要时加上注解,标准的定义方式,有助于其他编程人员更易看懂程序代码,便于以后对系统进行维护。(2)在进行系统设计的过程中,要多与老师及同学进行沟通交流,特别是导师的建议,会拓宽自己的思路,一个人想问题难免会存在局限性,应认真听取他人给予的意见和建议。(3)编程的方法固然重要,程序的使用界面也要注意美观,布局要合理, 主题要突出,风格要统一,要让用户使用到系统中的功能时能够一目了然。(4)在程序编好后,对程序的调试时极其重要的一步,调试程序可以逐步完善、修正程序中的错误.调试是一个漫长的过程,需要注意每个使用的细节,这样才能尽量减少 BU

58、G 的产生。2. 设计的优点和不足本次设计存在以下几个优点:(1)系统界面简洁明了,操作简单;(2)数据输入方面,尽量提供给用户选择,避免错误输入,产生数据上的逻辑错误,易于使用;(3)对系统用户进行角色管理,并设置相应权限,每类用户只能看到自己权限范围内的页面,便于对用户的操作权限进行管理;(4)系统中多处使用了导入/导出 Excel 表格,减少了当有大量新增数据时,需要大量的人力进行手动输入, 同时也利于对导出的相应信息有其他用处;(5)进行考勤统计时 ,只用选择同时时间范围就可以得出每个用户的考勤统计信息,减少了大量繁杂的计算,同时也避免了由于计算时使用的方2 929法不正确而产生的统计

59、信息错误的事件发生。由于时间仓促,系统还存在着一些问题和不足之处:(1)系统异常处理还不够完善,还有待改进;(2)系统还未实现可以查看用户登录后,访问了哪些模块,对哪些模块进行了操作等,只实现了查看到用户的登录时间和退出时间。参考文献1 陈豫龙,何旭洪. Delphi 数据库系统开发实例导航M 。 人民邮电出版社,2003。2 赛奎春,陈紫鸿,宋坤. Delphi 数据库开发关键技术与实例应用M.人民邮电出版社, 2004.3 王言行,汤荷美,黄维通. 数据库技术及应用M. 北京:高等教育出版社,2004。4 宋坤,邹天思.Delphi 数据库开发完全手册M。北京:人民邮电出版社,20063.

60、5 刘瑞新,万朝阳,董淑娟。 Delphi 程序设计教程M. 机械工业出版社6 严蔚敏,吴伟民. 数据结构M 。 清华大学出版社,1997。7 王珊,萨师煊. 数据库系统概论M.北京:高等教育出版社,2010-7.8 戴志诚. SQL Server 2005 数据库系统开发与实例 M。 电子工业出版社,2007。9 胡超,闫玉宝. SQL Server 2008 从入门到精髓M. 北京:化学工业出版社,2010:120.10Tim F LeeImplement MISM. 北京出版社,2001。11EfremG,Mallach.Support and Data Warehouse System

61、sM. 电子工业出版社,2001。12Jeffrey L Whitten,Lonnie D Bentley,Kevin C Dittman 著。肖刚,孙慧,等译.系统分析与设计方法。北京:机械工业出版社.2004.13Besselaar,Peter,van,den,Clement,Andrew,Jearvinen。Information3 030system,workandorganizationdesignM.North-Holland:North-Holland,1991.50-60.14Warren Rachele. Learm Object Pascal With DelphiM。 WordwarePublishing,2000.15 Clay Shannon.Tomes ofDelphi:Developers Guide to TroubleshootingM.Wordware Publishing,2001.3 131

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号