畢業(yè)設(shè)計(jì)----人力資源管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第1頁(yè)
已閱讀1頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  人力資源管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)</p><p><b>  摘 要</b></p><p>  二十一世紀(jì)人才最珍貴。如何吸引優(yōu)秀人才、合理安排人力資源、降低人員成本、提高企業(yè)競(jìng)爭(zhēng)力,已經(jīng)是企業(yè)管理者考慮的首要問(wèn)題。激發(fā)員工的創(chuàng)造性、工作責(zé)任感和工作熱情已經(jīng)成為關(guān)系企業(yè)興衰的重要因素。因此,一套功能強(qiáng)大的人力資源管理系統(tǒng)的需求應(yīng)運(yùn)而生。</

2、p><p>  本文以某公司的人力資源管理信息系統(tǒng)的開(kāi)發(fā)為例,詳盡的闡述了構(gòu)建人力資源管理信息系統(tǒng)的技術(shù)路線(xiàn)和整個(gè)開(kāi)發(fā)過(guò)程。</p><p>  在開(kāi)發(fā)方法上,引入了當(dāng)今流行的Microsoft .Net Remoting 技術(shù)思想,把整個(gè)開(kāi)發(fā)程分為需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)等步驟。該系統(tǒng)通過(guò)優(yōu)化和再造管理流程,使人力資源的管理更為高效和科學(xué),數(shù)據(jù)更為準(zhǔn)確,從而將人事部門(mén)從繁重的、

3、耗時(shí)的工作中解放出來(lái),把精力集中到更高層的政策性工作中去。</p><p>  關(guān)鍵詞 人力資源管理系統(tǒng) ; C#.net編程語(yǔ)言 ; Visual Studio 2005 ;SQL Server 2005數(shù)據(jù)庫(kù)</p><p><b>  目 錄</b></p><p><b>  第1章 緒論1</b></

4、p><p>  1.1課題研究背景1</p><p>  1.2課題研究目的和意義2</p><p>  第2章 系統(tǒng)分析概述3</p><p><b>  2.1引言3</b></p><p>  2.2系統(tǒng)需求分析3</p><p>  2.3系統(tǒng)概述

5、3</p><p>  2.4開(kāi)發(fā)環(huán)境的選擇方法4</p><p>  2.4.1Visual Studio 2005的概述4</p><p>  2.4.2SQL Server 2005數(shù)據(jù)庫(kù)的概述5</p><p>  第3章 系統(tǒng)方案總體設(shè)計(jì)6</p><p>  3.1系統(tǒng)設(shè)計(jì)思想及相關(guān)技術(shù)介紹

6、6</p><p>  3.1.1三層架構(gòu)設(shè)計(jì)6</p><p>  3.1.2工廠(chǎng)模式7</p><p>  3.1.3Microsoft .Net Remoting 技術(shù)8</p><p>  3.2系統(tǒng)總體功能模塊設(shè)計(jì)11</p><p>  第4章 數(shù)據(jù)庫(kù)的設(shè)計(jì)12</p>&

7、lt;p><b>  4.1引言12</b></p><p>  4.2數(shù)據(jù)庫(kù)需求分析12</p><p>  4.3數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)13</p><p>  4.4數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)13</p><p>  第5章 界面設(shè)計(jì)與實(shí)現(xiàn)17</p><p>  5.1登錄界

8、面設(shè)計(jì)17</p><p>  5.2主要界面設(shè)計(jì)—在職員工基本信息畫(huà)面18</p><p>  5.3主要界面設(shè)計(jì)—組織登錄畫(huà)面23</p><p>  5.4主要界面設(shè)計(jì)—人事事務(wù)畫(huà)面24</p><p><b>  結(jié) 論28</b></p><p><b>  

9、致 謝29</b></p><p>  參 考 文 獻(xiàn)30</p><p><b>  緒論</b></p><p><b>  課題研究背景</b></p><p>  隨著知識(shí)經(jīng)濟(jì)的時(shí)代的到來(lái)、成功加入WTO及信息化浪潮的來(lái)臨,企業(yè)經(jīng)營(yíng)管理機(jī)制正在發(fā)生著根本性的變化。處于激烈市

10、場(chǎng)競(jìng)爭(zhēng)環(huán)境下的企業(yè),如果想要在日新月異的市場(chǎng)變化中求得生存,就必須有效地進(jìn)行企業(yè)內(nèi)部改革和加強(qiáng)企業(yè)管理。因此,借助現(xiàn)代信息技術(shù)和管理理論,建立企業(yè)管理信息系統(tǒng)勢(shì)在必行。</p><p>  面對(duì)知識(shí)經(jīng)濟(jì)時(shí)代下的挑戰(zhàn),企業(yè)的人力資源管理也同樣要適應(yīng)這樣的趨勢(shì),但是現(xiàn)代人力資源管理面臨兩個(gè)方面的難題:</p><p>  1.現(xiàn)代人力資源管理已經(jīng)成為實(shí)現(xiàn)企業(yè)競(jìng)爭(zhēng)優(yōu)勢(shì)的核心之一,根據(jù)世界銀行的統(tǒng)

11、計(jì),現(xiàn)在全球64%的財(cái)富是由人力資源構(gòu)成的。它所涉及的范圍已經(jīng)遠(yuǎn)遠(yuǎn)超出了人事管理的范疇,成為從企業(yè)戰(zhàn)略規(guī)劃到基礎(chǔ)人力管理,涉及企業(yè)、社會(huì)、政府、員工等方方面面的復(fù)雜工程,原先的手工簡(jiǎn)單處理手段和思路都遠(yuǎn)遠(yuǎn)不夠了。</p><p>  2.現(xiàn)代人力資源管理的范圍大大擴(kuò)展了,人力資源部要面臨大量種類(lèi)繁多的數(shù)據(jù),有必要收集和處理這些數(shù)據(jù),但是如果僅僅是收集和處理,并不能真正達(dá)到通過(guò)人力資源管理提高企業(yè)核心競(jìng)爭(zhēng)力的目的。

12、因此,有必要將信息技術(shù)與人力資源結(jié)合在一起,利用人力資源的管理信息系統(tǒng)提高人力資源管理的效率,同時(shí)深入挖掘人力資源管理信息中的寶藏,真正提高企業(yè)的核心競(jìng)爭(zhēng)力。建設(shè)高效的人力資源管理信息系統(tǒng),提高自己的人力資源管理水平是中國(guó)企業(yè)的必由之路。</p><p>  然而,受“分工”思想的影響,傳統(tǒng)的信息系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)及應(yīng)用主要以利用計(jì)算機(jī)系統(tǒng)強(qiáng)大的信息處理能力為手段,著重于采集、存儲(chǔ)、加工利用和傳播信息,以數(shù)據(jù)共享來(lái)集

13、成各種功能,從而支持不同部門(mén)的業(yè)務(wù)處理。</p><p>  傳統(tǒng)的信息管理系統(tǒng),存在以下不足:</p><p>  1. 其開(kāi)發(fā)技術(shù)主要基于部門(mén)的職能以及管理層次等方面來(lái)設(shè)計(jì)信息系統(tǒng)的功能和結(jié)構(gòu)。由此產(chǎn)生的信息系統(tǒng)雖然具有很好的信息處理功能,但對(duì)企業(yè)內(nèi)部各部門(mén)功能之間的業(yè)務(wù)流程控制邏輯關(guān)系缺乏支持。一個(gè)企業(yè)業(yè)務(wù)的實(shí)現(xiàn)必定是其內(nèi)部各個(gè)部門(mén)相互協(xié)調(diào)工作的結(jié)果,其業(yè)務(wù)流程即現(xiàn)實(shí)應(yīng)用中信息系統(tǒng)的

14、各項(xiàng)功能之間的聯(lián)系,也是以它特有的順序貫穿于各個(gè)部門(mén)。</p><p>  2.偏重于以數(shù)據(jù)共享來(lái)集成各種功能的傳統(tǒng)的信息系統(tǒng),其各功能間的聯(lián)系也是直接編寫(xiě)到程序代碼中,與功能代碼相互混雜。這樣一來(lái),系統(tǒng)的控制邏輯變得模糊,系統(tǒng)功能的實(shí)現(xiàn)也更為復(fù)雜,企業(yè)的業(yè)務(wù)流程稍有變化,將導(dǎo)致程序代碼的重新編寫(xiě),從而使系統(tǒng)的可靠性、穩(wěn)定性及對(duì)外界兼容性的下降。</p><p><b>  課題

