公司员工人事管理系统()_第1页
公司员工人事管理系统()_第2页
公司员工人事管理系统()_第3页
公司员工人事管理系统()_第4页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、成绩:实验报告课程名称:数据库应用技术实验项目:员工人事管理系统姓名:专业:计算机科学与技术班级:学号:计算机科学与技术学院实验教学中心人事管理系统第一章人事管理系统概述1.1 人事管理系统简介1.2 企业信息化发展1.3关于人事管理系统 的几 个误 区第二章人事管理系统分析2.1系统初步调查2.2系统可行性分析2.3系统详细调查2.4系统的安全性第三章人事管理系统设计3.1方案设计3.2开发工具选择3.3数据库设计3.3.1人事管理系统的详细调查3.3.2系统逻辑模型的提出3.3.3数据字典3.4数据模块设计图1 设计目标使用人事管理系统,便于公司领导掌握人员的动向,及时调整人才的分配。本系

2、统主要维护新员工资料; 详细记录人事变动, 包括岗位和部门的调整; 员工信息的查询和修改, 包括员工个人信息和密码等; 作为公司人事管理信息系统的基础部分,它为其他子系统如考勤管理系统, 工资管理系统等, 提供员工的基本信息。根据系统功能的要求,人事管理系统可以分为新员工档案的输入, 人事变更,员工档案的修改和查询等模块。2 功能设计企业人事管理系统主要用于员工个人资料的录入,职务变动的记录和管理。使用人事管理系统, 便于公司领导掌握人员的动向, 及时调整人才的分配。 本系统是公司人事管理信息系统的基础部分, 它为其他子系统, 如考勤管理系统, 工资管理系统和员工培训系统, 提供员工的基本信息

3、。 同时为其他系统提供了员工登录的密码认证和权限分配功能。人事管理系统在设计时主要考虑以下几项功能要求:新员工资料的输入。人事变动的详细记录,包括岗位和部门的调整。员工信息的查询和修改,包括员工个人信息和密码等。为了更好的理解该系统和读懂该系统的源码,读者应对以下的知识点有所了解: MS SQL SERVER 2000数据库操作的基础知识。 ODBC 数据源基础知识。 基本的 SQL语句,如添加,查询,修改和删除记录语句。 关于数据库的基础知识。3数据库设计3.1数据库设计数据库需求分析根据数据流程图,可以列出以下数据项和数据结构:员工信息:员工号,密码,权限,姓名,性别,生日,部门,职务,教

4、育程度,专业,通讯地址,电话, E-mail ,当前状态和其他。人事变动:记录号,员工,变动和详细描述。所需的外部数据支持。部门设置:部门编号,名称等。数据库概念结构设计人事管理系统的 E-R 图如图 3-1 所示。员工密码员工号当前状态权限性别变动时间姓名部门编号记录编号管理人事变动记录变 动 -员工部门员工归属变动描述生日名称简介职位学历专业联系电话联系地址Email图 3-1人事管理系统 E-R 图数据库逻辑结构设计与实现根据系统 E-R 图,本系统需要有 2 个数据表分别来存放员工个人信息和人事变动记录。并且需要一个外部数据表(部门信息)的支持。同时部分记录字段要用代码来表示, 银次需

5、要 3 个代码表来分别记录教育程度, 职务和人事变更的代码。最后,设立一个计数器数据表用于实现员工号的自动分配。 这 7 个数据表用 Access 2000 实现, Access 2000 中的设计视图如表 3-1 3-7 所示。其中数据类型的细节应根据具体字段分别设置,如PERSON 表的 ID 字段大小为6,AUTHORITY字段, SEX 字段, EDU_LEVE L 字段和 STATE 字段的大小为1,DEPARTMENT 字段, JOB 字段的大小为 3。表 3-1员工个人信息表( PERSON)字段名称数据类型说明ID文本员工号PASSWD文本密码AUTHORITY文本用户权限NA

