人事信息管理系統(tǒng) 本科畢業(yè)論文_第1頁
人事信息管理系統(tǒng) 本科畢業(yè)論文_第2頁
人事信息管理系統(tǒng) 本科畢業(yè)論文_第3頁
人事信息管理系統(tǒng) 本科畢業(yè)論文_第4頁
人事信息管理系統(tǒng) 本科畢業(yè)論文_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、XXXXXX本科畢業(yè)設(shè)計人事信息管理系統(tǒng)學(xué)生姓名XXXXXX院系名稱專業(yè)名稱計算機(jī)科學(xué)與技術(shù)班 級學(xué) 號指導(dǎo)教師XXXXXXXX教務(wù)處二八年五月人事信息管理系統(tǒng)學(xué)生:XXXX 指導(dǎo)教師:XXXX內(nèi)容提要本系統(tǒng)所研究的內(nèi)容是人事信息管理系統(tǒng),在整個研究工程中,經(jīng)過需求分析、概要設(shè)計、詳細(xì)設(shè)計、系統(tǒng)測試等幾個階段的工作,使系統(tǒng)具有了插入、刪除、修改、查詢、導(dǎo)出以及備份恢復(fù)維護(hù)的基本功能。本系統(tǒng)使用軟件的開發(fā)工具是,后臺數(shù)據(jù)庫是本地Microsoft SQL Server2000數(shù)據(jù)庫,設(shè)計數(shù)據(jù)庫軟件是PowerDesignerTrial11。是一種開發(fā)性能非常優(yōu)秀的面向?qū)ο蟮臄?shù)據(jù)庫應(yīng)用開發(fā)工具,它

2、能夠設(shè)計高性能、基于客戶/服務(wù)器(Client/Server)體系結(jié)構(gòu)的應(yīng)用系統(tǒng)。Visual C+ 6.0在不犧牲靈活性、性能和控制力度的同時,給C+帶來了更高水平的生產(chǎn)效率。提供了可視化編程,減少了編程過程中的難度,提高了編程效率。Microsoft SQL Server2000是一種使用方便、簡單的數(shù)據(jù)庫,它提供了安全的管理措施,適合于中、小型系統(tǒng)。PowerDesignerTrial11工具是一個方便的畫數(shù)據(jù)庫模型的軟件,并可以通過ER模型直接生成多種類型的數(shù)據(jù)庫,諸如Oracle、Sybase 、Microsoft SQL Server2000等。人事信息管理系統(tǒng)主要有以下六個模塊組

3、成:a) 在人事管理模塊中實現(xiàn)了,人事管理的功能;b) 在出勤管理模塊中實現(xiàn)了,員工的考勤管理的功能;c) 在工資管理模塊中實現(xiàn)了,員工工資的管理功能;d) 在系統(tǒng)管理模塊中實現(xiàn)了,有關(guān)基本表的更新以及數(shù)據(jù)的備份和恢復(fù);e) 在用戶管理模塊中實現(xiàn)了,有關(guān)系統(tǒng)用戶管理及權(quán)限的分配、密碼修改等的管理;f) 最后用幫助模塊,讓使用者了解本系統(tǒng),并幫助使用者如何更好的使用本系統(tǒng)。關(guān)鍵字:單文檔 ADO Project(工程)對象Management Information SystemAbstractThe system focuses on Human affairs Information Man

4、agement System. In the whole researching process, we need to go through the following steps, including requirement analysis, general design, particular design, system test and so on. Through these steps that make the system can possesses the basic functions of database insertion, deletion, modificat

5、ion, search, export to excel, backup and resume.This system use the Microsoft Visual C plus plus 6.0 as the empolder tool, using the Microsoft SQL Server2000 as the background database, and i use PowerDesignerTrial11 to design the database. Microsoft Visual C+ 6.0 is a kind of Object Oriented databa

6、se application developping tool with excellent exploitation performance.It can design high performance application system which base on client/server system structural. Visual C+ improve the rate of C+ exploitation on not immolate agility, performance and control power at the same time.Microsoft Vis

7、ual C+ provide visualization programming, consequently reduce the difficulty during programming, improving the efficiency of programming.Microsoft SQL Server2000 is a kind of using convenien, simple database,it provide secure manage measure.It is fit for middl, small system.PowerDesignerTrial11 tool

8、 is a software convenient to painting database model, it can convet to kinds of database through ER model, such as Oracle, Sybase, Microsoft SQL Server2000 etc.This system is composed of six module as follow:a) In human affairs manage model finished human affair manage funciton.b) In turn out for wo

9、rk manage model finished check on work attendance function.c) In salary manage model finished the management of employee salary function.d) In system manage model finished the update of base table and backup and resume of database.e) In user manage model finished the user manage, distribute purview

