課程設(shè)計(jì)----公司人事管理系統(tǒng)_第1頁
已閱讀1頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  前言</b></p><p>  本次軟件工程的課程設(shè)計(jì)我們完成了一個(gè)人事管理系統(tǒng)。通過這次課程設(shè)計(jì),我們掌握了Microsoft Visual Studio2005和Microsoft Office Access 2003的使用方法和軟件設(shè)計(jì)的方法。這次的課程設(shè)計(jì)我們實(shí)現(xiàn)了人事管理系統(tǒng)的基本數(shù)據(jù)管理,人事檔案管理,數(shù)據(jù)庫管理和系統(tǒng)管理的功能。其中基本數(shù)據(jù)管理可

2、分為民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職務(wù)類別設(shè)置這8個(gè)部分,人事檔案管理可分為人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計(jì)這三部分,數(shù)據(jù)庫管理可分為數(shù)據(jù)庫備份和恢復(fù)。系統(tǒng)管理可分為用戶設(shè)置和系統(tǒng)退出。由于時(shí)間緊促,還有很多功能沒有完成,譬如考試管理和職工的通信錄等。通過這次的課程設(shè)計(jì),在界面設(shè)計(jì)上也收獲不少,學(xué)會(huì)了skinplusplus的使用,這使界面的美化變得更容易。我們

3、將繼續(xù)改進(jìn)這系統(tǒng)。 </p><p>  本次課程設(shè)計(jì)的需求分析和數(shù)據(jù)庫設(shè)計(jì)是2個(gè)人共同完成的。</p><p>  葉偉平(3105007360)完成了基本數(shù)據(jù)的管理(民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職務(wù)類別設(shè)置)的功能和系統(tǒng)管理。</p><p>  葉丙坤(3105007359)主要完成

4、了數(shù)據(jù)庫備份與恢復(fù)的功能,人事檔案管理(人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計(jì))和用戶設(shè)置和系統(tǒng)退出的功能和報(bào)告的撰寫。</p><p>  廣東工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書</p><p><b>  一、課程設(shè)計(jì)的內(nèi)容</b></p><p>  這次課程設(shè)計(jì)采用Microsoft Visual Studio2005作為前臺(tái)應(yīng)用程序的設(shè)計(jì)工具,

5、用Microsoft Office Access 2003作為后臺(tái)數(shù)據(jù)庫,完成一個(gè)人事管理系統(tǒng)。實(shí)現(xiàn)的主要功能有基礎(chǔ)數(shù)據(jù)管理(民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職務(wù)類別設(shè)置),人事檔案管理(人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計(jì)),數(shù)據(jù)庫管理(數(shù)據(jù)庫的備份與恢復(fù))系統(tǒng)管理(設(shè)置用戶和退出系統(tǒng))。</p><p>  二、課程設(shè)計(jì)的要求與數(shù)據(jù)<

6、/p><p>  使用 Microsoft Visual Studio 2005和 Microsoft Office Access 2003完成一個(gè)人事管理系統(tǒng)。按照一個(gè)企業(yè)實(shí)際管理中的實(shí)際需要實(shí)際數(shù)據(jù)庫,選定數(shù)據(jù)。 </p><p>  三、課程設(shè)計(jì)應(yīng)完成的工作</p><p>  1. 獨(dú)立完成系統(tǒng)的分析、設(shè)計(jì)、編碼、測(cè)試工作。</p><p&

7、gt;  2.完成設(shè)計(jì)報(bào)告的撰寫。</p><p>  四、課程設(shè)計(jì)進(jìn)程安排</p><p>  五、應(yīng)收集的資料及主要參考文獻(xiàn)</p><p>  [1].鄭阿奇/丁有和. Visual Studio2005教程,北京:機(jī)械工業(yè)出版社,2006.9</p><p>  [2].李代平.軟件工程.第二版.北京:冶金工業(yè)出版社,2006.11

8、</p><p>  [3].王珊/薩師煊.數(shù)據(jù)庫系統(tǒng)概論.第四版.-北京:高等教育出版社,2006.5</p><p>  [4].李春葆/曾平.數(shù)據(jù)庫原理與應(yīng)用,北京:清華大學(xué)出版社,2005.</p><p>  發(fā)出任務(wù)書日期:2007年6月10日 指導(dǎo)教師簽名:</p><p>  計(jì)劃完成日期: 2007年6月29日