6、ME文本姓名SEX文本性别BIRTHDAY日期/时间生日DEPARTMENT文本所在部门JOB文本职务EDU_LEVEL文本受教育程度SPECIALTY文本专业技能ADDRESS文本家庭住址TEL文本联系电话EMAIL文本电子信箱STATE文本当前状态(T-员工,F-非员工)REMARK文本备注表 3-2人事变更记录表( PERSONNEL)字段名称数据类型说明ID数字记录编号PERSON文本员工号CHANGE文本变更代码RECORD_TIME日期/时间记录时间DESCRIPTION备注详细记录表 3-3L受教育程度代码表( EDU_LEVE )字段名称数据类型说明CODE文本代码DESCRI

7、PTION文本描述表 3-4职务代码表( JOB)字段名称数据类型说明CODE文本代码DESCRIPTION文本描述表 3-5人事变动代码表( PERSONNEL_CHANGE )字段名称数据类型说明CODE文本代码DESCRIPTION文本描述表 3-6计数器表( COUNTER )字段名称数据类型说明ID文本计数器编号COUNTER_VALUE数字计数值DESCRIPTION文本描述表 3-7部门信息表( DEPARTMENT )字段名称数据类型说明ID文本部门编号NAME文本部门名称MANGER文本部门经理INTRO备注简介初始数据的输入本例中需要输入的初始数据包括:部门信息,计数器,受

8、教育程度代码,职务代人事变动代码。部门信息和职务代码可以根据需要设置。计数器和另外的两种代码的设置如表 3-8 表 3-10 所示。表 3-8计数器设置计数器编号说明P员工编号C人事变更记录编号表 3-9受教育程度代码代码说明0小学1初中2高中3职高4大本5大专6硕士7博士8博士后表 3-10人事变更代码代码说明0新员工加入1职务变动2辞退3.2系统设计系统功能分析人事管理系统主要有以下几项功能要求:新员工资料的输入。自动分配员工号,并且设置初始的用户密码。人事变动的详细记录,包括岗位和部门的调整。员工信息的查询和修改,包括员工个人信息和密码等。系统功能模块设计根据系统功能的要求, 可以将系统

9、分解成几个功能模块来分别设计, 功能模块如图 3-2 所示。人事管理系统新员员工工人档档事案案变查输更询入修改图 3-2人事管理系统功能模块图数据流程图系统的数据流程图如图3-3 所示,所有数据由人事科管理人员输入。招聘新员工分配员工号员工信息数据岗位调整人事科员工辞退人事变动记录个人信息查询图 3-3人事管理系统数据流程图3.3生成程序框架在本章中,将使用不支持文档 / 视图体系( Document/View architecture)的多文档界面( Multiple-Document Interface, MDI )的结构来开发数据库管理程序。 MDI结构包括一个主框架窗口和若干个子框架窗

10、口,子框架窗口可包含文档类和相关的视图,如果使用文档类, MDI 文档模板类 CMultiDocTemplate 将为文档类和视图之间提供方便的联系,可简化编程的工作量。在本实例中不使用文档类,因此没有创建文档模板类的对象,此外实例中还创建了自己的视图以实现相关功能。MDI 界面可以方便地在各个子窗口之间切换。典型的 MDI 结构软件如 Microsoft 的 Office 系列软件。在这里,用AppWizard 生成程序框架,且手工加入数据库支持。在MFCAppWizard-Step1 中选择 Multiple document 项,并去掉 Document/View architectur

11、e support?选项。其余均采用默认配置。 这样生成的程序中包含 CTestApp( 设应用程序名为 Test) ,CMainFrame,CChildFrame,CChildView 和 CAboutDlg 五个类。由于子框架类 CChildFrame 中自动创建 CChildView 类,而此类并非所需, 因此在程序中将不用 CChildFrame 和 CChildView 类,而创建自己的子框架和视图。用 Class Wizard创建一个新的子框架类 CTheChildFrame, 基类为 CMDIChildWnd , 程序中将用此子框架类包含视图,因程序的功能主要在视图中实现,故无需