15、研究目的和意義</b></p><p>  ×人力資源系統(tǒng)的開(kāi)發(fā),其功能將真正擴(kuò)展到全方位企業(yè)管理的范疇。人力資源系統(tǒng)的功能范圍,也從單一的檔案、工資,發(fā)展到可為企業(yè)的決策提供幫助的全方位解決方案。人力資源管理信息系統(tǒng)的目的和意義在于: </p><p>  1.充分利用網(wǎng)絡(luò)資源,進(jìn)一步優(yōu)化和再造管理流程,使人力資源的管理更為高效和科學(xué),數(shù)據(jù)更為準(zhǔn)確,滿(mǎn)足人力資源部提

16、升服務(wù)和管理水平的要求,使人力資源的管理更為高效和科學(xué),數(shù)據(jù)更為準(zhǔn)確;</p><p>  2.增強(qiáng)員工自助服務(wù)的功能,提高業(yè)務(wù)的透明度及員工的參與程度,簡(jiǎn)化人力資源事務(wù)性的管理流程,使人事勞動(dòng)部門(mén)的管理人員有更多的時(shí)間和精力用于人力資源的戰(zhàn)略規(guī)劃;</p><p>  3.建立流程引擎和角色管理機(jī)制,增加面向用戶(hù)的流程變更管理和用戶(hù)管理的功能;</p><p> 

17、 4.健全安全機(jī)制,完善安全監(jiān)控及審計(jì)功能;</p><p>  5.增強(qiáng)系統(tǒng)可視化的設(shè)計(jì),提高用戶(hù)的可操作性,盡可能減少用戶(hù)培訓(xùn);</p><p>  6.決策支持:完善人力資源決策支持系統(tǒng),使基于人力資源系統(tǒng)數(shù)據(jù)的決策更為直觀(guān)和精確,確定管理人員能夠及時(shí)快捷地獲得決策所需的信息。</p><p>  總的來(lái)說(shuō),人力系統(tǒng)建設(shè)就是希望通過(guò)優(yōu)化和再造流程的人力資源重建

18、,使將來(lái)的人力系統(tǒng)成為企業(yè)準(zhǔn)確、開(kāi)放、安全、可靠的數(shù)據(jù)平臺(tái);成為企業(yè)人力資源戰(zhàn)略決策的主要數(shù)據(jù)來(lái)源最終實(shí)現(xiàn)開(kāi)發(fā)人才、服務(wù)人才、利用人才和降低人力資源成本、提高人力資源的利用效率的目的。</p><p><b>  系統(tǒng)分析概述</b></p><p><b>  引言</b></p><p>  目前,部分企業(yè)還停留在人工

19、紙質(zhì)管理方法階段,這樣的管理方式已不適應(yīng)時(shí)代發(fā)展,因?yàn)樗粌H浪費(fèi)了人力物力,還造成企業(yè)內(nèi)部員工信息管理容易混亂、各部門(mén)分工不明確。在信息時(shí)代,這種傳統(tǒng)的紙介質(zhì)管理的低效方法必然會(huì)被以數(shù)據(jù)庫(kù)為基礎(chǔ)的功能強(qiáng)大效率卓越的信息管理系統(tǒng)所取代。</p><p><b>  系統(tǒng)需求分析</b></p><p>  系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)企業(yè)信息管理的系統(tǒng)化、規(guī)范化和自動(dòng)化。&

20、lt;/p><p>  系統(tǒng)功能分析是在系統(tǒng)開(kāi)發(fā)的總體任務(wù)的基礎(chǔ)上完成的。人力資源管理系統(tǒng)需要完成的功能主要有:職員管理模塊,包括職員基本信息,人事事務(wù),合同管理;組織管理模塊,包括組織結(jié)構(gòu)。在數(shù)據(jù)庫(kù)方面,利用關(guān)系數(shù)據(jù)庫(kù)功能強(qiáng)大的查詢(xún)語(yǔ)言對(duì)企業(yè)各類(lèi)信息入庫(kù)保存,按要求及時(shí)處理。</p><p>  該系統(tǒng)集輸入、維護(hù)、查詢(xún)、和各種處理為一體,各種操作可以通過(guò)菜單進(jìn)行,操作快捷、方便,性能高效、

21、強(qiáng)大;使用易懂、易會(huì),形象增強(qiáng)的數(shù)據(jù)處理,用戶(hù)均可根據(jù)需要自行使用。</p><p><b>  系統(tǒng)概述</b></p><p>  本系統(tǒng)是一個(gè)人力資源管理系統(tǒng),在實(shí)施過(guò)程中主要實(shí)現(xiàn)以下目標(biāo):</p><p>  (1)界面友好、美觀(guān),體現(xiàn)人力資源管理的特點(diǎn),而且操作簡(jiǎn)便。</p><p> ?。?)各功能模塊層次清

22、晰,代碼高效易懂。</p><p> ?。?)添加和編輯簡(jiǎn)便、清晰,提高工作效率。</p><p> ?。?)查詢(xún)方便,數(shù)據(jù)存儲(chǔ)安全可靠。</p><p>  (5)功能全面,實(shí)用性強(qiáng)。</p><p><b>  主要功能有:</b></p><p><b>  1.組織管理部分<

23、;/b></p><p>  組織管理包括組織結(jié)構(gòu)一覽,部門(mén)登錄,組織登錄三個(gè)子畫(huà)面。其中組織結(jié)構(gòu)一覽用于檢索查看不同組織下的部門(mén)樹(shù)及部門(mén)信息,修改刪除組織和部門(mén)信息。具體項(xiàng)目名稱(chēng)有創(chuàng)建組織,修改組織,刪除組織,創(chuàng)建部門(mén),修改部門(mén),刪除部門(mén),啟用組織,復(fù)制組織。部門(mén)登錄主要進(jìn)行部門(mén)的登入,更新操作。項(xiàng)目名稱(chēng)有組織名稱(chēng),部門(mén)代碼,部門(mén)名稱(chēng),上級(jí)部門(mén)等。登錄模式時(shí)除上級(jí)部門(mén)名稱(chēng)內(nèi)容外,其余空白。更新模式時(shí)取得上

24、一畫(huà)面的部門(mén)編碼,檢索部門(mén)信息,畫(huà)面內(nèi)容于數(shù)據(jù)庫(kù)同項(xiàng)目綁定。組織登錄主要用于組織復(fù)制,下屬部門(mén)也要進(jìn)行復(fù)制。該畫(huà)面有三種編輯模式,分別是:創(chuàng)建--新建組織信息,窗體標(biāo)題為組織登錄;修改--更新組織信息:窗體標(biāo)題為組織修改;復(fù)制--復(fù)制組織及所轄部門(mén)信息:窗體標(biāo)題為組織復(fù)制。</p><p><b>  2.職員管理部分</b></p><p>  包括職員基本信息,

25、人事事務(wù),合同管理三大部分。職員基本信息部分實(shí)現(xiàn)在職員工信息的瀏覽,職員維護(hù),員工工作經(jīng)歷的瀏覽及登錄,語(yǔ)言能力一覽及登錄,員工技能信息一覽及登錄,員工家庭關(guān)系一覽及登錄,員工檔案一覽及登錄,員工保險(xiǎn)信息一覽及登錄,員工獎(jiǎng)懲信息一覽及登錄。人事事務(wù)部分主要有職員轉(zhuǎn)正一覽,職員異動(dòng)管理,職員離職管理。</p><p><b>  開(kāi)發(fā)環(huán)境的選擇方法</b></p><p&g

26、t;  目前,用于開(kāi)發(fā)數(shù)據(jù)庫(kù)管理信息系統(tǒng)的編程語(yǔ)言很多,比如Delphi、PowerBuilder、Visual C++、Java、Visual Basic6及VB.NET等等,而用于后臺(tái)數(shù)據(jù)庫(kù)管理的DBMS也有很多,比如有Oracle、MS SQL SERVER、SYBASE、INFORMIX、DB2、VISUAL FOXPRO、ACCESS等等。</p><p>  本人根據(jù)公司要求,采用面向?qū)ο蟮能浖_(kāi)發(fā)方

27、法來(lái)實(shí)現(xiàn)此管理軟件,系統(tǒng)開(kāi)發(fā)工具我們選擇了能夠跨平臺(tái)的開(kāi)發(fā)工具Visual Studio 2005。在前臺(tái)操作與后臺(tái)數(shù)據(jù)庫(kù)處理的連接上,主要采用ADO.NET技術(shù)和SQL Server2005數(shù)據(jù)庫(kù),運(yùn)用客戶(hù)機(jī)服務(wù)器模式(C/S)配合功能強(qiáng)大的SQL查詢(xún)語(yǔ)言實(shí)現(xiàn)預(yù)定的功能需求。</p><p>  Visual Studio 2005的概述</p><p>  Visual Studio