9、 基層教學(xué)單位責(zé)任人簽章:</p><p><b>  主管院長(zhǎng)簽章:</b></p><p><b>  目 錄</b></p><p>  課程設(shè)計(jì)(論文)1</p><p>  1.開發(fā)環(huán)境和相關(guān)技術(shù)介紹7</p><p><b>  1.1開發(fā)環(huán)境

10、7</b></p><p>  1.2相關(guān)技術(shù)介紹7</p><p><b>  2.需求分析7</b></p><p>  2.1系統(tǒng)需求和功能7</p><p><b>  2.2數(shù)據(jù)字典7</b></p><p>  2.2.1數(shù)據(jù)項(xiàng)7</p

11、><p>  2.2.2數(shù)據(jù)結(jié)構(gòu)8</p><p>  2.3安全性要求9</p><p>  3.概念結(jié)構(gòu)設(shè)計(jì)9</p><p>  3.1設(shè)計(jì)方法和步驟9</p><p>  3.2概念結(jié)構(gòu)E-R圖9</p><p>  3.2 E-R圖的有關(guān)實(shí)體和聯(lián)系的說明11</p>

12、<p><b>  4.邏輯設(shè)計(jì)11</b></p><p>  4.1 關(guān)系模式11</p><p><b>  5.邏輯設(shè)計(jì)11</b></p><p>  5.1建立數(shù)據(jù)庫11</p><p><b>  5.2建立表11</b></p>

13、;<p>  6 應(yīng)用程序設(shè)置和代碼分析14</p><p>  6.1.配置ODBC數(shù)據(jù)源和添加skin++皮膚14</p><p>  6.2人事檔案瀏覽15</p><p>  6.3人事檔案查詢19</p><p>  6.4人事資料統(tǒng)計(jì)24</p><p>  6.5數(shù)據(jù)庫備份以及恢復(fù)

14、33</p><p>  6.6設(shè)置用戶35</p><p>  7. 測(cè)試方案和測(cè)試報(bào)告37</p><p>  7.1白盒測(cè)試37</p><p>  7.2黑盒測(cè)試37</p><p>  7.2.1登陸測(cè)試38</p><p>  7.2.2人事查詢功能測(cè)試39</p

15、><p>  8.安裝說明和使用說明40</p><p>  8.1運(yùn)行條件40</p><p>  8.2使用方法40</p><p><b>  9.結(jié) 論40</b></p><p>  10.參考文獻(xiàn)40</p><p>  1.開發(fā)環(huán)境和相關(guān)技術(shù)介紹<

16、;/p><p><b>  1.1開發(fā)環(huán)境</b></p><p>  系統(tǒng)結(jié)構(gòu):C/S結(jié)構(gòu)</p><p>  數(shù)據(jù)庫系統(tǒng):Microsoft Office Access 2003</p><p>  數(shù)據(jù)庫連接方式:ODBC連接方式</p><p>  開發(fā)工具:Microsoft Visual

17、Studio2005</p><p><b>  1.2相關(guān)技術(shù)介紹</b></p><p>  Visual Studio是微軟公司推出的開發(fā)環(huán)境。是目前最流行的Windows 平臺(tái)應(yīng)用程序開發(fā)環(huán)境。目前已經(jīng)開發(fā)到9.0版本,也就是Visual Studio 2008。 Visual Studio可以用來創(chuàng)建 Windows平臺(tái)下的Windows應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用

18、程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和Office 插件。使用Visual Studio 2005, 專業(yè)開發(fā)人員能夠:使用改進(jìn)后的可視化設(shè)計(jì)工具、編程語言和代碼編輯器,享受高效率的開發(fā)環(huán)境;使用集成的可視化數(shù)據(jù)庫設(shè)計(jì)和報(bào)告工具,創(chuàng)建SQL Server 2005解決方案;使用Visual Studio SDK創(chuàng)建可以擴(kuò)展Visual Studio IDE的工具;專業(yè)開發(fā)人員喜歡自由的使用.NET Framework 2.0,

19、它是一種穩(wěn)健的、功能齊備的開發(fā)環(huán)境,支持創(chuàng)建擴(kuò)展Visual Studio集成開發(fā)環(huán)境的工具。</p><p><b>  2.需求分析</b></p><p>  2.1系統(tǒng)需求和功能</p><p>  設(shè)計(jì)一個(gè)人事管理系統(tǒng),使系統(tǒng)滿足以下需求和功能</p><p>  1)根據(jù)企業(yè)人事管理的需要,對(duì)企業(yè)以及企業(yè)中員

