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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

9、 基層教學單位責任人簽章:</p><p><b>  主管院長簽章:</b></p><p><b>  目 錄</b></p><p>  課程設計(論文)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ù)項7</p

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

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

13、;<p>  6 應用程序設置和代碼分析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)計24</p><p>  6.5數(shù)據(jù)庫備份以及恢復

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

15、><p>  8.安裝說明和使用說明40</p><p>  8.1運行條件40</p><p>  8.2使用方法40</p><p><b>  9.結(jié) 論40</b></p><p>  10.參考文獻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 平臺應用程序開發(fā)環(huán)境。目前已經(jīng)開發(fā)到9.0版本,也就是Visual Studio 2008。 Visual Studio可以用來創(chuàng)建 Windows平臺下的Windows應用程序和網(wǎng)絡應用

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

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

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

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

22、  1)數(shù)據(jù)項名稱: 用戶名</p><p>  簡述:用戶的名字,沒有重復,可以唯一標識每一用戶</p><p><b>  類型:文本</b></p><p><b>  長度:50</b></p><p>  2)數(shù)據(jù)項名稱:用戶密碼</p><p>  簡述:用戶的密

23、碼,用來證驗登陸的用戶是否合法。</p><p><b>  類型:文本</b></p><p><b>  長度:50</b></p><p>  3)數(shù)據(jù)項名稱:是否管理員</p><p>  簡述:描述是否系統(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)名稱:民族檔案設置</p><p>  組成:民族編號,民族名稱</p><p>  3)數(shù)據(jù)結(jié)構(gòu)名稱:職工類型設置</p><p>  組成:職工類型編號,職工類型名稱</p><p>  4)數(shù)據(jù)結(jié)構(gòu)名稱:文化程度設置</p><p&g

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

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

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

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

30、gt;  3.1設計方法和步驟</p><p>  采用自底而上的設計方法。先自頂向下地進行需求分析,對人事管理系統(tǒng)的需求進行逐步細化;然后再自底而上地設計概念結(jié)構(gòu),最終將各個局部應用的概念結(jié)構(gòu)集合成為全局概念結(jié)構(gòu)。</p><p>  3.2概念結(jié)構(gòu)E-R圖</p><p>  通過對局部應用的選擇,逐一設計出分E-R圖,并對各個分E-R圖進行合并,生成初步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)實體和聯(lián)系的說明</p><p>  說明:對于人事管理系統(tǒng)的 E-R 圖1,一個用戶可以設置多個民族的情況,一個民族檔

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

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

34、<p>  政治面貌設置(政治面貌編號,政治面貌名稱)</p><p>  部門類別設置(部門類別編號,部門類別名稱)</p><p>  工資類別設置(工資類別編號,工資類別名稱)</p><p>  職稱類別設置( 職稱類別編號,職稱類別名稱)</p><p>  職務類別設置(職務類別編號,職務類別名稱)</p>

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

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

37、p><p>  在Access中,可以查看所建立的表,并添加適當測試數(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部門類別設置表</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職務類別表</p><p><b>  5.2.10職工表</b></p><p>  5.2.11 職工家庭情況表</p><p>  6 應用程序設置和代碼分析</p>&l

41、t;p>  6.1.配置ODBC數(shù)據(jù)源和添加skin++皮膚</p><p>  本系統(tǒng)使用的是當程序運行時自動配置數(shù)據(jù)源的方法。實現(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對話框,之后為此對話框的部分控件建立關(guān)聯(lián)變量,之后再建立IDD_

46、DIALOG_BROWSE對話框,之后為此對話框的部分控件建立關(guān)聯(lián)變量。</p><p>  添加代碼實現(xiàn)人事檔案瀏覽功能</p><p>  實現(xiàn)這個功能的主要代碼如下:</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("請選擇查詢條件!");</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("請輸入查詢內(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>  {//按職工職務查詢</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>  //設置按鈕狀態(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("請選擇查詢條件!");</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("請輸入查詢內(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>  {//按職工職務查詢</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>  //設置按鈕狀態(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>  //選擇是否進行模糊查詢</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ù)庫錯誤&

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)計</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)計類型</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)計</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ù)庫錯誤",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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論