28、2005是一個(gè)全面集成的開(kāi)發(fā)環(huán)境,用于編寫(xiě),調(diào)試代碼,把代碼編譯為程序集進(jìn)行發(fā)布,實(shí)際上,Visual Studio 提供了非常專(zhuān)業(yè)的多文檔界面應(yīng)用程序,在該應(yīng)用程序中可以進(jìn)行與開(kāi)發(fā)代碼相關(guān)的任何操作,它提供了:</p><p>  文本編輯器:在文本編輯器中,可以編寫(xiě)C#代碼(以及VB 2005,J#和C++代碼)。這個(gè)文本編輯器相當(dāng)復(fù)雜。</p><p>  代碼的設(shè)計(jì)視圖編輯器:它可

29、以在項(xiàng)目中可視化的放置用戶(hù)界面和數(shù)據(jù)訪(fǎng)問(wèn)控件。此時(shí)Visual Studio會(huì)自動(dòng)在源文件中添加必要的C#代碼,在項(xiàng)目中實(shí)例化這些控件。</p><p>  支持窗口:它們可以查看修改項(xiàng)目的各個(gè)方面。也可以使用這些窗口指定編譯選項(xiàng)。</p><p>  在環(huán)境中編譯:可以只選擇一個(gè)菜單選項(xiàng)編譯項(xiàng)目,而不必在命令行上運(yùn)行C#編譯器。Visual Studio會(huì)調(diào)用C#編譯器。</p&g

30、t;<p>  集成的調(diào)試程序:編程的本質(zhì)是代碼在第一次運(yùn)行時(shí),一般不會(huì)正確執(zhí)行。也許在第二次、第三次才能正確運(yùn)行。Visual Studio無(wú)縫的鏈接到一個(gè)調(diào)試程序上,可以在該調(diào)試環(huán)境中設(shè)置斷點(diǎn),觀(guān)察變量。</p><p>  集成的MSDN幫助:Visual Studio可以在IDE中調(diào)用MSDN文檔說(shuō)明。</p><p>  訪(fǎng)問(wèn)其他程序:Visual Studio還能

31、調(diào)用許多其他工具來(lái)查看和修改計(jì)算機(jī)或網(wǎng)絡(luò)的一些內(nèi)容,而無(wú)需退出開(kāi)發(fā)環(huán)境。</p><p>  SQL Server 2005數(shù)據(jù)庫(kù)的概述</p><p>  SQL Sevrer2005是一個(gè)C/S體系結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它使Transact—SQL語(yǔ)言在客戶(hù)和SQL Server之間發(fā)送處理請(qǐng)求,SQL Server利用C/S體系結(jié)構(gòu)把工作分成兩部分:客戶(hù)端負(fù)責(zé)邏輯處理把數(shù)據(jù)呈現(xiàn)給

32、用戶(hù),SQL Server管理數(shù)據(jù)庫(kù)。SQL Server用Transact—SQL作為它的數(shù)據(jù)庫(kù)查詢(xún)和編程語(yǔ)言,使用Transact—SQL能夠方便地存取數(shù)據(jù)、查詢(xún)、更新和管理關(guān)系數(shù)據(jù)庫(kù)。</p><p><b>  系統(tǒng)方案總體設(shè)計(jì)</b></p><p>  系統(tǒng)設(shè)計(jì)思想及相關(guān)技術(shù)介紹</p><p><b>  三層架構(gòu)設(shè)計(jì)&

33、lt;/b></p><p>  在軟件體系架構(gòu)設(shè)計(jì)中,分層式結(jié)構(gòu)是最常見(jiàn),也是最重要的一種結(jié)構(gòu)。微軟推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為:數(shù)據(jù)訪(fǎng)問(wèn)層、業(yè)務(wù)邏輯層、表示層,如圖3-1所示:</p><p>  圖3—1三層的分層式結(jié)構(gòu)</p><p>  在快速開(kāi)發(fā)中重用業(yè)務(wù)邏輯組件,我們已經(jīng)在系統(tǒng)中實(shí)現(xiàn)添加,更新,刪除,查找客戶(hù)數(shù)據(jù)的組件。這個(gè)組件已

34、經(jīng)開(kāi)發(fā)并且測(cè)試通過(guò),我們可以在其他要保存數(shù)據(jù)的項(xiàng)目中使用這個(gè)組件。使用三層架構(gòu)進(jìn)行開(kāi)發(fā)系統(tǒng)比較容易遷移,業(yè)務(wù)邏輯層與數(shù)據(jù)訪(fǎng)問(wèn)層是分離的,修改數(shù)據(jù)訪(fǎng)問(wèn)層不會(huì)影響到業(yè)務(wù)邏輯層。系統(tǒng)如果從用SQL Server存儲(chǔ)數(shù)據(jù)遷移到用Oracle存儲(chǔ)數(shù)據(jù),并不需要修改業(yè)務(wù)邏輯層組件和GUI組件。系統(tǒng)容易修改,假如在業(yè)務(wù)層有一個(gè)小小的修改,我們不需要在用戶(hù)的機(jī)器上重裝整個(gè)系統(tǒng)。我們只需要更新業(yè)務(wù)邏輯組件就可以了。應(yīng)用程序開(kāi)發(fā)人員可以并行,獨(dú)立的開(kāi)發(fā)單獨(dú)

35、的層。</p><p>  概括來(lái)說(shuō),分層式設(shè)計(jì)可以達(dá)到分散關(guān)注、松散耦合、邏輯復(fù)用、標(biāo)準(zhǔn)定義的目的。</p><p>  一個(gè)好的分層式結(jié)構(gòu),可以使得開(kāi)發(fā)人員的分工更加明確。一旦定義好各層次之間的接口,負(fù)責(zé)不同邏輯設(shè)計(jì)的開(kāi)發(fā)人員就可以分散關(guān)注,齊頭并進(jìn)。例如UI人員只需考慮用戶(hù)界面的體驗(yàn)與操作,領(lǐng)域的設(shè)計(jì)人員可以?xún)H關(guān)注業(yè)務(wù)邏輯的設(shè)計(jì),而數(shù)據(jù)庫(kù)設(shè)計(jì)人員也不必為繁瑣的用戶(hù)交互而頭疼了。每個(gè)開(kāi)

36、發(fā)人員的任務(wù)得到了確認(rèn),開(kāi)發(fā)進(jìn)度就可以迅速的提高。</p><p>  松散耦合的好處是顯而易見(jiàn)的。如果一個(gè)系統(tǒng)沒(méi)有分層,那么各自的邏輯都緊緊糾纏在一起,彼此間相互依賴(lài),誰(shuí)都是不可替換的。一旦發(fā)生改變,則牽一發(fā)而動(dòng)全身,對(duì)項(xiàng)目的影響極為嚴(yán)重。降低層與層間的依賴(lài)性,既可以良好地保證未來(lái)的可擴(kuò)展,在復(fù)用性上也是優(yōu)勢(shì)明顯。每個(gè)功能模塊一旦定義好統(tǒng)一的接口,就可以被各個(gè)模塊所調(diào)用,而不用為相同的功能進(jìn)行重復(fù)地開(kāi)發(fā)。<

37、;/p><p>  進(jìn)行好的分層式結(jié)構(gòu)設(shè)計(jì),標(biāo)準(zhǔn)也是必不可少的。只有在一定程度的標(biāo)準(zhǔn)化基礎(chǔ)上,這個(gè)系統(tǒng)才是可擴(kuò)展的,可替換的。而層與層之間的通信也必然保證了接口的標(biāo)準(zhǔn)化。</p><p>  基于以上優(yōu)點(diǎn)本系統(tǒng)也采用三層架構(gòu)設(shè)計(jì),其工作原理如下圖3-2所示:</p><p>  圖3-2 人力資源系統(tǒng)三層架構(gòu)</p><p>  采用三層架構(gòu)后,