20、工的信息進(jìn)行添假刪除等操作,并能對(duì)人事檔案進(jìn)行瀏覽,對(duì)人事資料進(jìn)行查詢,對(duì)人事資料進(jìn)行統(tǒng)計(jì)。為企業(yè)的人事管理提供一個(gè)便利的管理系統(tǒng)。</p><p>  2)、系統(tǒng)功能包括:</p><p>  a系統(tǒng)管理(設(shè)置用戶和退出系統(tǒng))。</p><p>  b基礎(chǔ)數(shù)據(jù)管理(民族檔案設(shè)置,職工類型設(shè)置,文化程度設(shè)置,政治面貌設(shè)置,部門類別設(shè)置,工資類別設(shè)置,職稱類別設(shè)置,職

21、務(wù)類別設(shè)置)。</p><p>  c人事檔案管理(人事檔案瀏覽,人事資料查詢,人事資料統(tǒng)計(jì))。</p><p>  數(shù)據(jù)庫管理(數(shù)據(jù)庫的備份與恢復(fù))。</p><p><b>  2.2數(shù)據(jù)字典</b></p><p><b>  2.2.1數(shù)據(jù)項(xiàng)</b></p><p>

22、  1)數(shù)據(jù)項(xiàng)名稱: 用戶名</p><p>  簡(jiǎn)述:用戶的名字,沒有重復(fù),可以唯一標(biāo)識(shí)每一用戶</p><p><b>  類型:文本</b></p><p><b>  長(zhǎng)度:50</b></p><p>  2)數(shù)據(jù)項(xiàng)名稱:用戶密碼</p><p>  簡(jiǎn)述:用戶的密

23、碼,用來證驗(yàn)登陸的用戶是否合法。</p><p><b>  類型:文本</b></p><p><b>  長(zhǎng)度:50</b></p><p>  3)數(shù)據(jù)項(xiàng)名稱:是否管理員</p><p>  簡(jiǎn)述:描述是否系統(tǒng)管理員</p><p><b>  類型:是/否&

24、lt;/b></p><p><b>  取值范圍:真/假</b></p><p><b>  ……</b></p><p><b>  2.2.2數(shù)據(jù)結(jié)構(gòu)</b></p><p>  1)數(shù)據(jù)結(jié)構(gòu)名稱:用戶名和密碼信息 </p><p>  組成

25、:用戶名,密碼,是否管理員</p><p>  2)數(shù)據(jù)結(jié)構(gòu)名稱:民族檔案設(shè)置</p><p>  組成:民族編號(hào),民族名稱</p><p>  3)數(shù)據(jù)結(jié)構(gòu)名稱:職工類型設(shè)置</p><p>  組成:職工類型編號(hào),職工類型名稱</p><p>  4)數(shù)據(jù)結(jié)構(gòu)名稱:文化程度設(shè)置</p><p&g

26、t;  組成:文化程度編號(hào),文化程度名稱。</p><p>  5)數(shù)據(jù)結(jié)構(gòu)名稱:政治面貌設(shè)置</p><p>  組成:政治面貌編號(hào),政治面貌名稱</p><p>  6)數(shù)據(jù)結(jié)構(gòu)名稱:部門類別設(shè)置</p><p>  組成:部門類別編號(hào),部門類別名稱</p><p>  7)數(shù)據(jù)結(jié)構(gòu)名稱:工資類型設(shè)置</p&

27、gt;<p>  組成:工資類型編號(hào),工資類型名稱</p><p>  8)數(shù)據(jù)結(jié)構(gòu)名稱:職稱類別設(shè)置</p><p>  組成:職稱類別編號(hào),職稱類別名稱。</p><p>  9)數(shù)據(jù)結(jié)構(gòu)名稱:職務(wù)類別設(shè)置</p><p>  組成:職務(wù)類別編號(hào),職務(wù)類別名稱</p><p>  10)數(shù)據(jù)結(jié)構(gòu)名稱:

28、職工信息</p><p>  組成:職工編號(hào),職工性別,職工年齡,民族,婚姻狀況,家庭電話,電子郵箱,手機(jī),籍貫,地址,畢業(yè)學(xué)校,職稱,入職時(shí)間,職稱類別,部門類別,職務(wù)類別。</p><p>  11)數(shù)據(jù)結(jié)構(gòu)名稱:職工的家庭成員</p><p>  組成:編號(hào),員工號(hào),成員姓名,關(guān)系,出生日期,工作單位,擔(dān)任職務(wù),政治面貌</p><p>

