人事考勤管理系统课程设计_第1页
人事考勤管理系统课程设计_第2页
人事考勤管理系统课程设计_第3页
人事考勤管理系统课程设计_第4页
人事考勤管理系统课程设计_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、108/108课程设计 人事考勤管理系统 目录第一部分:开发背景.3第二部分:系统分析3第三部分:系统设计 .9第四部分:公共类设计.15第五部分:主题窗设计.16第六部分:用户登录模块设计.17第七部分:用户管理模块设计20第八部分:部门管理模块设计23第九部分:人员信息管理模块设计.32第十部分:考勤模块设计40第十一部分:考勤汇总模块设计45第十二部分:后续补充部分: 一些过程的具体实现方法总结及图片解释:51第十三部分:心得.51人事考勤管理系统开发背景 随着公司业务不断发展,员工数量不断增加,人事考勤方面的管理已成为公司管理中的重要部分,但传统的人事考勤制度已不能有效地管理员工的出勤

2、状况,急需一套人事考勤管理的有效工具人事考勤管理系统。二、系统分析需求分析 通过对人事考勤管理过程的研究和分析,要求本系统应该具有以下功能。用户登录。部门信息录入人员信息管理考勤信息录入考勤信息汇总。 系统功能描述用户需要输入用户名和密码进入人事考勤管理系统,对各部门、员工的基本信息进行维护和管理。在考勤管理模块中录入员工当天的考勤信息,同时可对年、月、员工进行查询。此外,还可以通过考勤汇总查询模块对员工某月的考勤记录进行汇总,计算出员工月工作天数、早退、迟到的天数。三、系统设计系统目标 人事考勤管理系统以实现员工日常出勤信息管理为设计目标,加以强大的数据库管理功能,可以极大地提高人事部门的日

3、常工作效率。本系统在设计时满足以下几点:采用人机对话的操作方式,信息查询灵活、方便、快捷、准确,数据存储安全可靠。对考勤信息的操作简单,可以方便地进行添加、修改、和删除。可以录入员工信息、部门信息。对员工的考勤信息按月汇总计算。对用户输入的数据,系统进行严格的数据检验,尽可能排除人为错误。系统最大限度地实现了易维护性和易操作性。系统运行稳定、安全可靠。 系统功能结构 人事考勤管理系统的功能结构如图所示:人事考勤管理系统人事考勤管理系统 考勤数据录入考勤信息汇总用户管理部门信息管理员工信息管理考勤数据录入考勤信息汇总用户管理部门信息管理员工信息管理 业务流图人事考勤管理系统业务流程图如图:用户退

4、出登录用户退出登录员工信息管理员工考勤管理修改密码部门管理用户管理员工信息管理员工考勤管理修改密码部门管理用户管理考勤查询考勤查询4)系统预览: 人事考勤管理系统由多个功能模块组成,下面仅列出一些典型的功能模块,其他模块以后陆续列出:部门管理模块如图:主要管理各部门之间的结构信息用户管理模块如图:用于用户的一些操作管理人员信息管理如图:主要用于维护员工的基本信息考勤管理模块如图: 用于记录人事考勤的信息考勤汇总查询如图: 对员工的考勤信息进行汇总统计数据库设计数据库分析人事考勤系统采用SQL Server 2008 数据库,数据库名称为 tb_person 在数据库中建立四个表存储不同的信息,

5、如图:数据库概念设计根据介绍的需求分析和系统设计,规划处本系统中使用的数据库实体对象,分别以管理员为实体,部门实体和考勤实体等。下面是实体E-R图。管理员实体管理员包括编号,用户,密码。管理员实体E-R图用户编号密码用户编号密码管理员管理员 b)部门实体部门实体包括编号,部门名称,备注信息和上级部门编号。部门实体E-R图上级部门管理备注信息部门名称部门编号部门管理上级部门管理备注信息部门名称部门编号部门管理c)员工实体员工编号自动编号员工实体包括自动编号,员工编号,员工姓名,照片,性别和生日等信息。员工E-R图员工编号自动编号性别生日性别生日员工姓名照片员工员工姓名照片员工d)考勤实体上班时间