38、用戶(hù)截面層通過(guò)統(tǒng)一的接口向業(yè)務(wù)層發(fā)送請(qǐng)求,業(yè)務(wù)層按自己的邏輯規(guī)則處理請(qǐng)求后進(jìn)行數(shù)據(jù)庫(kù)操作,然后將數(shù)據(jù)庫(kù)返回的數(shù)據(jù)封裝成類(lèi)的形式返回給用戶(hù)界面層。這樣用戶(hù)界面層甚至可以不知道數(shù)據(jù)庫(kù)的結(jié)構(gòu),只要維護(hù)與業(yè)務(wù)層之間的接口即可。這種方式在一定程度上增加了數(shù)據(jù)庫(kù)的安全性,同時(shí)也降低了對(duì)用戶(hù)界面層的開(kāi)發(fā)要求,因?yàn)樗静恍枰M(jìn)行任何的數(shù)據(jù)庫(kù)的操作。上面圖中代碼隱藏頁(yè)通過(guò)返回對(duì)象的形式來(lái)返回?cái)?shù)據(jù),在類(lèi)的內(nèi)部可以規(guī)定哪些數(shù)據(jù)可訪(fǎng)問(wèn),哪些數(shù)據(jù)是只讀的等,從

39、而通過(guò)封裝數(shù)據(jù)達(dá)到再一次提高數(shù)據(jù)安全性的目的。</p><p><b>  工廠(chǎng)模式</b></p><p>  專(zhuān)門(mén)定義一個(gè)類(lèi)來(lái)負(fù)責(zé)創(chuàng)建其他類(lèi)的實(shí)例,被創(chuàng)建的實(shí)例通常都具有共同的父類(lèi)或接口。簡(jiǎn)單工廠(chǎng)模式又稱(chēng)為靜態(tài)工廠(chǎng)方法(Static Factory Method)模式,屬于類(lèi)的創(chuàng)建型模式,通常根據(jù)一個(gè)條件參數(shù))來(lái)返回不同的類(lèi)的實(shí)例,如圖3-3所示。</p&g

40、t;<p><b>  參與者: </b></p><p>  (1)工廠(chǎng)角色(Creator) </p><p>  是簡(jiǎn)單工廠(chǎng)模式的核心,它負(fù)責(zé)實(shí)現(xiàn)創(chuàng)建所有具體產(chǎn)品類(lèi)的實(shí)例。工廠(chǎng)類(lèi)可以被外界直接調(diào)用,創(chuàng)建所需的產(chǎn)品對(duì)象。 </p><p>  (2)抽象產(chǎn)品角色(Product)</p><p>  是

41、所有具體產(chǎn)品角色的父類(lèi),它負(fù)責(zé)描述所有實(shí)例所共有的公共接口。 </p><p>  (3)具體產(chǎn)品角色(Concrete Product)</p><p>  繼承自抽象產(chǎn)品角色,一般為多個(gè),是簡(jiǎn)單工廠(chǎng)模式的創(chuàng)建目標(biāo)。工廠(chǎng)類(lèi)返回的都是該角色的某一具體產(chǎn)品。 </p><p>  簡(jiǎn)單工廠(chǎng)模式根據(jù)提供的參數(shù)返回具體相同方法的不同類(lèi)的實(shí)例。這些類(lèi)可以是派生于相同基類(lèi)的類(lèi)

42、,也可以是相互之間沒(méi)有任何關(guān)系,只是共享了相同接口的類(lèi)。前提是:類(lèi)實(shí)例中的方法必須是相同的,并且能夠被交替使用。</p><p>  圖3-3 簡(jiǎn)單工廠(chǎng)模式</p><p>  Microsoft .Net Remoting 技術(shù)</p><p>  本系統(tǒng)采用Remoting技術(shù)是實(shí)現(xiàn)數(shù)據(jù)的分布式處理,利用工廠(chǎng)模式實(shí)現(xiàn)系統(tǒng)的“封裝機(jī)制”。</p>&

43、lt;p>  什么是Remoting,簡(jiǎn)而言之,我們可以將其看作是一種分布式處理方式。在Windows操作系統(tǒng)中,是將應(yīng)用程序分離為單獨(dú)的進(jìn)程。這個(gè)進(jìn)程形成了應(yīng)用程序代碼和數(shù)據(jù)周?chē)囊坏肋吔?。如果不采用進(jìn)程間通信(RPC)機(jī)制,則在一個(gè)進(jìn)程中執(zhí)行的代碼就不能訪(fǎng)問(wèn)另一進(jìn)程。這是一種操作系統(tǒng)對(duì)應(yīng)用程序的保護(hù)機(jī)制。然而在某些情況下,我們需要跨過(guò)應(yīng)用程序域,與另外的應(yīng)用程序域進(jìn)行通信,即穿越邊界。</p><p>

44、  在Remoting中通過(guò)通道(channel)來(lái)實(shí)現(xiàn)兩個(gè)應(yīng)用程序域之間對(duì)象的通信的。對(duì)于要傳遞的對(duì)象,我們只需要了解通道的類(lèi)型和端口號(hào)之外,無(wú)需再了解數(shù)據(jù)包的格式。但必須注意的是,客戶(hù)端在獲取服務(wù)器端對(duì)象時(shí),并不是獲得實(shí)際的服務(wù)端對(duì)象,而是獲得它的引用。這既保證了客戶(hù)端和服務(wù)器端有關(guān)對(duì)象的松散耦合,同時(shí)也優(yōu)化了通信的性能。如圖3-4所示:</p><p>  圖3-4 Remoting技術(shù)</p>

45、<p><b>  服務(wù)器端</b></p><p><b>  遠(yuǎn)程對(duì)象的激活</b></p><p>  客戶(hù)端通過(guò)通道來(lái)創(chuàng)建遠(yuǎn)程對(duì)象,稱(chēng)為對(duì)象的激活。在Remoting中,遠(yuǎn)程對(duì)象的激活分為兩大類(lèi):服務(wù)器端激活和客戶(hù)端激活。</p><p>  服務(wù)器端激活,又叫做WellKnown方式,很多又翻譯為知

46、名對(duì)象。為什么稱(chēng)為知名對(duì)象激活模式呢?是因?yàn)榉?wù)器應(yīng)用程序在激活對(duì)象實(shí)例之前會(huì)在一個(gè)眾所周知的統(tǒng)一資源標(biāo)識(shí)符(URI)上來(lái)發(fā)布這個(gè)類(lèi)型。然后該服務(wù)器進(jìn)程會(huì)為此類(lèi)型配置一個(gè)WellKnown對(duì)象,并根據(jù)指定的端口或地址來(lái)發(fā)布對(duì)象。.Net Remoting把服務(wù)器端激活又分為Singleton模式和SingleCall模式兩種。 (1)Singleton模式:此為有狀態(tài)模式。如果設(shè)置為Singleton激活方式,則Remoting將

47、為所有客戶(hù)端建立同一個(gè)對(duì)象實(shí)例。當(dāng)對(duì)象處于活動(dòng)狀態(tài)時(shí),Singleton實(shí)例會(huì)處理所有后來(lái)的客戶(hù)端訪(fǎng)問(wèn)請(qǐng)求,而不管它們是同一個(gè)客戶(hù)端,還是其他客戶(hù)端。2)</p><p>  Singleton實(shí)例將在方法調(diào)用中一直維持其狀態(tài)。舉例來(lái)說(shuō),如果一個(gè)遠(yuǎn)程對(duì)象有一個(gè)累加方法(i=0;++i),被多個(gè)客戶(hù)端(例如兩個(gè))調(diào)用。如果設(shè)置為Singleton方式,則第一個(gè)客戶(hù)獲得值為1,第二個(gè)客戶(hù)獲得值為2,因?yàn)樗麄儷@得的對(duì)象

48、實(shí)例是相同的。如果熟悉Asp.Net的狀態(tài)管理,我們可以認(rèn)為它是一種Application狀態(tài)。本系統(tǒng)中就采用了該模式。</p><p>  (2)SingleCall模式:SingleCall是一種無(wú)狀態(tài)模式。一旦設(shè)置為SingleCall模式,則當(dāng)客戶(hù)端調(diào)用遠(yuǎn)程對(duì)象的方法時(shí),Remoting會(huì)為每一個(gè)客戶(hù)端建立一個(gè)遠(yuǎn)程對(duì)象實(shí)例,至于對(duì)象實(shí)例的銷(xiāo)毀則是由GC自動(dòng)管理的。同上一個(gè)例子而言,則訪(fǎng)問(wèn)遠(yuǎn)程對(duì)象的兩個(gè)客戶(hù)

49、獲得的都是1。仍然可以借鑒Asp.Net的狀態(tài)管理,認(rèn)為它是一種Session狀態(tài)。</p><p>  由于本系統(tǒng)采用的是服務(wù)器端激活的方式所以客戶(hù)端激活方式在這就不多說(shuō)了。</p><p><b>  遠(yuǎn)程對(duì)象的定義</b></p><p>  Remoting傳遞的對(duì)象是以引用的方式,因此所傳遞的遠(yuǎn)程對(duì)象類(lèi)必須繼承MarshalByRef

