




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 HYPERLINK / 課程設(shè)計(jì) 人事考勤治理系統(tǒng) 目錄第一部分:開發(fā)背景.3第二部分:系統(tǒng)分析3第三部分:系統(tǒng)設(shè)計(jì) .9第四部分:公共類設(shè)計(jì).15第五部分:主題窗設(shè)計(jì).16第六部分:用戶登錄模塊設(shè)計(jì).17第七部分:用戶治理模塊設(shè)計(jì)20第八部分:部門治理模塊設(shè)計(jì)23第九部分:人員信息治理模塊設(shè)計(jì).32第十部分:考勤模塊設(shè)計(jì)40第十一部分:考勤匯總模塊設(shè)計(jì)45第十二部分:后續(xù)補(bǔ)充部分: 一些過(guò)程的具體實(shí)現(xiàn)方法總結(jié)及圖片解釋:51第十三部分:心得.51人事考勤治理系統(tǒng)開發(fā)背景 某公司業(yè)務(wù)不斷進(jìn)展,職員數(shù)量不斷增加,人事考勤方面的治理已成為公司治理中的重要部分,但傳統(tǒng)的人事考勤制度已不能有效地治理
2、職員的出勤狀況,急需一套人事考勤治理的有效工具人事考勤治理系統(tǒng)。二、系統(tǒng)分析需求分析 通過(guò)對(duì)人事考勤治理過(guò)程的研究和分析,要求本系統(tǒng)應(yīng)該具有以下功能。用戶登錄。部門信息錄入人員信息治理考勤信息錄入考勤信息匯總。 系統(tǒng)功能描述用戶需要輸入用戶名和密碼進(jìn)入人事考勤治理系統(tǒng),對(duì)各部門、職員的差不多信息進(jìn)行維護(hù)和治理。在考勤治理模塊中錄入職員當(dāng)天的考勤信息,同時(shí)可對(duì)年、月、職員進(jìn)行查詢。此外,還能夠通過(guò)考勤匯總查詢模塊對(duì)職員某月的考勤記錄進(jìn)行匯總,計(jì)算出職員月工作天數(shù)、早退、遲到的天數(shù)。三、系統(tǒng)設(shè)計(jì)系統(tǒng)目標(biāo) 人事考勤治理系統(tǒng)以實(shí)現(xiàn)職員日常出勤信息治理為設(shè)計(jì)目標(biāo),加以強(qiáng)大的數(shù)據(jù)庫(kù)治理功能,能夠極大地提高
3、人事部門的日常工作效率。本系統(tǒng)在設(shè)計(jì)時(shí)滿足以下幾點(diǎn):采納人機(jī)對(duì)話的操作方式,信息查詢靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲(chǔ)安全可靠。對(duì)考勤信息的操作簡(jiǎn)單,能夠方便地進(jìn)行添加、修改、和刪除。能夠錄入職員信息、部門信息。對(duì)職員的考勤信息按月匯總計(jì)算。對(duì)用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗(yàn),盡可能排除人為錯(cuò)誤。系統(tǒng)最大限度地實(shí)現(xiàn)了易維護(hù)性和易操作性。系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。 系統(tǒng)功能結(jié)構(gòu) 人事考勤治理系統(tǒng)的功能結(jié)構(gòu)如圖所示:人事考勤治理系統(tǒng)人事考勤治理系統(tǒng) 考勤數(shù)據(jù)錄入考勤信息匯總用戶治理部門信息治理職員信息治理考勤數(shù)據(jù)錄入考勤信息匯總用戶治理部門信息治理職員信息治理 業(yè)務(wù)流圖人事考勤治理系統(tǒng)業(yè)務(wù)流程圖
4、如圖:用戶登錄 用戶登錄 部門、職員信息部門、職員信息 維 護(hù)考 勤 考 勤 信 息 匯 總 查 詢考 勤 信 息 錄 入系統(tǒng)預(yù)覽: 人事考勤治理系統(tǒng)由多個(gè)功能模塊組成,下面僅列出一些典型的功能模塊,其他模塊以后陸續(xù)列出:部門治理模塊如圖:要緊治理各部門之間的結(jié)構(gòu)信息用戶治理模塊如圖:用于用戶的一些操作治理人員信息治理如圖:要緊用于維護(hù)職員的差不多信息考勤治理模塊如圖: 用于記錄人事考勤的信息考勤匯總查詢?nèi)鐖D: 對(duì)職員的考勤信息進(jìn)行匯總統(tǒng)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)分析人事考勤系統(tǒng)采納SQL Server 2008 數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名稱為 tb_person 在數(shù)據(jù)庫(kù)中建立四個(gè)表存儲(chǔ)不同的信息,如圖:數(shù)據(jù)
5、庫(kù)邏輯設(shè)計(jì)治理員信息表(tab_user),用于保存治理員的信息,如圖:部門信息表(tab_Dept)用于記錄部門的信息,如圖: C) 考勤信息表(tab_check)用于記錄考勤信息 職員信息表(tab_Employees)保存公司職員信息,如圖:四、公共類設(shè)計(jì) 本系統(tǒng)采納ADO連接數(shù)據(jù)庫(kù)。為了能夠方便的使用ADO建立數(shù)據(jù)庫(kù)連接并進(jìn)行相應(yīng)的數(shù)據(jù)操作,在公共類中對(duì)系統(tǒng)中是使用的ADO操作進(jìn)行了封裝。在系統(tǒng)中建立了ADO的兩個(gè)公共類CADOConnection和CADODataSet,這兩個(gè)類定義在ADO.h頭文件中,實(shí)現(xiàn)在ADO.cpp文件中。ACADOConnection類 CADOConn
6、ection類是用來(lái)連接數(shù)據(jù)庫(kù)的,實(shí)現(xiàn)了對(duì)_Connection接口的封裝。CADOConnection類在頭文件中的定義如下: #import C:Program FilesCommon FilesSystemadomsado15.dll no_namespace rename(EOF,adoEOF)class CADOConnectionprivate:static void InitADO();/初始化ADOstatic void UnInitADO();protected:_ConnectionPtr m_Connection;/指針接口public:BOOL IsOpen();/推斷
7、是否與數(shù)據(jù)庫(kù)連接_ConnectionPtr GetConnection();/獵取連接接口CString GetSQLConStr();/獵取SQL連接字符串BOOL Open(CString ConStr);/建立數(shù)據(jù)庫(kù)連接CADOConnection();virtual CADOConnection();CADOConnection類的實(shí)現(xiàn)代碼如下:CADOConnection * GetConnection()/GetConnection函數(shù)是一個(gè)全局函數(shù),用于返回全局?jǐn)?shù)據(jù)庫(kù)連接對(duì)象的的指針return &g_Connection;CADOConnection:CADOConnecti
8、on()/CADOConnection方法是構(gòu)造方法,用于初始化OLE和創(chuàng)建_Connection接口指針I(yè)nitADO();m_Connection.CreateInstance(ADODB.Connection);CADOConnection:CADOConnection()/CADOConnection方法是構(gòu)造方法,用于取消OLE 的初始化和釋放_(tái)Connection接口指針if (IsOpen()m_Connection-Close();m_Connection = NULL;UnInitADO();void CADOConnection:InitADO()/InitADO是一個(gè)靜態(tài)
9、方法,用于初始化OLEif (ConCount+ = 0) CoInitialize(NULL);void CADOConnection:UnInitADO()/UnInitADO是一個(gè)靜態(tài)方法,用于取消初始化OLEif (-ConCount = 0) CoUninitialize();BOOL CADOConnection:Open(CString ConStr)/通過(guò)指定的數(shù)據(jù)庫(kù)連接字符串于SQL數(shù)據(jù)庫(kù)建立連接if (IsOpen()m_Connection-Close();m_Connection-Open(_bstr_t)ConStr,adModeUnknown);return IsO
10、pen();CString CADOConnection:GetSQLConStr()/生成數(shù)據(jù)庫(kù)連接需要的字符串CString Str;Str.Format(Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=tb_person;Data Source=LONGFEI-PCSQLEXPRESS);return Str;_ConnectionPtr CADOConnection:GetConnection()/該方法用于返回_Connection接口指針return m
11、_Connection;BOOL CADOConnection:IsOpen()/推斷當(dāng)前數(shù)據(jù)庫(kù)連接對(duì)象與數(shù)據(jù)庫(kù)的連接狀態(tài)long State;m_Connection-get_State(&State);if (State = adStateOpen)return true;return false;CADODataSet類的定義如下:class CADODataSetprotected:_RecordsetPtr m_DataSet;/數(shù)據(jù)集接口指針CADOConnection *m_Connection;/數(shù)據(jù)庫(kù)連接對(duì)象public:BOOL Open(CString SQLStr,in
12、t LockType);/打開記錄集void Delete();/記錄刪除int GetRecordNo();/獵取記錄集行號(hào)void move(int nIndex);/移動(dòng)記錄指針void Save();/保存對(duì)記錄集的修改void SetFieldValue(CString FieldName,_variant_t Value);/設(shè)置字段的值void AddNew();/添加新紀(jì)錄BOOL Next();/記錄集指針指向下一個(gè)記錄FieldsPtr GetFields();/獵取記錄集字段集合int GetRecordCount();/獵取記錄集中記錄數(shù)量void SetConnect
13、ion(CADOConnection *pCon);/設(shè)置記錄集的數(shù)據(jù)庫(kù)連接對(duì)象BOOL Open(CString SQLStr);/打開記錄集CADODataSet();virtual CADODataSet();private:BOOL IsOpen();CADODataSet類的實(shí)現(xiàn)如下: CADODataSet:CADODataSet()/該方法為記錄集實(shí)現(xiàn)類的構(gòu)造方法,在該方法中實(shí)現(xiàn)記錄集接口對(duì)象的創(chuàng)建m_DataSet.CreateInstance(ADODB.Recordset);CADODataSet:CADODataSet()/實(shí)現(xiàn)記錄集的關(guān)閉與接口的釋放if (IsOpen
14、()m_DataSet-Close();m_DataSet = NULL;m_Connection = NULL;void CADODataSet:SetConnection(CADOConnection *pCon)/設(shè)置記錄集所連接的數(shù)據(jù)庫(kù)連接類的對(duì)象m_Connection = pCon;int CADODataSet:GetRecordCount()/獵取記錄集中數(shù)據(jù)的數(shù)量if (IsOpen()return m_DataSet-GetRecordCount();elsereturn 0;BOOL CADODataSet:Open(CString SQLStr)/打開數(shù)據(jù)集if (Is
15、Open()m_DataSet-Close();/*/m_DataSet-Open(_bstr_t(SQLStr),_variant_t(IDispatch*)g_Connection.GetConnection(), true),adOpenKeyset, adLockOptimistic, adCmdText);return IsOpen();/*/BOOL CADODataSet:IsOpen()/推斷數(shù)據(jù)集是否處于打開狀態(tài)long State;m_DataSet-get_State(&State);if (State = adStateOpen)return true;return f
16、alse;FieldsPtr CADODataSet:GetFields()/用來(lái)獵取記錄集中字段的集合return m_DataSet-GetFields();BOOL CADODataSet:Next()/記錄集指針下移一位if (m_DataSet-adoEOF)return false;m_DataSet-MoveNext();return true;void CADODataSet:AddNew()m_DataSet-AddNew();void CADODataSet:SetFieldValue(CString FieldName, _variant_t Value)/想記錄集中指定
17、的字段賦值m_DataSet-PutCollect(_bstr_t)FieldName,Value);void CADODataSet:Save()/保存記錄集數(shù)據(jù)所做的修改m_DataSet-Update();void CADODataSet:move(int nIndex)/將記錄集的當(dāng)前指針移動(dòng)到指定的索引位置m_DataSet-MoveFirst();m_DataSet-Move(nIndex);int CADODataSet:GetRecordNo()/獵取記錄集中的當(dāng)前行號(hào)return m_DataSet-AbsolutePosition;void CADODataSet:Dele
18、te()/刪除記錄集中的當(dāng)前行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(), true),adOpenKeyset,(LockTypeEnum) LockType, adCmdText);return IsOpen();五、主題窗設(shè)計(jì)A.主題窗由
19、菜單和圖片組成,如圖:B.主題窗設(shè)計(jì)步驟: a啟動(dòng)visual c+,選擇File/New命令,打開New對(duì)話框 b在左側(cè)選擇MFC AppWizard(exe)選項(xiàng),在Project name編輯框中輸入工程名稱,在location編輯框中設(shè)置保存工程的路徑,然后單擊OK按鈕,打開MFC AppWizard對(duì)話框,選擇對(duì)話框編程,打擊fish c像工程中導(dǎo)入位圖,菜單資源(具體操作在最后有補(bǔ)充)六、用戶登錄模塊設(shè)計(jì)概述,登錄界面是每個(gè)治理系統(tǒng)應(yīng)該具備的,本系統(tǒng)的登錄模塊如圖: B . 技術(shù)分析 窗體應(yīng)在主題窗創(chuàng)建之前并顯示,在登錄窗體創(chuàng)建的同時(shí)應(yīng)該建立數(shù)據(jù)庫(kù)連接,具體操作如下: BOOL b
20、Con = 、GetConnection()-Open(GetConnection()-GetSQLConStr(); CLoginDialog logindlg; if (logindlg.DoModal() != IDOK) return false; :CoInitialize(NULL); CPersonDlg dlg;實(shí)現(xiàn)過(guò)程創(chuàng)建一個(gè)對(duì)話框向?qū)υ捒蛑刑砑觾蓚€(gè)靜態(tài)文本控件、一個(gè)編輯框控件、和兩個(gè)按鈕控件。分不設(shè)置兩個(gè)靜態(tài)文本控件的Caption屬性為“用戶名”和“密碼”設(shè)置編輯框控件類型為password;分不設(shè)置連個(gè)按鈕為“確定”和“取消”。C. 在窗體初始化方法中創(chuàng)建用戶表的數(shù)據(jù),
21、并將用戶添加到列表框控件中。代碼如下: 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; iItemLUserName-Value);m_DataSet.Next();m_UserList.SetCurSel(0);return TRUE; / return TRUE
22、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.Format(Select * From tab_user Where UserName = %s and PassWord = %s,user,pass);m_Dat
23、aSet.Open(sql);if (m_DataSet.GetRecordCount() = 1):SetUserName(user);this-OnOK();elseAfxMessageBox(用戶名或密碼不正確!);七、用戶治理模塊概況:能實(shí)現(xiàn)添加,修改,刪除等操作如圖: 實(shí)現(xiàn)過(guò)程:創(chuàng)建一個(gè)對(duì)話框向?qū)υ捒蛑刑砑酉鄳?yīng)的控件給對(duì)話框添加對(duì)話框類給類添加函數(shù)及成員變量給控件關(guān)聯(lián)變量編寫函數(shù) C實(shí)現(xiàn)代碼: a定義UpdateGrid方法用來(lái)更新列表視圖中的信息代碼如下: void CUserManage:UpdateGrid() m_DataSet.Open(Select * From tab_
24、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 (useredit.DoModal() = IDOK) m_DataSet.AddNew(); m_DataSet.SetFieldValue(UserName,(_bstr
25、_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);m_DataSet.Delete();m_DataSet.Save();UpdateGrid();修改按鈕代碼:void CUserManage:OnEdit() CUserEdit u
26、seredit;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.SetFieldValue(UserName,(_bstr_t);m_DataSet.Save();UpdateGrid();八、部門治理模塊設(shè)計(jì)概述:該模塊記錄了部門間的的層次結(jié)構(gòu)和部門信息,一般使用樹控件實(shí)現(xiàn),如圖: 實(shí)現(xiàn)過(guò)程
27、:a. 創(chuàng)建一個(gè)對(duì)話框b. 向?qū)υ捒蛑刑砑酉鄳?yīng)的控件c. 給對(duì)話框添加對(duì)話框類d. 給類添加函數(shù)及成員變量e. 給控件關(guān)聯(lián)變量編寫函數(shù) C. 相關(guān)代碼如下: BOOL CDeptManage:OnInitDialog() /初始化函數(shù) CDialog:OnInitDialog(); m_DataSet.SetConnection(:GetConnection(); UpdateDept(); return TRUE; 將部門信息一次性讀入樹控件中。代碼如下: void CDeptManage:GetNode(HTREEITEM pNode, int nPid)HTREEITEM node;CA
28、DODataSet 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.GetFields()-ItemID-Value;ID
29、 = Val;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next(); 定義GetNode方法,用于按成次級(jí)關(guān)系獵取部門表中的所有數(shù)據(jù),并添加樹控件,該方法由UpdateDept方法進(jìn)行調(diào)用,代碼如下; void CDeptManage:UpdateDept() m_tree.DeleteAllItems(); GetNode(TVI_ROOT,0);void CDeptManage:OnAdd() CDeptEdit deptedit;if (deptedit.DoModal() = IDOK)HTREEITEM pNode =
30、 m_tree.GetSelectedItem();int pID;if (deptedit.isroot)pID = 0;elsepID = m_tree.GetItemData(pNode);CADODataSet dataset;dataset.SetConnection(:GetConnection();dataset.Open(Select top 1 * From tab_Dept);dataset.AddNew();dataset.SetFieldValue(DeptName,(_variant_t);dataset.SetFieldValue(memo,(_variant_t)
31、deptedit.memo);dataset.SetFieldValue(PID,(long)pID);dataset.Save();UpdateDept(); 單擊“修改”按鈕時(shí)將彈出部門編輯窗體,輸入部門信息后單擊“確定”按鈕,實(shí)現(xiàn)部門信息的修改。代碼如下void CDeptManage:OnEdit() CDeptEdit deptedit;deptedit.visible = false;HTREEITEM pNode = m_tree.GetSelectedItem();if (pNode = 0)return;int pID = m_tree.GetItemData(pNode);
32、CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where id = %d,pID);dataset.Open(str); = (char *)(_bstr_t)dataset.GetFields()-ItemLDeptName-Value;deptedit.memo = (char *)(_bstr_t)dataset.GetFields()-Itemmemo-Value;if (deptedit.DoModal() = IDOK)
33、dataset.SetFieldValue(DeptName,(_variant_t);dataset.SetFieldValue(memo,(_variant_t)deptedit.memo);dataset.Save();UpdateDept();當(dāng)單擊“刪除”按鈕時(shí),將刪除當(dāng)前選中的節(jié)點(diǎn),代碼如下:void CDeptManage:OnDelete() HTREEITEM pNode = m_tree.GetSelectedItem();if (pNode = 0)return;if (MessageBox(是否刪除此記錄!,提示,MB_YESNO|MB_ICONWARNING) = I
34、DYES)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);dataset.Delete();dataset.Save();UpdateDept();九、人員信息治理模塊設(shè)計(jì)概述:人員信息治理模塊依照部門分類顯示人員,同時(shí)可對(duì)人員信息進(jìn)行維護(hù),界面如下: 實(shí)現(xiàn)過(guò)程:創(chuàng)建對(duì)話框向?qū)υ捒蛑刑砑酉鄳?yīng)
35、的控件給對(duì)話框添加對(duì)話框類給類添加函數(shù)及成員變量給控件關(guān)聯(lián)變量 相關(guān)代碼:GetNode方法,獵取部門信息,并添加到樹控件中。該方法由UpdateDept調(diào)用,代碼如下:void CPersonManage: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);in
36、t count = DataSet.GetRecordCount();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();UpdateDpt調(diào)用GetNode,實(shí)現(xiàn)信息更新,代碼如下:void CPersonManage:UpdateDept() m_tree.DeleteA
37、llItems();HTREEITEM node;node = m_tree.InsertItem(全部,TVI_ROOT);m_tree.SetItemData(node,-1);GetNode(node,0);UpdatePerson更新人員信息,并將其顯示在列表控件中。代碼如下:void CPersonManage:UpdatePerson()m_list.DeleteAllItems();CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;if (m_DeptID = -1)str.Format(
38、Select * From tab_Employees);elsestr.Format(Select * From tab_Employees where Dept = %d,m_DeptID);DataSet.Open(str);int 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.S
39、etItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemEmp_NAME-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-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_lis
40、t.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemPolitical_Party-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemCulture_Level-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemMarital_Condition-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetField
41、s()-ItemId_Card-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemOffice_phone-Value);m_list.SetItemText(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
42、.GetFields()-ItemDuty-Value);m_list.SetItemText(n,index+,(_bstr_t)DataSet.GetFields()-ItemMemo-Value);m_list.SetItemText(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)Data
43、Set.GetFields()-ItemFamily_Place-Value);n+;DataSet.Next();單擊“添加”按鈕,彈出人員編輯窗體,輸入人員信息后,單擊保存按鈕,實(shí)現(xiàn)人員的添加代碼如下:void CPersonManage:OnAdd() CPersonEdit personedit;personedit.m_DeptData = m_DeptID;if (personedit.DoModal() = IDOK)CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str = select to
44、p 1 * from tab_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);data
45、set.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_C
46、ard,(_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.SetFie
47、ldValue(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();Update
48、Person();單擊“修改”按鈕,彈出人員編輯窗體,輸入人員信息后,單擊“保存”實(shí)現(xiàn)人員信息的修改,代碼如下:void CPersonManage:OnEdit() if (m_list.GetSelectionMark() = -1)return;int id = m_list.GetItemData(m_list.GetSelectionMark();CPersonEdit personedit;CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str;str.Format(select * from t
49、ab_Employees where autoid = %d,id);dataset.Open(str);personedit.m_id = (char *)(_bstr_t)dataset.GetFields()-ItemEmp_Id-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 = (c
50、har *)(_bstr_t)dataset.GetFields()-ItemNationality-Value;CString birth = (char *)(_bstr_t)dataset.GetFields()-ItemBirth-Value;if (!birth.IsEmpty()/設(shè)置日期數(shù)據(jù)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
51、.m_farty = (char *)(_bstr_t)dataset.GetFields()-ItemPolitical_Party-Value;personedit.m_culture = (char *)(_bstr_t)dataset.GetFields()-ItemCulture_Level-Value;personedit.m_marital = (char *)(_bstr_t)dataset.GetFields()-ItemMarital_Condition-Value;personedit.m_card = (char *)(_bstr_t)dataset.GetFields
52、()-ItemId_Card-Value;personedit.m_office = (char *)(_bstr_t)dataset.GetFields()-ItemOffice_phone-Value;personedit.m_mobile = (char *)(_bstr_t)dataset.GetFields()-ItemMobile-Value;CString hire = (char *)(_bstr_t)dataset.GetFields()-ItemHireDate-Value;if (!hire.IsEmpty()/設(shè)置日期數(shù)據(jù)int yy=atoi(hire.Left(4)
53、;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_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.Get
54、Fields()-ItemFiles_Keep_Org-Value;personedit.m_hukou = (char *)(_bstr_t)dataset.GetFields()-ItemHukou-Value;personedit.m_family = (char *)(_bstr_t)dataset.GetFields()-ItemFamily_Place-Value;personedit.m_DeptData = dataset.GetFields()-ItemDept-Value;if (personedit.DoModal() = IDOK)dataset.SetFieldVal
55、ue(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.Se
56、tFieldValue(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)per
57、sonedit.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,(
58、_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();單擊“刪除”按鈕,實(shí)現(xiàn)刪除當(dāng)前選中的人員記錄。代碼如下;void CPersonManage:OnDelete() if (Message
59、Box(是否刪除此記錄!,提示,MB_YESNO|MB_ICONWARNING) = IDYES) if (m_list.GetSelectionMark() = -1)return;int id = m_list.GetItemData(m_list.GetSelectionMark();CADODataSet dataset;dataset.SetConnection(:GetConnection();CString str;str.Format(select * from tab_Employees where autoid = %d,id);dataset.Open(str);data
60、set.Delete();dataset.Save();UpdatePerson();初始化函數(shù),代碼如下;BOOL CPersonManage:OnInitDialog() CDialog:OnInitDialog();m_DeptID = -1;UpdateDept();int i = 0;m_list.InsertColumn(i,人員編號(hào));m_list.SetColumnWidth(i+,80);m_list.InsertColumn(i,人員名稱);m_list.SetColumnWidth(i+,100);m_list.InsertColumn(i,性不);m_list.SetC
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技公司如何進(jìn)行崗位競(jìng)聘策劃
- 基于“三生”共贏理念下的農(nóng)旅綜合體規(guī)劃策略研究
- 自來(lái)水中微塑料在余氯作用下的老化及污染行為研究
- ACP100核電站二回路建模分析與仿真研究
- 軟木墊片企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 鋁酸鹽企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 頁(yè)巖黑企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- DB3201-T 1176-2023 養(yǎng)老機(jī)構(gòu)社會(huì)工作督導(dǎo)規(guī)范
- 休閑男鞋企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 紀(jì)錄片中“真實(shí)電影”的理論探索與創(chuàng)作實(shí)踐
- CHZ 3002-2010 無(wú)人機(jī)航攝系統(tǒng)技術(shù)要求(正式版)
- 免拆底模鋼筋桁架樓承板圖集
- 尋夢(mèng)環(huán)游記(Coco)中英文臺(tái)詞對(duì)照
- 重點(diǎn)關(guān)愛(ài)學(xué)生幫扶活動(dòng)記錄表
- 改革后-topik考試作文紙
- 父母委托子女保管存款協(xié)議書
- 產(chǎn)品設(shè)計(jì)與開發(fā)的系統(tǒng)工程方法
- 預(yù)防留置針脫落
- 痛風(fēng)護(hù)理疑難病例討論
- 韓國(guó)語(yǔ)入門教學(xué)資料
- 《大學(xué)生職業(yè)能力訓(xùn)練》
評(píng)論
0/150
提交評(píng)論