6、考勤实体包括人员姓名,考勤信息,上班时间,下班时间上班时间下班时间下班考勤时间人员姓名上班考勤时间考勤日期下班时间下班考勤时间人员姓名上班考勤时间考勤日期C.数据库逻辑设计管理员信息表(tab_user),用于保存管理员的信息,如图:部门信息表(tab_Dept)用于记录部门的信息,如图: C) 考勤信息表(tab_check)用于记录考勤信息 员工信息表(tab_Employees)保存公司员工信息,如图:四、公共类设计 本系统采用ADO连接数据库。为了能够方便的使用ADO建立数据库连接并进行相应的数据操作,在公共类中对系统中是使用的ADO操作进行了封装。在系统中建立了ADO的两个公共类CA

7、DOConnection和CADODataSet,这两个类定义在ADO.h头文件中,实现在ADO.cpp文件中。ACADOConnection类 CADOConnection类是用来连接数据库的,实现了对_Connection接口的封装。CADOConnection类在头文件中的定义如下: #import C:Program FilesCommon FilesSystemadomsado15.dll no_namespace rename(EOF,adoEOF)class CADOConnectionprivate:static void InitADO();/初始化ADOstatic voi

8、d UnInitADO();protected:_ConnectionPtr m_Connection;/指针接口public:BOOL IsOpen();/判断是否与数据库连接_ConnectionPtr GetConnection();/获取连接接口CString GetSQLConStr();/获取SQL连接字符串BOOL Open(CString ConStr);/建立数据库连接CADOConnection();virtual CADOConnection();CADOConnection类的实现代码如下:CADOConnection * GetConnection()/GetConn