10、and modify users' password manage.f) In finally help model let user know this system and help user how to better use this system.KeyWord :Single Document ADO(Activex data object) Project object.目錄前 言11緒 論1問題的提出1課題的背景及意義12系統(tǒng)需求分析2系統(tǒng)開發(fā)策略2系統(tǒng)功能需求分析23系統(tǒng)分析與設(shè)計3系統(tǒng)功能模塊設(shè)計3數(shù)據(jù)庫設(shè)計ER圖4數(shù)據(jù)庫物理結(jié)構(gòu)表的描述44代碼設(shè)計與實現(xiàn)5人事信息

11、管理系統(tǒng)代碼設(shè)計與實現(xiàn)5代碼開發(fā)65軟件測試36系統(tǒng)模塊測試36研究成果366技術(shù)難點及解決37一般用戶和管理員操作權(quán)限問題37設(shè)置對話框中Static控件字體的大小及顏色,代碼如下:43設(shè)置ListControl控件的行高,及屏蔽空白行代碼實現(xiàn):43設(shè)置照片,代碼如下:43工資的計算問題487總結(jié)及展望48致謝語48參考文獻(xiàn)48人事信息管理系統(tǒng)前 言當(dāng)今這樣一個信息的世界中,信息的掌握和分析已成為現(xiàn)代企業(yè)生產(chǎn)、經(jīng)營過程中的重要因素。人事管理系統(tǒng)是現(xiàn)代企業(yè)管理體制作不可缺少的部分,為適應(yīng)現(xiàn)代企業(yè)制度要求、逐步走向人事管理科學(xué)化、規(guī)范化,利用計算機(jī)實現(xiàn)企業(yè)人事檔案管理勢在必行。人事信息管理系統(tǒng)是

12、一個典型的計算機(jī)信息處理的管理模式,它支持企業(yè)對本單位工作人員的管理。本論文從基本需求出發(fā),本著用戶界面友好,數(shù)據(jù)處理快捷的原則,創(chuàng)建了一個具有良好實用性的人事管理系統(tǒng)。人事信息管理系統(tǒng)采用面向?qū)ο蟮摹⒖梢暬臄?shù)據(jù)庫應(yīng)用系統(tǒng)技術(shù)完成了對人事信息的管理,采用了開發(fā)環(huán)境,并使用本地Microsoft SQL Server2000數(shù)據(jù)庫。該系統(tǒng)可以滿足人事管理日常工作的需要,實現(xiàn)無紙化辦公,以模糊組合查詢的方式,提供了對數(shù)據(jù)表的多種組合查詢,為人員檔案的管理提供了方便、快捷的操作方式。本系統(tǒng)除了完成常見人事管理系統(tǒng)中人員對象的管理外,還針對現(xiàn)代企業(yè)管理的具體要求,增加了對企業(yè)部門設(shè)置和崗位編制的管理

13、,并使其與傳統(tǒng)的單一人員管理有機(jī)的結(jié)合,實現(xiàn)了數(shù)據(jù)的合理設(shè)置和有效應(yīng)用,使其更為適用于目前的企業(yè)人事管理過程。通過系統(tǒng)開發(fā),使我對面向?qū)ο蟆⒖梢暬臄?shù)據(jù)庫應(yīng)用系統(tǒng)和軟件的開發(fā)過程有了一些感性的認(rèn)識和了解,同時也是對自己數(shù)年來計算機(jī)專業(yè)學(xué)習(xí)成果的一次檢驗和考核。1 緒 論1.1 問題的提出隨著計算機(jī)和網(wǎng)絡(luò)技術(shù)的廣泛應(yīng)用,人事檔案管理系統(tǒng)成為現(xiàn)代企業(yè)管理中不可缺少的一部分。為適應(yīng)現(xiàn)代企業(yè)制度要求,實現(xiàn)企業(yè)勞動人事檔案管理的科學(xué)化和規(guī)范化,從而提出了企事業(yè)單位人事檔案管理系統(tǒng)開發(fā)的課題。1.2 課題的背景及意義企事業(yè)單位人事檔案管理工作是一種繁瑣的,務(wù)求準(zhǔn)確訊速的信息檢索工作。特別是對在崗人員、離退

