版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
考勤管理系统设计与实现摘要随着当代科学技术发展,越来越多公司和公司对职工考勤都实行了信息化管理,使用计算机系统代替复杂手工方式来管理考勤事务。考勤管理系统可以有效地管理公司员工出勤状况,规范人事制度管理,保证公司正常工作,是人力资源管理重要构成某些。系统开发重要涉及后台数据库建立,维护以及前端应用程序开发两个方面,重要模块涉及基本信息管理模块,考勤信息管理模块,记录查询模块和系统顾客管理模块。系统是使用VisualC++开发语言,使用MicrosoftVisualStudio6.0作为工具软件,数据库为SQLServer。系统采用当前比较流行ADO数据访问技术,并将每个数据库表字段和操作封装到类中,它使应用程序各个窗口都可以共享对表操作,不需要重复编码,使程序更加易于维护,从而将面向对象程序设计思想应用到数据库应用程序中。核心词:考勤管理;人力资源;数据库;数据访问技术DesignandRealizationofAttendanceManagementSystemAbstractAlongwiththedevelopmentofthemodernscienceandtechnology,moreandmorecompaniesandenterprisesimplementedtheinformationmanagementtothestaff'scheckingattendance,andusecomputersysteminsteadofthecomplexmanualwaytomanagethecheckingattendancebusiness.Thecheckingattendancemanagementsystemmayeffectivelymanagethestaff'sgoingoutondutysituation,Standardpersonnelsystemmanagement,Guaranteesthecompanynormalwork.ItistheimportantpartofhumanresourcesmanagementThedevelopmentofthissystemmainlyincludestwoaspects:theestablishmentofthebackstagedatabaseandthedevelopmentofthefront-sideapplication.Thissystemcontainsfollowingseveralmodules:thebasicinformationmanagementmodule,theattendanceinformationmanagementmodule,thestatisticalinquirymoduleandthesystemuseradministrationmodule.VisualC++andSQLServerareusedinthedevelopmentofthesystem.ThesystemusesthepopularADOtechnology,andencapsulatesthefieldsandtheoperationsofeachtableintosomeclasses.Itcausestheoperationwhichtheapplicationprocedureeachwindowallcansharesynchronizestables.Ithasnotrepeatcodes,andmakestheapplicationtobeeasiertomaintain.Bythisway,theideaofobject-orientedprogrammingwillbeappliedinthedatabaseapplication..Keywords:Attendancemanagement;Humanresources;Database;Dataaccesstechnology目录论文总页数:26页1 引言 11.1 课题背景 11.2 本课题研究意义 11.3 本课题研究办法 12 开发工具 22.1 VisualC++6.0 22.2 SQLServer 23 考勤管理系统设计 33.1 需求分析 33.2 功能模块构成 33.3 数据库构造设计 44 考勤管理系统实现 64.1 系统登陆功能实现 64.2 基本信息管理模块 74.2.1 节假日信息管理 74.2.2 部门信息管理 84.2.3 员工信息管理 94.3 考勤管理模块 114.3.1 出勤信息管理 114.3.2 加班信息管理 134.3.3 请假信息管理 144.3.4 出差信息管理 164.4 记录查询模块 174.4.1 日考勤登记表 174.4.2 月考勤登记表 184.4.3 当天考勤人员列表 204.5 顾客管理模块 21结论 23参照文献 24致谢 25声明 26引言课题背景无论公司还是公司,都会涉及到对职工考勤管理。考勤管理在生产管理过程中充当着一种十分重要角色,考勤管理效率对生产效果起着举足轻重作用。随着当代科学技术发展,越来越多公司和公司对职工考勤管理都实行了信息化管理,使用计算机系统代替繁琐冗余手工方式来管理考勤事务。老式手工方式不但效率低下,并且容易出错,采用计算机技术进行货品管理可以克服手工管理缺陷,将人们从烦杂劳动中解放出来。先进考勤管理思想在商业中实现就成为了一种时代目的。公司集团非常急需一套既有先进考勤办法又适合国内大商业考勤管理系统,作为实现目的和提高既有水平一种重要手段。考勤管理系统是一种公司不可缺少某些,它执行对于公司决策者和管理者来说是很有协助,随着科学技术不断提高,计算机科学日渐成熟,其强大功能已为人们深刻结识,它已进入人类社会各个领域并发挥着越来越重要作用。基于此,开发了一套考勤管理系统,其重要目是为了记录员工迟到、早退、旷工、事病假、加班以及出差状况,这些信息将直接作为公司对员工奖惩、提高以及培训根据。本课题研究意义随着计算机技术和网络技术发展,计算机网络给人们带来了诸多便利,同样考勤管理系统也是如此,它重要是为了满足单位寻常考勤管理需求,扩大工作空间,使单位管理过程更迅速、安全、高。论文系统规划设计过程是从单位业务流程出发展开分析,从而完毕系统各个功能模块分析过程,以及完毕某些功能模块设计,实现了数据库信息浏览、录入、查询、修改、删除等各种操作,通过统一界面使得系统操作更为灵活、以便便捷。随着计算机普及和计算机科学技术飞速发展,人们开始越来越多地运用计算机解决实际问题。考勤管理是商业信息管理重要某些,面对大量商品信息,采用人力解决将挥霍大量时间、人力和物力,并且记录数据麻烦。因而,开发一种界面和谐,易于操作考勤管理软件进行自动化解决变得十分重要,这正是本系统开发目和意义。通过此考勤管理系统开发锻炼了学生实际动手能力对后来学习和工作能力培养也具备重要意义。本课题研究办法开发数据库管理信息系统需要选取两种工具,即前台开发语言和后台数据库。普通开发C/S构造应用程序时,前台开发语言普通可以选取VisualBasic、VisualC++、Delphi和PowerBuilder等,如果开发网络应用程序,则需要选取一种网络数据库系统,如Access、Oracle和IBMDB2等。本设计是使用VisualC++6.0开发工具,使用MicrosoftSQLServer作为后台数据库开发,采用了最新数据库访问技术ADO(ActiveXDataObjects),是提供对各种数据库原则接口。本次毕业设计应一方面分析考勤管理系统有关功能,结合本次毕业设计有关规定写出需求分析;另一方面,综合运用此前所学有关知识,在设计中以需求分析为基本,写出系统开发筹划、实现流程及有关问题实现办法;同步,在开发设计与实现中,要保存好有关设计文档。开发工具VisualC++6.0VisualC++6.0是微软公司1998年推出产品,是基于Windows操作系统编程工具,是MicrosoftVisualStudio6.0组件之一,是一种面向对象程序设计语言。它采用一种巧妙办法将Windows编程复杂性封装起来,编程者可以比较轻松地进行Windows应用程序设计。VisualC++6.0继承了此前版本长处,为顾客提供了更为和谐可视化开发环境。它提供了强大编译能力以及良好界面操作性,具备功能强大、通用性强和易于扩充等特点,越来越多被用来当作客户/服务器应用程序前台卡法工具,并且可以对Windows9x、WindowsNT以及Windows下C++程序设计提供完善编程环境。同步VisualC++6.0对网络、数据库等方面编程也都提供相应环境支持。几乎所有世界级软件,从业界领先Web浏览器到面向任务公司应用,都是使用MicrosoftVisualC++开发系统来开发。要用C++来开发Windows和Web上高性能应用程序,VisualC++是效率最高首选工具。VisualC++6.0在不牺牲灵活性、性能和控制力度同步,给C++带来了更高水平生产效率。除了IntelliSenseTechnology(智能感应技术)和EditandContinue(即编即调)等明显缩短开发时间新特性外,VisualC++6.0还为Web开发和公司开发提供更良好支持。有了MicrosoftVisualC++6.0公司版,可以创立出面向Windows和Web多层次可调节应用程序。有了它为Internet、SQL和COM开发所提供优化了支持,可以大大提高您开发效率。SQLServerMicrosoftSQLServer是一套完整数据库和分析产品,可迅速提供下一代可扩展电子商务、各种业务和数据仓库解决方案。MicrosoftSQLServer是一种分布式关系型数据库管理系统,具备客户机/服务器体系构造,采用了Transact-SQLSQL语言在客户机与服务器间传递客户机祈求与服务器解决成果。它一种应用广泛数据库管理系统,具备许多明显长处:易用性、适合分布式组织可伸缩性、用于决策支持数据仓库功能、与许多其她服务器软件紧密关联集成性、良好性价比等。性能、可伸缩性及可靠性是基本规定,而进入市场时间也非常核心。除这些核心公司品质外,SQLServer还为您数据管理与分析带来了灵活性,容许单位在迅速变化环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分运用Web带来机会非常重要。MicrosoftSQLServer是众多数据库开发软件一种,它版本涉及公司版,原则版,个人版,WindowsCE版,开发版和评估版。不同版本功能和顾客群不同。SQL是访问数据库原则语言,无论后台数据库是SQLServer,Oracle,还是IBMDB2,甚至是小型数据库ACCESS,都可以使用原则SQL语句对它进行操作。在这里,是采用SQLServer是作为后台数据库。考勤管理系统设计需求分析考勤管理系统顾客是各单位负责考勤管理员工和领导,它可以有效管理公司单位员工出勤状况,规范人事制度管理。管理员可以创立顾客,修改顾客信息以及删除顾客,和对公司某些员工信息编辑等。该系统涉及基本信息管理,考勤信息管理,记录查询和顾客管理等重要模块。每一种功能模块都需要针对不同表来完毕相似数据库操作,即添加记录,修改记录,删除记录以及查询显示记录信息。详细功能有如下几种方面。1、基本信息添加,修改,删除和查询。节本信息管理涉及节假日日期设立,部门信息管理和员工信息管理。2、考勤信息管理涉及出勤管理,加班管理,请假管理和出差管理等功能。3、记录查询功能涉及日考勤登记表,月考勤登记表和当天缺勤人员列表。4、顾客管理涉及Admin顾客管理和其她顾客管理。功能模块构成考勤管理系统由基本信息管理模块、考勤信息模块、记录查询模块和顾客管理模块四个重要功能模块构成。基本信息管理模块,涉及节假日日期设立,部门信息管理缓和员工信息管理。节假日日期信息只涉及详细日期数据,部门信息涉及部门名称和部门功能描述,员工信息涉及员工姓名,性别,生日,身份证号等。考勤信息涉及出勤,加班,请假,出差等信息。出勤信息涉及全勤,休息,旷工,迟到和早退等信息;加班信息涉及员工信息,加班时间,加班类型和加班描述;请假信息涉及员工信息,请假类型和因素;出差信息涉及员工信息和出差因素。记录查询模块涉及日考勤登记表,月考勤登记表和当天缺勤人员列表。日考勤登记表涉及员工姓名,考勤日期,与否全勤,与否请假等信息,月考勤登记表涉及员工姓名,考勤月份,全勤天数,出差天数等信息,当天缺勤人员列表涉及系统当前日期缺勤员工姓名,所在部门和联系电话等信息。顾客管理模块顾客涉及Admin顾客和普通顾客。Admin顾客可以修改自己密码,创立修改和删除普通顾客信息。普通顾客只能修改自身信息功能模块构成如图1:图1功能模块数据库构造设计考勤管理系统数据库采用MicrosoftSQLSERVER,在使用数据库过程中,接触最多就是数据库中表,表是数据存储地方,是数据库最重要某些。这个系统数据库表由6个表构成,详细如下。CheckInfo表是记录考勤信息,记录员工迟到,早退,全勤,旷工,病假,事假,休息,出差等信息。表1CheckInfo字段数据类型长度与否容许为空字段描述CheckDatechar10否考勤日期EmpIdint4否员工编号QuanQinchar2是全勤ChuChaichar2是出差BingJiachar2是病假ShiJiachar2是事假KuangGongchar2是旷工XiuXichar50是休息ChiDaochar50是迟到Zaotuichar50是早退Memovarchar200是备注DepInfo表是记录部门信息。DepId为主键。表2DepInfo字段数据类型长度与否容许为空字段描述DepIdint4否部门编号DepNamevarchar50否部门名称Describesvarchar250是描述UIDint4否总编号EmpInfo表是记录员工基本信息。管理员可以查看员工信息,添加员工信息需要用表。EmpId是主键。表3EmpInfo字段数据类型长度与否容许为空字段描述EmpIdint4否编号Namevarchar50否姓名Sexchar2是性别Birthdayvarchar20是生日IdCardvarchar20是身份证号OfficePhonevarchar30是办公电话Mobilevarchar30是手机电话HireDateInt4是到岗日期DepIdvarchar40是部门编号Missionvarchar50是工作岗位Dutyvarchar20是职务Memovarchar200是备注信息HolidaySet表是设立节假日信息。Id为主键。表4HolidaySet字段数据类型长度与否容许为空字段描述Idint4否编号HolidayDatechar10否节假日期HolidayNamevarchar50是节假名称OverTime表是记录加班信息。表5OverTime字段数据类型长度与否容许为空字段描述otDateChar10否加班日期EmpIdint4否员工编号otHoursmallint2否加班时间otTypevarchar50否加班类型Describesvarchar200是描述UserInfo表是记录顾客信息,涉及顾客名和密码。表6UserInfo字段数据类型长度与否容许为空字段描述UserNamevarchar40否顾客名Passwdvarchar40是密码UserTypeint4否顾客类型考勤管理系统实现系统登陆功能实现顾客要使用本系统,一方面必要通过系统身份认证。如果顾客名错误或者不存在,密码错误3次后,对话框自动关闭。图2登陆对话框详细代码如下:voidCLoginDlg::OnOK(){ UpdateData(TRUE);//将对话框中编辑框数据读取到成员变量中 if(m_User=="")//没有输入顾客名 { MessageBox("请输入顾客名","信息提示"); GetDlgItem(IDC_USER_EDIT)->SetFocus(); return;} CUserInfoUser;//定义顾客信息表变量 if(!User.IsExistUser(m_User))//判断顾客与否存在 {count++; if(count<3) {MessageBox("顾客名不存在,请重新输入!","顾客名错误",MB_ICONINFORMATION); UpdateData(FALSE); GetDlgItem(IDC_USER_EDIT)->SetFocus(); return;} else { MessageBox("重试次数已到,不能再输入顾客名和密码,即将退出系统!","顾客名错误",MB_ICONEXCLAMATION); exit(0);}} User.GetInfo(m_User);//判断密码与否对的 if(User.Passwd!=m_Passwd) {……//同顾客判断} CDialog::OnOK();//关闭对话框}基本信息管理模块基本信息管理模块涉及节假日信息管理,部门信息管理和员工信息管理。节假日信息管理节假日信息管理,一方面对节假日信息编辑,判断节假日记录与否存在,存入数据。在从HolidaySet中读取所有节假日记录,在对记录进行操作,即添加,修改和删除。普通顾客是不能打开这一块信息,节假日管理对她们是不可见。图3节假日信息框某些代码如下:BOOLCHolidayManDlg::OnInitDialog()//初始化{ CDialog::OnInitDialog(); RefreshData();}voidCHolidayManDlg::RefreshData()//更新数据{ UpdateData(TRUE); CStringcSource="SELECTId,HolidayDateAS节假日,HolidayNameAS名称""FROMHolidaySet"; //设立Select语句 m_Adodc.SetRecordSource(cSource);//刷新ADOData控件记录源 m_Adodc.RefreshData()}voidCHolidayManDlg::OnAddButton()//添加按钮{ UpdateData(TRUE); CHolidayEditDlgdlg;//初始化HolidayEditDlg对话框中变量 if(dlg.DoModal()==IDOK) RefreshData();}voidCHolidayManDlg::OnModiButton()//修改按钮{ CHolidayEditDlgdlg;//设立HolidayEditDlg对话框中变量 if(dlg.DoModal()==IDOK)//打开HolidayEditDlg对话框 RefreshData();}voidCHolidayManDlg::OnDelButton()//删除按钮{ cur.SqlDelete(m_Datagrid.GetItem(0)); RefreshData(); }部门信息管理部门信息管理模块涉及部门信息编辑对话框,部门信息管理对话框和部门信息选取对话框。部门编辑重要是用来添加和修改部门信息。部门信息管理对话框,是系统管理员进行操作,如果当前顾客不是系统管理员,则添加,修改,和删除等按钮是不可以用,她们没有有关权限。在删除部门时候要对部门信息进行判断,如果部门是根节点,包括下一级部门和员工时不能删除。部门信息选取,是为了以便顾客选取部门,后来其她模块程序可以通过此程序来获取选取部门信息。图4部门图重要代码如下:BOOLCDepManDlg::OnInitDialog()//初始化{CDialog::OnInitDialog();}voidCDepManDlg::AddtoTree(HTREEITEMm_node,intUpperId){//使用递归办法将部门添加到TreeView控件中 inti; HTREEITEMm_child; if(UpperId==atoi(dep.a_UID.GetAt(i))) { m_child=m_tree.InsertItem(dep.a_DepName.GetAt(i),m_node); m_tree.SetItemData(m_child,atol(dep.a_DepId.GetAt(i))); AddtoTree(m_child,atoi(dep.a_DepId.GetAt(i))); }}voidCDepManDlg::OnAddButton()//添加按钮{HTREEITEMnode;//用于保存当前选取节点 node=m_tree.GetSelectedItem();//获得当前选取节点}//删除按钮voidCDepManDlg::OnDelButton(){HTREEITEMnode;//用于保存当前节点 node=m_tree.GetSelectedItem();//获得当前节点 //弹出对话框,规定顾客确认与否删除。如果顾客单击“是”按钮,则删除 if(MessageBox("与否删除当前部门?","请确认",MB_YESNO)==IDYES) {dep.SqlDelete(cDepId);//删除表Departments中指定记录 m_tree.DeleteItem(node);//删除Tree控件中当前节点}}员工信息管理编辑员工基本信息对话框用来添加和修改员工信息,重要涉及员工姓名,性别,出生日期,身份证号,到岗日期,办公电话,手机电话,工作岗位,职务和描述信息。员工管理则是通过选取部门信息,添加,修改和删除员工信息这里可以查看每个部门下员工信息。同样普通顾客只能查看员工信息,不能对其信息进行添加,修改和删除等操作。图5员工信息图重要代码如下:voidCEmpManDlg::RefreshData(){UpdateData(TRUE);intiDepId;//从Tree控件中读取部门编号信息 HTREEITEMnode; node=m_tree.GetSelectedItem(); iDepId=m_tree.GetItemData(node); CStringcDepId;//依照部门编号设立SELECT语句 cDepId.Format("%d",iDepId); //设立SELECT语句 CStringcSource="SELECTEmpId,NameAS姓名,SexAS性别," "BirthdayAS生日,IdCardAS身份证号,OfficePhoneAS办公电话," "MobileAS手机号码,HireDateAS到岗日期,MissionAS工作岗位," "DutyAS职务,MemoAS备注FROMEmpInfoe,DepInfod" "WHEREe.DepId=d.DepId";…}voidCEmpManDlg::OnAddButton()//添加按钮{ UpdateData(TRUE); CTimeCurrentTime=CTime::GetCurrentTime();//添加员工时,将日期控件设立为当天 if(dlg.DoModal()==IDOK) RefreshData();}voidCEmpManDlg::OnModiButton()//修改按钮{UpdateData(TRUE); CEmpInfoemp;//读取选取员工记录 emp.GetInfo(m_Datagrid.GetItem(0)); CEmpEditDlgdlg;//将员工数据读取到编辑对话框中 if(dlg.DoModal()==IDOK) RefreshData();}voidCEmpManDlg::OnDelButton()//删除按钮{ CEmpInfoemp; emp.SqlDelete(m_Datagrid.GetItem(0)); RefreshData();}考勤管理模块考勤管理模块重要实现了出勤信息管理,加班信息管理,请假信息管理和出差信息管理。出勤信息管理出勤信息编辑对话框中,一方面单击选取部门按钮,在左侧表格中将显示选取部门中所有员工信息。选取一种员工,会在右侧下方显示她出勤状态。选取出勤状态,然后单击拟定按钮,可以保存指定员工出勤状况。出勤管理对话框中,依照左边部门,列出各个部门中员工及其员工出勤信息,出勤时间,与否全勤,与否出差,与否迟到,与否早退,与否旷工等。顾客可以依照实际状况进行详细操作,添加,修改和删除。图6出勤信息重要代码如下:voidCOnDutyManDlg::RefreshData(){ UpdateData(TRUE); intiDepId;//从Tree控件中读取部门编号信息 HTREEITEMnode; node=m_tree.GetSelectedItem(); iDepId=m_tree.GetItemData(node); CStringcDepId;//依照部门编号设立SELECT语句 cDepId.Format("%d",iDepId); //设立SELECT语句 CStringcSource="SELECTc.EmpIdAS员工编号,e.NameAS姓名,c.CheckDateAS出勤日期,""c.QuanQinAS与否全勤,c.XiuXiAS与否休息,c.KuangGongAS与否旷工," "c.ChiDaoAS与否迟到,c.ZaoTuiAS与否早退FROMCheckInfoc,EmpInfoe,DepInfod""WHEREc.EmpId=e.EmpIdANDe.DepId=d.DepId"; m_Adodc.SetRecordSource(cSource);//刷新ADOData控件记录源 m_Adodc.Refresh();}voidCOnDutyManDlg::OnAddButton()//添加按钮{...}voidCOnDutyManDlg::OnModiButton()//修改按钮{…}voidCOnDutyManDlg::OnDelButton()//删除按钮{…}程序调用m_tree.GetSelectedItem()函数获取当前选取部门接点数据,并使用GetItemData(node)函数获取部门编号。然后依照选取部门编号设立SELECT语句,从表CheckInfo,表EmpInfo和表DepInfo中获取部门中所有员工出勤记录。加班信息管理加班信息编辑对话框重要是对员工加班状况添加和修改。一方面点击选取部门,在左侧则列出所有部门及其员工信息,选取一种员工,会在右侧下方显示她加班状态。选取加班状态,涉及加班时数,加班因素和加班类型,然后单击拟定按钮,可以保存指定员工加班状况。加班信息管理对话框中,通过点击左边部门,列出各个部门中员工及其员工加班信息,加班时间,加班时数,加班因素和加班类型等。顾客可以依照实际状况进行详细操作,添加,修改和删除。图7加班信息框某些代码如下:voidCOvertimeManDlg::OnAddButton()//添加按钮{ COvertimeEditDlgdlg; CurrentTime=CTime::GetCurrentTime(); dlg.otDate=CurrentTime.Format("%Y-%m-%d"); if(dlg.DoModal()==IDOK) RefreshData();}voidCOvertimeManDlg::OnModiButton()//修改按钮{ if(m_Adodc.GetRecordset().GetEof()) { MessageBox("请选取要修改记录!"); return; } CEmpInfoemp;//依照员工编号得到员工信息 emp.GetInfo(m_Datagrid.GetItem(0)); CStringcDepId;//依照部门编号得到部门信息 cDepId.Format("%d",emp.DepId); dep.GetInfo(cDepId); COvertimeEditDlgdlg; if(m_Datagrid.GetItem(4)=="法定节假日加班") dlg.m_overtime=0; elseif(m_Datagrid.GetItem(4)=="周六日加班") dlg.m_overtime=1; elseif(m_Datagrid.GetItem(4)=="寻常加班") dlg.m_overtime=2; dlg.otDate=m_Datagrid.GetItem(2); //日期 dlg.m_describe=m_Datagrid.GetItem(5); if(dlg.DoModal()==IDOK) RefreshData();}voidCOvertimeManDlg::OnDelButton()//删除按钮{cur.SqlDelete(m_Datagrid.GetItem(2),m_Datagrid.GetItem(0));}请假信息管理请假信息编辑对话框中,一方面点击选取部门,在左侧则列出所有部门及其员工信息,选取一种员工,会在右侧下方显示她请假状态。选取出勤状态,请假分为病假和事假,并且需要输入请假因素,然后单击拟定按钮,可以保存指定员工请假状况。请假信息管理对话框中,通过点击左边部门,列出各个部门中员工及其员工信息,选中员工姓名则可以进行员工请假信息编辑。顾客可以依照实际状况进行详细操作,添加,修改和删除。图8请假信息图重要代码如下:voidCLeaveEditDlg::OnOK(){ UpdateData(TRUE); if(m_Adodc.GetRecordset().GetEof())//与否选取人员 { MessageBox("请选取人员"); return; } if(m_shijia==-1)//与否进行添加考勤状态 { MessageBox("请选取出勤状态"); return; } CCheckInfocur; cur.CheckDate=CheckDate;//赋值到CCheckInfo对象中 cur.EmpId=atol(m_Datagrid.GetItem(0)); switch(m_shijia) {cur.Memo=m_memo; if(EmpId=="") { //在添加时,若人员有出勤记录,则不容许添加 if(cur.HaveEmp(CheckDate,m_Datagrid.GetItem(0))) { MessageBox("已有此员工出勤信息,不能添加"); return; } cur.SqlInsert();//插入记录} else { cur.UpdateLeave(cur.CheckDate,EmpId);//修改CheckInfo表记录} CDialog::OnOK();}请假信息保存在表CheckInfo中,如果在出勤信息管理模块中输入了出勤信息,则不能再输入请假信息。如果修改记录,则程序调用UpdateLeave()函数,更新表CheckInfo中Shijia,Bingjia和Memo等字段值。出差信息管理出差信息管理编辑对话框重要是对员工出差状况添加和修改。一方面点击选取部门,在左侧则列出所有部门及其员工信息,选取一种员工,会在右侧下方显示她出差状态。选取出差状态,写出出差因素,然后单击拟定按钮,可以保存指定员工出差状况。出差信息管理对话框中,通过点击左边部门,列出各个部门中员工及其员工出差信息。顾客可以依照实际状况进行详细操作,添加,修改和删除。图9出差信息重要代码如下:voidCErrandEditDlg::OnOK(){UpdateData(TRUE); if(m_Adodc.GetRecordset().GetEof())//与否选取人员 { MessageBox("请选取人员"); return;} CCheckInfocur; cur.CheckDate=CheckDate;//赋值到CCheckInfo对象中 cur.EmpId=atol(m_Datagrid.GetItem(0)); cur.ChuChai="是"; cur.QuanQin="否"; cur.BingJia="否"; cur.ShiJia="否"; cur.KuangGong="否"; cur.XiuXi="否"; cur.ChiDao="否"; cur.ZaoTui="否"; cur.Memo=m_memo; if(EmpId=="") {//在添加时,若人员有出勤记录,则不容许添加 if(cur.HaveEmp(CheckDate,m_Datagrid.GetItem(0))) { MessageBox("已有此员工出勤信息,不能添加"); Return;} cur.SqlInsert();//插入记录} else { cur.UpdateErrand(cur.CheckDate,m_Datagrid.GetItem(0));//修改CheckInfo表记录} CDialog::OnOK();……}记录查询模块记录查询模块重要是实现了日考勤登记表,月考勤登记表,当天缺勤人员列表3个功能。日考勤登记表日考勤登记表按日查询所有员工出勤,加班,请假和出差等信息。一方面选取要查询日期,在点击查询按钮,即列出这日期员工信息,涉及员工编号,员工姓名,出勤日期,与否全勤,与否出差,与否请假,与否加班等等。图10日考勤记录图重要代码如下:voidCTimeSelDlg::RefreshData(){UpdateData(TRUE); CStringcTime;//依照部门编号设立SELECT语句 cTime=m_time.Format("%Y-%m-%d"); //设立SELECT语句 CStringcSource="SELECTc.EmpIdAS员工编号,e.NameAS姓名,c.CheckDateAS出勤日期,""c.QuanQinAS与否全勤,c.ChuChaiAS与否出差,c.ShiJiaAS与否事假,""c.BingJiaAS与否病假,c.KuangGongAS与否旷工,c.XiuXiAS与否休息,""c.ChiDaoAS与否迟到,c.ZaoTuiAS与否早退,c.MemoAS备注""FROMCheckInfoc,EmpInfoeWHEREc.EmpId=e.EmpIdANDc.CheckDate='"+cTime+"'"; //刷新ADOData控件记录源 m_Adodc.SetRecordSource(cSource); m_Adodc.Refresh();}程序执行SELECT语句,从表CheckInfo和EmpInfo中读取选取日期中各员工考勤信息。月考勤登记表月考勤登记表是按月记录所有员工出勤天数,请假天数,出差天数等信息。为了对各种考勤天数进行记录,需要创立一组视图,分别按月记录所有员工全勤天数,休息天数,旷工天数,迟到次数,早退次数,病假天数,事假天数和出差天数。在表CheckInfo中,CheckDate字段保存考勤日期,LEFT(CheckDate)返回考勤日期年份和月份信息,使用COUNT()函数和GROUPBY子句记录考勤月份和员工分组各种考勤天数。图11月考勤记录图重要代码如下:voidCDepDlg::RefreshData(){ UpdateData(TRUE); //依照部门编号设立SELECT语句 CStringcStrCnd,cDepId; cDepId.Format("%d",iDepId); if(iDepId>0) cStrCnd="Andd.DepId="+cDepId; else cStrCnd=""; CStringcTime;//查询日期 //得到年份和月份 m_year.GetLBText(m_year.GetCurSel(),cYear); m_month.GetLBText(m_month.GetCurSel(),cMonth); cTime=cYear+"-"+cMonth;//得到日期 //设立SELECT语句 CStringcSource="SELECTe.NameAS姓名," "ISNULL(v1.CountQuanQin,0)AS全勤天数,ISNULL(v2.CountChuChai,0)AS出差天数," "ISNULL(v3.CountShiJia,0)AS事假天数,ISNULL(v4.CountBingJia,0)AS事假天数," "ISNULL(v5.CountKuangGong,0)AS旷工天数,ISNULL(v6.CountXiuXi,0)AS休息天数," "ISNULL(v7.CountChiDao,0)AS迟到次数,ISNULL(v8.CountZaoTui,0)AS早退次数" "FROMv_QuanQinv1,v_ChuChaiv2,v_ShiJiav3,v_BingJiav4,DepInfod," "v_KuangGongv5,v_XiuXiv6,v_ChiDaov7,v_ZaoTuiv8,EmpInfoe" "WHEREe.EmpId*=v1.EmpIdANDe.EmpId*=v2.EmpIdAnde.DepId=d.DepId" "ANDe.EmpId*=v3.EmpIdANDe.EmpId*=v4.EmpIdANDe.EmpId*=v5.EmpId" "ANDe.EmpId*=v6.EmpIdANDe.EmpId*=v7.EmpIdANDe.EmpId*=v8.EmpId" "ANDv1.CheckMonth='"+cTime+"'ANDv2.CheckMonth='"+cTime+ "'ANDv3.CheckMonth='"+cTime+"'ANDv4.CheckMonth='"+cTime+ "'ANDv5.CheckMonth='"+cTime+"'ANDv6.CheckMonth='"+cTime+ "'ANDv7.CheckMonth='"+cTime+"'ANDv8.CheckMonth='"+cTime+"'"+cStrCnd; //刷新ADOData控件记录源 m_Adodc.SetRecordSource(cSource); m_Adodc.Refresh();…}程序执行SELECT语句,从表EmpInfo和其她视图中读取选取月份中各员工考勤信息,ISNULL()函数是SQLServer内部函数,它功能是当第一种参数为NULL时,将第二个参数作为成果返回。当天考勤人员列表当天考勤人员列表查询当前系统日期中所有缺勤员工信息,缺勤指病假,事假和旷工等状况。图12当天缺勤人员图重要代码如下:voidCAbsenceDlg::RefreshData(){ UpdateData(TRUE); CStringcTime;//依照部门编号设立SELECT语句 cTime=CurrentTime.Format("%Y-%m-%d"); //设立SELECT语句 CStringcSource="SELECTe.EmpIdAS员工编号,e.NameAS姓名,d.DepNameAS部门名称," "e.MobileAS联系电话FROMDepInfod,EmpInfoe" "WHEREe.DepId=d.DepIdANDe.EmpIdIN" "(SELECTEmpIdFROMCheckInfoWHERE(ShiJia='是'ORBingJia='是'ORKuangGong='是')" "ANDCheckDate='"+cTime+"')"; m_Adodc.SetRecordSource(cSource);//刷新ADOData控件记录源 m_Adodc.Refresh();…}程序中使用了嵌套查询语句,即在一种SELECT语句中嵌套使用了此外一种SELECT语句。主SELECT语句显示员工和部门信息,在其查询条件中使用IN子句嵌套另一种SELECT语句。从SELECT可以返回表CheckInfo中当天事假,病假和旷工记录。顾客管理模块依照顾客类型不同,顾客管理模块功能也不相似,重要涉及Admin顾客可以创立其她顾客,修改顾客密码,删除其她顾客,而其她顾客只能修改自身顾客信息。这个模块涉及了顾客管理和密码修改两个功能。在顾客管理中只有Admin顾客才可以进行操作,可以添加删除其她顾客信息。图13顾客管理框图重要代码如下:voidCUserManDlg::RefreshData(){ UpdateData(TRUE); //
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026台州椒江区事业单位招聘32人-统考笔试模拟试题及答案解析
- 2026年唐山市中考物理全真模拟试题(含答案解析)
- 2026年广州体育职业技术学院单招综合素质考试题库有答案详细解析
- 20206中国烟草南通醋酸纤维有限公司招聘笔试模拟试题及答案解析
- 2026年山东省公务员行测数量关系题库及答案
- 2026年山东能源集团招聘考试试题及答案
- 2026广东深圳市宝安区翻身实验学校(西校区)诚聘初中道法、高中历史教师2人备考题库附答案详解【突破训练】
- 2026广东深圳市宝安区中英公学高薪诚聘特色普通高中各科教师备考题库【基础题】附答案详解
- 2026中国电信云南公司春季校园招聘备考题库及答案详解(典优)
- 2026甘肃天水秦安县云山中心卫生院招聘1人备考题库附完整答案详解【易错题】
- 《机械制图(第六版)》教案(完整资料)
- 医院行风建设应知应会考核试题及答案
- 猪常见重大疫病防控
- 脱硝催化剂安装施工方案1026
- GB 24790-2009电力变压器能效限定值及能效等级
- 苏教版六年级科学下册单元测试卷及答案(全册)
- 火电工程项目建设程序和内容课件
- 桃树优质丰产栽培技术培训课件
- 干部任免审批表填写范本
- 红色绘本小故事爱国教育-长征路上的红小丫课件
- 陕旅版六年级下册小学英语 Unit 3 单元全套教学课件
评论
0/150
提交评论