29、;<b>  2.3安全性要求</b></p><p>  訪問數(shù)據(jù)庫時(shí)需要輸入登陸帳號(hào)和密碼。在數(shù)據(jù)庫內(nèi)設(shè)有用戶表,登陸系統(tǒng)時(shí)會(huì)要求輸入用戶帳號(hào)和密碼。登陸模塊根據(jù)輸入帳號(hào)和密碼查用戶表,查到匹配記錄則允許其登陸系統(tǒng)。用戶帳號(hào)和密碼可以在系統(tǒng)中添加和刪除。</p><p><b>  3.概念結(jié)構(gòu)設(shè)計(jì)</b></p><p&

30、gt;  3.1設(shè)計(jì)方法和步驟</p><p>  采用自底而上的設(shè)計(jì)方法。先自頂向下地進(jìn)行需求分析,對(duì)人事管理系統(tǒng)的需求進(jìn)行逐步細(xì)化;然后再自底而上地設(shè)計(jì)概念結(jié)構(gòu),最終將各個(gè)局部應(yīng)用的概念結(jié)構(gòu)集合成為全局概念結(jié)構(gòu)。</p><p>  3.2概念結(jié)構(gòu)E-R圖</p><p>  通過對(duì)局部應(yīng)用的選擇,逐一設(shè)計(jì)出分E-R圖,并對(duì)各個(gè)分E-R圖進(jìn)行合并,生成初步E-R

31、圖,消除不必要的系統(tǒng)冗余,可以得出以下人事管理系統(tǒng)E-R圖。</p><p>  圖3.1 人事管理系統(tǒng)的 E-R 圖1</p><p>  圖3.12人事管理系統(tǒng)的 E-R 圖2</p><p>  3.2 E-R圖的有關(guān)實(shí)體和聯(lián)系的說明</p><p>  說明:對(duì)于人事管理系統(tǒng)的 E-R 圖1,一個(gè)用戶可以設(shè)置多個(gè)民族的情況,一個(gè)民族檔

32、案能被多個(gè)用戶設(shè)置。一個(gè)用戶可以設(shè)置多個(gè)職工類型,一個(gè)職工類型能被多個(gè)用戶設(shè)置。其他的類似。</p><p>  對(duì)于圖3.12人事管理系統(tǒng)的 E-R 圖2,一個(gè)用戶可以瀏覽,查詢多個(gè)職工的檔案,一個(gè)職工的檔案能被多個(gè)用戶瀏覽。</p><p><b>  4.邏輯設(shè)計(jì)</b></p><p><b>  4.1 關(guān)系模式</b

33、></p><p>  由E-R圖轉(zhuǎn)換得到的關(guān)系模式如下:</p><p>  用戶(用戶名,密碼,是否管理員)</p><p>  民族檔案設(shè)置(民族編號(hào),民族名稱)</p><p>  職工類型設(shè)置(職工類型號(hào),職工類型名稱)</p><p>  文化程度設(shè)置(文化程度編號(hào),文化程度名稱)</p>

34、<p>  政治面貌設(shè)置(政治面貌編號(hào),政治面貌名稱)</p><p>  部門類別設(shè)置(部門類別編號(hào),部門類別名稱)</p><p>  工資類別設(shè)置(工資類別編號(hào),工資類別名稱)</p><p>  職稱類別設(shè)置( 職稱類別編號(hào),職稱類別名稱)</p><p>  職務(wù)類別設(shè)置(職務(wù)類別編號(hào),職務(wù)類別名稱)</p>

35、;<p>  職工表(職工編號(hào),職工名,出生日期,年齡,民族,婚姻狀況,身份證,家庭電話,電子郵箱,手機(jī),籍貫,地址,畢業(yè)學(xué)校,所在部門,政治面貌,職稱類別,職務(wù)類別,工資類別,文化程度)</p><p>  職工家庭情況(編號(hào),員工工號(hào),成員姓名,關(guān)系,出生日期,所在部門,擔(dān)任職務(wù),政治面貌,手機(jī))</p><p><b>  5.邏輯設(shè)計(jì)</b>&l

36、t;/p><p><b>  5.1建立數(shù)據(jù)庫</b></p><p>  本設(shè)計(jì)用Microsoft Office Access 2003作為后臺(tái)數(shù)據(jù)庫,在MS SQL Server 2000中創(chuàng)建一個(gè)名為Manager1的數(shù)據(jù)庫,并在其中建立邏輯設(shè)計(jì)中涉及的表. </p><p><b>  5.2建立表</b></