14、人員、工資發(fā)放、職稱評定等信息的管理,具有典型的信息處理管理模式。本設(shè)計以人事檔案管理為入口點,提出了基于面向?qū)ο蟮臄?shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)技術(shù)Visual C+6.0為設(shè)計工具,以軟件工程設(shè)計規(guī)則為指導(dǎo)的人事檔案管理系統(tǒng)。該課題基于Visual C+6.0數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)技術(shù)進(jìn)行開發(fā),達(dá)到了提高企事業(yè)單位人事檔案管理信息處理效率的效果。2 系統(tǒng)需求分析2.1 系統(tǒng)開發(fā)策略本系統(tǒng)開發(fā)主要采用自頂向下的開發(fā)方式,自頂向下的方法模型如下圖所示:圖1. 開發(fā)模型圖2.2 系統(tǒng)功能需求分析2.2.1 人事檔案管理系統(tǒng)的系統(tǒng)分析概述現(xiàn)在的世界是信息的世界,隨著信息量越來越大以及計算機(jī)技術(shù)的發(fā)展,計算機(jī)已成為

15、各企事業(yè)單位管理的重要工具。人事檔案管理是對員工信息、部門信息、崗位信息、出勤信息、工資信息的管理和快速方便的查詢。系統(tǒng)開發(fā)主要有以下六個模塊組成:a) 在人事管理模塊中實現(xiàn)了,人員檔案管理與人事管理等功能;b) 在出勤管理模塊中實現(xiàn)了,員工的考勤管理等功能;c) 在工資管理模塊中實現(xiàn)了,員工工資的管理等功能;d) 在系統(tǒng)管理模塊中實現(xiàn)了,有關(guān)基本表的更新以及數(shù)據(jù)的備份和恢復(fù)的管理功能e) 在用戶管理模塊中實現(xiàn)了,有關(guān)系統(tǒng)用戶管理及權(quán)限的分配管理;f) 最后用幫助模塊,讓使用者了解本系統(tǒng),并幫助使用者如何更好的使用本系統(tǒng)。2.2.2 系統(tǒng)流程圖本系統(tǒng)的系統(tǒng)流程圖如下:圖2. 系統(tǒng)流程圖3 系統(tǒng)

16、分析與設(shè)計3.1 系統(tǒng)功能模塊設(shè)計模塊結(jié)構(gòu)圖圖3. 模塊結(jié)構(gòu)圖3.2 數(shù)據(jù)庫設(shè)計ER圖(詳細(xì)信息見數(shù)據(jù)庫設(shè)計概念模型)3.3 數(shù)據(jù)庫物理結(jié)構(gòu)表的描述主要表格如下:(詳細(xì)見數(shù)據(jù)庫編碼)員工:EM_Employee存放員工基本信息獎懲記錄:EM_RewPun_Rec模塊劃分:EM_ModuleClass工資:EM_Salary模塊劃分的值對應(yīng)表名稱模塊編號模塊名稱模塊對應(yīng)值功能描述編碼MS_IDMSModuleNameMSValue00001人事管理1控制"人事管理"下所有的模塊00002出勤管理2控制"出勤管理"下所有的模塊00003工資管理4控制&quo

17、t;工資管理"下所有的模塊00004系統(tǒng)管理8控制"系統(tǒng)管理"下:基本信息,部門管理00005用戶管理16控制"用戶管理"下:系統(tǒng)操作員管理,權(quán)限管理00006數(shù)據(jù)庫管理32控制"系統(tǒng)管理"下:數(shù)據(jù)恢復(fù)備份,系統(tǒng)初始化4 代碼設(shè)計與實現(xiàn)4.1 人事信息管理系統(tǒng)代碼設(shè)計與實現(xiàn)4.1.1 系統(tǒng)主界面圖4. 系統(tǒng)主界面圖4.1.2 數(shù)據(jù)庫表關(guān)聯(lián)定義詳細(xì)信息見數(shù)據(jù)庫物理模型4.1.3 模塊間的關(guān)系人事管理模塊對員工的各種基本信息進(jìn)行管理,考勤管理對員工的上下班情況及請假加班等情況進(jìn)行管理,工資管理對員工的基本工資、工資構(gòu)成、稅率管理

18、、補(bǔ)貼管理及員工的月度工資管理,月度工資通過考勤管理里的加班情況、出勤情況、請假情況、出差情況核算加班費(fèi)、請假扣費(fèi)、出差補(bǔ)貼等。系統(tǒng)管理主要管理單個的基本表項、部門管理、數(shù)據(jù)備份與恢復(fù)等。用戶管理對系統(tǒng)的用戶操作權(quán)限及密碼修改管理。4.2 代碼開發(fā)4.2.1 CDlgLogin窗口圖5. 登錄界面圖登錄對話框通過讀取數(shù)據(jù)庫中用戶名和密碼對用戶輸入的用戶名和密碼進(jìn)行校驗,如果用戶名或密碼為空或錯誤當(dāng)用戶點擊登錄時彈出如下提示:圖6. 用戶名輸入提示圖圖7. 密碼輸入提示圖圖8. 密碼錯誤提示圖圖9. 用戶名錯誤提示圖如果非法輸入次數(shù)超過6次,將彈出如下提示:圖10. 登錄出錯提示圖系統(tǒng)將自動退出

