员工考勤管理系统设计 33页

  • 973.50 KB
  • 2022-05-17 12:57:03 发布

员工考勤管理系统设计

  • 33页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
指导老师:田永晔员工考勤管理系统设计人:胡玲目录1.引言12.系统分析12.1系统需求分析12.2解决方案设计12.3系统功能分析23.数据库设计24.主程序模块45.系统相关表单的设计实现55.1"登录系统"表单55.2"关于"表单85.3用户设置95.4"日常操作"表单115.5信息管理表单145.6记录查询功能表单255.7系统打印功能266.系统主菜单的设计286.1创建系统菜单286.2创建系统主表单297.系统的运行和维护30后记31参考文献32-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲1.引言随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对员工出勤管理,具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高员工考勤管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。员工考勤信息管理系统是一个中小型企业单位不可缺少的部分,它的内容对于中小企业的决策者和管理者来说都至关重要,因此,开发一个代替手工操作的新型的计算机管理的员工考勤管理系统对企业和公司来说刻不容缓,这就是本课题的由来。2.系统分析2.1系统需求分析员工考勤管理系统是员工对考勤实行了信息化管理,员工考勤管理中主要涉及的管理任务有4个方面:部门信息管理、员工基本信息管理、考勤信息管理、以及加班信息管理。因此,我使用VisualFoxPro6.0数据库做了员工考勤管理系统。员工考勤系统的目的是为实现员工考勤数据采集、数据统计和信息查询过程的自动化,完善人事管理现代化,方便员工上班报到,方便管理人员统计、了解员工出勤情况,方便管理部门查询,准确地掌握员工出勤情况,有效地管理、掌握人员流动情况。2.2解决方案设计解决企业员工的管理的复杂性,根据上面的功能,得出系统总体基本功能设计模块如图1、图2所示:图1系统总体功能设计-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲图2记录打印功能设计2.3系统功能分析该系统要实现的功能如下:1、部门信息管理功能:企业部门信息的添加、修改和删除。2、员工管理功能:企业员工的信息如员工编号、姓名、性别、婚否、部门号等信息的添加、修改、删除、查询和打印。3、员工考勤记录管理:对员工的考勤进行记录,记录某一员工在一个时间段的出勤情况,并对记录的考勤进行浏览、修改和删除。4、员工加班记录管理:记录一个员工加班的时间,对记录进行浏览、修改和删除。5、记录查询:对员工信息、考勤记录和加班记录进行查询。6、信息打印:员工信息、部门信息的报表打印以及加班记录、考勤记录报表的打印。7、系统功能:系统用户的添加、删除功能。3.数据库设计数据库中表的设计:1、系统帐号表系统帐号表主要存储系统帐户信息,如用户登录的用户名、密码及访问权限,见表1表1“系统用户”表字段名数据类型说明用户名字符型字符宽度12,主索引字段密码字符型字符宽度12权限字符型字符宽度22、员工基本信息表员工基本信息表存储员工的基本信息数据,如员工号、姓名、性别、学历等,见表2:-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲表2"员工基本信息"表字段名数据类型说明员工号字符型字符宽度6,主索引姓名字符型字符宽度20性别字符型字符宽度4学历字符型字符宽度10所在部门字符型字符宽度6籍贯字符型字符宽度30民族字符型字符宽度12婚姻字符型字符宽度4生日日期型字符宽度8身份证字符型字符宽度18电话字符型字符宽度14住址字符型字符宽度30邮编字符型字符宽度63、部门基本信息表部门基本信息表主要存储部门的基本信息,如部门号、部门名称、员工人数等,见表3:表3"部门基本信息"表字段名数据类型说明部门号字符型字符宽度5,主索引字段部门名称字符型字符宽度20员工人数数值型字符宽度4上班制度字符型字符宽度104、考勤记录表主要记录员工的考勤基本信息,如员工号、考勤编号、考勤状况等,见表4:表4"考勤记录"表字段名数据类型说明考勤编号字符型字符宽度12,主索引字段员工号字符型字符宽度6考勤状况字符型字符宽度4考勤日期日期型字符宽度8考勤时段字符型字符宽度45、加班记录表加班记录表主要记录员工的加班记录,如加班的编号、员工号、开始时间等,见表5:表5"加班记录"表字段名数据类型说明-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲加班编号字符型字符宽度6,主索引字段员工号字符型字符宽度6开始时间日期时间型字符宽度8结束时间日期时间型字符宽度8加班时长数值型字符宽度4系统中各自由表在VisualFoxPro数据库中的联系图:图3员工考勤管理系统中表的关系4.主程序模块在进行VFP6.0应用程序开发,需要对应用程序进行的系统环境进行设置,以保证应用程序的正常运行。这些系统环境的基本设置可以在菜单"工具"|"选项"的对话框中设置。但是对于不同的应用程序,所需要的系统环境的设置还有所区别,例如控制显示程序命令运行结果、设置日期表达方式、设置操作窗口的显示形式和标题等,对于这些更加具体的环境设置,一般在应用程序的主程序中通过编程来实现这些设置。编写主程序,可以按以下步骤来进行:⑴项目管理器中单击"代码"选项按钮,打开"代码"选项卡,如图4所示:-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲图4"代码"选项卡⑵选定"程序"列表项,此时屏幕上弹出名为"程序1"的文本框,在这里编写程序,程序文件的扩展名为.prg。系统主程序的功能是进行前期的系统处理工作,设置系统的工作环境,包括隐藏主表单,调用"系统登录"表单。主程序如下:CLOSEALLCLEARALLSETCENTURYON&&显示四位年代SETHOURSTO24&&用24小时制显示时间PUBLICTJ&&声明全局全变量PUBLICQX_SCREEN.VISIBLE=.F.DOFORM员工考勤管理系统logo.scx&&执行logo表单READEVENTS5.系统相关表单的设计实现5.1"登录系统"表单5.1.1创建表单运行主程序之后,进入到登录系统表单,它的功能是进行用户验证,如果用户名和密码都正确,则登录成功,如果用户登录次数达三次以上的则自动退出系统。"登录系统"表单如图5所示,表单的属性设置如表6所示。-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲图5"登录系统"表单表6"登录系统"表单属性属性属性值AutoCenter.T.BordeStyle3——可调边框Caption登录系统Closable.T.Icon胡玲员工考勤管理系统clock03.icoMDIForm.T.MaxButton.F.MinButton.F.NameLogoPicture胡玲员工考勤管理系统img777.jpgShowWindow2—作为顶层表单ShowTips.T.TitleBar1—打开WindowType1—模式设置完表单属性,添加表单的数据环境,该表单的数据环境是添加"account"表,表单由六个标签控件、两个文本框控件组成。这些控件的属性设置如表7所示。表7"系统帐号"控件属性控件属性属性说明标签控件Autosize.T.Backcolor0–透明Fontblod.T.Fontsize16Fontname楷体LbltitleCaption欢迎进入考勤管理系统Label1Caption用户名Label3Caption密码Command1Caption确定Command2Caption取消文本框控件Fontsize9Height37Width73Txt密码Passwordchar*-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲5.1.2实现代码表单属性设置完之后,要让表单能正常执行,需要"确定"按钮的单击次数,要添加一个表单属性。添加的方法是在VISUALFOXPRO主窗口中单击"表单"|"新建属性"选项,在弹出新建属性窗口中输入要添加的属性名称,然后在属性窗口中找到刚才添加的属性,并将其初始化为0,一定要初始化,否则在使用时会弹出"数据类型不匹配"之类的错误。因为新建的属性默认数据类型为逻辑型,如果对其赋以类型值就会出错。"确定"按钮的功能是判断表单中帐号和密码输入的是否与帐号的数据一致,如果输入正确则进入系统,反之则弹出警告窗口。"确定"按钮的click事件代码如下:SETEXACTON&&改为精确比较thisform.i=thisform.i+1&&次数自动加1SELECTaccountLOCATEFORALLTRIM(用户名)=ALLTRIM(THISFORM.txt用户名.value)&&查找帐号IFFOUND()ANDALLTRIM(密码)=ALLTRIM(Thisform.txt密码.value)THISFORM.RELEASEqx=account.权限DOFORMMAINELSEIFTHISFORM.I<3&&如果次数小于3MESSAGEBOX("用户名或密码错误,请重新输入",48,"系统警告")THISFORM.txt用户名.VALUE=""THISFORM.txt密码.VALUE=""THISFORM.txt用户名.SETFOCUSELSE&&如果已登录三次MESSAGEBOX("密码错误三次,系统无法启动",48,"系统警告")THISFORM.RELEASE&&退出表单、退出系统CLEARQUITENDIFENDIFSETEXACTOFF&&改为模糊比较5.2"关于"表单5.2.1创建表单创建"关于"表单,这个表单是关于制作人相关信息的介绍,包括制作人的姓名及指导老师,设计好的表单如图6所示:-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲图6"关于"表单添加表单控件,该表单的控件主要包括五个标签控件和一个计时器控件。表单及其属性设置如表8所示。表8"关于"表单控件属性控件属性属性说明AboutAutoCenter.T.Borderstyle2-固定对话框Caption关于Closable.T.Controlbox.T.Icon胡玲员工考勤管理系统clock03.icoMaxbutton.F.MdiForm.T.Minbutton.F.NameaboutShowWindow1-在顶层表单中ShowTip.T.WindowState0-普通WindowType1-模式TimerlInterval60CmdreturnCaption返回MouseIcon胡玲员工考勤管理系统h_point.cur5.2.2实现代码-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲"关于"表单中的标题在运行时可以移动,要实现这个功能需要用到计时器控件,标题移动的速度由计时器控件(Timer1)的Interval属性来控制,Interval属性的作用是在到了其设定值的时候执行一遍计时器的TimerEvent事件。Timer1的TimerEvent事件的代码如下:IFTHISFORM.lbltitle.LEFT<0-THISFORM.lbltitle.WIDTHTHISFORM.lbltitle.LEFT=THISFORM.WIDTHENDIFTHISFORM.lbltitle.LEFT=THISFORM.lbltitle.LEFT-15.3用户设置5.3.1创建表单创建"用户设置"表单,这个表单主要实现了用户的添加、和删除,设计好的表单如图7所示:图7"用户设置"表单添加表单控件,该表单的控件主要包括一个页面空间包括两个页面(添加用户和删除用户)、五个命令按钮、五个标签控件、四个文本框和一个组合框。表单及其属性设置如表9所示:表9"用户设置"表单控件属性控件属性属性说明name1name1AutoCenter.T.Borderstyle2-固定对话框Caption用户设置Controlbox.T.Icon胡玲员工考勤管理系统clock03.icoShowWindow1-在顶层表单中WindowState0-普通WindowType1-模式-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲5.3.2实现代码在"添加用户"页面的确定按钮的Click事件中添加代码如下:nname=alltrim(thisform.name1.page1.text1.value)password1=alltrim(thisform.name1.page1.text2.value)ifalltrim(thisform.name1.page1.text2.value)!=alltrim(thisform.name1.page1.text3.value)messagebox("用户密码输入有误",48,"信息窗口")thisform.name1.page1.text2.value=""thisform.name1.page1.text3.value=""elseappendblankreplace用户名withnnamereplace密码withpassword1replace权限withalltrim(thisform.name1.page1.text4.value)messagebox("添加用户成功",48,"信息窗口")thisform.name1.page1.text1.value=""thisform.name1.page1.text2.value=""thisform.name1.page1.text3.value=""endif在"添加用户"页面的放弃按钮的Click事件中添加代码如下:thisform.name1.page1.text1.value=""thisform.name1.page1.text2.value=""thisform.name1.page1.text3.value=""thisform.name1.page1.text4.value=""在"添加用户"页面的退出按钮的Click事件中添加代码如下:thisform.release在"删除用户"页面的确定按钮的Click事件中添加代码如下:nname=alltrim(thisform.name1.page2.combo1.value)cname=alltrim(thisform.name1.page2.combo1.text)yn=messagebox("确实要删除吗?",4+32,"信息窗口")seleaccountuseaccountexclusiveifyn=6deletefromaccountwhere用户名=nnamepackmessagebox("成功删除用户"+cname,48,"信息窗口")thisform.name1.page2.combo1.value=""endif-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲5.4"日常操作"表单5.4.1创建表单在项目管理器中新建"日常操作"的表单,该表单是对员工的考勤及加班情况进行记录,如图8所示:图8"日常操作"表单表单创建好后,将员工表、加班表和考勤表添加到数据环境中。表单的属性如表10所示:表10"日常操作"表单属性设置属性属性值AutoCenter.T.BordeStyle2—固定对话框Caption日常操作Closable.T.Icon胡玲员工考勤管理系统clock03.icoNameForm1ShowWindow1—在顶层表单中如大家所见,日常操作包含有加班和考勤两个页面,在这里主要向大家介绍下考勤页面的功能实现。从数据环境中向表单中添加要显示的字段,添加多个标签控件、四个文本框控件、三个组合框控件及两个按钮控件,它们的属性设置如表11:。表11"加班管理"表单控件属性设置控件属性属性说明字段标签控件Autosize.T.Backstyle0-透明Fontbold.T.FontName楷体-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲FontSize16Fontsize12Fontname楷体Cmb员工号ControlSourceyuangong.员工号RowSourceType6-字段style2-下拉列表框Text1BackStyle0-透明ControlsoureYuangong.性别FontSize12Text2BackStyle0-透明FontSize12Value=date()Controlsoureyuangong.姓名FontSize12“确认”按钮FontName楷体FontSize12“取消”按钮FontName楷体FontSize125.4.2实现代码在page1的"确认"按钮的Click事件中添加代码如下:Ifthisform.pageframe1.page1.Combo2.value!="上午"andthisform.pageframe1.page1.Combo2.value!="下午"MESSAGEBOX("考勤时段不能为空",48,"考勤系统警告")THISFORM.pageframe1.page1.Combo2.SETFOCUS()elseifalltrim(thisform.pageframe1.page1.cmb考勤状况.value)!="正常"andalltrim(thisform.pageframe1.page1.cmb考勤状况.value)!="迟到"andalltrim(thisform.pageframe1.page1.cmb考勤状况.value)!="事假";andalltrim(thisform.pageframe1.page1.cmb考勤状况.value)!="病假"andalltrim(thisform.pageframe1.page1.cmb考勤状况.value)!="缺勤"andalltrim(thisform.pageframe1.page1.cmb考勤状况.value)!="休息"MESSAGEBOX("考勤状况不能为空",48,"考勤系统警告")THISFORM.pageframe1.page1.cmb考勤状况.SETFOCUS()elseselectKAOQINGOBOTTOM-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲BH=KAOQIN.考勤编号BH=RIGHT(BH,3)&&取得末记录的记录编号的后四位BH=VAL(BH)+1&&把后四位转化为数值型DOCASECASEBH>99&&连结新的字符串,记录编号自动加1BH=STR(BH,3)CASEBH>9BH=STR(BH,2)BH="0"+BHOTHERWISEBH=STR(BH,1)BH="00"+BHENDCASEBH=DTOS(DATE())+BH&&考勤编号由日期、考勤时段、编号组成appendblankreplace考勤编号withBHreplace员工号withalltr(thisform.pageframe1.page1.combo1.value)replace考勤状况withalltr(thisform.pageframe1.page1.cmb考勤状况.value)replace考勤日期withdate()replace考勤时段withalltr(thisform.pageframe1.page1.Combo2.value)MESSAGEBOX("添加成功",64,"考勤系统信息")endifendif在page2的"确认"按钮的Click事件中添加代码如下:LOCALBH&&声明本地变量来保存编号SELECTJIABAN&&选择工作区GOBOTTOM&&到末记录BH=JIABAN.加班编号BH=RIGHT(BH,4)&&取得末记录的记录编号的后四位BH=VAL(BH)+1&&把后四位转化为数值型DOCASECASEBH>999&&连结新的字符串,记录编号自动加1BH=STR(BH,4)BH="JB"+BHCASEBH>99BH=STR(BH,3)BH="JB0"+BHCASEBH>9-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲BH=STR(BH,2)BH="JB00"+BHOTHERWISEBH=STR(BH,1)BH="JB000"+BHENDCASEappendblankreplace加班编号withBHreplacejiaban.员工号withthisform.pageframe1.page2.cmb员工号.valuereplace开始时间withthisform.pageframe1.page2.text1.valuereplace结束时间withthisform.pageframe1.page2.text2.valuereplace加班时长withthisform.pageframe1.page2.text3.value(thisform.pageframe1.page2.text2.value-thisform.pageframe1.page2.text1.value)/3600MESSAGEBOX("加班管理添加成功",64,"考勤系统信息")5.5信息管理表单这个功能模块包括"员工信息管理"表单、"部门信息管理"表单、"考勤记录"表单、"加班记录"表单4个表单组成,在此仅列举其中的两个表单的制作加以解说。5.5.1新建"员工信息管理"的表单在数据环境中添加"员工基本信息"表和"部门基本信息"表,并把"员工基本信息"表中的"所在部门"和"部门基本信息"表中的"部门名称"关联起来,如下图:。图9“员工信息管理”表单表单中用到多个标签控件和文本框控件,表单控件的属性设置在此省略。设置"员工信息管理"表单的属性如表12所示。表12"员工信息管理"表单属性-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲属性属性值AutoCenter.T.BordeStyle2—固定对话框Caption员工信息管理Closable.T.ControlBox.T.Height400Icon胡玲员工考勤管理系统clock03.icoModiform.T.MaxButton.F.MinButton.F.NameYgadminShowTips.T.ShowWindow1—在顶层表单中WingdowType1—模式5.5.2实现代码表单有浏览、新增和修改三种状态,而在表单中表现为文本框是否可用,所以为控制表单要新建方法属性:Modmod和Modpre。其中Modmod方法属性使表单进入浏览状态,Modpre方法属性使表单进入非浏览状态。同时,还需要在表单添加一个属性Oldrecord,并将其设置为1。Modpre方法属性的代码如下:THISFORM.txt姓名.READONLY=.T.THISFORM.cmb性别.ENABLED=.F.THISFORM.cmb学历.ENABLED=.F.THISFORM.cmb婚否.ENABLED=.F.THISFORM.cmb民族.ENABLED=.F.THISFORM.cmb所在部门.ENABLED=.F.THISFORM.txt籍贯.READONLY=.T.THISFORM.txt电话.READONLY=.T.THISFORM.txt身份证.READONLY=.T.THISFORM.txt住址.READONLY=.T.THISFORM.txt邮编.READONLY=.T.THISFORM.ygadmmr.ENABLED=.T.THISFORM.ygadmabg.cmdadd.ENABLED=.T.THISFORM.ygadmabg.cmdmod.ENABLED=.T.THISFORM.ygadmabg.cmddel.ENABLED=.T.THISFORM.ygadmabg.cmdser.ENABLED=.T.-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲THISFORM.ygadmabg.cmdpri.ENABLED=.T.THISFORM.ygadmabg.cmdsave.ENABLED=.F.THISFORM.ygadmabg.cmdcancel.ENABLED=.F.THISFORM.ygadmabg.cmdexit.ENABLED=.T.Modmod方法属性的代码如下:THISFORM.txt姓名.READONLY=.F.THISFORM.cmb性别.ENABLED=.T.THISFORM.cmb学历.ENABLED=.T.THISFORM.cmb婚否.ENABLED=.T.THISFORM.cmb民族.ENABLED=.T.THISFORM.cmb所在部门.ENABLED=.T.THISFORM.txt籍贯.READONLY=.F.THISFORM.txt电话.READONLY=.F.THISFORM.txt身份证.READONLY=.F.THISFORM.txt住址.READONLY=.F.THISFORM.txt邮编.READONLY=.F.THISFORM.ygadmmr.ENABLED=.F.THISFORM.ygadmabg.cmdadd.ENABLED=.F.THISFORM.ygadmabg.cmdmod.ENABLED=.F.THISFORM.ygadmabg.cmddel.ENABLED=.F.THISFORM.ygadmabg.cmdser.ENABLED=.F.THISFORM.ygadmabg.cmdpri.ENABLED=.F.THISFORM.ygadmabg.cmdsave.ENABLED=.T.THISFORM.ygadmabg.cmdcancel.ENABLED=.T.THISFORM.ygadmabg.cmdexit.ENABLED=.F.表单在初始化时先将数据环境中的员工信息表取消过滤条件,然后使表单进入浏览状态,需要在表单的Init事件中进行设置。表单的Init事件的代码如下:SELECTYUANGONGSETFILTERTOTHISFORM.MODPRE()THISFORM.REFRESH()表单中选择部门时,要在表单的部门名称和上班制度栏显示相应信息,需要添加Cmb所在部门的Valid事件代码,其代码如下:THISFORM.REFRESH()表单中生日栏是只读的,在Modmod方法属性中没有将属性去掉,意味着生日栏是不可用的。因为将从填入的身份证号中取得生日信息,18位身份证从第7位起是生日的年月日。TXT生日栏Valid事件代码如下:LOCALSID&&声明一个全局变量-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲SID=THIS.VALUEDYEAR=SUBSTR(SID,7,4)&&从第7位起取4位作为年DMONTH=SUBSTR(SID,11,2)&&从第11位起取2位作为年DDAY=SUBSTR(SID,13,2)&&从第13位起取2位作为年BIRTH=DMONTH+"/"+DDAY+"/"+DYEAR&&连接月日年BIRTH=CTOD(BIRTH)&&将月日年装换成日期型THISFORM.TXT生日.VALUE=BIRTHTHISFORM.TXT生日.REFRESH()"添加"按钮的作用是在表单中的数据缓冲区新建一个记录,使原编号自动加1,并使标定进入非浏览状态。"添加"按钮的Click事件代码如下:LOCALBH&&声明本地变量来保存编号SELECTYUANGONG&&选择工作区THISFORM.OLDRECORD=RECNO()GOBOTTOM&&到末记录BH=YUANGONG.员工号APPENDBLANK&&添加新的记录BH=RIGHT(BH,4)&&取得末记录的记录编号的后四位BH=VAL(BH)+1&&把后四位转化为数值型DOCASECASEBH>999&&连结新的字符串,记录编号自动加1BH=STR(BH,4)BH="TR"+BHCASEBH>99BH=STR(BH,3)BH="TR0"+BHCASEBH>9BH=STR(BH,2)BH="TR00"+BHOTHERWISEBH=STR(BH,1)BH="TR000"+BHENDCASETHISFORM.TXT员工号.VALUE=BH&&显示员工号THISFORM.txt姓名.SETFOCUS()THISFORM.MODMOD()&&表单进入非浏览状态THISFORM.REFRESH()"修改"按钮的作用是保存表单中当前记录,使表单进入修改状态,并刷新表单。"修改"按钮的Click事件的代码如下:-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲THISFORM.OLDRECORD=RECNO()THISFORM.MODMOD()THISFORM.REFRESH()"删除"按钮的作用是删除表单中的当前记录,同时移动记录指针到数据表的首记录,并刷新表单。"删除"按钮的Click事件代码如下:YN=MESSAGEBOX("确定删除",4+32,"考勤系统提示")IFYN=6DELETEPACKMESSAGEBOX("删除成功",64,"考勤系统提示")GOTOPTHISFORM.REFRESH()ENDIF"查询"按钮的作用是调用一个输入查询条件的表单,查询功能将在这个表单完成。"查询"按钮的Click事件的代码如下:DOFORMYGSER"打印"按钮的作用是将表单中当前记录的员工号作为参数传递给员工信息标签。"打印"按钮的Click事件代码如下:LABELFORMYGINFOFOR员工号=THISFORM.txt员工号.VALUEPREVIEW"保存"按钮的作用是将表单中必添的数据在正确的情况下保存到数据表中。"保存"按钮的Click事件代码如下:LOCALOK,BHNUMOK=.T.DOCASECASEEMPTY(ALLTRIM(THISFORM.txt姓名.VALUE))&&如果姓名栏为空MESSAGEBOX("姓名不能为空",48,"考勤系统警告")THISFORM.txt姓名.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.cmb性别.VALUE))&&如果性别栏为空MESSAGEBOX("性别不能为空",48,"考勤系统警告")THISFORM.cmb性别.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.cmb婚否.VALUE))&&如果婚姻栏为空MESSAGEBOX("婚姻状况不能为空",48,"考勤系统警告")THISFORM.cmb婚否.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.cmb所在部门.VALUE))&&如果部门栏为空MESSAGEBOX("所在部门不能为空",48,"考勤系统警告")THISFORM.cmb所在部门.SETFOCUS()-32- 指导老师:田永晔员工考勤管理系统设计人:胡玲OK=.F.CASEEMPTY(ALLTRIM(THISFORM.txt电话.VALUE))&&如果电话栏为空MESSAGEBOX("电话不能为空",48,"考勤系统警告")THISFORM.txt电话.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.txt身份证.VALUE))&&如果身份证栏为空MESSAGEBOX("身份证不能为空",48,"考勤系统警告")THISFORM.txt身份证.SETFOCUS()OK=.F.CASELEN(ALLTRIM(THISFORM.txt身份证.VALUE))<18&&如果身份证位数小于18MESSAGEBOX("身份证号位数错误",48,"考勤系统警告")THISFORM.txt身份证.SETFOCUS()OK=.F.CASETHISFORM.txt员工号.VALUE>DATE()-18*365ORTHISFORM.txt生日.VALUE=DATA()-30ANDTTOD(开始时间)<=DATEPREVIEW-月内考勤记录(=DATE()-30AND考勤日期<=DATE()PREVIEW按员工分组(=DATE()-30AND考勤日期<=DATE()PREVIEW-员工信息标签(