12、修改默认创建的 CTheChildFrame 类。本程序数据库的操作是通过 MFC 的 ODBC 类实现的。为了使用 ODBC 类,需要在 stdafx.h 中加入 #include“ afxdb.h”一行。因本程序只需要连接一个数据库,所以定义了一个 CDatabase型的全局变量 db, 一次性的打开和关闭数据库,方便程序的编写。3.4主框架窗口设计菜单的创建用 VisualC+6.0 的菜单编辑器( Menu Editor)可以会让你方便的创建菜单。在菜单编辑器中打开的设计窗口如图 3-6 所示。AppWizard 创建的程序默认有两个菜单: IDR_MAINFRAME 为主框架窗口所用

13、,IDR_TESTTYPE ( 设应用程序名为 Test) 为子框架窗口所用。因本例中没有用默认的子框架,所以将 IDR_TESTTYPE 菜单属性设置如表 3-11 所示。表 3-11菜单栏菜单项系统连接断开连接分割线退出人事管理增加新员工人事变动查询修改窗口重叠排列水平平铺菜单删去,同时重新编辑 IDR_MAINFRAME菜单,菜单属性表属性取值(说明)Caption&S 系统IDID_SYSTEM_CONNECTCaption&C 连接tF2Prompt连接到服务器IDID_SYSTEM_DISCONNECTCaption&D 断开连接 tF3Prompt断开当前

14、连接选中 SEPARATOR 属性IDID_APP_EXITCaption&X 退出 tCtl+QPrompt关闭整个应用程序Caption&M 人事管理IDID_MANAGE_ADDCaption& 增加新员工Prompt输入新员工的信息IDID_MANAGE_CHANGECaption&C 人事变动Prompt记录员工的职位变动IDID_MANAGER_SEARCHCaption&S 查询修改Prompt查询修改员工信息Caption&W 窗口IDID_WINDOW_CASCADECaption&C 重叠排列Prompt重叠排列窗口I

15、DID_WINDOW_TILE_HORZCaption&H 水平平铺Prompt水平排列窗口IDID_WINDOW_TILE_VERT垂直平铺Caption&V 垂直平铺Prompt垂直排列窗口IDID_WINDOW_MINIALL最小化所有窗口Caption&M 最小化所有窗口Prompt将所有窗口最小化帮助Caption&H 帮助IDID_APP_ABOUT关于Caption&A 关于 tF1Prompt本程序的说明其中,“退出”、“重叠排序”、“水平平铺”、“垂直平铺”和“关于”菜单项用了系统的标准 ID ,其功能已由 MFC 实现,无需另外编程。

16、工具条的创建用 Visual C+6.0 的工具条编辑器(Toolbar Editor)可以很方便的编辑工具条。本程序创建的工具条如图 3-7 所示,其中工具条各按钮的 ID 分别对应相应的菜单项,按从左到右的次序对应的菜单项ID 如表 3-12 所示。表 3-12工具条按钮对应的菜单项 ID次序ID1ID_SYSTEM_CONNECT2ID_SYSTEM_DISCONNECT3ID_MANAGE_ADD4ID_MANAGER_CHANGE5ID_MANAGER_SEARCH6ID_WINDOW_CASCADE7ID_WINDOW_TILE_HORZ8ID_WINDOW_TILE_VERT9I

17、D+APP_ABOUT增加一个状态栏指示器在程序中加入一个状态栏指示器以显示登录状态。首先用增加一个资源ID:ID_INDICATOR_LOGIN ,然后在 MainFrm.cpp 中找到 indicators 变量的定义处,添加此 ID 至其列表,程序如下:Static UNIT indicators=ID_SEPARATOR, /status line indicatorID_INDICATOR_LOGIN,/登录状态ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;程序相关代码在 CmainFrame中定义如下变量。CTheChi