50、Object,MSDN對(duì)MarshalByRefObject的說(shuō)明是:MarshalByRefObject 是那些通過(guò)使用代理交換消息來(lái)跨越應(yīng)用程序域邊界進(jìn)行通信的對(duì)象的基類(lèi)。不是從 MarshalByRefObject 繼承的對(duì)象會(huì)以隱式方式按值封送。當(dāng)遠(yuǎn)程應(yīng)用程序引用一個(gè)按值封送的對(duì)象時(shí),將跨越遠(yuǎn)程處理邊界傳遞該對(duì)象的副本。因?yàn)槟M褂么矸椒ǘ皇歉北痉椒ㄟM(jìn)行通信,因此需要繼承MarshallByRefObject。</p

51、><p>  在Remoting中的遠(yuǎn)程對(duì)象中,如果還要調(diào)用或傳遞某個(gè)對(duì)象,例如類(lèi),或者結(jié)構(gòu),則該類(lèi)或結(jié)構(gòu)則必須實(shí)現(xiàn)串行化Attribute[SerializableAttribute]。 將該遠(yuǎn)程對(duì)象以類(lèi)庫(kù)的方式編譯成Dll。這個(gè)Dll將分別放在服務(wù)器端和客戶(hù)端,以添加引用。</p><p><b>  客戶(hù)端</b></p><p>&

52、lt;b>  注冊(cè)通道 </b></p><p>  IChannel channel1 = new TcpClientChannel ("Channel1", new BinaryClientFormatterSinkProvider ());</p><p>  ChannelServices.RegisterChannel (channe

53、l1, false);</p><p><b>  獲得遠(yuǎn)程對(duì)象</b></p><p>  本系統(tǒng)中采用的是WellKnown激活模式要獲得服務(wù)器端的知名遠(yuǎn)程對(duì)象,在工廠(chǎng)類(lèi)中可通過(guò)Activator進(jìn)程的GetObject()方法來(lái)獲得:如: <add key="baseurl" value ="tcp://127.0.0.1:

54、8088/"/></p><p>  url = baseurl + ConfigurationManager.AppSettings ["Employee"].ToString ();</p><p>  IEmployee employee = (IEmployee) Activator.GetObject (typeof (IEmployee),

55、url);</p><p>  其中參數(shù)第一個(gè)是遠(yuǎn)程對(duì)象的類(lèi)型。第二個(gè)參數(shù)就是服務(wù)器端的Uri。Uri有2部分組成,由于是本地計(jì)算機(jī)所以前半部分用http:// 127.0.0.1:8080,也可以用具體的服務(wù)器IP地址來(lái)代替它。端口必須和服務(wù)器端的端口一致。后半部分則是服務(wù)器定義的遠(yuǎn)程對(duì)象服務(wù)名。</p><p>  系統(tǒng)總體功能模塊設(shè)計(jì)</p><p>  經(jīng)過(guò)

56、對(duì)整個(gè)系統(tǒng)的分析,可以得出以下功能模塊,如圖3-5所示:</p><p>  1. 職員管理—職員基本信息模塊:檢索當(dāng)前啟用的組織結(jié)構(gòu)相關(guān)的部門(mén)及員工信息。</p><p>  2. 職員管理—人事事務(wù)模塊:進(jìn)行職員轉(zhuǎn)正及離職等管理。</p><p>  3. 職員管理—合同管理模塊:?jiǎn)T工用合同管理功能,可以新建、修改、刪除員工合同,也可以對(duì)員工合同作“續(xù)簽”、“變

57、更”、“終止”、“解除”等操作。</p><p>  4. 組織管理—組織結(jié)構(gòu)模塊 :檢索查看不同組織下的部門(mén)樹(shù)及部門(mén)信息。修改刪除組織和部門(mén)信息。</p><p>  圖3-5 人力資源系統(tǒng)總體模塊</p><p><b>  數(shù)據(jù)庫(kù)的設(shè)計(jì)</b></p><p><b>  引言</b><

58、/p><p>  數(shù)據(jù)庫(kù)是一個(gè)應(yīng)用系統(tǒng)的核心,數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞直接關(guān)系到應(yīng)用系統(tǒng)的執(zhí)行效率,數(shù)據(jù)的一致性和完整性,設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)應(yīng)該首先充分了解用戶(hù)各個(gè)方面的需求,包括現(xiàn)有的以及將來(lái)可能增加的需求,數(shù)據(jù)庫(kù)設(shè)計(jì)一般包括以下幾個(gè)步驟:</p><p><b>  數(shù)據(jù)庫(kù)需求分析</b></p><p><b>  數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)<

59、/b></p><p><b>  數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  數(shù)據(jù)庫(kù)需求分析</b></p><p>  數(shù)據(jù)庫(kù)需求分析就是要了解在這個(gè)應(yīng)用系統(tǒng)中,用戶(hù)需要查詢(xún)、更新、刪除和保存哪些數(shù)據(jù),收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。<

60、/p><p>  通過(guò)對(duì)職員管理信息進(jìn)行大量的調(diào)研,得出人力資源管理信息系統(tǒng)最典型,最關(guān)鍵的需求:</p><p>  (1)職員一覽表中可以方便查詢(xún)并隨時(shí)修改員工的個(gè)人信息。</p><p>  (2)選擇部門(mén)名后輸入條件能查詢(xún)員工信息。</p><p>  (3)員工離職時(shí)在表中刪除相關(guān)信息。</p><p> ?。?

61、)職員轉(zhuǎn)正時(shí)能將對(duì)應(yīng)時(shí)間和基本信息導(dǎo)入數(shù)據(jù)庫(kù)。</p><p>  (5)職位變動(dòng)情況下要求部門(mén)信息的更改。</p><p>  (6)利用部門(mén)表對(duì)部門(mén)信息操作。</p><p>  (7)利用合同表增加和修改合同。</p><p> ?。?)將員工簽訂的合同信息錄入數(shù)據(jù)庫(kù)。</p><p>  通過(guò)系統(tǒng)功能分析,針對(duì)

62、人力資源管理的需求,總結(jié)出如下需求信息:</p><p><b> ?。?)員工信息。</b></p><p><b> ?。?)部門(mén)信息。</b></p><p> ?。?)合同管理信息。</p><p><b> ?。?)組織信息</b></p><p&

63、gt;<b>  數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)</b></p><p>  得到了上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以后就可以設(shè)計(jì)出能夠滿(mǎn)足用戶(hù)需求的各種實(shí)體以及實(shí)體之間的關(guān)系,為后面的數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。這些實(shí)體包括各種具體信息,通過(guò)相互之間的作用形成數(shù)據(jù)流動(dòng)。本系統(tǒng)因?yàn)槭菑恼麄€(gè)部門(mén)系統(tǒng)中分離出來(lái)的,因此實(shí)體之間的關(guān)系圖如圖4-1所示:</p><p>  圖4-1 人力資源系統(tǒng)

64、數(shù)據(jù)庫(kù)實(shí)體關(guān)系圖</p><p><b>  數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p>  通過(guò)調(diào)查分析各種資料,根據(jù)本管理系統(tǒng)用戶(hù)需要操作和處理的各種數(shù)據(jù),對(duì)數(shù)據(jù)表進(jìn)行了分析。確定在數(shù)據(jù)庫(kù)中存儲(chǔ)的各種數(shù)據(jù)之間的關(guān)系以及數(shù)據(jù)類(lèi)型,列舉出部分?jǐn)?shù)據(jù)表的關(guān)系如下:</p><p>  1. 組織表(HRM001Organization)包括的數(shù)據(jù)項(xiàng)

65、有: 組織編碼、組織名稱(chēng)、描述,活動(dòng)標(biāo)志,刪除標(biāo)志,創(chuàng)建者,創(chuàng)建日期,最終更新者,最終更新日等。</p><p>  2. 部門(mén)表(HRM002Department)包括的數(shù)據(jù)項(xiàng)有:部門(mén)編碼、部門(mén)名稱(chēng)、組織編碼、上級(jí)部門(mén)編碼、創(chuàng)建時(shí)間、聯(lián)系電話(huà)、傳真、電子郵件、部門(mén)職責(zé)、刪除標(biāo)志、創(chuàng)建者、創(chuàng)建日期、備注等。</p><p>  3. 職員部門(mén)對(duì)照表(HRM003DeptEmployee)包

