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

下載本文檔

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

文檔簡介

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

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

3、耗時(shí)的工作中解放出來,把精力集中到更高層的政策性工作中去。</p><p>  關(guān)鍵詞 人力資源管理系統(tǒng) ; C#.net編程語言 ; Visual Studio 2005 ;SQL Server 2005數(shù)據(jù)庫</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開發(fā)環(huán)境的選擇方法4</p><p>  2.4.1Visual Studio 2005的概述4</p><p>  2.4.2SQL Server 2005數(shù)據(jù)庫的概述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工廠模式7</p><p>  3.1.3Microsoft .Net Remoting 技術(shù)8</p><p>  3.2系統(tǒng)總體功能模塊設(shè)計(jì)11</p><p>  第4章 數(shù)據(jù)庫的設(shè)計(jì)12</p>&

7、lt;p><b>  4.1引言12</b></p><p>  4.2數(shù)據(jù)庫需求分析12</p><p>  4.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)13</p><p>  4.4數(shù)據(jù)庫邏輯結(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ì)—在職員工基本信息畫面18</p><p>  5.3主要界面設(shè)計(jì)—組織登錄畫面23</p><p>  5.4主要界面設(shè)計(jì)—人事事務(wù)畫面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>  隨著知識經(jīng)濟(jì)的時(shí)代的到來、成功加入WTO及信息化浪潮的來臨,企業(yè)經(jīng)營管理機(jī)制正在發(fā)生著根本性的變化。處于激烈市

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

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

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

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

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

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

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

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

18、,使將來的人力系統(tǒng)成為企業(yè)準(zhǔn)確、開放、安全、可靠的數(shù)據(jù)平臺;成為企業(yè)人力資源戰(zhàn)略決策的主要數(shù)據(jù)來源最終實(shí)現(xiàn)開發(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)部員工信息管理容易混亂、各部門分工不明確。在信息時(shí)代,這種傳統(tǒng)的紙介質(zhì)管理的低效方法必然會被以數(shù)據(jù)庫為基礎(chǔ)的功能強(qiáng)大效率卓越的信息管理系統(tǒng)所取代。</p><p><b>  系統(tǒng)需求分析</b></p><p>  系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)企業(yè)信息管理的系統(tǒng)化、規(guī)范化和自動化。&

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

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

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

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

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

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

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

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

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

29、以在項(xiàng)目中可視化的放置用戶界面和數(shù)據(jù)訪問控件。此時(shí)Visual Studio會自動在源文件中添加必要的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會調(diào)用C#編譯器。</p&g

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

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

32、用戶,SQL Server管理數(shù)據(jù)庫。SQL Server用Transact—SQL作為它的數(shù)據(jù)庫查詢和編程語言,使用Transact—SQL能夠方便地存取數(shù)據(jù)、查詢、更新和管理關(guān)系數(shù)據(jù)庫。</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é)構(gòu)。微軟推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、表示層,如圖3-1所示:</p><p>  圖3—1三層的分層式結(jié)構(gòu)</p><p>  在快速開發(fā)中重用業(yè)務(wù)邏輯組件,我們已經(jīng)在系統(tǒng)中實(shí)現(xiàn)添加,更新,刪除,查找客戶數(shù)據(jù)的組件。這個(gè)組件已

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

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

36、發(fā)人員的任務(wù)得到了確認(rèn),開發(fā)進(jìn)度就可以迅速的提高。</p><p>  松散耦合的好處是顯而易見的。如果一個(gè)系統(tǒng)沒有分層,那么各自的邏輯都緊緊糾纏在一起,彼此間相互依賴,誰都是不可替換的。一旦發(fā)生改變,則牽一發(fā)而動全身,對項(xiàng)目的影響極為嚴(yán)重。降低層與層間的依賴性,既可以良好地保證未來的可擴(kuò)展,在復(fù)用性上也是優(yōu)勢明顯。每個(gè)功能模塊一旦定義好統(tǒng)一的接口,就可以被各個(gè)模塊所調(diào)用,而不用為相同的功能進(jìn)行重復(fù)地開發(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、用戶截面層通過統(tǒng)一的接口向業(yè)務(wù)層發(fā)送請求,業(yè)務(wù)層按自己的邏輯規(guī)則處理請求后進(jìn)行數(shù)據(jù)庫操作,然后將數(shù)據(jù)庫返回的數(shù)據(jù)封裝成類的形式返回給用戶界面層。這樣用戶界面層甚至可以不知道數(shù)據(jù)庫的結(jié)構(gòu),只要維護(hù)與業(yè)務(wù)層之間的接口即可。這種方式在一定程度上增加了數(shù)據(jù)庫的安全性,同時(shí)也降低了對用戶界面層的開發(fā)要求,因?yàn)樗静恍枰M(jìn)行任何的數(shù)據(jù)庫的操作。上面圖中代碼隱藏頁通過返回對象的形式來返回?cái)?shù)據(jù),在類的內(nèi)部可以規(guī)定哪些數(shù)據(jù)可訪問,哪些數(shù)據(jù)是只讀的等,從

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

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

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

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

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

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

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

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

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

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

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

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

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

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