37、p><p>  在Access中,可以查看所建立的表,并添加適當(dāng)測(cè)試數(shù)據(jù)</p><p><b>  5.2.1 用戶表</b></p><p><b>  表 5.1</b></p><p>  5.2.2 民族擋案表</p><p><b>  表 5.2</

38、b></p><p>  5.2.3職工類型表</p><p><b>  表 5.3</b></p><p>  5.2.4文化程度表</p><p><b>  表 5.4</b></p><p>  5.2.5政治面貌表</p><p>&

39、lt;b>  表 5.5</b></p><p>  5.2.6部門類別設(shè)置表</p><p><b>  表 5.6</b></p><p>  5.2.7工資類別表 </p><p><b>  表 5.7</b></p><p>  5.2.8職稱類

40、別表</p><p><b>  表 5.8</b></p><p>  5.2.9職務(wù)類別表</p><p><b>  5.2.10職工表</b></p><p>  5.2.11 職工家庭情況表</p><p>  6 應(yīng)用程序設(shè)置和代碼分析</p>&l

41、t;p>  6.1.配置ODBC數(shù)據(jù)源和添加skin++皮膚</p><p>  本系統(tǒng)使用的是當(dāng)程序運(yùn)行時(shí)自動(dòng)配置數(shù)據(jù)源的方法。實(shí)現(xiàn)方法如下:</p><p>  首先在stdafx.h文件中添加 頭文件 afxdb.h , #include <afxdb.h></p><p>  和數(shù)據(jù)庫API頭文件, #include <

42、;odbcinst.h>//ODBC數(shù)據(jù)庫API頭文件。</p><p>  然后在manager.cpp 的BOOL CManagerApp::InitInstance() 函數(shù)中添加如下代碼</p><p>  SQLConfigDataSource(NULL,ODBC_ADD_DSN,</p><p>  "Microsoft Access D

43、river (*.mdb)",</p><p>  "DSN=Manager1\0"</p><p>  "Description=Hotel\0"</p><p>  "FileType=Access\0"</p><p>  "DBQ=.\\Manager1.

44、mdb\0"</p><p><b>  );</b></p><p><b>  添加皮膚 </b></p><p>  在manager.cpp中添加 #include ".\skins\SkinPlusPlus.h"</p><p>  在BOOL CManage

45、rApp::InitInstance() 函數(shù)中添加</p><p>  InitializeSkin(_T("XPCorona.ssk"));</p><p><b>  6.2人事檔案瀏覽</b></p><p>  先建立IDD_PAGE_BASEINFO對(duì)話框,之后為此對(duì)話框的部分控件建立關(guān)聯(lián)變量,之后再建立IDD_