9、ection函数是一个全局函数,用于返回全局数据库连接对象的的指针return &g_Connection;CADOConnection:CADOConnection()/CADOConnection方法是构造方法,用于初始化OLE和创建_Connection接口指针InitADO();m_Connection.CreateInstance(ADODB.Connection);CADOConnection:CADOConnection()/CADOConnection方法是构造方法,用于取消OLE 的初始化和释放_Connection接口指针if (IsOpen()m_Connection-C

10、lose();m_Connection = NULL;UnInitADO();void CADOConnection:InitADO()/InitADO是一个静态方法,用于初始化OLEif (ConCount+ = 0) CoInitialize(NULL);void CADOConnection:UnInitADO()/UnInitADO是一个静态方法,用于取消初始化OLEif (-ConCount = 0) CoUninitialize();BOOL CADOConnection:Open(CString ConStr)/通过指定的数据库连接字符串于SQL数据库建立连接if (IsOpen

11、()m_Connection-Close();m_Connection-Open(_bstr_t)ConStr,adModeUnknown);return IsOpen();CString CADOConnection:GetSQLConStr()/生成数据库连接需要的字符串CString Str;Str.Format(Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=tb_person;Data Source=LONGFEI-PCSQLEXPRESS);return

12、 Str;_ConnectionPtr CADOConnection:GetConnection()/该方法用于返回_Connection接口指针return m_Connection;BOOL CADOConnection:IsOpen()/判断当前数据库连接对象与数据库的连接状态long State;m_Connection-get_State(&State);if (State = adStateOpen)return true;return false;CADODataSet类的定义如下:class CADODataSetprotected:_RecordsetPtr m_DataSe

13、t;/数据集接口指针CADOConnection *m_Connection;/数据库连接对象public:BOOL Open(CString SQLStr,int LockType);/打开记录集void Delete();/记录删除int GetRecordNo();/获取记录集行号void move(int nIndex);/移动记录指针void Save();/保存对记录集的修改void SetFieldValue(CString FieldName,_variant_t Value);/设置字段的值void AddNew();/添加新纪录BOOL Next();/记录集指针指向下一个

14、记录FieldsPtr GetFields();/获取记录集字段集合int GetRecordCount();/获取记录集中记录数量void SetConnection(CADOConnection *pCon);/设置记录集的数据库连接对象BOOL Open(CString SQLStr);/打开记录集CADODataSet();virtual CADODataSet();private:BOOL IsOpen();CADODataSet类的实现如下: CADODataSet:CADODataSet()/该方法为记录集实现类的构造方法,在该方法中实现记录集接口对象的创建m_DataSet.C

15、reateInstance(ADODB.Recordset);CADODataSet:CADODataSet()/实现记录集的关闭与接口的释放if (IsOpen()m_DataSet-Close();m_DataSet = NULL;m_Connection = NULL;void CADODataSet:SetConnection(CADOConnection *pCon)/设置记录集所连接的数据库连接类的对象m_Connection = pCon;int CADODataSet:GetRecordCount()/获取记录集中数据的数量if (IsOpen()return m_DataSe

16、t-GetRecordCount();elsereturn 0;BOOL CADODataSet:Open(CString SQLStr)/打开数据集if (IsOpen()m_DataSet-Close();/*/m_DataSet-Open(_bstr_t(SQLStr),_variant_t(IDispatch*)g_Connection.GetConnection(), true),adOpenKeyset, adLockOptimistic, adCmdText);return IsOpen();/*/BOOL CADODataSet:IsOpen()/判断数据集是否处于打开状态lo

17、ng State;m_DataSet-get_State(&State);if (State = adStateOpen)return true;return false;FieldsPtr CADODataSet:GetFields()/用来获取记录集中字段的集合return m_DataSet-GetFields();BOOL CADODataSet:Next()/记录集指针下移一位if (m_DataSet-adoEOF)return false;m_DataSet-MoveNext();return true;void CADODataSet:AddNew()m_DataSet-Add

18、New();void CADODataSet:SetFieldValue(CString FieldName, _variant_t Value)/想记录集中指定的字段赋值m_DataSet-PutCollect(_bstr_t)FieldName,Value);void CADODataSet:Save()/保存记录集数据所做的修改m_DataSet-Update();void CADODataSet:move(int nIndex)/将记录集的当前指针移动到指定的索引位置m_DataSet-MoveFirst();m_DataSet-Move(nIndex);int CADODataSet

19、:GetRecordNo()/获取记录集中的当前行号return m_DataSet-AbsolutePosition;void CADODataSet:Delete()/删除记录集中的当前行m_DataSet-Delete(adAffectCurrent);BOOL CADODataSet:Open(CString SQLStr, int LockType)if (IsOpen()m_DataSet-Close();/*/m_DataSet-Open(_bstr_t(SQLStr),_variant_t(IDispatch*)g_Connection.GetConnection(), tru

20、e),adOpenKeyset,(LockTypeEnum) LockType, adCmdText);return IsOpen();五、主题窗设计A.主题窗由菜单和图片组成,如图:B.主题窗设计步骤: a启动visual c+,选择File/New命令,打开New对话框 b在左侧选择MFC AppWizard(exe)选项,在Project name编辑框中输入工程名称,在location编辑框中设置保存工程的路径,然后单击OK按钮,打开MFC AppWizard对话框,选择对话框编程,打击fish c像工程中导入位图,菜单资源(具体操作在最后有补充)六、用户登录模块设计概述,登录界面是每

21、个管理系统应该具备的,本系统的登录模块如图: B . 技术分析 窗体应在主题窗创建之前并显示,在登录窗体创建的同时应该建立数据库连接,具体操作如下: BOOL bCon = 、GetConnection()-Open(GetConnection()-GetSQLConStr(); CLoginDialog logindlg; if (logindlg.DoModal() != IDOK) return false; :CoInitialize(NULL); CPersonDlg dlg;实现过程创建一个对话框向对话框中添加两个静态文本控件、一个编辑框控件、和两个按钮控件。分别设置两个静态文本控

22、件的Caption属性为“用户名”和“密码”设置编辑框控件类型为password;分别设置连个按钮为“确定”和“取消”。C. 在窗体初始化方法中创建用户表的数据,并将用户添加到列表框控件中。代码如下: BOOL CLoginDialog:OnInitDialog() CDialog:OnInitDialog();m_DataSet.SetConnection(GetConnection();m_DataSet.Open(Select * From Tab_User);int count = m_DataSet.GetRecordCount();for (int i = 0; iItemLUse

23、rName-Value);m_DataSet.Next();m_UserList.SetCurSel(0);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE确定按钮事件代码如下:void CLoginDialog:OnLogin() CString sql,user,pass;m_UserList.GetWindowText(user);m_PassWord.GetWindowText(pass);sql.For

24、mat(Select * From tab_user Where UserName = %s and PassWord = %s,user,pass);m_DataSet.Open(sql);if (m_DataSet.GetRecordCount() = 1):SetUserName(user);this-OnOK();elseAfxMessageBox(用户名或密码不正确!);七、用户管理模块概况:能实现添加,修改,删除等操作如图: 实现过程:创建一个对话框向对话框中添加相应的控件给对话框添加对话框类给类添加函数及成员变量给控件关联变量编写函数 C实现代码: a定义UpdateGrid方法

25、用来更新列表视图中的信息代码如下: void CUserManage:UpdateGrid() m_DataSet.Open(Select * From tab_User); m_grid.DeleteAllItems(); for (int i = 0 ; i ItemLUserName-Value); int no = m_DataSet.GetRecordNo(); m_grid.SetItemData(i,no); m_DataSet.Next(); b添加按钮代码如下: void CUserManage:OnAppend() CUserEdit useredit; if (usere

26、dit.DoModal() = IDOK) m_DataSet.AddNew(); m_DataSet.SetFieldValue(UserName,(_bstr_t)); m_DataSet.Save(); UpdateGrid(); 删除按钮代码:void CUserManage:OnDelete() if (MessageBox(是否删除此记录!,提示,MB_YESNO|MB_ICONWARNING) = IDYES)int no = m_grid.GetItemData(m_grid.GetSelectionMark();m_DataSet.move(no-1

27、);m_DataSet.Delete();m_DataSet.Save();UpdateGrid();修改按钮代码:void CUserManage:OnEdit() CUserEdit useredit;int no = m_grid.GetItemData(m_grid.GetSelectionMark();m_DataSet.move(no-1); = (char *)(_bstr_t)m_DataSet.GetFields()-ItemLUserName-Value;if (useredit.DoModal() = IDOK)m_DataSet.SetFiel

28、dValue(UserName,(_bstr_t));m_DataSet.Save();UpdateGrid();八、部门管理模块设计概述:该模块记录了部门间的的层次结构和部门信息,一般使用树控件实现,如图: 实现过程:a. 创建一个对话框b. 向对话框中添加相应的控件c. 给对话框添加对话框类d. 给类添加函数及成员变量e. 给控件关联变量编写函数 C. 相关代码如下: BOOL CDeptManage:OnInitDialog() /初始化函数 CDialog:OnInitDialog(); m_DataSet.SetConnection(:GetConnecti

29、on(); UpdateDept(); return TRUE; 将部门信息一次性读入树控件中。代码如下: void CDeptManage:GetNode(HTREEITEM pNode, int nPid)HTREEITEM node;CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where pid = %d,nPid);DataSet.Open(str);int count = DataSet.GetRecordCount()

30、;int ID;_variant_t value;for (int i = 0;iItemDeptName-Value,pNode);value = (_variant_t)DataSet.GetFields()-ItemID-Value;ID = Val;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next(); 定义GetNode方法,用于按成次级关系获取部门表中的所有数据,并添加树控件,该方法由UpdateDept方法进行调用,代码如下; void CDeptManage:UpdateDept() m_tre

31、e.DeleteAllItems(); GetNode(TVI_ROOT,0);void CDeptManage:OnAdd() CDeptEdit deptedit;if (deptedit.DoModal() = IDOK)HTREEITEM pNode = m_tree.GetSelectedItem();int pID;if (deptedit.isroot)pID = 0;elsepID = m_tree.GetItemData(pNode);CADODataSet dataset;dataset.SetConnection(:GetConnection();dataset.Open

32、(Select top 1 * From tab_Dept);dataset.AddNew();dataset.SetFieldValue(DeptName,(_variant_t));dataset.SetFieldValue(memo,(_variant_t)deptedit.memo);dataset.SetFieldValue(PID,(long)pID);dataset.Save();UpdateDept(); 单击“修改”按钮时将弹出部门编辑窗体,输入部门信息后单击“确定”按钮,实现部门信息的修改。代码如下void CDeptManage:OnEdit()

33、 CDeptEdit deptedit;deptedit.visible = false;HTREEITEM pNode = m_tree.GetSelectedItem();if (pNode = 0)return;int pID = m_tree.GetItemData(pNode);CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where id = %d,pID);dataset.Open(str);

34、 = (char *)(_bstr_t)dataset.GetFields()-ItemLDeptName-Value;deptedit.memo = (char *)(_bstr_t)dataset.GetFields()-Itemmemo-Value;if (deptedit.DoModal() = IDOK)dataset.SetFieldValue(DeptName,(_variant_t));dataset.SetFieldValue(memo,(_variant_t)deptedit.memo);dataset.Save();UpdateDept();当单

35、击“删除”按钮时,将删除当前选中的节点,代码如下:void CDeptManage:OnDelete() HTREEITEM pNode = m_tree.GetSelectedItem();if (pNode = 0)return;if (MessageBox(是否删除此记录!,提示,MB_YESNO|MB_ICONWARNING) = IDYES)int pID = m_tree.GetItemData(pNode);CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str;str.Format(Selec

36、t * From tab_Dept where id = %d,pID);dataset.Open(str);dataset.Delete();dataset.Save();UpdateDept();九、人员信息管理模块设计概述:人员信息管理模块根据部门分类显示人员,同时可对人员信息进行维护,界面如下: 实现过程:创建对话框向对话框中添加相应的控件给对话框添加对话框类给类添加函数及成员变量给控件关联变量 相关代码:GetNode方法,获取部门信息,并添加到树控件中。该方法由UpdateDept调用,代码如下:void CPersonManage:GetNode(HTREEITEM pNode,

37、 int nPid) HTREEITEM node;CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where pid = %d,nPid);DataSet.Open(str);int count = DataSet.GetRecordCount();int ID;_variant_t value;for (int i = 0;iItemDeptName-Value,pNode);value = (_variant_t)DataSet

38、.GetFields()-ItemID-Value;ID = Val;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();UpdateDpt调用GetNode,实现信息更新,代码如下:void CPersonManage:UpdateDept() m_tree.DeleteAllItems();HTREEITEM node;node = m_tree.InsertItem(全部,TVI_ROOT);m_tree.SetItemData(node,-1);GetNode(node,0);UpdatePerson

39、更新人员信息,并将其显示在列表控件中。代码如下:void CPersonManage:UpdatePerson()m_list.DeleteAllItems();CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;if (m_DeptID = -1)str.Format(Select * From tab_Employees);elsestr.Format(Select * From tab_Employees where Dept = %d,m_DeptID);DataSet.Open(str);int

40、 count = DataSet.GetRecordCount();int n = 0;_variant_t value;for (int i = 0;iItemEmp_Id-Value);value = DataSet.GetFields()-ItemAutoID-Value;m_list.SetItemData(n,value.lVal);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemEmp_NAME-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFi

41、elds()-ItemSex-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemNationality-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemBirth-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemPolitical_Party-Value);m_list.SetItemText(n,index+,(_bstr_t)Dat

42、aSet.GetFields()-ItemCulture_Level-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemMarital_Condition-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemId_Card-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemOffice_phone-Value);m_list.SetItemT

43、ext(n,index+,(_bstr_t)DataSet.GetFields()-ItemMobile-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemHireDate-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemDuty-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemMemo-Value);m_list.SetItemTex

44、t(n,index+,(_bstr_t)DataSet.GetFields()-ItemFiles_Keep_Org-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemHukou-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemFamily_Place-Value);n+;DataSet.Next();单击“添加”按钮,弹出人员编辑窗体,输入人员信息后,单击保存按钮,实现人员的添加代码如下:void CPersonMana

45、ge:OnAdd() CPersonEdit personedit;personedit.m_DeptData = m_DeptID;if (personedit.DoModal() = IDOK)CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str = select top 1 * from tab_Employees;dataset.Open(str);dataset.AddNew();dataset.SetFieldValue(Emp_Id,(_bstr_t)personedit.m_id);data

46、set.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)per

47、sonedit.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(

48、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.SetF

49、ieldValue(Hukou,(_bstr_t)personedit.m_hukou);dataset.SetFieldValue(Family_Place,(_bstr_t)personedit.m_family);dataset.SetFieldValue(dept,personedit.m_DeptData);dataset.Save();UpdatePerson();单击“修改”按钮,弹出人员编辑窗体,输入人员信息后,单击“保存”实现人员信息的修改,代码如下:void CPersonManage:OnEdit() if (m_list.GetSelectionMark() = -1)

50、return;int id = m_list.GetItemData(m_list.GetSelectionMark();CPersonEdit personedit;CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str;str.Format(select * from tab_Employees where autoid = %d,id);dataset.Open(str);personedit.m_id = (char *)(_bstr_t)dataset.GetFields()-ItemEmp_Id-

51、Value;personedit.m_name = (char *)(_bstr_t)dataset.GetFields()-ItemEmp_NAME-Value;personedit.m_sex = (char *)(_bstr_t)dataset.GetFields()-ItemSex-Value;personedit.m_nationality = (char *)(_bstr_t)dataset.GetFields()-ItemNationality-Value;CString birth = (char *)(_bstr_t)dataset.GetFields()-ItemBirth

52、-Value;if (!birth.IsEmpty()/设置日期数据int yy=atoi(birth.Left(4);int mm=atoi(birth.Mid(6,2);int dd=atoi(birth.Mid(9,2);CTime tbirth(yy,mm,dd,0,0,0);personedit.m_birth = tbirth;personedit.m_farty = (char *)(_bstr_t)dataset.GetFields()-ItemPolitical_Party-Value;personedit.m_culture = (char *)(_bstr_t)datas

53、et.GetFields()-ItemCulture_Level-Value;personedit.m_marital = (char *)(_bstr_t)dataset.GetFields()-ItemMarital_Condition-Value;personedit.m_card = (char *)(_bstr_t)dataset.GetFields()-ItemId_Card-Value;personedit.m_office = (char *)(_bstr_t)dataset.GetFields()-ItemOffice_phone-Value;personedit.m_mob

54、ile = (char *)(_bstr_t)dataset.GetFields()-ItemMobile-Value;CString hire = (char *)(_bstr_t)dataset.GetFields()-ItemHireDate-Value;if (!hire.IsEmpty()/设置日期数据int yy=atoi(hire.Left(4);int mm=atoi(hire.Mid(6,2);int dd=atoi(hire.Mid(9,2);CTime thire(yy,mm,dd,0,0,0);personedit.m_hire = thire;personedit.m

55、_duty = (char *)(_bstr_t)dataset.GetFields()-ItemDuty-Value;personedit.m_memo = (char *)(_bstr_t)dataset.GetFields()-ItemMemo-Value;personedit.m_files = (char *)(_bstr_t)dataset.GetFields()-ItemFiles_Keep_Org-Value;personedit.m_hukou = (char *)(_bstr_t)dataset.GetFields()-ItemHukou-Value;personedit.

56、m_family = (char *)(_bstr_t)dataset.GetFields()-ItemFamily_Place-Value;personedit.m_DeptData = dataset.GetFields()-ItemDept-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(Se

57、x,(_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_cult

58、ure);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)pe

59、rsonedit.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

60、,(_bstr_t)personedit.m_family);dataset.SetFieldValue(dept,personedit.m_DeptData); dataset.Save();UpdatePerson();单击“删除”按钮,实现删除当前选中的人员记录。代码如下;void CPersonManage:OnDelete() if (MessageBox(是否删除此记录!,提示,MB_YESNO|MB_ICONWARNING) = IDYES) if (m_list.GetSelectionMark() = -1)return;int id = m_list.GetItemData

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论