53、l1, false);</p><p><b>  獲得遠(yuǎn)程對象</b></p><p>  本系統(tǒng)中采用的是WellKnown激活模式要獲得服務(wù)器端的知名遠(yuǎn)程對象,在工廠類中可通過Activator進(jìn)程的GetObject()方法來獲得:如: <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)程對象的類型。第二個(gè)參數(shù)就是服務(wù)器端的Uri。Uri有2部分組成,由于是本地計(jì)算機(jī)所以前半部分用http:// 127.0.0.1:8080,也可以用具體的服務(wù)器IP地址來代替它。端口必須和服務(wù)器端的端口一致。后半部分則是服務(wù)器定義的遠(yuǎn)程對象服務(wù)名。</p><p>  系統(tǒng)總體功能模塊設(shè)計(jì)</p><p>  經(jīng)過

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

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

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

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

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

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

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

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

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

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

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

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

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

69、動信息表(HRT001DutyChangeHistory)包括的數(shù)據(jù)項(xiàng)有:員工編碼、序號、異動類型、原屬部門、原職務(wù)、異動后部門、異動后職務(wù)、異動日期、異動原因等。</p><p>  根據(jù)上面的對數(shù)據(jù)表的分析,對本系統(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>  程序啟動后,進(jìn)入登陸窗體,用戶輸入用戶名和密碼,然后進(jìn)行登錄。同時(shí)可以按下取消按鈕退出本系統(tǒng),登錄界面模塊中主要實(shí)現(xiàn)如下功能:<

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

73、<p>  圖5-1 登陸流程圖</p><p><b>  2.登陸界面</b></p><p><b>  圖5-2 登錄界面</b></p><p>  在登錄的過程中,系統(tǒng)首先會根據(jù)畫面上用戶輸入的內(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("用戶名不能為空!");</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)證通過,系統(tǒng)會連接數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)正確性以及用戶權(quán)限的檢查,以上檢查成功的情況下,就會進(jìn)入本系統(tǒng)的主窗體,如果失敗,跳出錯(cuò)誤提示框。 </p><p>  主要界面設(shè)計(jì)—在職員工基本信息畫面</p><p><b>  1.實(shí)現(xiàn)目標(biāo)&

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

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

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

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

82、先會彈出一個(gè)MessageBox提示是否要刪除該員工信息,MessageBox所顯示的信息都在MessageRex.Resource中定義好的,點(diǎn)擊確認(rèn)按鈕通過Factory類中的方法返回一個(gè)接口類型的實(shí)例,使用該實(shí)例調(diào)用接口中的方法,接口中的方法沒有具體的實(shí)現(xiàn)過程,在繼承該接口的業(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ù)庫操作類(DbHelper)中的ExecuteNonQuery方法,該方法有3個(gè)參數(shù),XML文件名,XML文件中定義的SQL語句的唯一標(biāo)識,以及存放SQL語句中所需傳入的參數(shù)的一個(gè)ArrayList類型的集合。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("該員工已與公司簽訂勞動合同,不能刪除!", "KUROFUNE");</p><p>  } </p><p><b>  }</b></p><p>  XM

90、L文件中定義的SQL語句如下:</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中定義了很多對數(shù)據(jù)庫

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

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

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

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

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

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

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

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

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

105、 ?。?)查看職員異動信息。</p><p>  (3)查看職員離職信息,進(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>  該畫面的作用是顯示需要

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

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

108、定義的共通檢索用戶控件,下拉框中的內(nèi)容為員工異動表(HRT001DutyChangeHistory)中的所有內(nèi)容,經(jīng)過上面的共通檢索部分檢索出來的結(jié)果,顯示在一覽,如果沒有檢索出數(shù)據(jù)一覽為空。點(diǎn)擊工具欄中的任職選項(xiàng),進(jìn)入具體的任職設(shè)定,設(shè)定完成后,進(jìn)行數(shù)據(jù)庫的更新,講職員改動后的職務(wù)更新到職員表(HRM004Employee)中,將職員所在的部門更新到部門對照表(HRM003DeptEmployee)中,在登錄員工異動歷史表(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)擊查詢選項(xiàng)進(jìn)入離職查詢頁面,如圖5-17所示:</p><p> 

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

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

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

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

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

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

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

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

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論