首页 人事考勤管理系统c++课程设计文档

人事考勤管理系统c++课程设计文档

举报
开通vip

人事考勤管理系统c++课程设计文档PAGE\*MERGEFORMAT15课程设计人事考勤管理系统目录第一部分:开发背景……………………………………………………………..3第二部分:系统分析………………………………………………………………3第三部分:系统设计……………………………………………………………..9第四部分:公共类设计………………………………………………………….15第五部分:主题窗设计………………………………………………………….16第六部分:用户登录模块设计……………………………………………...17第七部分:用户管理模块设计……...

人事考勤管理系统c++课程设计文档
PAGE\*MERGEFORMAT15课程设计人事考勤管理系统目录第一部分:开发背景……………………………………………………………..3第二部分:系统分析………………………………………………………………3第三部分:系统设计……………………………………………………………..9第四部分:公共类设计………………………………………………………….15第五部分:主题窗设计………………………………………………………….16第六部分:用户登录模块设计……………………………………………...17第七部分:用户管理模块设计………………………………………………20第八部分:部门管理模块设计………………………………………………23第九部分:人员信息管理模块设计……………………………………...32第十部分:考勤模块设计………………………………………………………40第十一部分:考勤汇总模块设计……………………………………………45第十二部分:后续补充部分:一些过程的具体实现方法总结及图片解释:…………………………………………………………………....51第十三部分: 心得 信息技术培训心得 下载关于七一讲话心得体会关于国企改革心得体会关于使用希沃白板的心得体会国培计划培训心得体会 …………………………………………………………………..51人事考勤管理系统开发背景某公司业务不断发展,员工数量不断增加,人事考勤方面的管理已成为公司管理中的重要部分,但传统的人事考勤 制度 关于办公室下班关闭电源制度矿山事故隐患举报和奖励制度制度下载人事管理制度doc盘点制度下载 已不能有效地管理员工的出勤状况,急需一套人事考勤管理的有效工具——人事考勤管理系统。二、系统分析需求分析通过对人事考勤管理过程的研究和分析,要求本系统应该具有以下功能。用户登录。部门信息录入人员信息管理考勤信息录入考勤信息汇总。系统功能描述用户需要输入用户名和密码进入人事考勤管理系统,对各部门、员工的基本信息进行维护和管理。在考勤管理模块中录入员工当天的考勤信息,同时可对年、月、员工进行查询。此外,还可以通过考勤汇总查询模块对员工某月的考勤 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 进行汇总,计算出员工月工作天数、早退、迟到的天数。三、系统设计系统目标人事考勤管理系统以实现员工日常出勤信息管理为设计目标,加以强大的数据库管理功能,可以极大地提高人事部门的日常工作效率。本系统在设计时满足以下几点:采用人机对话的操作方式,信息查询灵活、方便、快捷、准确,数据存储安全可靠。对考勤信息的操作简单,可以方便地进行添加、修改、和删除。可以录入员工信息、部门信息。对员工的考勤信息按月汇总计算。对用户输入的数据,系统进行严格的数据检验,尽可能排除人为错误。系统最大限度地实现了易维护性和易操作性。系统运行稳定、安全可靠。系统功能结构人事考勤管理系统的功能结构如图所示:人事考勤管理系统考勤数据录入考勤信息汇总用户管理部门信息管理员工信息管理业务流图人事考勤管理系统业务 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图如图:用户登录部门、员工信息维护考勤信息汇总查询考勤信息录入系统预览:人事考勤管理系统由多个功能模块组成,下面仅列出一些典型的功能模块,其他模块以后陆续列出:部门管理模块如图:主要管理各部门之间的结构信息用户管理模块如图:用于用户的一些操作管理人员信息管理如图:主要用于维护员工的基本信息考勤管理模块如图:用于记录人事考勤的信息考勤汇总查询如图:对员工的考勤信息进行汇总统计数据库设计数据库分析人事考勤系统采用SQLServer2008数据库,数据库名称为tb_person在数据库中建立四个 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 存储不同的信息,如图:数据库逻辑设计管理员信息表(tab_user),用于保存管理员的信息,如图:部门信息表(tab_Dept)用于记录部门的信息,如图:C)考勤信息表(tab_check)用于记录考勤信息员工信息表(tab_Employees)保存公司员工信息,如图:四、公共类设计本系统采用ADO连接数据库。为了能够方便的使用ADO建立数据库连接并进行相应的数据操作,在公共类中对系统中是使用的ADO操作进行了封装。在系统中建立了ADO的两个公共类CADOConnection和CADODataSet,这两个类定义在ADO.h头文件中,实现在ADO.cpp文件中。A.CADOConnection类CADOConnection类是用来连接数据库的,实现了对_Connection接口的封装。CADOConnection类在头文件中的定义如下:#import"C:\ProgramFiles\CommonFiles\System\ado\msado15.dll"no_namespacerename("EOF","adoEOF")classCADOConnection{private:staticvoidInitADO();//初始化ADOstaticvoidUnInitADO();protected:_ConnectionPtrm_Connection;//指针接口public:BOOLIsOpen();//判断是否与数据库连接_ConnectionPtrGetConnection();//获取连接接口CStringGetSQLConStr();//获取SQL连接字符串BOOLOpen(CStringConStr);//建立数据库连接CADOConnection();virtual~CADOConnection();};CADOConnection类的实现代码如下:CADOConnection*GetConnection()//GetConnection函数是一个全局函数,用于返回全局数据库连接对象的的指针{return&g_Connection;}CADOConnection::CADOConnection()//CADOConnection方法是构造方法,用于初始化OLE和创建_Connection接口指针{InitADO();m_Connection.CreateInstance("ADODB.Connection");}CADOConnection::~CADOConnection()//~CADOConnection方法是构造方法,用于取消OLE的初始化和释放_Connection接口指针{if(IsOpen())m_Connection->Close();m_Connection=NULL;UnInitADO();}voidCADOConnection::InitADO()//InitADO是一个静态方法,用于初始化OLE{if(ConCount++==0)CoInitialize(NULL);};voidCADOConnection::UnInitADO()//UnInitADO是一个静态方法,用于取消初始化OLE{if(--ConCount==0)CoUninitialize();};BOOLCADOConnection::Open(CStringConStr)//通过指定的数据库连接字符串于SQL数据库建立连接{if(IsOpen())m_Connection->Close();m_Connection->Open((_bstr_t)ConStr,"","",adModeUnknown);returnIsOpen();}CStringCADOConnection::GetSQLConStr()//生成数据库连接需要的字符串{CStringStr;Str.Format("Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=tb_person;DataSource=LONGFEI-PC\\SQLEXPRESS");returnStr;}_ConnectionPtrCADOConnection::GetConnection()//该方法用于返回_Connection接口指针{returnm_Connection;}BOOLCADOConnection::IsOpen()//判断当前数据库连接对象与数据库的连接状态{longState;m_Connection->get_State(&State);if(State==adStateOpen)returntrue;returnfalse;}CADODataSet类的定义如下:classCADODataSet{protected:_RecordsetPtrm_DataSet;//数据集接口指针CADOConnection*m_Connection;//数据库连接对象public:BOOLOpen(CStringSQLStr,intLockType);//打开记录集voidDelete();//记录删除intGetRecordNo();//获取记录集行号voidmove(intnIndex);//移动记录指针voidSave();//保存对记录集的修改voidSetFieldValue(CStringFieldName,_variant_tValue);//设置字段的值voidAddNew();//添加新纪录BOOLNext();//记录集指针指向下一个记录FieldsPtrGetFields();//获取记录集字段集合intGetRecordCount();//获取记录集中记录数量voidSetConnection(CADOConnection*pCon);//设置记录集的数据库连接对象BOOLOpen(CStringSQLStr);//打开记录集CADODataSet();virtual~CADODataSet();private:BOOLIsOpen();};CADODataSet类的实现如下:CADODataSet::CADODataSet()//该方法为记录集实现类的构造方法,在该方法中实现记录集接口对象的创建{m_DataSet.CreateInstance("ADODB.Recordset");}CADODataSet::~CADODataSet()//实现记录集的关闭与接口的释放{if(IsOpen())m_DataSet->Close();m_DataSet=NULL;m_Connection=NULL;}voidCADODataSet::SetConnection(CADOConnection*pCon)//设置记录集所连接的数据库连接类的对象{m_Connection=pCon;}intCADODataSet::GetRecordCount()//获取记录集中数据的数量{if(IsOpen())returnm_DataSet->GetRecordCount();elsereturn0;}BOOLCADODataSet::Open(CStringSQLStr)//打开数据集{if(IsOpen())m_DataSet->Close();//*/m_DataSet->Open(_bstr_t(SQLStr),_variant_t((IDispatch*)g_Connection.GetConnection(),true),adOpenKeyset,adLockOptimistic,adCmdText);returnIsOpen();//*/}BOOLCADODataSet::IsOpen()//判断数据集是否处于打开状态{longState;m_DataSet->get_State(&State);if(State==adStateOpen)returntrue;returnfalse;}FieldsPtrCADODataSet::GetFields()//用来获取记录集中字段的集合{returnm_DataSet->GetFields();}BOOLCADODataSet::Next()//记录集指针下移一位{if(m_DataSet->adoEOF)returnfalse;m_DataSet->MoveNext();returntrue;}voidCADODataSet::AddNew(){m_DataSet->AddNew();}voidCADODataSet::SetFieldValue(CStringFieldName,_variant_tValue)//想记录集中指定的字段赋值{m_DataSet->PutCollect((_bstr_t)FieldName,Value);}voidCADODataSet::Save()//保存记录集数据所做的修改{m_DataSet->Update();}voidCADODataSet::move(intnIndex)//将记录集的当前指针移动到指定的索引位置{m_DataSet->MoveFirst();m_DataSet->Move(nIndex);}intCADODataSet::GetRecordNo()//获取记录集中的当前行号{returnm_DataSet->AbsolutePosition;}voidCADODataSet::Delete()//删除记录集中的当前行{m_DataSet->Delete(adAffectCurrent);}BOOLCADODataSet::Open(CStringSQLStr,intLockType){if(IsOpen())m_DataSet->Close();//*/m_DataSet->Open(_bstr_t(SQLStr),_variant_t((IDispatch*)g_Connection.GetConnection(),true),adOpenKeyset,(LockTypeEnum)LockType,adCmdText);returnIsOpen();}五、主题窗设计A.主题窗由菜单和图片组成,如图:B.主题窗设计步骤:a.启动visualc++,选择File/New命令,打开New对话框b.在左侧选择MFCAppWizard(exe)选项,在Projectname编辑框中输入工程名称,在location编辑框中设置保存工程的路径,然后单击OK按钮,打开MFCAppWizard对话框,选择对话框编程,打击fishc.像工程中导入位图,菜单资源(具体操作在最后有补充)六、用户登录模块设计概述,登录界面是每个管理系统应该具备的,本系统的登录模块如图:B.技术分析窗体应在主题窗创建之前并显示,在登录窗体创建的同时应该建立数据库连接,具体操作如下:BOOLbCon=、GetConnection()->Open(GetConnection()->GetSQLConStr());CLoginDialoglogindlg;if(logindlg.DoModal()!=IDOK)returnfalse;::CoInitialize(NULL);CPersonDlgdlg;实现过程创建一个对话框向对话框中添加两个静态文本控件、一个编辑框控件、和两个按钮控件。分别设置两个静态文本控件的Caption属性为“用户名”和“密码”设置编辑框控件类型为password;分别设置连个按钮为“确定”和“取消”。C.在窗体初始化方法中创建用户表的数据,并将用户添加到列表框控件中。代码如下:BOOLCLoginDialog::OnInitDialog(){CDialog::OnInitDialog();m_DataSet.SetConnection(GetConnection());m_DataSet.Open("Select*FromTab_User");intcount=m_DataSet.GetRecordCount();for(inti=0;iItem[L"UserName"]->Value);m_DataSet.Next();}m_UserList.SetCurSel(0);returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}确定按钮事件代码如下:voidCLoginDialog::OnLogin(){CStringsql,user,pass;m_UserList.GetWindowText(user);m_PassWord.GetWindowText(pass);sql.Format("Select*Fromtab_userWhereUserName='%s'andPassWord='%s'",user,pass);m_DataSet.Open(sql);if(m_DataSet.GetRecordCount()==1){::SetUserName(user);this->OnOK();}elseAfxMessageBox("用户名或密码不正确!");}七、用户管理模块概况:能实现添加,修改,删除等操作如图:实现过程:创建一个对话框向对话框中添加相应的控件给对话框添加对话框类给类添加函数及成员变量给控件关联变量编写函数C.实现代码:a.定义UpdateGrid方法用来更新列表视图中的信息代码如下:voidCUserManage::UpdateGrid(){m_DataSet.Open("Select*Fromtab_User");m_grid.DeleteAllItems();for(inti=0;iItem[L"UserName"]->Value);intno=m_DataSet.GetRecordNo();m_grid.SetItemData(i,no);m_DataSet.Next();}}b.添加按钮代码如下:voidCUserManage::OnAppend(){CUserEdituseredit;if(useredit.DoModal()==IDOK){m_DataSet.AddNew();m_DataSet.SetFieldValue("UserName",(_bstr_t)useredit.name);m_DataSet.Save();UpdateGrid();}}删除按钮代码:voidCUserManage::OnDelete(){if(MessageBox("是否删除此记录!","提示",MB_YESNO|MB_ICONWARNING)==IDYES){intno=m_grid.GetItemData(m_grid.GetSelectionMark());m_DataSet.move(no-1);m_DataSet.Delete();m_DataSet.Save();UpdateGrid();}}修改按钮代码:voidCUserManage::OnEdit(){CUserEdituseredit;intno=m_grid.GetItemData(m_grid.GetSelectionMark());m_DataSet.move(no-1);useredit.name=(char*)(_bstr_t)m_DataSet.GetFields()->Item[L"UserName"]->Value;if(useredit.DoModal()==IDOK){m_DataSet.SetFieldValue("UserName",(_bstr_t)useredit.name);m_DataSet.Save();UpdateGrid();}}八、部门管理模块设计概述:该模块记录了部门间的的层次结构和部门信息,一般使用树控件实现,如图:实现过程:a.创建一个对话框b.向对话框中添加相应的控件c.给对话框添加对话框类d.给类添加函数及成员变量e.给控件关联变量编写函数C.相关代码如下:BOOLCDeptManage::OnInitDialog()//初始化函数{CDialog::OnInitDialog();m_DataSet.SetConnection(::GetConnection());UpdateDept();returnTRUE;}将部门信息一次性读入树控件中。代码如下:voidCDeptManage::GetNode(HTREEITEMpNode,intnPid){HTREEITEMnode;CADODataSetDataSet;DataSet.SetConnection(::GetConnection());CStringstr;str.Format("Select*Fromtab_Deptwherepid=%d",nPid);DataSet.Open(str);intcount=DataSet.GetRecordCount();intID;_variant_tvalue;for(inti=0;iItem["DeptName"]->Value,pNode);value=(_variant_t)DataSet.GetFields()->Item["ID"]->Value;ID=value.intVal;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();}}定义GetNode方法,用于按成次级关系获取部门表中的所有数据,并添加树控件,该方法由UpdateDept方法进行调用,代码如下;voidCDeptManage::UpdateDept(){m_tree.DeleteAllItems();GetNode(TVI_ROOT,0);}voidCDeptManage::OnAdd(){CDeptEditdeptedit;if(deptedit.DoModal()==IDOK){HTREEITEMpNode=m_tree.GetSelectedItem();intpID;if(deptedit.isroot)pID=0;elsepID=m_tree.GetItemData(pNode);CADODataSetdataset;dataset.SetConnection(::GetConnection());dataset.Open("Selecttop1*Fromtab_Dept");dataset.AddNew();dataset.SetFieldValue("DeptName",(_variant_t)deptedit.name);dataset.SetFieldValue("memo",(_variant_t)deptedit.memo);dataset.SetFieldValue("PID",(long)pID);dataset.Save();UpdateDept();}}单击“修改”按钮时将弹出部门编辑窗体,输入部门信息后单击“确定”按钮,实现部门信息的修改。代码如下voidCDeptManage::OnEdit(){CDeptEditdeptedit;deptedit.visible=false;HTREEITEMpNode=m_tree.GetSelectedItem();if(pNode==0)return;intpID=m_tree.GetItemData(pNode);CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr;str.Format("Select*Fromtab_Deptwhereid=%d",pID);dataset.Open(str);deptedit.name=(char*)(_bstr_t)dataset.GetFields()->Item[L"DeptName"]->Value;deptedit.memo=(char*)(_bstr_t)dataset.GetFields()->Item["memo"]->Value;if(deptedit.DoModal()==IDOK){dataset.SetFieldValue("DeptName",(_variant_t)deptedit.name);dataset.SetFieldValue("memo",(_variant_t)deptedit.memo);dataset.Save();UpdateDept();}}当单击“删除”按钮时,将删除当前选中的节点,代码如下:voidCDeptManage::OnDelete(){HTREEITEMpNode=m_tree.GetSelectedItem();if(pNode==0)return;if(MessageBox("是否删除此记录!","提示",MB_YESNO|MB_ICONWARNING)==IDYES){intpID=m_tree.GetItemData(pNode);CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr;str.Format("Select*Fromtab_Deptwhereid=%d",pID);dataset.Open(str);dataset.Delete();dataset.Save();UpdateDept();}}九、人员信息管理模块设计概述:人员信息管理模块根据部门分类显示人员,同时可对人员信息进行维护,界面如下:实现过程:创建对话框向对话框中添加相应的控件给对话框添加对话框类给类添加函数及成员变量给控件关联变量相关代码:GetNode方法,获取部门信息,并添加到树控件中。该方法由UpdateDept调用,代码如下:voidCPersonManage::GetNode(HTREEITEMpNode,intnPid){HTREEITEMnode;CADODataSetDataSet;DataSet.SetConnection(::GetConnection());CStringstr;str.Format("Select*Fromtab_Deptwherepid=%d",nPid);DataSet.Open(str);intcount=DataSet.GetRecordCount();intID;_variant_tvalue;for(inti=0;iItem["DeptName"]->Value,pNode);value=(_variant_t)DataSet.GetFields()->Item["ID"]->Value;ID=value.intVal;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();}}UpdateDpt调用GetNode,实现信息更新,代码如下:voidCPersonManage::UpdateDept(){m_tree.DeleteAllItems();HTREEITEMnode;node=m_tree.InsertItem("全部",TVI_ROOT);m_tree.SetItemData(node,-1);GetNode(node,0);}UpdatePerson更新人员信息,并将其显示在列表控件中。代码如下:voidCPersonManage::UpdatePerson(){m_list.DeleteAllItems();CADODataSetDataSet;DataSet.SetConnection(::GetConnection());CStringstr;if(m_DeptID==-1)str.Format("Select*Fromtab_Employees");elsestr.Format("Select*Fromtab_EmployeeswhereDept=%d",m_DeptID);DataSet.Open(str);intcount=DataSet.GetRecordCount();intn=0;_variant_tvalue;for(inti=0;iItem["Emp_Id"]->Value);value=DataSet.GetFields()->Item["AutoID"]->Value;m_list.SetItemData(n,value.lVal);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Emp_NAME"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Sex"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Nationality"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Birth"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Political_Party"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Culture_Level"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Marital_Condition"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Id_Card"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Office_phone"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Mobile"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["HireDate"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Duty"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Memo"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Files_Keep_Org"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Hukou"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Family_Place"]->Value);n++;DataSet.Next();}}单击“添加”按钮,弹出人员编辑窗体,输入人员信息后,单击保存按钮,实现人员的添加代码如下:voidCPersonManage::OnAdd(){CPersonEditpersonedit;personedit.m_DeptData=m_DeptID;if(personedit.DoModal()==IDOK){CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr="selecttop1*fromtab_Employees";dataset.Open(str);dataset.AddNew();dataset.SetFieldValue("Emp_Id",(_bstr_t)personedit.m_id);dataset.SetFieldValue("Emp_NAME",(_bstr_t)personedit.m_name);dataset.SetFieldValue("Sex",(_bstr_t)personedit.m_sex);dataset.SetFieldValue("Nationality",(_bstr_t)personedit.m_nationality);dataset.SetFieldValue("Birth",(_bstr_t)personedit.m_birth.Format("%Y-%m-%d"));dataset.SetFieldValue("Political_Party",(_bstr_t)personedit.m_farty);dataset.SetFieldValue("Culture_Level",(_bstr_t)personedit.m_culture);dataset.SetFieldValue("Marital_Condition",(_bstr_t)personedit.m_marital);dataset.SetFieldValue("Id_Card",(_bstr_t)personedit.m_card);dataset.SetFieldValue("Office_phone",(_bstr_t)personedit.m_office);dataset.SetFieldValue("Mobile",(_bstr_t)personedit.m_mobile);dataset.SetFieldValue("HireDate",(_bstr_t)personedit.m_hire.Format("%Y-%m-%d"));dataset.SetFieldValue("Duty",(_bstr_t)personedit.m_duty);dataset.SetFieldValue("Memo",(_bstr_t)personedit.m_memo);dataset.SetFieldValue("Files_Keep_Org",(_bstr_t)personedit.m_files);dataset.SetFieldValue("Hukou",(_bstr_t)personedit.m_hukou);dataset.SetFieldValue("Family_Place",(_bstr_t)personedit.m_family);dataset.SetFieldValue("dept",personedit.m_DeptData);dataset.Save();UpdatePerson();}}单击“修改”按钮,弹出人员编辑窗体,输入人员信息后,单击“保存”实现人员信息的修改,代码如下:voidCPersonManage::OnEdit(){if(m_list.GetSelectionMark()==-1)return;intid=m_list.GetItemData(m_list.GetSelectionMark());CPersonEditpersonedit;CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr;str.Format("select*fromtab_Employeeswhereautoid=%d",id);dataset.Open(str);personedit.m_id=(char*)(_bstr_t)dataset.GetFields()->Item["Emp_Id"]->Value;personedit.m_name=(char*)(_bstr_t)dataset.GetFields()->Item["Emp_NAME"]->Value;personedit.m_sex=(char*)(_bstr_t)dataset.GetFields()->Item["Sex"]->Value;personedit.m_nationality=(char*)(_bstr_t)dataset.GetFields()->Item["Nationality"]->Value;CStringbirth=(char*)(_bstr_t)dataset.GetFields()->Item["Birth"]->Value;if(!birth.IsEmpty()){//设置日期数据intyy=atoi(birth.Left(4));intmm=atoi(birth.Mid(6,2));intdd=atoi(birth.Mid(9,2));CTimetbirth(yy,mm,dd,0,0,0);personedit.m_birth=tbirth;}personedit.m_farty=(char*)(_bstr_t)dataset.GetFields()->Item["Political_Party"]->Value;personedit.m_culture=(char*)(_bstr_t)dataset.GetFields()->Item["Culture_Level"]->Value;personedit.m_marital=(char*)(_bstr_t)dataset.GetFields()->Item["Marital_Condition"]->Value;personedit.m_card=(char*)(_bstr_t)dataset.GetFields()->Item["Id_Card"]->Value;personedit.m_office=(char*)(_bstr_t)dataset.GetFields()->Item["Office_phone"]->Value;personedit.m_mobile=(char*)(_bstr_t)dataset.GetFields()->Item["Mobile"]->Value;CStringhire=(char*)(_bstr_t)dataset.GetFields()->Item["HireDate"]->Value;if(!hire.IsEmpty()){//设置日期数据intyy=atoi(hire.Left(4));intmm=atoi(hire.Mid(6,2));intdd=atoi(hire.Mid(9,2));CTimethire(yy,mm,dd,0,0,0);personedit.m_hire=thire;}personedit.m_duty=(char*)(_bstr_t)dataset.GetFields()->Item["Duty"]->Value;personedit.m_memo=(char*)(_bstr_t)dataset.GetFields()->Item["Memo"]->Value;personedit.m_files=(char*)(_bstr_t)dataset.GetFields()->Item["Files_Keep_Org"]->Value;personedit.m_hukou=(char*)(_bstr_t)dataset.GetFields()->Item["Hukou"]->Value;personedit.m_family=(char*)(_bstr_t)dataset.GetFields()->Item["Family_Place"]->Value;personedit.m_DeptData=dataset.GetFields()->Item["Dept"]->Value;if(personedit.DoModal()==IDOK){dataset.SetFieldValue("Emp_Id",(_bstr_t)personedit.m_id);dataset.SetFieldValue("Emp_NAME",(_bstr_t)personedit.m_name);dataset.SetFieldValue("Sex",(_bstr_t)personedit.m_sex);dataset.SetFieldValue("Nationality",(_bstr_t)personedit.m_nationality);dataset.SetFieldValue("Birth",(_bstr_t)personedit.m_birth.Format("%Y-%m-%d"));dataset.SetFieldValue("Political_Party",(_bstr_t)personedit.m_farty);dataset.SetFieldValue("Culture_Level",(_bstr_t)personedit.m_culture);dataset.SetFieldValue("Marital_Condition",(_bstr_t)personedit.m_marital);dataset.SetFieldValue("Id_Card",(_bstr_t)personedit.m_card);dataset.SetFieldValue("Office_phone",(_bstr_t)personedit.m_office);dataset.SetFieldValue("Mobile",(_bstr_t)personedit.m_mobile);dataset.SetFieldValue("HireDate",(_bstr_t)personedit.m_hire.Format("%Y-%m-%d"));dataset.SetFieldValue("Duty",(_bstr_t)personedit.m_duty);dataset.SetFieldValue("Memo",(_bstr_t)personedit.m_memo);dataset.SetFieldValue("Files_Keep_Org",(_bstr_t)personedit.m_files);dataset.SetFieldValue("Hukou",(_bstr_t)personedit.m_hukou);dataset.SetFieldValue("Family_Place",(_bstr_t)personedit.m_family);dataset.SetFieldValue("dept",personedit.m_DeptData);dataset.Save();UpdatePerson();}}单击“删除”按钮,实现删除当前选中的人员记录。代码如下;voidCPersonManage::OnDelete(){if(MessageBox("是否删除此记录!","提示",MB_YESNO|MB_ICONWARNING)==IDYES){if(m_list.GetSelectionMark()==-1)return;intid=m_list.GetItemData(m_list.GetSelectionMark());CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr;str.Format("select*fromtab_Employeeswhereautoid=%d",id);dataset.Open(str);dataset.Delete();dataset.Save();UpdatePerson();}}初始化函数,代码如下;BOOLCPersonManage::OnInitDialog(){CDialog::OnInitDialog();m_DeptID=-1;UpdateDept();inti=0;m_list.InsertColumn(i,"人员编号");m_list.SetColumnWidth(i++,80);m_list.InsertColumn(i,"人员名称");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"性别");m_list.SetColumnWidth(i++,50);m_list.InsertColumn(i,"民族");m_list.SetColumnWidth(i++,50);m_list.InsertColumn(i,"出生日期");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"政治面貌");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"文化程度");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"婚姻状况");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"身份证号");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"办公电话");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"手机电话");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"到岗日期");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"职务");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"备注");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"家庭住址");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"档案所在地");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"户口所在地");m_list.SetColumnWidth(i++,100);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);UpdatePerson();returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}voidCPersonManage::OnSelchangedTreedept(NMHDR*pNMHDR,LRESULT*pResult){NM_TREEVIEW*pNMTreeView=(NM_TREEVIEW*)pNMHDR;m_DeptI
本文档为【人事考勤管理系统c++课程设计文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
中小学教育资料大全
暂无简介~
格式:doc
大小:853KB
软件:Word
页数:58
分类:互联网
上传时间:2023-03-03
浏览量:0