18、ldFrame *m_pAdd,*m_pChange,*m_pSearch; /指向 3 个功能子框架窗口BOOL m_bLogin;/登陆状态BOOL m_bltemAdd,m_blItemChange,m_bltemSearch;/ 菜单项及工具单按钮是否可用为了实现菜单项于工具条按钮的开发与禁用,需要通过 Class Wizard 假日相应 ID的 UPDATE_COMMAND_UI 处理程序如下:void CMainFrame:OnUpdateSystemConnect(CCmdUI* pCmdUI)pCmdUI->Enable(!m_bLogin);/ 根据登录状态改变菜单项和

19、工具栏相应按钮状态void CMainFrame:OnUpdateSystemDisconnect(CCmdUI* pCmdUI)pCmdUI->Enable(m_bLogin); / 根据登录状态改变菜单项和工具栏相应按钮状态void CMainFrame:OnUpdateManageAdd(CCmdUI* pCmdUI)pCmdUI->Enable(m_bItemAdd); / 根据 m_bItemAdd 改变菜单项和工具栏相应按钮状态void CMainFrame:OnUpdateManagerSearch(CCmdUI* pCmdUI)pCmdUI->Enable(m

20、_bItemSearch); / 根据 m_bItemSearch 改变菜单项和工具栏相应按钮状态void CMainFrame:OnUpdateManagerChange(CCmdUI* pCmdUI)/ 根据 m_bItemChange改变菜单项和工具栏相应按钮状态pCmdUI->Enable(m_bItemChange);CMainFrame 类的构造函数中需要初始化一些变量。CMainFrame:CMainFrame()/ TODO: add member initialization code herem_bLogin=FALSE;m_bItemAdd=FALSE;/ 缺省未登

21、录 / " 增加新员工"功能缺省为不可用m_bItemChange=FALSE; / "人事变动 "功能缺省为不可用 m_bItemSearch=FALSE; / "查询修改 "功能缺省为不可用 m_pAdd=m_pChange=m_pSearch=NULL; / 初始化为空各菜单的 Command 事件处理代码如下:void CMainFrame:OnSystemConnect()CLoginDlg dlg;if(dlg.DoModal()=IDOK)/判断是否通过m_bLogin=TRUE; / 已登录m_bItemAdd=TRU

22、E; / 开放 "增加新员工 "功能m_bItemChange=TRUE; / 开放 " 人事变动 "功能m_bItemSearch=TRUE; / 开放 "查询修改 "功能/ 改变状态栏m_wndStatusBar.SetPaneText(1,已"登录到数据库: "+dlg.m_strDSN);void CMainFrame:OnSystemDisconnect()db.Close(); / 关闭数据库/ 关闭所有子框架窗口if(m_pAdd) m_pAdd->DestroyWindow();if(m_pC

23、hange) m_pChange->DestroyWindow();if(m_pSearch) m_pSearch->DestroyWindow();m_bLogin=FALSE; / 未登录m_bItemAdd=FALSE; / 禁止 "增加新员工 "功能m_bItemChange=FALSE; / 禁止 "人事变动 "功能m_bItemSearch=FALSE; / 禁止 "查询修改 "功能/ 改变状态栏m_wndStatusBar.SetPaneText(1,尚"未登录数据库 !请按 F2 登录 "

24、;);void CMainFrame:OnUpdateSystemConnect(CCmdUI* pCmdUI)pCmdUI->Enable(!m_bLogin);/ 根据登录状态改变菜单项和工具栏相应按钮状态void CMainFrame:OnUpdateSystemDisconnect(CCmdUI* pCmdUI)pCmdUI->Enable(m_bLogin); / 根据登录状态改变菜单项和工具栏相应按钮状态void CMainFrame:OnUpdateManageAdd(CCmdUI* pCmdUI)pCmdUI->Enable(m_bItemAdd); / 根据

25、 m_bItemAdd 改变菜单项和工具栏相应按钮状态void CMainFrame:OnUpdateManagerSearch(CCmdUI* pCmdUI)pCmdUI->Enable(m_bItemSearch); / 根据 m_bItemSearch改变菜单项和工具栏相应按钮状态void CMainFrame:OnUpdateManagerChange(CCmdUI* pCmdUI)pCmdUI->Enable(m_bItemChange); / 根据 m_bItemChange 改变菜单项和工具栏相应按钮状态void CMainFrame:OnManageAdd()/ 创