66、括的數(shù)據(jù)項(xiàng)有:職員編碼、部門(mén)編碼、組織編碼等。</p><p>  4. 職員表(HRM004Employee)包括的數(shù)據(jù)項(xiàng)有:職員編碼、職員姓名、住址、身份證號(hào)、國(guó)籍、民族、籍貫、生日、政治面貌、性別、入社時(shí)間、試用期、婚姻狀況、戶(hù)口所在地、聯(lián)系電話(huà)等。</p><p>  5. 類(lèi)別表(HRM005Category)包括的數(shù)據(jù)項(xiàng)有:類(lèi)別編號(hào)、類(lèi)別名稱(chēng)、類(lèi)別種類(lèi)、父類(lèi)別編碼、備注等。&l

67、t;/p><p>  6. 合同表(HRM006ContactFile)包括的數(shù)據(jù)項(xiàng)有:合同模板編碼、合同類(lèi)別編碼、合同名稱(chēng)、合同模板文件名、合同模板文件等。</p><p>  7. 員工合同信息表(HRM007EmployeeContactInfo)包括的數(shù)據(jù)項(xiàng)有:合同編碼、員工編碼、公司編碼、合同類(lèi)別、合同名稱(chēng)、簽訂日期、生效日期、到期日期、終止日期、合同文件名稱(chēng)、續(xù)簽原因、變更原因 、

68、終止原因、解除原因、合同狀態(tài)等。</p><p>  8.公司信息表(HRM008Company)包括的數(shù)據(jù)項(xiàng)有:公司編碼、公司名稱(chēng)、公司地址、法人等。</p><p>  9.員工工作經(jīng)歷表(HRM009WorkExperience)包括的數(shù)據(jù)項(xiàng)有:?jiǎn)T工編碼、序號(hào)、開(kāi)始時(shí)間、結(jié)束時(shí)間、行業(yè)、公司名、工作內(nèi)容、離職原因、獎(jiǎng)懲情況等。</p><p>  10.員工異

69、動(dòng)信息表(HRT001DutyChangeHistory)包括的數(shù)據(jù)項(xiàng)有:員工編碼、序號(hào)、異動(dòng)類(lèi)型、原屬部門(mén)、原職務(wù)、異動(dòng)后部門(mén)、異動(dòng)后職務(wù)、異動(dòng)日期、異動(dòng)原因等。</p><p>  根據(jù)上面的對(duì)數(shù)據(jù)表的分析,對(duì)本系統(tǒng)的數(shù)據(jù)表進(jìn)行了認(rèn)真的設(shè)計(jì)下面給出了本系統(tǒng)的部分?jǐn)?shù)據(jù)表的清單(表4—1),并以“職員基本信息”子系統(tǒng)中的職員信息表和“組織管理”子系統(tǒng)中的組織信息表為例,給出其數(shù)據(jù)關(guān)系表。</p>&

70、lt;p><b>  表4—1數(shù)據(jù)表清單</b></p><p>  以下是“職員基本信息”子系統(tǒng)中涉及到的“職員信息表”和“組織管理”子系統(tǒng)中涉及到的“組織信息表”。</p><p>  圖4-2職員表(HRM004Employee)</p><p>  圖4-3組織表(HRM001Organization)</p>&l

71、t;p><b>  界面設(shè)計(jì)與實(shí)現(xiàn)</b></p><p><b>  登錄界面設(shè)計(jì)</b></p><p><b>  1.實(shí)現(xiàn)目標(biāo)</b></p><p>  程序啟動(dòng)后,進(jìn)入登陸窗體,用戶(hù)輸入用戶(hù)名和密碼,然后進(jìn)行登錄。同時(shí)可以按下取消按鈕退出本系統(tǒng),登錄界面模塊中主要實(shí)現(xiàn)如下功能:<

72、;/p><p> ?。?)可進(jìn)行選擇用戶(hù)身份,支持鼠標(biāo)操作。</p><p>  (2)用戶(hù)名和密碼驗(yàn)證成功后,進(jìn)入主界面。</p><p> ?。?)用戶(hù)名錯(cuò)誤或密碼錯(cuò)誤提醒并返回錯(cuò)誤點(diǎn)。</p><p>  (4)輸入三次錯(cuò)誤的密碼,系統(tǒng)自動(dòng)退出。</p><p>  登陸的流程圖如圖5-1所示:</p>

73、<p>  圖5-1 登陸流程圖</p><p><b>  2.登陸界面</b></p><p><b>  圖5-2 登錄界面</b></p><p>  在登錄的過(guò)程中,系統(tǒng)首先會(huì)根據(jù)畫(huà)面上用戶(hù)輸入的內(nèi)容進(jìn)行驗(yàn)證檢查,相關(guān)代碼如下:</p><p>  private bool V

74、alidateForm()</p><p><b>  {</b></p><p>  if (string.IsNullOrEmpty(txtUserID.Text))</p><p><b>  {</b></p><p>  txtUserID.Focus();</p><

75、p>  MessageBox.Show("用戶(hù)名不能為空!");</p><p>  return false;</p><p><b>  }</b></p><p>  if (string.IsNullOrEmpty(txtPwd.Text))</p><p><b>  {&l

76、t;/b></p><p>  txtPwd.Focus();</p><p>  MessageBox.Show("密碼不能為空!");</p><p>  return false; </p><p><b>  }</b></p><p>  return

77、true;</p><p><b>  }</b></p><p>  如果驗(yàn)證通過(guò),系統(tǒng)會(huì)連接數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)正確性以及用戶(hù)權(quán)限的檢查,以上檢查成功的情況下,就會(huì)進(jìn)入本系統(tǒng)的主窗體,如果失敗,跳出錯(cuò)誤提示框。 </p><p>  主要界面設(shè)計(jì)—在職員工基本信息畫(huà)面</p><p><b>  1.實(shí)現(xiàn)目標(biāo)&

78、lt;/b></p><p>  程序啟動(dòng)后,登錄進(jìn)入職員基本信息主窗體,。在管理模塊中主要實(shí)現(xiàn)如下功能:</p><p> ?。?)檢索當(dāng)前啟用的組織結(jié)構(gòu)相關(guān)的部門(mén)及員工信息。</p><p> ?。?)用作集中處理職員的各類(lèi)人事信息。</p><p> ?。?)對(duì)基本信息進(jìn)行登錄和修改操作。</p><p>

79、  (4)通訊錄的建立。</p><p> ?。?)對(duì)職員信息的查詢(xún)。</p><p><b>  2.主界面</b></p><p>  圖5-4 在職員工一覽界面</p><p>  本界面為主操作界面。用戶(hù)通過(guò)登錄界面的驗(yàn)證后,方能進(jìn)入此界面。</p><p>  此畫(huà)面可以進(jìn)行職員信息的新

80、建,更新和刪除,以及通訊錄和職員信息查詢(xún)等功能。</p><p>  點(diǎn)擊職員新建或者維護(hù)按鈕進(jìn)入下面的畫(huà)面:</p><p>  圖5-5 職員維護(hù)界面</p><p>  在維護(hù)按鈕對(duì)應(yīng)的CS代碼中,首先獲得當(dāng)前選中的職員的ID,部門(mén)ID,取得部門(mén)名稱(chēng),實(shí)例化一個(gè)職員維護(hù)窗體的對(duì)象,然后把剛獲得一系列值作為參數(shù)傳給該窗體,并且顯示。接下來(lái)就可以進(jìn)行員工信息的修改

81、及保存,職員卡和入職通知的打印,在本頁(yè)面中還能具體查看該職員的人事檔案,如語(yǔ)言能力,員工技能,工作經(jīng)歷,家庭關(guān)系,學(xué)習(xí)經(jīng)歷以及保險(xiǎn)信息和獎(jiǎng)懲信息等的情況。</p><p>  根據(jù)三層架構(gòu)和工廠(chǎng)模式思想在該過(guò)程中的體現(xiàn),以刪除按鈕為例具體說(shuō)明如圖5-6所示。</p><p><b>  圖5-6 實(shí)現(xiàn)過(guò)程</b></p><p>  點(diǎn)擊刪除首

82、先會(huì)彈出一個(gè)MessageBox提示是否要?jiǎng)h除該員工信息,MessageBox所顯示的信息都在MessageRex.Resource中定義好的,點(diǎn)擊確認(rèn)按鈕通過(guò)Factory類(lèi)中的方法返回一個(gè)接口類(lèi)型的實(shí)例,使用該實(shí)例調(diào)用接口中的方法,接口中的方法沒(méi)有具體的實(shí)現(xiàn)過(guò)程,在繼承該接口的業(yè)務(wù)邏輯層的CS代碼中具體實(shí)現(xiàn)了該方法。 </p><p>  Public int RemoveIt (string ti

83、cket, ArrayList parmslist)</p><p><b>  {</b></p><p>  Return DbHelper.ExecuteNonQuery("HRM004Employee","RemoveIt",parmslist);</p><p><b>  }<