46、DIALOG_BROWSE對(duì)話框,之后為此對(duì)話框的部分控件建立關(guān)聯(lián)變量。</p><p>  添加代碼實(shí)現(xiàn)人事檔案瀏覽功能</p><p>  實(shí)現(xiàn)這個(gè)功能的主要代碼如下:</p><p>  void CBrowseDlg::OnButtonSearch() </p><p><b>  {</b></p>

47、<p>  // TODO: Add your control notification handler code here</p><p>  UpdateData(TRUE);</p><p>  if(m_nCondition<0)</p><p><b>  {</b></p><p>  M

48、essageBox("請(qǐng)選擇查詢條件!");</p><p>  m_ctrCondition.SetFocus();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(m_strContent=="&

49、quot;)</p><p><b>  {</b></p><p>  MessageBox("請(qǐng)輸入查詢內(nèi)容!");</p><p>  m_ctrContent.SetFocus();</p><p><b>  return;</b></p><p&g

50、t;<b>  }</b></p><p>  CString strSQL;</p><p>  if(0==m_nCondition)</p><p><b>  {//按部門查詢</b></p><p>  strSQL.Format("select * from person wh

51、ere dept='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(1==m_nCondition)</p><p>  {//按職工職務(wù)查詢</p>

52、<p>  strSQL.Format("select * from person where duty='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(2==m_nC

53、ondition)</p><p>  {//按職工職稱查詢</p><p>  strSQL.Format("select * from person where technical='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p>&

54、lt;b>  }</b></p><p>  else if(3==m_nCondition)</p><p>  {//按職工類型查詢</p><p>  strSQL.Format("select * from person where isworker='%s'",m_strContent);</p&

55、gt;<p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(4==m_nCondition)</p><p>  {//按工資類別查詢</p><p>  strSQL.Format("select * from pers

56、on where aboutpay='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(5==m_nCondition)</p><p>  {//按職工性別查詢<

57、;/p><p>  strSQL.Format("select * from person where sex='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if

58、(6==m_nCondition)</p><p>  {//按婚姻狀況查詢</p><p>  strSQL.Format("select * from person where ismarry='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><

59、p><b>  }</b></p><p>  else if(7==m_nCondition)</p><p>  {//按職工民族查詢</p><p>  strSQL.Format("select * from person where folk='%s'",m_strContent);</

60、p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(8==m_nCondition)</p><p>  {//按政治面貌查詢</p><p>  strSQL.Format("select * from pe

61、rson where political='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(9==m_nCondition)</p><p>  {//按文化程度查詢

62、</p><p>  strSQL.Format("select * from person where education='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>

63、<b>  //設(shè)置按鈕狀態(tài)</b></p><p>  m_ctrNewBnt.EnableWindow(TRUE);</p><p>  m_ctrDelBnt.EnableWindow(TRUE);</p><p>  m_ctrSaveBnt.EnableWindow(FALSE);</p><p>  m_ct

64、rCancelBnt.EnableWindow(FALSE);</p><p>  m_bNew = FALSE;</p><p>  m_ctrModify.EnableWindow(TRUE);</p><p>  m_BaseInfoDlg.m_ctrID.EnableWindow(FALSE);</p><p><b>  

65、}</b></p><p>  void CBrowseDlg::OnButtonSearch() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateD

66、ata(TRUE);</p><p>  if(m_nCondition<0)</p><p><b>  {</b></p><p>  MessageBox("請(qǐng)選擇查詢條件!");</p><p>  m_ctrCondition.SetFocus();</p><p&

67、gt;<b>  return;</b></p><p><b>  }</b></p><p>  if(m_strContent=="")</p><p><b>  {</b></p><p>  MessageBox("請(qǐng)輸入查詢內(nèi)容!&q

68、uot;);</p><p>  m_ctrContent.SetFocus();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  CString strSQL;</p><p>  if(0==m_nCondi

69、tion)</p><p><b>  {//按部門查詢</b></p><p>  strSQL.Format("select * from person where dept='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p>&l

70、t;p><b>  }</b></p><p>  else if(1==m_nCondition)</p><p>  {//按職工職務(wù)查詢</p><p>  strSQL.Format("select * from person where duty='%s'",m_strContent);<

71、;/p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(2==m_nCondition)</p><p>  {//按職工職稱查詢</p><p>  strSQL.Format("select * from

72、person where technical='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(3==m_nCondition)</p><p>  {//按職工類型

73、查詢</p><p>  strSQL.Format("select * from person where isworker='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>

74、;  else if(4==m_nCondition)</p><p>  {//按工資類別查詢</p><p>  strSQL.Format("select * from person where aboutpay='%s'",m_strContent);</p><p>  RefreshData(strSQL);</

75、p><p><b>  }</b></p><p>  else if(5==m_nCondition)</p><p>  {//按職工性別查詢</p><p>  strSQL.Format("select * from person where sex='%s'",m_strCont

76、ent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(6==m_nCondition)</p><p>  {//按婚姻狀況查詢</p><p>  strSQL.Format("select

77、 * from person where ismarry='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p>  else if(7==m_nCondition)</p><p>  {/

78、/按職工民族查詢</p><p>  strSQL.Format("select * from person where folk='%s'",m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p&

79、gt;  else if(8==m_nCondition)</p><p>  {//按政治面貌查詢</p><p>  strSQL.Format("select * from person where political='%s'",m_strContent);</p><p>  RefreshData(strSQL);&l

80、t;/p><p><b>  }</b></p><p>  else if(9==m_nCondition)</p><p>  {//按文化程度查詢</p><p>  strSQL.Format("select * from person where education='%s'",

81、m_strContent);</p><p>  RefreshData(strSQL);</p><p><b>  }</b></p><p><b>  //設(shè)置按鈕狀態(tài)</b></p><p>  m_ctrNewBnt.EnableWindow(TRUE);</p><

82、p>  m_ctrDelBnt.EnableWindow(TRUE);</p><p>  m_ctrSaveBnt.EnableWindow(FALSE);</p><p>  m_ctrCancelBnt.EnableWindow(FALSE);</p><p>  m_bNew = FALSE;</p><p>  m_ctrMo

83、dify.EnableWindow(TRUE);</p><p>  m_BaseInfoDlg.m_ctrID.EnableWindow(FALSE);</p><p><b>  }</b></p><p><b>  6.3人事檔案查詢</b></p><p>  void CSearchDl

84、g::OnButtonSearch() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateData();</p><p>  CString strSQL;<

85、/p><p>  CString strTemp;</p><p>  CString strType;</p><p>  BOOLbNoCondition = TRUE;</p><p>  //選擇是否進(jìn)行模糊查詢</p><p>  if(m_bType)</p><p>  strTyp

86、e = " = ";</p><p><b>  else</b></p><p>  strType = " like ";</p><p>  //根據(jù)查詢條件構(gòu)造SQL語句///////////////////////////////////////////////</p><p

87、>  strSQL = "select * from person where ";</p><p>  if(m_strAboutPay!="")</p><p><b>  {</b></p><p>  strTemp.Format(" aboutpay %s '%s'

88、; ",strType,m_strAboutPay);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p>

89、<p><b>  }</b></p><p>  if(m_strDept!="")</p><p><b>  {</b></p><p>  strTemp.Format(" dept %s '%s' ",strType,m_strDept);<

90、/p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></

91、p><p>  if(m_strDuty!="")</p><p><b>  {</b></p><p>  strTemp.Format(" duty %s '%s' ",strType,m_strDuty);</p><p>  if(!bNoCondition)

92、</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strEducation!

93、="")</p><p><b>  {</b></p><p>  strTemp.Format(" education %s '%s' ",strType,m_strEducation);</p><p>  if(!bNoCondition)</p><p>

94、  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strFolk!="")</p>

95、<p><b>  {</b></p><p>  strTemp.Format(" folk %s '%s' ",strType,m_strFolk);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</

96、p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strIsWorker!="")</p><p><b>  {</b>

97、</p><p>  strTemp.Format(" isworker %s '%s' ",strType,m_strIsWorker);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL

98、 += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strMarry!="")</p><p><b>  {</b></p><p>  strT

99、emp.Format(" ismarry %s '%s' ",strType,m_strMarry);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p&g

100、t;  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strPolitical!="")</p><p><b>  {</b></p><p>  strTemp.Format(" political

101、 %s '%s' ",strType,m_strPolitical);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FA

102、LSE;</p><p><b>  }</b></p><p>  if(m_strSex!="")</p><p><b>  {</b></p><p>  strTemp.Format(" sex %s '%s' ",strType,m

103、_strSex);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }&l

104、t;/b></p><p>  if(m_strTechnical!="")</p><p><b>  {</b></p><p>  strTemp.Format(" technical %s '%s' ",strType,m_strTechnical);</p>

105、<p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p>&

106、lt;p>  if(m_nAge>0)</p><p><b>  {</b></p><p>  strTemp.Format(" age = %d ",strType,m_nAge);</p><p>  if(!bNoCondition)</p><p>  strSQL += &q

107、uot; and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  //MessageBox(strSQL);</p><p>  if(m_str

108、Dept2!="")</p><p><b>  {</b></p><p>  strTemp.Format(" dept2 %s '%s' ",strType,m_strDept2);</p><p>  if(!bNoCondition)</p><p>  

109、strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strDept3!="")</p>

110、<p><b>  {</b></p><p>  strTemp.Format(" dept3 %s '%s' ",strType,m_strDept3);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";<

111、/p><p>  strSQL += strTemp;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strName!="")</p><p><b>  {</b><

112、;/p><p>  strTemp.Format(" name %s '%s' ",strType,m_strName);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp

113、;</p><p>  bNoCondition = FALSE;</p><p><b>  }</b></p><p>  if(m_strNative!="")</p><p><b>  {</b></p><p>  strTemp.Format

114、(" native %s '%s' ",strType,m_strNative);</p><p>  if(!bNoCondition)</p><p>  strSQL += " and ";</p><p>  strSQL += strTemp;</p><p>  bNoCon

115、dition = FALSE;</p><p><b>  }</b></p><p>  if(bNoCondition)</p><p><b>  {</b></p><p>  strSQL = "select * from person";</p><

116、;p><b>  }</b></p><p>  ///////////////////////////////////////////////////////////</p><p>  //MessageBox(strSQL);</p><p>  m_ctrList.DeleteAllItems();</p><

117、p>  m_ctrList.SetRedraw(FALSE);</p><p>  if(!m_PersonSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))</p><p><b>  {</b></p><p>  MessageBox("打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯(cuò)誤&

118、quot;,MB_OK);</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  char buffer[20];</p><p>  CString strTime;</p><p><b>  i

119、nt i=0;</b></p><p>  if(m_PersonSet.IsEOF())</p><p><b>  {</b></p><p>  MessageBox("沒有符合條件的記錄!");</p><p><b>  return;</b></p&

120、gt;<p><b>  }</b></p><p>  while(!m_PersonSet.IsEOF())</p><p><b>  {</b></p><p>  m_ctrList.InsertItem(i,m_PersonSet.m_ID);</p><p>  m_ct

121、rList.SetItemText(i,1,m_PersonSet.m_name);</p><p>  m_ctrList.SetItemText(i,2,m_PersonSet.m_sex);</p><p>  strTime.Format("%d-%d-%d",m_PersonSet.m_birth.GetYear(),m_PersonSet.m_birth.G

122、etMonth(),m_PersonSet.m_birth.GetDay());</p><p>  m_ctrList.SetItemText(i,3,strTime);</p><p>  _itoa(m_PersonSet.m_age,buffer,10);</p><p>  m_ctrList.SetItemText(i,4,buffer);</p&

123、gt;<p>  m_ctrList.SetItemText(i,5,m_PersonSet.m_ismarry);</p><p>  m_ctrList.SetItemText(i,6,m_PersonSet.m_duty);</p><p>  m_ctrList.SetItemText(i,7,m_PersonSet.m_technical);</p>

124、<p>  m_ctrList.SetItemText(i,8,m_PersonSet.m_isworker);</p><p>  m_ctrList.SetItemText(i,9,m_PersonSet.m_aboutpay);</p><p>  m_ctrList.SetItemText(i,10,m_PersonSet.m_education);</p>

125、<p>  m_ctrList.SetItemText(i,11,m_PersonSet.m_political);</p><p>  strTime.Format("%d-%d-%d",m_PersonSet.m_date2.GetYear(),m_PersonSet.m_date2.GetMonth(),m_PersonSet.m_date2.GetDay());</p

126、><p>  m_ctrList.SetItemText(i,12,strTime);</p><p><b>  i++;</b></p><p>  m_PersonSet.MoveNext();</p><p><b>  }</b></p><p>  m_PersonS

127、et.Close();</p><p>  m_ctrList.SetRedraw(TRUE);</p><p><b>  }</b></p><p><b>  6.4人事資料統(tǒng)計(jì)</b></p><p><b>  主要代碼如下:</b></p><p

128、>  void CStatDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  CString

129、strSQL;</p><p>  CString strValue="0";</p><p>  CDatabase db;</p><p>  db.Open(_T("Manager1"));</p><p>  CRecordset recordset(&db);</p>&

130、lt;p>  UpdateData(TRUE);</p><p><b>  //獲得統(tǒng)計(jì)類型</b></p><p>  int nType = m_ctrList.GetSelectionMark();</p><p><b>  int i=0;</b></p><p>  switch

131、(nType)</p><p><b>  {</b></p><p>  case 0://按性別統(tǒng)計(jì)</p><p>  m_ctrResult.DeleteAllItems();</p><p>  m_ctrResult.DeleteColumn(1);</p><p>  m_ctrRe

132、sult.DeleteColumn(0);</p><p>  m_ctrResult.InsertColumn(0,"性別");</p><p>  m_ctrResult.InsertColumn(1,"人數(shù)");</p><p>  m_ctrResult.SetColumnWidth(0,100);</p>

133、<p>  m_ctrResult.SetColumnWidth(1,100);</p><p>  strSQL="select count(ID) as num ,sex from person group by sex";</p><p>  //MessageBox(strSQL);</p><p>  if(!record

134、set.Open(CRecordset::forwardOnly,strSQL))</p><p><b>  {</b></p><p>  MessageBox("打開數(shù)據(jù)庫失敗!","數(shù)據(jù)庫錯(cuò)誤",MB_OK);</p><p><b>  return ;</b></p

135、><p><b>  }</b></p><p>  while(!recordset.IsEOF())</p><p><b>  {</b></p><p>  recordset.GetFieldValue("sex",strValue);</p><p&

136、gt;  m_ctrResult.InsertItem(i,strValue);</p><p>  recordset.GetFieldValue("num",strValue);</p><p>  //MessageBox(strValue);</p><p>  m_ctrResult.SetItemText(i,1,strValue);

137、</p><p><b>  i++;</b></p><p>  recordset.MoveNext();</p><p><b>  }</b></p><p>  recordset.Close();</p><p><b>  break;</b&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論