版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
公司考勤管理系统的设计说明书公司考勤管理系统的设计说明书公司考勤管理系统的设计说明书广西大学数学与信息科学学院《数据库开发与应用》课程设计报告题目:公司考勤管理系统班级:信息与计算科学121学号:1211100xxx姓名:xxxxx日期:二〇一四年六月精选文档一、背景与意义考勤管理系统是公司单位管理系统中最重要的信息。经过员工考勤核查管理,反应员工在必定阶段的工作成绩。而我国众多的公司都是采纳传统的手工方式记录公司员工每天的出勤状况,这类方式繁琐易错,正确性、透明度、及时性差,受人为要素影响过大,增加了公司的人力资源成本。跟着现代科技的进步,利用信息和计算机技术来进行公司员工考勤的管理也成为现代化公司运作必不行少的一部分。一个公司对其员工的正常上下班、延时工作及加班工作进行考勤,经过报表的形式输出,合理调整员工工作安排,用计算机对考勤数据进行统计分析办理,获取我们所需要的各样统计报表和考勤原始数据,方便了公司对员工的管理。所以,开发一个适合的、高质量的、界面友善、易于操作的公司考勤管理系统进行公司员工的考勤管理,对公司的长远发展有重要的意义。本考勤管理系统的开发,是为了规范公司中考勤的管理工作,为考勤管理部门供应一套高效、快捷的应用软件。使用计算机进行考勤信息的办理,拥有以下长处:(1)及时信息交流,改良管理质量经过本系统对考勤信息的规范管理,能够及时掌握员工的信息,也能让员工及时认识部门主管公布的通知信息。(2)方便查问,提升工作效率。.精选文档二、需求分析本系统要实现的功能模块主要有:基本信息设置模块、档案管理模块、审批模块、查问模块、考勤记录模块、汇总统计模块和系统管理模块。要求供应数据输入、输出和整理功能,满足平常工作的需要;拥有查问、统计等功能,方便用户快捷使用和管理信息,提升工作效率;采纳必定的安全保护措施,应分有不一样的使用权限,保证系统的适用性;拥有系统备份和恢复功能,使系统使用者能简单进行保护,同时软件功能完好、运转稳固、界面友好、操作简单。对功能的规定针对公司的考勤管理业务,本系统要实现以下功能:(1)基本信息设置拥有对系统中的基本信息,包含:部门信息、员工职称信息、告假种类信息、加班种类信息、出差种类信息的增加、改正、删除、查问等操作的功能,当大批新的信息需要录入时,能够经过EXCEL表格导入方式实现,同时也可将相应信息分别导出到EXCEL表格中。(2)档案管理拥有对系统中的员工信息、考勤制度信息、通知信息进行增加、改正、删除、查问等操作的功能。在录入员工信息时,输入员工的身份证号,进行回车操作即可自动填补员工性别,年纪,身份属地,诞辰信息。当有大批新的员工信息、通知信息需要录入时,能够经过EXCEL表格导入方式实现,同时也可将相应信息导出到EXCEL表格中。(3)审批管理拥有对系统中的告假信息、加班信息、出差信息进行审批的功能。查问出相应的记录,对该记录进行审批,审批经过则说明该条告假记录奏效,不然为无效记录。此功能只有考勤主管和部门主管有操作权限。(4)查问管理.精选文档拥有对系统中员工信息、公司考勤制度、出勤信息、告假信息、加班信息、出差信息进行查问的功能。能够依据员工编号,姓名,部门名等条件对员工详尽信息进行模糊/精准查问。(5)考勤记录管理拥有对公司员工中的出勤信息、告假信息、加班信息、出差信息进行增加、改正、删除、查问等操作,同时拥有将相应信息导出到EXCEL表格中的功能。此中只有能够对出勤信息进行操作,当有大批员工考勤有关信息需要录入时,只有考勤管理员能够经过EXCEL表格导入方式实现。(6)汇总统计管理拥有对考勤状况进行统计以及报表查察的功能。选择某一时间段,可对该时间段员工的考勤信息进行统计,此中只有审察经过的告假记录,加班记录,出差记录能够参加到考勤状况统计中。能够对统计过的考勤状况经过报表来查察到详尽信息。(7)系统管理拥有密码改正、用户管理、系统初始化、数据备份/恢复、日记查察的功能。密码改正供目前登录取户改正自己的密码,改正时需要对新密码供应二次输入校正。用户管理供应用户的增加,改正,删除,用户名使用的是员工的编号。系统初始化将系统中的数据都删除,初始化前需对系统中的数据进行备份。数据备份/恢复拥有对系统中的数据进行备份和恢复的功能。日志查察拥有对使用本系统的用户的登录及退出信息进行查察的功能,以保护系统的正常操作。对性能的规定为保证本系统能够长远、安全、稳固、靠谱、高效的运转,系统须满足以下性能要求:(1)适用性:本系统应能够系统,便利,迅速的实现对员工作休时间的管理,从而保障公司的高效营运。(2)操作简单:本系统应合用于不一样计算机水平的使用者,系统的操作尽可能简单易行。.精选文档(3)技术先进:产品的系统设计和开发应紧跟计算机的发展潮流,产用目前较先进的设计思想,利用最初进的开发技术和开发工具。(4)安装使用简单:服务器端安装简短了然,客户机无需再装任何软件,可直接使用。(5)适应性和可扩大性:应能宽泛使用与不一样的公司,开发过程中,应充分考虑可扩大问题。数据管理能力的要求为保证公司使用本系统中数据的完好性,须满足以下数据管理要求:(1)尽可能减少故障的发生,保障好数据的备份,数据的备份采纳数据库服务器的备份功能实现。(2)当系统发生故障时,当从头启动的时候,系统能够正常运转,若有数据扔掉,能够经过备份来复原。(3)要保证数据的安全性,只有受权的人员才能进入系统进行相应的操作。(4)发现有错误的数据,及时地进行改正。.精选文档三、系统整体分析与设计解决方案为公司中的员工分别分派一个用户号和密码及相应角色,员工可用该用户名和密码登录进入公司考勤管理系统。不一样的角色对应有不一样的使用权限:一般员工能够进入系统能够对各种信息进行查问,录入自己的告假,加班及出差的记录,对考勤的统计报表进行查察以及对自己的登录密码进行改正;部门主管除拥有一般员工全部权限外,还可对员工信息,通知信息进行增加,改正,删除的操作,对员工输入的告假,加班,出差记录进行审批,对员工某一阶段的考勤进行统计;考勤管理员除拥有一般员工全部权限外,还可对公司的考勤制度进行设置,对员工的出勤信息进行录入或导入,同时也可对员工的告假,加班及出差记录进行批量导入;考勤主管拥有系统的完好管理权限,要按期对系统进行检查和备份,以保护系统的安全。系统设计分八个模块:主菜单模块,登录模块,档案管理模块,审批管理模块,查问管理模块,考勤记录管理模块,汇总统计管理模块和系统管理模块。详尽的功能结构图如图1-1所示。公司考勤管理系统基础信息设置档案管理审批查问考勤记录汇总统计系统设置员请加出出员通考部工假班差差工知勤门职类类类情信信制设称型型型况息息度置设设设设查设设设置置置置询置置置
请加出员考出请加出出系备假班差工勤勤假班差出加请出勤报修用日统份信信信信制情情情情勤班假差情表改户志初/息息息息度况况况况记记记记况查密管管始恢审审审察查查查查查录录录录统看码理理化复批批批询询询询询询计图3-1公司考勤管理系统功能结构图本系统采纳Delphi技术,以及SQLServer数据管理技术进行主要的设.精选文档计,数据库用SQLServer进行设计和管理。系统使用分三种角色,包含:员工,考勤管理员,部门主管,考勤主管。表现各角色的使用权限的功能结构图如图1-2。告假记录查问加班记录考勤记录出差记录员工汇总统计报表查察系统设置改正密码员工信息设置档案管理通知信息设置审批查问部门主管考勤记录汇总统计用户系统设置改正密码登录档案管理考勤制度设置查问考勤管理员考勤记录汇总统计报表查察系统设置改正密码基础信息设置档案管理审批考勤主管查问考勤记录汇总统计系统设置图3-2表现各角色使用权限的功能结构图.精选文档数据库设计(1)Personal(员工信息表)员工信息表主要寄存员工的基本信息,详尽字段信息如表3-1。表3-1员工信息表字段名称种类长度码说明Pno员工编号CHAR14PKP+日期+序号Pname姓名VARCHAR10NotnullDno部门编号CHAR14FKNotnullPTno职务编号CHAR14FKNotnullIDCard身份证CHAR18ShuDi身份属地CHAR20Sex性别CHAR2Age年纪INT-Birth诞辰DATE-Tel电话号码VARCHAR20Photo相片VARBINARY50(2)PersonalType(职称表)职称表主要寄存员工职称信息,被员工信息表所调用,详尽字段信息如表4-9。表4-9职称表字段名称种类长度码说明PTno职称编号CHAR14PKPT+序号PTname职称名称VARCHAR20Notnull(3)Department(部门信息表)部门信息表主要寄存部门基本信息,供应给员工信息表调用,详尽字段.精选文档信息如表4-10。表4-10部门信息表字段名称种类长度码说明Dno部门编号CHAR14PKD+序号Dname部门名称VARCHAR20NotnullIntroduce部门简介VARCHAR100(4)Attendance(考勤记录表)考勤记录表主要寄存员工平常的出勤信息,详尽字段信息如表4-11。表4-11考勤记录表字段名称种类长度码说明Ano记录编号CHAR14PKA+日期+序号Pno员工编号CHAR14FKNotnullInOut进出状况CHAR2NotnullATime时间DATETIME-Notnull(5)Overwork(加班记录表)加班记录表主要寄存员工平常加班的记录信息,只有主管审批通事后才能奏效,才能进行相应的加班统计,详尽字段信息见表4-12。表4-12加班记录表字段名称种类长度码说明Ono记录编号CHAR14PKO+日期+序号Pno员工编号CHAR14FKNotnullStartTime开始时间DATETIME-EndTime结束时间DATETIME-OTno加班种类编号CHAR14FKNotnullAPProval审察结果CHAR1.精选文档(6)OverworkType(加班种类表)加班种类表主要寄存加班种类信息,供应给加班记录表调用,详尽字段信息如表4-13。表4-13加班种类表字段名称种类长度码说明OTno加班种类编号CHAR14PKOT+序号OTname加班种类名VARCHAR20Notnull(7)Errand(出差记录表)出差记录表主要寄存出差记录信息,只有主管审批通事后才能奏效,才能进行相应的出差统计,详尽字段如表4-14。表4-14出差记录表字段名称种类长码说明度Eno记录编号CHAR14PKE+日期+序号Pno员工编号CHAR14FKNotnullStartTime开始时间DATETIME-EndTime结束时间DATETIME-Place出差地址VARCHAR20ETno出差种类编号CHAR14FKNotnullAPProval审察结果CHAR1(8)ErrandType(出差种类表)出差种类表主要寄存加班种类信息,供应给出差记录表调用,详尽字段信息如表4-15。表4-15出差种类表字段名称种类长度码说明ETno出差种类编号CHAR14PKET+序号ETname出差种类名VARCHAR20Notnull.精选文档(9)Leave(告假记录表)告假记录表主要寄存告假记录信息,只有主管审批通事后才能奏效,才能进行相应的告假统计,详尽字段如表4-16。表4-16告假记录表字段名称种类长码说明度Lno记录编号CHAR14PKL+日期+序号Pno员工编号CHAR14FKNotnullStartTime开始时间DATETIME-EndTime结束时间DATETIME-LTno告假种类编号CHAR14FKNotnullDemo状况说明VARCHAR100APProval审察结果CHAR1(10)LeaveType(告假种类表)告假种类表主要寄存加班种类信息,供应给告假记录表调用,详尽字段信息如表4-17。表4-17告假种类表字段名称种类长码说明度LTno告假种类编号CHAR14PKLT+序号LTname告假种类名VARCHAR20Notnull(11)AttendanceCount(出勤状况统计表)出勤状况统计表主要记录的是员工出勤,告假,加班,出差的一些统计信息,供应给公司管理着进行查察,详尽字段信息如表4-18。.精选文档表4-18出勤状况统计表字段名称种类长度码说明ACno记录编号CHAR14PKG+日期+序号Pno员工编号CHAR14FKNotnullARno制度编号CHAR14FKNotnullYearMonth年代CHAR7NotnullShouldTime应工作时间INT-小时ActualTime实质工作时间INT-小时LeaveTime累计告假时间INT-半天OverworkTime累计加班时间INT-小时ErrandTime累计出差时间INT-半天Late迟到次数SMALLINT-次LateTime迟到时间累计INT-小时Early早走次数SMALLINT-次EarlyTime早走时间累计INT-小时Absence旷工次数SMALLINT-次AbsenceTime旷工时间累计INT-小时(12)Logdb(日记信息表)日记信息表主要记录的是公司中的员工登录到系统以及退出系统的信息,详尽字段信息如表4-19。表4-19日记信息表字段名称种类长度码说明Logno日记编号INT-PK自动编号Uno用户编号CHAR14FKNotnullLoginTime登录时间DATETIME-LogoutTime退出时间DATETIME-.精选文档(13)Userdb(用户信息表)用户信息表主要储存用户的信息,此中员工编号作为用户名进行登录,密码默以为‘123456’,同时也定义了用户的角色,详尽字段信息如表4-20。表4-20用户信息表字段名称种类长度码说明Uno用户编号CHAR14PKU+日期+序号Pno员工编号CHAR14FKNotnullAuthority角色CHAR2Passwd密码VARCHAR20默以为‘123456’(14)ARegulation(考勤制度表)考勤制度表主要储存的是公司的考勤制度,详尽字段信息如表4-21。表4-21考勤制度表字段名称种类长度码说明ARno制度编号CHAR14PKAR+序号ComeTime上午上班时间TIME-NotnullGooffTimepm上午下班时间TIME-NotnullComeTimepm下午上班时间TIME-NotnullGooffTime下午下班时间TIME-NotnullAmemo考勤制度VARCHAR10000(15)ShuDi(属地表)属地表主要储存的是身份证前6位所对应的属地名称的信息,录入员工数据中身份证数据时迅速得出员工性别,年纪,身份属地,诞辰信息,减小因手工输入产生的信息错误概率,详尽字段信息如表4-22。表4-22属地表字段名称种类长度码说明ID编号CHAR6PKNotnullBM属地编号CHAR14NotnullDQ属地名称VARCHAR30Notnull.精选文档(16)Notice(通知表)通知表主要储存的是公司中的一些通知信息,详尽字段信息如表4-23。表4-23通知表字段名称种类长度码说明Nno通知编号CHAR14PKN+日期+序号NTime通知时间Datetime-Title通知标题VARCHAR30NotnullContent通知内容CHAR5000.精选文档四、系统的实现界面设计系统设计中的界面设计不一样于一般的平面设计,拥有自己的设计特色。网页设计应时刻环绕“信息传达”这一主题来进行。界面力争清楚、正确、有力地传达信息。本系统主要采纳的的界面模板主要包含:登录界面、主菜单界面、基本信息设置界面、档案管理界面、查问管理界面、考勤记录管理界面、审察管理界面、汇总统计界面、系统管理设置界面。(1).登录界面运转本系统后,出现如图4-1的登录界面,输入用户名和密码,选择用户角色,点击“登录”按钮,假如输入的信息不正确,会有“用户名或密码错误,请检查!”的错误提示,假如三次登岸错误,会有“你无权使用本系统!”的错误提示,即每次登录,最多同意有三次登录错误的机遇。当全部信息都输入正确后,能够登录到主界面,不用的用户角色进入的主界面中的功能菜单不一样。登录界面同意成效图如图4-1。4-1登录界面.精选文档(2).主菜单界面用户登录后,可进入到如图4-2的主菜单界面,在主菜单界面中,用户能够看到公司中公布的通知信息,这有益于让公司中的员工尽可能快而全面地掌握公司中信息的动向。主菜单界面如图4-2图4-2主菜单界面(3).查问管理界面在主菜单上点击查问菜单下的“告假状况查问”,即可进入到以以下图4-3告假状况查问界面,在界面中输入员工号或员工姓名、部门名称、告假种类等信息,以及选择时间范围的信息,即可进行组合查问以及模糊查问。其余信息的查问功能跟此功能基本一致,在此不再赘述。告假状况查问界面如图4-3。.精选文档图4-3告假状况查问界面(4).信息管理界面信息管理界面包含:基本信息设置界面(图4-4)、档案管理界面(图4-5)、考勤记录管理界面(图4-6)。点击信息管理界面中的“增加”按钮,相应的记录信息将自动编号,在输入相应信息即可。以员工信息管理为例,点击“增加”按钮,编号处将自动填补,编号规则为::“P+年代日+001”,输入省份证号后,回车即可得出性别、年纪、省份属地、诞辰等信息,在部门的编写框处双击,即可得出公司中的部门信息,选择相应的部门,则可在该编写框中得出相应的部门编号,也可手动输入正确的部门编号,职称的填写方式和部门的填写方式同样,再相应地填写其余信息,点击保留,假如信息填写无误,会有“保留成功!”的提示,增加信息完成。同时也可选中相应的员工信息,对其进行删除操作。也可导入/导出Excel表格。其余信息管理的功能跟此功能近似,不再赘述。档案管理界面如图4-4。.精选文档图4-4档案管理界面图4-5基础信息设置界面.精选文档图4-6考勤记录管理界面(5).审批界面在主菜单上点击查问菜单下的“出差审批”,即可进入到出差审批界面,如图4-7。查问出相应的员工出差信息,感觉员工的出差信息无误后即可进行审批,点击“确立”按钮后,会出现“审批完成!”的提示。出差审批界面如图4-7。图4-7审批界面.精选文档(6).统计界面在主菜单上点击查问菜单下的“出差审批”,即可进入到出差审批界面,如图4-8。选择需要统计的初步时间,点击统计,即可获取员工考勤状况的统计表(统计的信息包含:应工作时间(小时),实质工作时间(小时),累计告假时间(半天),累计加班时间(小时),累计出差时间(半天),迟到次数(次),迟到时间累计(小时),早走次数(次),早走时间累计(小时),旷工次数(次),旷工时间累计(小时))。统计需要一些时间,进度条会显示统计的进度。统计界面如图4-8。图4-8统计界面.精选文档系统实现要点技术(1).增加数据时自动编号运转系统时,当需要新增信息时,点击“增加”按钮,即可进行自动对记录的ID进行编号,以实现编号的规范性。增加数据时自动编号的代码以下:自定义函数:依据本来编号bh,结构新编号:年代日+3位序列。functionxbh(bh:string):string;vard0,d1,c:string;begind0:=copy(bh,2,8);//取8位日期数码c:=copy(bh,10,3);//取最后3位数码d1:=formatdatetime('yyyymmdd',now);//获取当日日期ifd0<>d1then//假如不是同一天bh:=d1+'001'//结构当日第一个编号elsebeginc:='00'+inttostr(strtoint(c)+1);//在本来基础上加1bh:=d1+copy(c,length(c)-2,3);//结构编号:日期+3位整数end;xbh:=bh;end;(2).员工信息管理中“增加”按钮的点击事件代码。procedureTDanganForm.SpeedButton1Click(Sender:TObject);varbm:string;beginifadotable1.IsEmptythen.精选文档bm:='P'+formatdatetime('yyyymmdd',now)+'001'//结构第一个编号elsebeginadotable1.Last;bm:=adotable1['Pno'];//读取数据表末端记录的编号bm:='P'+xbh(bm);end;adotable1.Append;//在表尾增加新纪录DBedit11.Text:=bm;//在编写框中填写新编号DBGrid2.Fields[0].Text:=bm;//在表格框中填写新编号DBedit12.SetFocus;//将光标移到填写姓名框end;员工信息增加为例,成效如图4-9。图4-9员工信息增加页面.精选文档(3).输入身份证号回车显示其余有关信息运转系统,增加员工信息时,输入身份证号,回车即可显示该身份证号对应员工的身份属地、性别、年纪及诞辰信息。使用此功能减小了录入信息的人员因失误输入错误信息的概率,保证了信息的正确性。运转成效图如图5-1所示,详尽代码以下:身份证号对应编写框回车事件代码。procedureTDanganForm.DBEdit13KeyPress(Sender:TObject;varKey:Char);constW:array[1..18]ofinteger=(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);//位权A:array[0..10]ofchar=('1','0','x','9','8','7','6','5','4','3','2');//校验码Vari,j,S:integer;NewID,shud:string;da:Tdatetime;kk:boolean;beginkk:=(key=#8)or(key=#13)or(key='x')or(key='X')or(key>=#48)and(key<=#57);ifnotkkthenkey:=#0;//键盘输入过滤掉非身份证号码ifkey=#13thenbeginNewID:=DBedit13.Text;//1.检查长度ifLength(NewID)<>18thenbeginmessageDlg('输入的数字不是18位,请从头输入!',mtError,[mbOK],0);DBedit13.SetFocus;exit;end;.精选文档//2.检查属地ADOquery1.close;ADOquery1.Parameters.ParamByName('sd').Value:=copy(NewID,1,6);//给动向SQL语句赋值ADOquery1.open;//翻开,查问记录ifADOquery1.RecordCount=0then//假如找不到sd同样的记录beginMessageDlg('前面六位数字无效,请检查!',mtinformation,[mbok],0);DBedit13.SetFocus;exit;endelseshud:=ADOquery1.FieldByName('DQ').Value;//获取属地//3.检查年年份i:=strtoint(copy(NewID,7,4));//获取年份if(i<1900)or(i>2020)thenbeginMessageDlg('年份号码无效,请检查!',mtinformation,[mbok],0);DBedit13.SetFocus;exit;end;j:=strtoint(copy(NewID,11,2));//获取月份if(j<1)or(j>12)thenbeginMessageDlg('月份号码无效,请检查!',mtinformation,[mbok],0);DBedit13.SetFocus;exit;.精选文档end;s:=strtoint(copy(NewID,13,2));if(s<1)or(s>31)thenbeginMessageDlg('日数号码无效,请检查!',mtinformation,[mbok],0);DBedit13.SetFocus;exit;end;da:=EncodeDate(i,j,s);//结构诞辰//4.检查校验码s:=0;fori:=1to17dobeginj:=StrToInt(NewID[i])*W[i];s:=s+j;end;s:=smod11;ifNewID[18]='X'thenNewID[18]:='x';//将大写字母X变为小写字母xifNewID[18]<>A[S]thenbeginmessageDlg('校验码错!请从头输入!',mtError,[mbOK],0);showmessagefmt('校验码错!应当是%s!请从头输入!',[A[S]]);DBedit13.SetFocus;exit;end;//5.填写证件的详尽信息ADOTable1.Edit;DBedit16.Text:=shud;//属地.精选文档DBedit17.Text:=formatdatetime('ddddd',da);//诞辰DBedit18.Text:=formatdatetime('yy',date-da);//年纪ifNewID[17]in['1','3','5','7','9']then//以下是鉴别性别DBedit15.Text:='男'elseDBedit15.Text:='女';end;end;(4).导出EXCEL表格运转系统时,能够对系统中的相应数据信息导出到excel表格中,方便用户使用相应的数据信息。将某个数据表导出成Excel表的通用函数functionExportDBGrid(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没有正确安装!','警示',MB_OK);result:=False;exit;end;mainForm.SaveDialog1.DefaultExt:='xls';mainForm.SaveDialog1.FileName:=SheetName;.精选文档elseExit;app.Workbooks.add;app.Visible:=false;Screen.Cursor:=crHourGlass;DBGrid.DataSource.DataSet.First;c:=DBGrid.DataSource.DataSet.FieldCount;r:=DBGrid.DataSource.DataSet.RecordCount;Application.ProcessMessages;fori:=0toc-1doapp.cells(1,1+i):=DBGrid.DataSource.DataSet.Fields[i].DisplayLabel;forj:=1tordobeginfori:=0toc-1doapp.cells(j+1,1+i):=DBGrid.DataSource.DataSet.Fields[i].AsString;DBGrid.DataSource.DataSet.Next;end;ResultFileName:=TempFileName;ifResultFileName=''thenResultFileName:='数据导出';ifFileExists(TempFileName)thenDeleteFile(TempFileName);app.Activeworkbook.saveas(TempFileName);app.Activeworkbook.close(false);app.quit;app:=unassigned;end;2.调用导出Excel数据的函数,“导出Excel表格”按钮的点击事件代码。.精选文档procedureTDanganForm.SpeedButton5Click(Sender:TObject);begintryScreen.Cursor:=crHourGlass;//将鼠标成沙漏状main.ExportDBGrid(DBGrid2,'');//调用函数导出数据finallyScreen.Cursor:=crDefault;//答复鼠标原状end;end;(5).导入EXCEL表格运转系统时,当需要新增大批数据时,能够经过导入Excel表格实现批量增加的操作。注意:需要导入的Excel表格中的数据必定要与数据表中的数据种类一致,不然会出现导入失败的状况。导入Excel表格中数据的代码以下:procedureTDanganForm.SpeedButton9Click(Sender:TObject);varoe:variant;str:string;i,j,n:integer;beginifopendialog1.Executethenopendialog1.DefaultExt:='xls';str:=opendialog1.FileName;oe:=CreateOleObject('Excel.Application');oe.workbooks.open(str);//连结所选定的Excel表n:=oe.Worksheets[1].UsedRange.Rows.Count;//求工作表sheet1中已有数据的行数tryfori:=2tondo//从Excel表第2行开始,逐行读入(假定第一行为表头).精选文档beginADoTable2.Append;//增加空记录forj:=1toADOTable2.fieldcountdoADOTable2.Fields[j-1].Value:=oe.worksheets[1].cells[i,j].value;end;ADoTable2.Refresh;showmessage('导入完成');exceptshowmessage('数据库错误或有重复编号,请检查');end;end;(6).组合查问配合模糊查问组合查问配合模糊查问能够满足查问的各样需求。本系统中多处都实现了组合查问以及模糊查问。以查问告假记录为例,代码以下:查问告假记录,“查问”按钮的事件代码。procedureTSelectForm.SpeedButton3Click(Sender:TObject);varsqlstr:string;begdate:string;enddate:string;beginifComboBox2.Text<>''thenbeginbegdate:=datetostr(DateTimePicker3.date);enddate:=datetostr(DateTimePicker4.date);ifcombobox2.Text='在...日'thensqlstr:='select*fromLeave_Per_DwhereStarTime>='''+begdate+andStarTime<'''+datetostr(DateTimePicker3.date+1)+'''andPnolike''%'+edit4.text+'%''andPnamelike''%'+edit10.Text+'%''andDnamelike''%'+edit9.Text+'%''andLTnamelike''%'+edit17.Text+'%'''.精选文档elseifcombobox2.Text='在...前'thensqlstr:='select*fromLeave_Per_DwhereStarTime<='''+begdate+andPnolike''%'+edit4.text+'%''andPnamelike''%'+edit10.Text+'%''andDnamelike''%'+edit9.Text+'%''andLTnamelike''%'+edit17.Text+'%'''elseifcombobox2.Text='在...后'thensqlstr:='select*fromLeave_Per_DwhereStarTime>='''+begdate+andPnolike''%'+edit4.text+'%''andPnamelike''%'+edit10.Text+'%''andDnamelike''%'+edit9.Text+'%''andLTnamelike''%'+edit17.Text+'%'''elseifcombobox2.Text='在...间'thensqlstr:='select*fromLeave_Per_DwhereStarTime>='''+begdate+andStarTime<='''+enddate+'''andPnolike''%'+edit4.text+'%''andPnamelike''%'+edit10.Text+'%''andDnamelike''%'+edit9.Text+'%''andLTnamelike''%'+edit17.Text+'%''';endelsesqlstr:='select*fromLeave_Per_DwherePnolike''%'+edit4.text+'%''andPnamelike''%'+edit10.Text+'%''andDnamelike''%'+edit9.Text+'%''andLTnamelike''%'+edit17.Text+'%''';ADOQuery2.Close;ADOQuery2.SQL.Clear;ADOQuery2.SQL.Add(sqlstr);ADOQuery2.open;end;查问成效如图4-10。.精选文档图4-10告假查问成效图(7).汇总统计运转本系统时,选择需要统计的初步时间,点击统计,即可获取员工考勤状况的统计表(统计的信息包含:应工作时间(小时),实质工作时间(小时),累计告假时间(半天),累计加班时间(小时),累计出差时间(半天),迟到次数(次),迟到时间累计(小时),早走次数(次),早走时间累计(小时),旷工次数(次),旷工时间累计(小时))。详尽代码以下:1.“统计”按钮事件代码。procedureTHuizForm.SpeedButton2Click(Sender:TObject);varbm,Pno,ARno:string;//保留员工号i,j,n,counter:integer;//用于循环和计数Time:Array[0..3]ofTTime;//保留上下班时间//Hour:array[0..1]ofdouble;//保留上下午工作时间//a:double;Hour:array[0..1]ofinteger;a:integer;StartTime,EndTime:TDate;//保留始末时间.精选文档TimeStamp,Late_Time,Early_Time,Work_Start,Work_end:TDateTime;//保留中间判断时间Late,Early,Absent,Leave,Errand:Boolean;//保留判断结果WorkHour,OverHour,LeaveHDay,ErrandHDay,LateTime,EarlyTime,AbsentTime,ActualTime:Integer;//保留时间间隔长度LateTimes,EarlyTimes,AbsentTimes:SmallInt;Temp:String;beginTime[0]:=strtotime(DanganForm.ADOTable4['ComeTime']);Time[1]:=strtotime(DanganForm.ADOTable4['GooffTimepm']);Time[2]:=strtotime(DanganForm.ADOTable4['ComeTimepm']);Time[3]:=strtotime(DanganForm.ADOTable4['GooffTime']);Hour[0]:=Round((Time[1]-Time[0])*24);//上午工作时间Hour[1]:=Round((Time[3]-Time[2])*24);//下午工作时间a:=Hour[0]+Hour[1];//一天工作时间ARno:=DanganForm.ADOTable4['ARno'];StartTime:=DateTimePicker1.Date;EndTime:=DateTimePicker2.Date;begin//提取员工列表T_person.Filtered:=True;T_person.Open;n:=T_person.RecordCount;i:=0;Gauge1.Progress:=0;T_person.First;whilenotT_person.Eofdobegin.精选文档//获拿出勤记录Pno:=T_person['Pno'];Q_attend.Close;Q_attend.Parameters.ParamValues['Pno']:=Pno;Q_attend.Parameters.ParamValues['STARTTIME']:=StartTime;Q_attend.Parameters.ParamValues['ENDTIME']:=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;whileTimeStamp<EndTime+0.1dobeginif(DayOfWeek(TimeStamp)<>1)and(DayOfWeek(TimeStamp)<>7)thenbeginActualTime:=ActualTime+a;forj:=0to1do//遍历班次beginLate_Time:=TimeStamp+Time[2*j];.精选文档Early_Time:=TimeStamp+Time[2*j+1];//判断能否告假Q_leave.Close;Q_leave.Parameters.ParamValues['Pno']:=Pno;Q_leave.Parameters.ParamValues['STARTTIME']:=Late_Time;Q_leave.Parameters.ParamValues['ENDTIME']:=Early_Time;Q_leave.Open;Leave:=(Q_leave.RecordCount>0);//判断能否出差Q_errand.Close;Q_errand.Parameters.ParamValues['Pno']:=Pno;Q_errand.Parameters.ParamValues['STARTTIME']:=Late_Time;Q_errand.Parameters.ParamValues['ENDTIME']:=Early_Time;Q_errand.Open;errand:=(Q_leave.RecordCount>0);ifleavethen//告假Inc(LeaveHDay)elseiferrandthen//出差beginInc(ErrandHDay);WorkHour:=WorkHour+Hour[j];endelse//正常上班beginWork_start:=Late_Time;Work_end:=Early_Time;Late:=True;Absent:=False;//判断能否迟到.精选文档while(notQ_attend.Eof)and(Q_attend['IOTime']<=Late_Time)dobeginLate:=(Q_attend['InOut']='O');Q_attend.Next;end;//判断能否旷工ifLatethenbeginif(notQ_attend.Eof)and(Q_attend['IOTime']<Early_Time)thenbeginWork_start:=Q_attend['IOTime'];//记录迟到时间LateTime:=LateTime+Round((Work_Start-Late_Time)*24);endelseAbsent:=True;AbsentTime:=AbsentTime+Round((Early_Time-Late_Time)*24);end;Early:=False;//判断能否早走while(notQ_attend.Eof)and(Q_attend['IOTime']<Early_Time)dobeginEarly:=(Q_attend['InOut']='O');ifEarlythenbeginWork_end:=Q_attend['IOTime'];EarlyTime:=EarlyTime+Round((Early_Time-Late_Time)*24);endelseWork_end:=Early_Time;Q_attend.Next;.精选文档end;ifAbsentthenInc(AbsentTimes)elsebeginifLatethenInc(LateTimes);ifEarlythenInc(EarlyTimes);WorkHour:=WorkHour+Round((Work_end-Work_start)*24);//计算实质工作时间end;end;//一个班次判断结束end;//下一班次end;//能否歇息日TimeStamp:=TimeStamp+1;//推动一天end;//后一天考勤//统计加班时间Q_overtime.Close;Q_overtime.Parameters.ParamValues['Pno']:=Pno;Q_overtime.Parameters.ParamValues['STARTTIME']:=StartTime;Q_overtime.Parameters.ParamValues['ENDTIME']:=EndTime;Q_overtime.Open;try//OverHour:=7;OverHour:=Q_overtime['SUM'];exceptOverHour:=0;end;.精选文档//增加/改正考勤记录ifADOTable1.IsEmptythenbm:='G'+formatdatetime('yyyymmdd',now)+'001'//结构第一个编号elsebeginADOTable1.Last;bm:=ADOTable1['ACno'];
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夏季游泳防溺水安全知识课件
- 大学生心理健康教育
- 电力工程造价从业人员专业能力评价考试(专业技术公共基础)考前模拟试题(湖北省宜昌市2025年)
- 员工激励方案设计与实施策略
- 商业计划书撰写与投资对接
- 2026年社区网格员安全生产考试试题及答案
- 2026年教育心理学试题及答案专升本
- 【备考2026】陕西省中考模拟数学试卷1(含解析)
- 2026年备考施工员之设备安装施工基础知识通关试题库(有答案)
- 《公共机构节能改造项目效果评价》
- 2025统编版(2024)小学道德与法治一年级下册教学设计(附目录)
- 幼儿园财务知识培训课件
- 美食文化与旅游
- 粉煤灰市场调研报告
- 人工智能导论知到智慧树章节测试课后答案2024年秋哈尔滨工程大学
- 1.5mm土工膜检测报告及首页签收单
- GB/T 44824-2024双向拉伸聚乳酸薄膜
- 四肢瘫痪护理问题及措施
- AQT 1065-2008 钻屑瓦斯解吸指标测定方法(正式版)
- 高端医疗险培训课件
- 铁路专用线设计规范(试行)(TB 10638-2019)
评论
0/150
提交评论