19、登錄,用戶輸入的密碼通過調(diào)用CCrypt加密類 cy的生成密鑰函數(shù)cy.Key_creator(sUserPassWord),調(diào)用加密函數(shù)對密碼進(jìn)行加密cy.Encrypt(sUserPassWord),將加密后的密碼與數(shù)據(jù)庫中保存的用戶名對應(yīng)密碼進(jìn)行比較,如果相等的話根據(jù)用戶表中該用戶的權(quán)限顯示該用戶能夠管理的模塊,其它模塊設(shè)置為灰色不可點擊。管理員用戶可以操作系統(tǒng)的所有模塊。4.2.2 加密類函數(shù)的主要代碼生成密鑰函數(shù):void CCrypt:Key_creator(CString S) /生成常量C1,C2以及加密解密Keyint i,j;unsigned short k=0;C1=1;

20、C2=1;for(i=0,j=S.GetLength()-1;(i!=j)&&(i!=j+1);i+,j-)C1=int(Si)(C1<<8);C2=int(Sj)(C2<<8);De_key=(C1*C2/S.GetLength()&(k);En_Key=De_key;加密函數(shù):CString CCrypt:Encrypt(CString S) / 加密函數(shù)CString Result,str,back;int i,j;/ch=S;Result=S; / 初始化結(jié)果字符串for(i=0; i<S.GetLength(); i+) / 依次

21、對字符串中各字符進(jìn)行操作/Resulti=Si(En_Key>>8); / 將密鑰移位后與字符異或Result.SetAt(i, S.GetAt(i)(En_Key>>8);if(i<S.GetLength()-1)En_Key = (short)(Resulti+En_Key)*C1+C2); / 產(chǎn)生下一個密鑰S=Result; / 保存結(jié)果for(i=0; i<S.GetLength(); i+) / 對加密結(jié)果進(jìn)行轉(zhuǎn)換j=Si; / 提取字符/ 將字符轉(zhuǎn)換為兩個字母保存str="12" / 設(shè)置str長度為2/str0=65+j/

22、26;/str1=65+j%26;/back += str;str.SetAt(0, 65+j/26);str.SetAt(1, 65+j%26);back += str;return back;加密函數(shù)的實現(xiàn):CString CCrypt:Decrypt(CString S) / 解密函數(shù)CString Result,str,back;int i,j;/Result.Empty(); / 清除結(jié)果for(i=0; i < S.GetLength()/2; i+) / 將字符串兩個字母一組進(jìn)行處理j = (S2*i-65)*26;j += S2*i+1-65;str="1&qu

23、ot; / 設(shè)置str長度為1str=j;Result+=str; / 追加字符,還原字符串S=Result; / 保存中間結(jié)果for(i=0; i<S.GetLength(); i+) / 依次對字符串中各字符進(jìn)行操作/Resulti=(unsigned int)Si(De_key>>8); / 將密鑰移位后與字符異或Result.SetAt(i, (BYTE)S.GetAt(i)(De_key>>8);if(i<S.GetLength()De_key = (short)(Si+De_key)*C1+C2); / 產(chǎn)生下一個密鑰return Result;

24、4.2.3 管理員登錄后主界面圖11. 管理員登錄后主界面圖12. 左側(cè)人事管理樹型圖圖13. 左側(cè)出勤管理樹型圖圖14. 左側(cè)工資管理樹型圖4.2.4 人事管理人事管理是對員工基本信息、人事變動信息、培訓(xùn)信息等的錄入、刪除、修改、查詢、導(dǎo)出等的操作,主要包括以下幾個部分:人員檔案管理是對員工的基本信息的管理,方便對員工的管理;界面(見下圖)職稱評定管理記錄員工的職稱評定情況;獎懲管理記錄員工的獎懲情況及獎懲原因;培訓(xùn)記錄管理記錄員工的培訓(xùn)情況;人事變動管理記錄員工的調(diào)動情況;考評管理記錄員工的考評情況、結(jié)果、時間等;福利品領(lǐng)取管理記錄員工領(lǐng)取福利品的情況;培訓(xùn)項目管理說明:對于公司為提供員工

25、素質(zhì)和能力而進(jìn)行的培訓(xùn)項目進(jìn)行添加、修改、刪除管理,主要包括培訓(xùn)名稱、培訓(xùn)地點、培訓(xùn)內(nèi)容、培訓(xùn)開始時間、培訓(xùn)結(jié)束時間、培訓(xùn)單位、培訓(xùn)費(fèi)用等的管理。考評項目管理說明,公司增加的各種對員工的考核管理。/對于員工進(jìn)行考核,從而保證對員工的各種晉升及工資的調(diào)整進(jìn)行管理。福利品管理,對于公司在節(jié)日時發(fā)放給員工的福利品進(jìn)行添加修改等管理。圖15. 人員檔案管理圖當(dāng)操作員選中一條記錄雙擊或點擊增加(修改)等按鈕是將彈出圖16. 單個員工信息圖操作員可以在此對話框上查看、修改、增加新的員工詳細(xì)信息。用戶點擊增加按鈕后,系統(tǒng)自動生成員工編號(此處員工編號是從數(shù)據(jù)庫中讀取第一個最大未用的編號),代碼如下:strS

26、ql.Format("select EmpID from EM_Employee order by EmpID asc");m_pRecordset=ado.GetRecordSet(_bstr_t(strSql);while(!m_pRecordset->adoEOF)vBefID=atoi(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("EmpID");m_pRecordset->MoveNext();if(m_pRecordset->adoEOF)break;vAftID=atoi(LP

27、CTSTR)(_bstr_t)m_pRecordset->GetCollect("EmpID");if(vAftID-vBefID)>1)vID=vBefID;break;if(m_pRecordset->adoEOF)vID=vBefID;vID+=1;vEmpID.Format("%05d",vID);插入員工基本信息時,基本信息比如象民族、專業(yè)、籍貫等信息可以通過從下拉菜單中選擇,而不用手工輸入,信息中有關(guān)時間的信息可以通過點擊下拉框選擇時間來設(shè)置。當(dāng)員工插入完成后點擊保存退出。ConeEmpRec對話框中“上一個”按鈕代碼如下:

28、strSql.Format("select * from EM_Employee");m_pRecordset=ado.GetRecordSet(_bstr_t(strSql);while(!m_pRecordset->adoEOF)vEmpID=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("EmpID");if(vEmpID=m_EmpID)break;elsem_pRecordset->MoveNext();m_pRecordset->MovePrevious();if(m_pReco

29、rdset->adoBOF)m_pRecordset->MoveLast();vEmpID=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("EmpID");當(dāng)目前已經(jīng)是最后一個員工時,自動顯示第一個員工的相關(guān)信息。“下一個”同理自動顯示最后一個員工信息。員工社會關(guān)系、員工輔助信息、員工個人經(jīng)歷的界面差不多類似,如下圖17. 員工社會關(guān)系、員工輔助信息、員工個人經(jīng)歷圖獲取選中行代碼如下:pos = m_EmpInfo.GetFirstSelectedItemPosition();if(!pos)return; Inde

30、x= m_EmpInfo.GetNextSelectedItem(pos); / 得到項目索引dlg.EmpID = m_EmpInfo.GetItemText(Index,1); /獲取員工編號人事管理模塊中職稱評定管理、獎懲管理、培訓(xùn)記錄管理、人事變動管理、考評管理、福利品領(lǐng)取管理等界面類似,界面如下:圖18. 職稱評定管理、獎懲管理、培訓(xùn)記錄管理、人事變動管理、考評管理、福利品領(lǐng)取管理等界面圖4.2.5 出勤管理出勤管理主要包括考勤記錄、請假記錄、加班記錄、出差記錄、月度考勤記錄五個部分。考勤記錄是負(fù)責(zé)對員工的上下班時間進(jìn)行記錄,包括添加、刪除、修改;計算工作時間假記錄記錄員工請假次數(shù),

31、在核算員工工資時將根據(jù)請假次數(shù)進(jìn)行工資核算;加班記錄記錄員工加班的時間、日期及加班類型,核算工資時將根據(jù)加班類型及加班時間核算加班工資;出差記錄記錄員工的出差類型、出差地點、出差開始時間、出差結(jié)束時間、出差任務(wù)等,其中出差類型及時間將在工資核算時計算出差補(bǔ)貼;月度考勤記錄記錄了員工一個月中累積加班時間、累計請假時間、累計曠工次數(shù)、累計出差時間、遲到早退次數(shù),其中累計礦工次數(shù)及累計遲到早退次數(shù)也將在工資核算中扣除相應(yīng)金額。圖19. 員工出勤管理圖4.2.6 工資管理工資管理主要包括對工資等級、工資構(gòu)成項目、稅率管理、節(jié)日補(bǔ)貼、月度工資等管理。工資等級,對工資等級的添加、修改、刪除,主要是方便用人

32、事管理對員工工資的添加、修改,通過對工資等級的修改可以對員工同一等級進(jìn)行批量修改。工資構(gòu)成項目,是對于工資由哪些項目構(gòu)成的管理及這些項目是稅前還是稅后及加、減等的管理。界面如下:圖20. 工資構(gòu)成圖稅率管理,是對員工應(yīng)納稅的稅率及納稅金額的上下限、速算扣除數(shù)等的管理,方便月度工資中核算稅后工資。節(jié)日補(bǔ)貼管理,是公司對于員工各種法定節(jié)日及員工生日發(fā)放給員工的補(bǔ)貼。月度工資管理,實現(xiàn)了對員工的月度工資的添加、修改、刪除、查詢、導(dǎo)出到Excel等的管理,基本工資是根據(jù)是人事管理哪里讀取的,加班費(fèi)通過加班類型及加班時間計算,出差補(bǔ)貼按照每種出差類型的補(bǔ)貼 * 次數(shù) 的和,額外稅前是通過工資管理員設(shè)置的

33、,設(shè)置界面如下圖1),應(yīng)發(fā)工資計算公式:應(yīng)發(fā)工資金額=基本工資+加班費(fèi)+出差補(bǔ)助-請假扣款+額外稅前項,額外稅后、節(jié)日補(bǔ)貼是通過工資管理員設(shè)置的,設(shè)置界面如下圖2),稅后工資計算公式:稅后工資=應(yīng)發(fā)工資金額-納稅金額;稅金額計算公式:納稅金額=應(yīng)納稅金額*適合稅率-速算扣除數(shù)而應(yīng)納稅金額=應(yīng)發(fā)工資金額-納稅基數(shù)(1000);實發(fā)工資=稅后工資+稅后應(yīng)加項-稅后應(yīng)扣項+納稅基數(shù)。月度工資管理的主界面:圖21. 月度工資管理圖圖22. 額外稅前計算圖 圖23. 額外稅后計算圖月度工資表導(dǎo)出至Excel效果如下圖:圖24. 工資表導(dǎo)出樣式圖查詢時的通過選擇下拉框中的員工姓名或月份查看工資信息,當(dāng)選擇

34、變化時通過調(diào)用SelecteConditionSet()函數(shù)改變查詢條件,然后調(diào)用Displaytxt()顯示查詢后的結(jié)果,SelecteConditionSet()主要代碼:void CSalary:SelecteConditionSet()UpdateData(TRUE);condition_SQL=""m_Condition_month.GetWindowText(vCondition_month);m_Condition_name.GetWindowText(vCondition_name);if(vCondition_name!="所有")vC

35、ondition_EmpID=ds.NameToID(vCondition_name);condition_SQL=condition_SQL+" and EM_Salary.EmpID='"+vCondition_EmpID+"'"if(vCondition_month!="所有")condition_SQL=condition_SQL+" and SALMonth='"+vCondition_month+"'"RefreshData();UpdateData(

36、FALSE);查詢語句:vSQL="select SALID,EM_Salary.EmpID EmpID,EmpName,SALMonth,EM_Employee.SGSalaryGrade"vSQL=vSQL+" SGSalaryGrade,SGSalarySum,SALOvertimePay,SALGoOnErrandsSubsidy"vSQL=vSQL+",SALLeavePenalty,SALAtherBefTr,SALOughtSalary,SALAtherAftTr,SALFeastSubsidy"vSQL=vSQL+&q

37、uot;,SALTaxAfterSalary,SALFactSalary,TRTaxRate,SALTaxSum,SALDate,SALIdiograph,SALRemark "vSQL=vSQL+"from EM_Employee,EM_Salary,EM_SalaryGrade where EM_Employee.EmpID=EM_Salary.EmpID"vSQL=vSQL+" and EM_SalaryGrade.SGSalaryGrade=EM_Employee.SGSalaryGrade "vSQL=vSQL+(_bstr_t)co

38、ndition_SQL;vSQL=vSQL+" order by SALMonth asc"導(dǎo)出Excel主要代碼如下:void CSalary:OnSalaryOUT() / TODO: Add your control notification handler code here/連接數(shù)據(jù)庫ADOConn ado;ado.OnInitADOConn();/ 提取數(shù)據(jù)庫中員工信息/定義操作Excel必要的對象COleVariant VOptional(long)DISP_E_PARAMNOTFOUND, VT_ERROR); _Application objApp;Wor

39、kbooks objBooks;_Workbook objBook;Worksheets objSheets;_Worksheet objSheet;Range objRange;/創(chuàng)建Excel對象objApp.CreateDispatch("Excel.Application");objBooks=objApp.GetWorkbooks();/返回工作簿對象/ 打開指定Excel文件CString path;/ 獲取當(dāng)前應(yīng)用程序的完整文件名,包含完整路徑GetModuleFileName(NULL, path.GetBufferSetLength(MAX_PATH+1)

40、,MAX_PATH);/ 取得最后一個,去掉文件名,從而獲取當(dāng)前應(yīng)用程序的工作路徑int pos = path.ReverseFind('');path = path.Left(pos+1);objBook.AttachDispatch(objBooks.Add(_variant_t(path + "Salary.xls");objSheets=objBook.GetSheets();/ 定義第一個Sheet為對象objSheet=objSheets.GetItem(_variant_t)short(1);objRange.AttachDispatch(ob

41、jSheet.GetCells(),true); / 讀取臨時表中的記錄_RecordsetPtr m_rs;_bstr_t vSQL;vSQL="select SALID,EM_Salary.EmpID EmpID,EmpName,SALMonth,EM_Employee.SGSalaryGrade"vSQL=vSQL+" SGSalaryGrade,SGSalarySum,SALOvertimePay,SALGoOnErrandsSubsidy"vSQL=vSQL+",SALLeavePenalty,SALAtherBefTr,SALOug

42、htSalary,SALAtherAftTr,SALFeastSubsidy"vSQL=vSQL+",SALTaxAfterSalary,SALFactSalary,TRTaxRate,SALTaxSum,SALDate,SALIdiograph,SALRemark "vSQL=vSQL+"from EM_Employee,EM_Salary,EM_SalaryGrade where EM_Employee.EmpID=EM_Salary.EmpID"vSQL=vSQL+" and EM_SalaryGrade.SGSalaryGra

43、de=EM_Employee.SGSalaryGrade "vSQL=vSQL+(_bstr_t)condition_SQL;vSQL=vSQL+" order by SALMonth asc"m_rs = ado.GetRecordSet(vSQL);/ 生成標(biāo)題欄objRange.SetItem(_variant_t(long)(1),_variant_t(long)(1),_variant_t("序號"); objRange.SetItem(_variant_t(long)(1),_variant_t(long)(2),_variant_

44、t("工資編號"); objRange.SetItem(_variant_t(long)(1),_variant_t(long)(3),_variant_t("員工編號"); objRange.SetItem(_variant_t(long)(1),_variant_t(long)(4),_variant_t("姓名"); objRange.SetItem(_variant_t(long)(1),_variant_t(long)(5),_variant_t("月份"); objRange.SetItem(_vari

45、ant_t(long)(1),_variant_t(long)(6),_variant_t("基本工資等級");objRange.SetItem(_variant_t(long)(1),_variant_t(long)(7),_variant_t("基本工資"); .objRange.SetItem(_variant_t(long)(1),_variant_t(long)(21),_variant_t("備注");/ 記錄總數(shù)int iRowCount = 0;while(!m_rs->adoEOF)/ 把列值放入Excel指定

46、單元格CString str;str.Format("%03d",iRowCount+1);objRange.SetItem(_variant_t(long)(iRowCount+2),_variant_t(long)(1),_variant_t(str); str = (LPCTSTR)(_bstr_t)m_rs->GetCollect("SALID");/工資編號objRange.SetItem(_variant_t(long)(iRowCount+2),_variant_t(long)(2),_variant_t(str); str = (L

47、PCTSTR)(_bstr_t)m_rs->GetCollect("EmpID");/員工編號objRange.SetItem(_variant_t(long)(iRowCount+2),_variant_t(long)(3),_variant_t(str);str = (LPCTSTR)(_bstr_t)m_rs->GetCollect("EmpName");/員工姓名objRange.SetItem(_variant_t(long)(iRowCount+2),_variant_t(long)(4),_variant_t(str); str

48、 = (LPCTSTR)(_bstr_t)m_rs->GetCollect("SALMonth");/月份objRange.SetItem(_variant_t(long)(iRowCount+2),_variant_t(long)(5),_variant_t(str); str = (LPCTSTR)(_bstr_t)m_rs->GetCollect("SGSalaryGrade");/基本工資等級objRange.SetItem(_variant_t(long)(iRowCount+2),_variant_t(long)(6),_vari

49、ant_t(str); str = (LPCTSTR)(_bstr_t)m_rs->GetCollect("SGSalarySum");/基本工資str.Format("%¥",atof(str);.str = (LPCTSTR)(_bstr_t)m_rs->GetCollect("SALRemark");/備注objRange.SetItem(_variant_t(long)(iRowCount+2),_variant_t(long)(21),_variant_t(str); iRowCount+;m_rs->Mo

50、veNext();/ 設(shè)置Excel為可見objApp.SetVisible(true);/ 釋放句柄objRange.ReleaseDispatch();objSheet.ReleaseDispatch();objSheets.ReleaseDispatch();objBook.ReleaseDispatch();objBooks.ReleaseDispatch();objApp.ReleaseDispatch();ado.ExitConnect();4.2.7 系統(tǒng)管理系統(tǒng)管理主要包括對系統(tǒng)中的單項表格進(jìn)行修改、添加,部門管理、數(shù)據(jù)備份恢復(fù)、數(shù)據(jù)壓縮等管理。基本信息管理,對數(shù)據(jù)庫中單項表格

51、進(jìn)行修改、添加,如對民族、專業(yè)、學(xué)歷等的操作;部門管理,對部門信息進(jìn)行添加、修改、刪除,選中部門信息添加時,將彈出下圖2),彈出的對話框中部門編號及上級部門編號都是從數(shù)據(jù)庫中讀取的,部門編號是讀取系統(tǒng)中第一個未用的部門編號,界面如下: 圖25. 部門管理圖圖26. 部門信息修改圖當(dāng)用戶選擇部門點擊刪除時,如果該部門包含下級部門就會彈出“此部門包含下級部門,不能刪除”的提示,如果該部門包含員工時就會彈出“此部門包含員工不能刪除”的提示,提示如下圖:圖27. 部門刪除提示(包含有下級部門)圖圖28. 部門刪除提示(包含員工)圖圖29. 部門刪除提示圖數(shù)據(jù)備份與恢復(fù),對數(shù)據(jù)庫信息進(jìn)行維護(hù),保證數(shù)據(jù)損

52、壞時能夠還原,數(shù)據(jù)備份時,將記錄在數(shù)據(jù)庫中備份表格EM_Backup表格中,該表格存儲了數(shù)據(jù)庫保存的備份iD,備份時間,及備份路徑;備份對話框界面如下:圖30. 數(shù)據(jù)備份恢復(fù)圖備份說明:為了防止數(shù)據(jù)冗余,每天備份的最大數(shù)量為99999,備份時將彈出文件保存對話框,文件名是自動根據(jù)備份日期及當(dāng)天備份編號生成的,用戶可以選擇更改備份名稱,備份名稱如“備份數(shù)據(jù)BACKUP2008-04-15-19-55-00001”,備份成功后會提示備份成功。數(shù)據(jù)恢復(fù)時也將彈出似文件打開對話框,用戶可以選擇備份文件*.Bak文件,點擊打開后開始恢復(fù),數(shù)據(jù)庫恢復(fù)需要幾分鐘時間。數(shù)據(jù)備份主要代碼:生成數(shù)據(jù)備份ID函數(shù)C

53、String CBakeUpDlg:ProduceBackUpID()/連接數(shù)據(jù)庫ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();/設(shè)置SELECT語句_bstr_t vSQL;CTime tt=CTime:GetCurrentTime();CString rq=tt.Format("%Y-%m-%d");CString str_tt=tt.Format("BACKUP%Y-%m-%d-%H-%M-");vSQL = " select BackUp_ID from EM_BackUp where Back

54、Up_Date='"+ rq +"'order by BackUp_ID"/執(zhí)行SELETE語句_RecordsetPtr m_pRecordset;m_pRecordset = m_AdoConn.GetRecordSet(vSQL);/執(zhí)行SELECT語句if(m_pRecordset->adoEOF)return (str_tt+"00001");else_variant_t value;CString str,sub;for(int i=1;i<99999;i+)value=m_pRecordset->

55、GetCollect("BackUp_ID");str=(char*)(_bstr_t)value;sub=str.Mid(23);int number=atoi(sub);if(number!=i)break;m_pRecordset->MoveNext();if(m_pRecordset->adoEOF)i+;break;if(i=99999)MessageBox("今日備份數(shù)量大于99999了","錯誤",MB_OKCANCEL | MB_ICONQUESTION |MB_SYSTEMMODAL);return CS

56、tring("");str.Format("%05d",i);str_tt=str_tt+str;return str_tt;m_AdoConn.ExitConnect();數(shù)據(jù)備份函數(shù)void CBakeUpDlg:OnBackUp() / TODO: Add your control notification handler code hereCString ID=this->ProduceBackUpID();CString backname = "備份數(shù)據(jù)"+ID;/連接數(shù)據(jù)庫ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();/設(shè)置SELECT語句_bstr_t vSQL;CFileDialog dlg(false,"bak",backname,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"(*.bak)");dlg.m_ofn.lpstrTitle="保存?zhèn)浞菸募?quot; if(dlg.DoModal()=IDOK)this->BeginWaitCursor();CString name=dlg.G

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論