26、建新子框架和视m_pAdd = new CTheChildFrame();CCreateContext context;context.m_pNewViewClass=RUNTIME_CLASS(CAddView);if(!m_pAdd->LoadFrame(IDR_MAINFRAME,WS_OVERLAPPEDWINDOW| FWS_PREFIXTITLE,this, &context )return;m_pAdd->InitialUpdateFrame(NULL,TRUE);m_bItemAdd=FALSE; / 禁止 "增加新员工 "功能void

27、CMainFrame:OnManagerChange()/ 创建新子框架和视m_pChange = new CTheChildFrame();CCreateContext context;context.m_pNewViewClass=RUNTIME_CLASS(CChangeView);if(!m_pChange->LoadFrame(IDR_MAINFRAME,WS_OVERLAPPEDWINDOW| FWS_PREFIXTITLE,this, &context )return;m_pChange->InitialUpdateFrame(NULL,TRUE);m_bIt

28、emChange=FALSE; / 禁止 "人事变动 "功能void CMainFrame:OnManagerSearch()/ 创建新子框架和视m_pSearch = new CTheChildFrame();CCreateContext context;context.m_pNewViewClass=RUNTIME_CLASS(CSearchView);if(!m_pSearch->LoadFrame(IDR_MAINFRAME,WS_OVERLAPPEDWINDOW| FWS_PREFIXTITLE,this, &context )return;m_pS

29、earch->InitialUpdateFrame(NULL,TRUE);m_bItemSearch=FALSE; / 禁止 "查询修改 "功能void CMainFrame:OnWindowMiniall()/ 最小化所有窗口if(m_pAdd) m_pAdd->ShowWindow(SW_MINIMIZE);if(m_pChange) m_pChange->ShowWindow(SW_MINIMIZE); if(m_pSearch) m_pSearch->ShowWindow(SW_MINIMIZE);在程序结束时需关闭数据库,因此需处理CMAi

30、nFrame 的 M_DESTROY 消息。void CMainFrame:OnDestroy()CMDIFrameWnd:OnDestroy();if(db.IsOpen() db.Close(); / 如数据库未关闭则关闭3.5增加新员工视类的创建首先加入一个新的窗体资源,在Insert Resource 对话框中选择Dialog 的IDD_FORMVIEW项。窗体创建后,在其上添加所需控件,最后的布局如图3-8所示。创建好资源后,为窗体加入一个由CFormView 类继承的 CAddView 封装此窗体资源,然后用Class Wizard 为所需控件加入成员变量。主要控件类型、ID和对应

31、的成员变量及说明如表3-13 所示。图 3-8增加新员工窗体表 1-13增加新员工窗体控件列表控件类型ID成员变量说明Edit BoxIDC_ADD_EDT_IDm_strID员工号Edit BoxIDC_ADD_EDT_PASSWODm_strPassword密码Edit BoxIDC_ADD_EDT_NAMEm_strName姓名RadioIDC_ADD_RADIO_MALE无性别 -男ButtonRadioIDC_ADD_RADIO_FEMALE无性别 -女ButtonEdit BoxIDC_ADD_EDT_BIRTHDAYm_strBirthday生日m_cDepartment部门Co

32、mbo BoxIDC_ADD_CMB_DEPARTMENTm_strDepartmentCombo BoxIDC_ADD_CMB_JOBm_cJob职务m_strJobCombo BoxIDC_ADD_CMB_EDULEVELm_cEdulevel受教育水平m_strEdulevelEdit BoxIDC_ADD_EDT_SPECIALTYm_strSpecialty专业Edit BoxIDC_ADD_EDT_ADDRESSm_strAddress地址Edit BoxIDC_ADD_EDT_TELm_strTel电话Edit BoxIDC_ADD_EDT_EMALm_strEmailE-mai

33、lEdit BoxIDC_ADD_EDT_MEMOm_strMemo备 注 ( Style选Multiline )ButtonIDC_ADD_BTN_ADD无“增加 ”按钮CAddView 类需要用到主框架窗口类和加密类,因此需要在cpp 文件开头加入以下两行:#include "Crypt.h"#include "MainFrm.h"另外,为了使用全局数据库变量db,需要在 cpp 文件开头加入如下语句:Extern CDatabase db;每次增加新成员时需要先做一些初始化工作, 如设置自动生成员工号和密码等,哟个 ClassView 加入初始化函

34、数 Init() ,代码如下:void CAddView:Init()/ 清空成员变量 m_strID = _T(""); m_strPasswd = _T(""); m_strName = _T(""); m_strBirthday = _T(""); m_strDepartment = _T("");m_cDepartment.SetCurSel(-1); m_strJob = _T(""); m_cJob.SetCurSel(-1);m_strEdulevel = _T

35、("");m_cEdulevel.SetCurSel(-1);m_strSpecialty = _T("");m_strAddress = _T("");m_strTel = _T("");m_strEmail = _T("");m_strMemo = _T("");/ 生成员工号CString str;int counter; / 用于计数 CRecordset rs(&db); / 数据集 rs.Open(CRecordset:forwardOnly,"

36、select COUNTER_VALUE from COUNTER where ID='P'"); rs.GetFieldValue("COUNTER_VALUE", str);sscanf(str, "%d", &counter); / 获取计数值 rs.Close();str.Format("P%05d", counter); / 产生标准格式的编号m_strID=str; / 自动产生员工号m_strPasswd=str; / 默认密码为员工号/ 设置缺省性别为男(CButton*)GetDlg

37、Item(IDC_ADD_RADIO_MALE)->SetCheck(TRUE); UpdateData(FALSE); / 更新界面数据重载 CformView 的 OnInitialUpdate 函数如下,其中调整窗口外观,并设置几个ComboBox 中的值:void CAddView:OnInitialUpdate()CFormView:OnInitialUpdate();/ 使框架窗口大小与视图匹配GetParentFrame()->RecalcLayout(); ResizeParentToFit(FALSE);GetParentFrame()->SetWindow

38、Text("增加新员工 "); / 设置标题CRecordset rs(&db); / 数据集CString str;/ 设置部门下拉框所取的值为 DEPARTMENT 表中的值rs.Open(CRecordset:forwardOnly, "select NAME from DEPARTMENT");while(!rs.IsEOF()rs.GetFieldValue("NAME", str);m_cDepartment.AddString(str);rs.MoveNext();rs.Close();/ 设置职务下拉框所取的值

39、为 JOB 表中的值 rs.Open(CRecordset:forwardOnly, "select DESCRIPTION from JOB"); while(!rs.IsEOF()rs.GetFieldValue("DESCRIPTION", str); m_cJob.AddString(str); rs.MoveNext();rs.Close();/ 设置受教育水平下拉框所取的值为 EDU_LEVEL 表中的值rs.Open(CRecordset:forwardOnly,"selectDESCRIPTIONfromEDU_LEVEL&qu

40、ot;);while(!rs.IsEOF()rs.GetFieldValue("DESCRIPTION", str);m_cEdulevel.AddString(str);rs.MoveNext();rs.Close();Init(); / 调用初始化函数“增加 ”按钮的 COMMAND消息处理如下,其中完成的记录的添加。void CAddView:OnAddBtnAdd()CString str,strSQL;int counter; / 用于计数CRecordset rs(&db); / 数据集UpdateData(); / 更新数据if(m_strName.I

41、sEmpty() / 姓名为空则返回AfxMessageBox("姓名不能为空 !");return;/ 累加员工编号计数器 rs.Open(CRecordset:forwardOnly,"select COUNTER_VALUE from COUNTER where ID='P'"); rs.GetFieldValue("COUNTER_VALUE", str);sscanf(str, "%d", &counter); / 获取计数值rs.Close(); / 关闭数据集counter+;

42、/ 计数值加 1str.Format("%d", counter); / 转换为字符串strSQL="update COUNTER set COUNTER_VALUE=" + str + " whereID='P'"/ 设置 SQL 语句 db.ExecuteSQL(strSQL); / 执行/ 增加员工个人信息记录CString strPasswd,strSex,strDepID,strJobID,strEduID;/ 判断生日是否为空if(m_strBirthday.IsEmpty() m_strBirthday=

43、"1900-1-1" /缺省值/ 加密密码strPasswd=CCrypt:Encrypt(m_strPasswd, 123);/ 判断性别if(CButton*)GetDlgItem(IDC_ADD_RADIO_MALE)->GetCheck()strSex="M"else strSex="F"/ 得到部门 ID rs.Open(CRecordset:forwardOnly,"select ID from DEPARTMENT where NAME='" + m_strDepartment +&qu

44、ot;'"); rs.GetFieldValue("ID", strDepID);rs.Close();/ 得到职务代码rs.Open(CRecordset:forwardOnly,"select CODE from JOB where DESCRIPTION='" + m_strJob +"'"); rs.GetFieldValue("CODE", strJobID);rs.Close();/ 得到受教育水平代码 rs.Open(CRecordset:forwardOnly,&q

45、uot;select CODE from EDU_LEVEL where DESCRIPTION='" + m_strEdulevel +"'");rs.GetFieldValue("CODE", strEduID);rs.Close();/ 写 SQL 语句strSQL="insert into PERSON(ID,PASSWD,NAME,SEX,BIRTHDAY,DEPARTMENT,JOB,EDU_LEVEL,SPECIALTY , ADDRESS,TEL,EMAIL,REMARK) values('&q

46、uot;+ m_strID + "','" / ID+ strPasswd + "','" / PASSWD+ m_strName + "','" / NAME+ strSex + "','" / SEX+ m_strBirthday + "','" / BIRTHDAY+ strDepID + "','" / DEPARTMENT+ strJobID + "',

47、'" / JOB+ strEduID + "','" / EDU_LEVEL+ m_strSpecialty + "','" / SPECIALTY+ m_strAddress + "','" / ADDRESS+ m_strTel + "','" / TEL+ m_strEmail + "','" / EMAIL+ m_strMemo + "')" / REMARK d

48、b.ExecuteSQL(strSQL); / 执行/ 获取人事变动记录号并累加 rs.Open(CRecordset:forwardOnly,"select COUNTER_VALUE from COUNTER where ID='C'"); rs.GetFieldValue("COUNTER_VALUE", str);sscanf(str, "%d", &counter); / 获取计数值rs.Close(); / 关闭数据集counter+;/计数值加 1str.Format("%d"

49、, counter); / 转换为字符串strSQL="update COUNTER set COUNTER_VALUE=" + str + " whereID='C'"/ 设置 SQL 语句 db.ExecuteSQL(strSQL); / 执行/ 追加人事变动记录str.Format("%d",counter); / 计数值转换为字符串CTime time=CTime:GetCurrentTime();CString strNow=time.Format("%Y-%m-%d %H:%M:%S")

50、;/ 写 SQL 语句strSQL="insert into PERSONNEL(ID,PERSON,CHANGE, RECORD_TIME,DESCRIPTION)values("+ str + ",'"+ m_strID + "','"+ "0" + "','"+ strNow + "','"+ "加入公司 ')"db.ExecuteSQL(strSQL);/ ID/ PERSON/ CHANGE -加入公司代码/ RECORD_TIME/ DESCRIPTION/ 重新初始化窗口Init();窗口关闭时,需要恢复菜单项和工具条按钮状态并清空相应的子框架窗口指针。void CAddView:OnDestroy()CFormView:OnDestroy();(CMainFrame*)AfxGetMainWnd()->m_bItemAdd=TRUE; / 开放 "增加新员工"功能(CMainFrame*)AfxGetMainW

温馨提示

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

评论

0/150

提交评论