84、/b></p><p>  業(yè)務(wù)邏輯層(KUROFUNE.BLL.HR)具體實(shí)現(xiàn)了需要進(jìn)行哪些操作,調(diào)用共通模塊中創(chuàng)建的一個(gè)本系統(tǒng)自己的數(shù)據(jù)庫(kù)操作類(lèi)(DbHelper)中的ExecuteNonQuery方法,該方法有3個(gè)參數(shù),XML文件名,XML文件中定義的SQL語(yǔ)句的唯一標(biāo)識(shí),以及存放SQL語(yǔ)句中所需傳入的參數(shù)的一個(gè)ArrayList類(lèi)型的集合。ExecuteNonQuery返回一個(gè)受影響的行數(shù)。,如果該

85、值大于等于1則刪除成功,否則提示錯(cuò)誤信息。主要代碼如下:</p><p><b>  //單擊OK按鈕時(shí)</b></p><p>  if (DialogResult.OK == digResult)</p><p>  { //刪除職員信息</p><p>  //deleteEmployee(employeeID

86、);</p><p>  IEmployee employee = Factory.ServiceFactory.CreateIEmployee();</p><p>  ArrayList parmslist = new ArrayList();</p><p>  parmslist.Add(employeeID);</p><p>  

87、int rtn = employee.RemoveIt(m_ticket, parmslist);</p><p>  if (rtn >= 1)</p><p><b>  {</b></p><p><b>  //報(bào)刪除成功</b></p><p>  Msgger.ShowMsg(&q

88、uot;I000006");</p><p><b>  //刷新</b></p><p>  btnrefresh_Click(sender, e);</p><p><b>  }</b></p><p><b>  else</b></p><

89、;p>  { //報(bào)刪除失敗</p><p>  MessageBox.Show("該員工已與公司簽訂勞動(dòng)合同,不能刪除!", "KUROFUNE");</p><p>  } </p><p><b>  }</b></p><p>  XM

90、L文件中定義的SQL語(yǔ)句如下:</p><p>  <sql id="RemoveIt" returntype="int"></p><p><b>  <summary></b></p><p>  <description>刪除員工</description

91、></p><p>  <creation coder="wujiahui" date="2008-05-05" /></p><p>  <modification coder="wujiahui" date="2008-05-05" /></p><p>

92、;  </summary></p><p>  <parameters></p><p>  <parameters name="@EmployeeID" dbType="varchar" size="20" direction="input" remark="autoG

93、" /></p><p>  </parameters></p><p><b>  <content></b></p><p>  <![CDATA[ </p><p>  if not exists(select * from HRM007EmployeeContactI

94、nfo where EmployeeID = @EmployeeID)</p><p><b>  begin</b></p><p>  delete from hrm004employee where EmployeeID = @EmployeeID </p><p>  delete from hrm003DeptEmployee w

95、here EmployeeID = @EmployeeID</p><p><b>  end ]]></b></p><p>  </content></p><p><b>  </sql></b></p><p>  共通模塊的DbHelper中定義了很多對(duì)數(shù)據(jù)庫(kù)

96、的方法,類(lèi)結(jié)構(gòu)如圖5-7所示:</p><p>  圖5-7 DbHelper類(lèi)關(guān)系圖</p><p>  在上述提到的ExecuteNonQuery 中先創(chuàng)建了一個(gè)Database,然后使用XmlProcedure類(lèi)來(lái)進(jìn)行XML文件的解析工作,調(diào)用了XmlProcedure的BuildSqlString方法取得XML文件中SQL語(yǔ)句的唯一ID。 </p>&

97、lt;p>  Database db = DatabaseFactory.CreateDatabase();</p><p>  string sqlString = XmlProcedure.BuildSqlString(pageId, sqlId);</p><p>  點(diǎn)擊通訊錄按鈕進(jìn)入通訊錄選擇一覽畫(huà)面,如圖5-8所示:</p><p>  圖5-8

98、通訊錄選擇一覽</p><p>  首先進(jìn)行頁(yè)面的初始化生成一列列對(duì)象,設(shè)置它們的相關(guān)屬性,顯示在頁(yè)面上,此時(shí)還沒(méi)有進(jìn)行數(shù)據(jù)的檢索,接下來(lái)取得上一個(gè)頁(yè)面?zhèn)鬟^(guò)來(lái)的數(shù)據(jù)源,即從XML文件中提取出的相應(yīng)的SQL語(yǔ)句,通過(guò)工廠(chǎng)類(lèi)中的CreateIEmployee()方法獲得一個(gè)接口類(lèi)型的遠(yuǎn)程對(duì)象,使用該對(duì)象調(diào)用遠(yuǎn)程對(duì)象類(lèi)中的方法。返回一個(gè)DataTable。并顯示出來(lái)。</p><p>  IEm

99、ployee employee = ServiceFactory.CreateIEmployee();</p><p>  m_messageTable = employee.getEmployeeInf(m_ticket, sqlString);</p><p>  點(diǎn)擊查詢(xún)按鈕進(jìn)入職員查詢(xún)畫(huà)面,如圖5-9所示:</p><p><b>  圖5-9 職

100、員查詢(xún)</b></p><p>  由于在本系統(tǒng)中有很多頁(yè)面都涉及到查詢(xún),所以查詢(xún)頁(yè)面中的查找項(xiàng)目和搜索范圍這一系列控件就全部寫(xiě)成了一個(gè)用戶(hù)控件(UctrComSearch),方便其他頁(yè)面的調(diào)用。在這個(gè)畫(huà)面中可以對(duì)職員進(jìn)行有目的性的查找,每次按不同的方法查找就會(huì)執(zhí)行不同的SQL語(yǔ)句,還能根據(jù)所要的信息顯示不同的視圖。把暫時(shí)不需要的信息隱藏起來(lái)。</p><p>  主要界面設(shè)計(jì)

101、—組織登錄畫(huà)面</p><p><b>  1.實(shí)現(xiàn)目標(biāo)</b></p><p>  程序啟動(dòng)后,登錄進(jìn)入組織結(jié)構(gòu)主窗體,選擇組織各按鈕進(jìn)行操作。在管理模塊中主要實(shí)現(xiàn)如下功能:</p><p> ?。?)根據(jù)組織編碼取得組織情報(bào)。</p><p> ?。?)插入,修改,刪除組織。</p><p>

102、  (3)插入,修改,刪除部門(mén)。</p><p><b>  2.主要界面</b></p><p>  圖5-10 職員查詢(xún)</p><p>  點(diǎn)擊創(chuàng)建組織按鈕進(jìn)入組織登陸畫(huà)面,如圖5-11所示:</p><p>  圖5-11 組織登陸</p><p>  在文本框中輸入相應(yīng)的內(nèi)容,如果沒(méi)有寫(xiě)

103、完整的話(huà)會(huì)出現(xiàn)提示信息。填寫(xiě)完成后確認(rèn)保存成功關(guān)閉本窗體顯示剛創(chuàng)建的組織信息。</p><p>  點(diǎn)擊創(chuàng)建部門(mén)按鈕進(jìn)入部門(mén)登陸畫(huà)面,如圖5-12所示:</p><p>  圖5-12 部門(mén)登陸</p><p>  本頁(yè)面中采用了2個(gè)自定義控件BuildedDate和DropDownTree分別來(lái)顯現(xiàn)日期控件和選擇上級(jí)部門(mén)名,填寫(xiě)完整通過(guò)驗(yàn)證以后確定顯示部門(mén)登陸成功

104、,否則提示錯(cuò)誤信息。</p><p>  主要界面設(shè)計(jì)—人事事務(wù)畫(huà)面</p><p><b>  1.實(shí)現(xiàn)目標(biāo)</b></p><p>  程序啟動(dòng)后,登錄進(jìn)入人事事務(wù)主窗體,。在管理模塊中主要實(shí)現(xiàn)如下功能:</p><p> ?。?)選擇要轉(zhuǎn)正的職員,將選擇的職員執(zhí)行轉(zhuǎn)正處理。</p><p>

105、 ?。?)查看職員異動(dòng)信息。</p><p> ?。?)查看職員離職信息,進(jìn)行離職處理。</p><p><b>  2.主要界面</b></p><p>  點(diǎn)擊轉(zhuǎn)正節(jié)點(diǎn)進(jìn)入職員轉(zhuǎn)正一覽,如圖5-13所示:</p><p>  圖5-13 職員轉(zhuǎn)正一覽</p><p>  該畫(huà)面的作用是顯示需要

106、轉(zhuǎn)正的員工的信息,并能夠?qū)⑦x擇的職員執(zhí)行轉(zhuǎn)正處理。</p><p>  職員導(dǎo)入功能:根據(jù)系統(tǒng)的當(dāng)前時(shí)間(取年月日) ≧ 入社日期+試用期,檢索符合條件的職員信息. 合同員工表中沒(méi)有檢索出記錄,dataTable.count = 0時(shí),拋異常。</p><p>  職員選擇處理:根據(jù)轉(zhuǎn)正開(kāi)始日期,轉(zhuǎn)正結(jié)束日期,職員屬性,檢索符合條件的職員信息. 轉(zhuǎn)正開(kāi)始日期≦轉(zhuǎn)正日期≦轉(zhuǎn)正結(jié)束日期,數(shù)據(jù)表

107、中各個(gè)字段根據(jù)職員屬性模糊查詢(xún). 合同員工表中沒(méi)有檢索出記錄,dataTable.count = 0時(shí),拋異常。</p><p>  提交生效處理:將試用員工轉(zhuǎn)正為正式員工。</p><p>  點(diǎn)擊異動(dòng)節(jié)點(diǎn)進(jìn)入職員異動(dòng)管理,如圖5-14所示:</p><p>  圖5-14 職員異動(dòng)管理</p><p>  查看職員異動(dòng)信息,點(diǎn)擊查詢(xún)出現(xiàn)自

108、定義的共通檢索用戶(hù)控件,下拉框中的內(nèi)容為員工異動(dòng)表(HRT001DutyChangeHistory)中的所有內(nèi)容,經(jīng)過(guò)上面的共通檢索部分檢索出來(lái)的結(jié)果,顯示在一覽,如果沒(méi)有檢索出數(shù)據(jù)一覽為空。點(diǎn)擊工具欄中的任職選項(xiàng),進(jìn)入具體的任職設(shè)定,設(shè)定完成后,進(jìn)行數(shù)據(jù)庫(kù)的更新,講職員改動(dòng)后的職務(wù)更新到職員表(HRM004Employee)中,將職員所在的部門(mén)更新到部門(mén)對(duì)照表(HRM003DeptEmployee)中,在登錄員工異動(dòng)歷史表(HRT00

109、1DutyChangeHistory)中插入新記錄。 如圖5-15所示。</p><p>  圖5-15 職員任職</p><p>  點(diǎn)擊離職節(jié)點(diǎn)進(jìn)入職員離職管理,如圖5-16所示:</p><p>  圖5-16 職員離職界面</p><p>  點(diǎn)擊查詢(xún)選項(xiàng)進(jìn)入離職查詢(xún)頁(yè)面,如圖5-17所示:</p><p> 

110、 圖5-17 職員離職查詢(xún)</p><p>  顯示共通檢索部分,下拉框的值為職員表中的所有字段。經(jīng)過(guò)上面的共通檢索部分檢索職員表出來(lái)的結(jié)果,顯示在一覽,有數(shù)據(jù)的行要初始化下拉框,下拉框初始化工號(hào),姓名,原屬部門(mén),原屬職務(wù)都不可以修改, 離職類(lèi)別,離職時(shí)間,離職原因,備注,初始為空,但是可以修改。如果沒(méi)有檢索出數(shù)據(jù)則將一覽清空。</p><p>  圖5-18 職員離職處理</p&g

111、t;<p>  選擇一個(gè)職員設(shè)置好離職類(lèi)型,點(diǎn)擊提交生效按鈕</p><p>  首先顯示是否保存的確認(rèn)信息,選擇是繼續(xù)往下執(zhí)行,選擇是否處理終了. 將選擇的員工進(jìn)行離職處理,傳遞參數(shù):離職類(lèi)別,離職時(shí)間,離職原因,備注,職員編碼,ASP Server時(shí)間,系統(tǒng)登錄用戶(hù)ID, 啟用組織編碼,原屬部門(mén)編碼,原屬職務(wù),如果選擇多個(gè)員工,則對(duì)所有選擇的員工都要做離職處理, 如果中間有一個(gè)轉(zhuǎn)正出錯(cuò),則要回滾

112、。 正常處理終了,提示確定記錄更新成功。</p><p><b>  結(jié) 論</b></p><p>  在本次畢業(yè)設(shè)計(jì)之前,雖然我在學(xué)校開(kāi)設(shè)的各門(mén)專(zhuān)業(yè)課程上學(xué)習(xí)了很多理論知識(shí),但是很少有機(jī)會(huì)真正的將自己所學(xué)的附諸于實(shí)踐,這次的畢業(yè)設(shè)計(jì)正好是在大學(xué)生涯結(jié)束之前提供給我的一個(gè)絕佳的實(shí)踐機(jī)會(huì)。在畢業(yè)設(shè)計(jì)的前期階段,我查閱了大量的資料,做了大量的準(zhǔn)備工作。然而,當(dāng)真正開(kāi)始

113、著手開(kāi)發(fā)的時(shí)候卻一度陷入困境,不知道從何入手。現(xiàn)在反思起來(lái),自己對(duì)于編程的基礎(chǔ)語(yǔ)言的掌握還不夠到位,有些基本的甚至都無(wú)法熟練運(yùn)用。因此,對(duì)于四年所學(xué)的專(zhuān)業(yè)知識(shí)需要花大量的時(shí)間來(lái)進(jìn)行溫習(xí)回顧。并且,C#和ASP是在設(shè)計(jì)時(shí)才學(xué)習(xí)并使用的,由于初次接觸也給設(shè)計(jì)的完成帶來(lái)一定的困難。當(dāng)開(kāi)發(fā)工作進(jìn)入到編碼階段的時(shí)候,前期的代碼設(shè)計(jì)不合理給我?guī)?lái)了很大的困難,由此讓我深深體會(huì)到編成思想的重要性,對(duì)于程序設(shè)計(jì)方法學(xué)的重要到現(xiàn)在我才真正的體會(huì)到。雖然在

114、整個(gè)開(kāi)發(fā)的過(guò)程中面臨了很多挫折,但是從教訓(xùn)中得到的經(jīng)驗(yàn)教訓(xùn)是深刻和寶貴的。同時(shí),經(jīng)歷整個(gè)完整的開(kāi)發(fā)過(guò)程,鍛煉了我的編碼能力,糾正了以前許多在編程中的不好的習(xí)慣,這對(duì)我以后的學(xué)習(xí)和工作是巨大的財(cái)富。</p><p><b>  致 謝</b></p><p>  感謝校方的支持給我這次機(jī)會(huì),讓我提高了自己的能力。感謝指導(dǎo)師**和我實(shí)習(xí)單位的閻博士在畢業(yè)設(shè)計(jì)過(guò)程中給予我

115、的悉心指導(dǎo), *老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺。她無(wú)論在理論上還是在實(shí)踐中,都給與我很大的幫助,使我得到不少的提高。這對(duì)于我以后的工作和學(xué)習(xí)都有很大的幫助,感謝她耐心的輔導(dǎo),特在此再次表示謝意。在整個(gè)畢業(yè)設(shè)計(jì)過(guò)程中,我用到了許多知識(shí)和方法,有課堂上學(xué)到的和生活中學(xué)到的,因此,我還要感謝所有教過(guò)我、關(guān)心我、幫助過(guò)我的老師及系領(lǐng)導(dǎo),也感謝一直在我身邊支持我、鼓勵(lì)我的親愛(ài)的朋友和同學(xué)們!</p>

116、;<p>  由于軟件設(shè)計(jì)經(jīng)驗(yàn)不足, 系統(tǒng)的設(shè)計(jì)和論文的內(nèi)容定有不當(dāng)之處, 還請(qǐng)各位審閱老師指正,多提寶貴意見(jiàn)和建議,特此感謝!</p><p><b>  參 考 文 獻(xiàn)</b></p><p>  Ryan K. Stephens著.SQL Serve 2000 study[M].機(jī)械工業(yè)出版社,2003</p><p>  

117、劉滔.數(shù)據(jù)庫(kù)通用模塊及典型系統(tǒng)開(kāi)發(fā).北京:人民郵電出版社,2004</p><p>  袁松著.數(shù)據(jù)庫(kù)系統(tǒng)概論.北京:機(jī)械工業(yè)出版社,2004</p><p>  甘任初著.信息系統(tǒng)開(kāi)發(fā)[M].北京:經(jīng)濟(jì)科學(xué)出版社,2004</p><p>  徐志國(guó),汪孝宜著.數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例[M].北京:電子工業(yè)出版社,2005</p><p>  王梯云

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論