畢業(yè)設(shè)計---人力資源管理系統(tǒng)設(shè)計_第1頁
已閱讀1頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  人力資源管理系統(tǒng)設(shè)計</p><p><b>  【摘要】</b></p><p>  通過人力資源管理系統(tǒng)使得管理者快速高效地完成企業(yè)日常事務(wù)中的人事工作,降低了人力資源管理成本,使管理者能集中精力在企業(yè)戰(zhàn)略目標(biāo);另一方面,通過軟件及時收集與整理分析大量的人力資源管理數(shù)據(jù),為企業(yè)戰(zhàn)略決策的生成與實施控制提供強有力的支持,以提高組織目標(biāo)實現(xiàn)的可能

2、性。具體實現(xiàn)目標(biāo)如下:</p><p>  系統(tǒng)采用人機對話方式,界面美觀友好,信息查詢靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲安全可靠。</p><p>  鍵盤操作,快速響應(yīng)。</p><p>  對用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗,盡可能排除人為的錯誤。</p><p>  萬能查詢器實現(xiàn)自由設(shè)置查詢。</p><p&

3、gt;<b>  強大的工資報表。</b></p><p>  與EXCEL實現(xiàn)無縫連接,使人員、考勤、工資等信息的查詢結(jié)果可直接保存在EXCEL表中。</p><p>  不同的操作員有不同的操作員權(quán)限,增強了系統(tǒng)的安全性。</p><p>  系統(tǒng)最大限度地實現(xiàn)了易安裝性、易維護(hù)性和易操作性。</p><p>  系

4、統(tǒng)運行穩(wěn)定、安全可靠。</p><p>  【關(guān)鍵詞】 HRM 人力資源管理系統(tǒng)</p><p><b>  目錄</b></p><p><b>  摘要1</b></p><p><b>  目錄1</b></p><p><b>  

5、0 引言1</b></p><p><b>  1 系統(tǒng)分析2</b></p><p>  1.1 可行性研究2</p><p>  1.2 經(jīng)濟(jì)可行性2</p><p>  1.3 技術(shù)可行性2</p><p><b>  2 總體設(shè)計2</b

6、></p><p>  2.1 系統(tǒng)結(jié)構(gòu)設(shè)計2</p><p>  2.2 系統(tǒng)功能結(jié)構(gòu)3</p><p>  2.3 系統(tǒng)功能概述3</p><p><b>  3 系統(tǒng)設(shè)計4</b></p><p>  3.1 設(shè)計目標(biāo)4</p><p>  

7、3.2 開發(fā)及運行環(huán)境4</p><p>  3.3 編碼設(shè)計4</p><p>  3.4 數(shù)據(jù)庫設(shè)計5</p><p>  4 主要功能模塊設(shè)計6</p><p>  4.1 公用模塊設(shè)計6</p><p>  4.2 系統(tǒng)登錄模塊設(shè)計6</p><p>  4.3

8、 主界面設(shè)計8</p><p>  4.4 部門管理模塊設(shè)計15</p><p>  4.5 人事信息管理模塊設(shè)計20</p><p>  4.6 員工調(diào)動模塊設(shè)計26</p><p>  附錄A 參考文獻(xiàn)30</p><p>  附錄B 數(shù)據(jù)表31</p><p>  附

9、錄C 文件架構(gòu)39</p><p><b>  0 引言</b></p><p>  目前市場上的人力資源管理系統(tǒng)很多,但要找到一款真正稱心、符合公司實際情況的人力資源管理系統(tǒng)(HRM)軟件并不容易。由于存在這樣那樣的不足,企業(yè)在選擇HRM系統(tǒng)時倍感困惑,主要集中在以下方面:</p><p>  (1)大多數(shù)自稱為人力資源管理系統(tǒng)的軟件其

10、實只是簡單的人事管理系統(tǒng),難以真正提升企業(yè)人力資源管理水平,提高工作效率,其降低管理成本的效果也不明顯。</p><p> ?。?)系統(tǒng)功能不切實際,大多是互相模仿,不是從企業(yè)實際需求中開發(fā)出來的。</p><p> ?。?)大部分系統(tǒng)不能滿足企業(yè)全面溝通及管理的需要。安裝部署、管理極不方便,或者選用小型數(shù)據(jù)庫,不能滿足企業(yè)海量數(shù)據(jù)存取的需要。</p><p>  

11、(4)系統(tǒng)操作不方便,界面設(shè)計不美觀、不標(biāo)準(zhǔn)、不專業(yè)、不統(tǒng)一,用戶實施及學(xué)習(xí)費時費力。</p><p><b>  1 系統(tǒng)分析</b></p><p>  軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。通過對應(yīng)用問題及其環(huán)境的理解與分析,為問題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、完全化,最終形成需求規(guī)格說明,這一系列的活

12、動即構(gòu)成軟件開發(fā)生命周期的需求分析階段。</p><p>  需求分析是介于系統(tǒng)分析和軟件設(shè)計階段之間的重要橋梁。一方面,需求分析以系統(tǒng)規(guī)格說明和項目規(guī)劃作為分析活動的基本出發(fā)點,并從軟件角度對它們進(jìn)行檢查與調(diào)整;另一方面,需求規(guī)格說明又是軟件設(shè)計、實現(xiàn)測試直至維護(hù)的主要基礎(chǔ)。良好的分析活動有助于避免或盡早發(fā)現(xiàn)早期的錯誤,從而提高軟件生產(chǎn)率,降低開發(fā)成本,改進(jìn)軟件質(zhì)量。</p><p> 

13、 1.1 可行性研究</p><p>  開發(fā)任何一個基于計算機的系統(tǒng),都會受到時間和資源上的限制。因此,對在接受任何一個項目開發(fā)任務(wù)之前,必須根據(jù)客戶可能提供的時間和資源條件進(jìn)行可行性分析,以減少項目開發(fā)風(fēng)險,避免人力、物力和財力的浪費。可行性分析與風(fēng)險分析在很多方面是相互關(guān)聯(lián)的,項目風(fēng)險越大,開發(fā)高質(zhì)量的軟件的可行性就越小。</p><p>  1.2 經(jīng)濟(jì)可行性</p>

14、;<p>  經(jīng)濟(jì)可行性,進(jìn)行成本效益分析,評估項目的開發(fā)成本,估算開發(fā)成本是否會超過項目預(yù)期的全部利潤。分析系統(tǒng)開發(fā)對其他產(chǎn)品或利潤的影響。</p><p>  1.3 技術(shù)可行性</p><p>  技術(shù)可行性研究過程中,系統(tǒng)分析員應(yīng)采集系統(tǒng)性能、可靠性、可維護(hù)性和可生產(chǎn)性方面的信息;分析實現(xiàn)系統(tǒng)功能和性能所需要的各種設(shè)備、技術(shù)、方法和過程;分析項目開發(fā)在技術(shù)方面可能擔(dān)

15、負(fù)的風(fēng)險以及技術(shù)問題對開發(fā)成本的影響。</p><p>  開發(fā)一個中小型人力資源管理(HRM)系統(tǒng),涉及到的技術(shù)問題不會太多,主要用到的技術(shù)就是數(shù)據(jù)庫和一門可視化開發(fā)的編程語言。在這方面,數(shù)據(jù)庫主要是用來存放數(shù)據(jù),就目前主流的數(shù)據(jù)庫來看,可以考慮采用Microsoft SQL Server或Oracle。Oracle是一個安全、可靠的并且支持面向?qū)ο笤O(shè)計的數(shù)據(jù)庫系統(tǒng),同時Oracle又有海量存儲的特點。然而,相

16、對于Microsoft SQL Server而言,Oracle的易用性和可維護(hù)性相對差一點,而且Oracle的成本相對較高,不適合于中小企業(yè)使用。因此,我們選擇了目前比較流行的Microsoft SQL Server數(shù)據(jù)庫系統(tǒng);在前臺開發(fā)編程方面,本系統(tǒng)采用Microsoft公司的Visual Basic 6.0作為主要的開發(fā)工具。</p><p><b>  2 總體設(shè)計</b><

17、/p><p>  軟件設(shè)計的主要任務(wù)是根據(jù)需求規(guī)格說明導(dǎo)出系統(tǒng)的實現(xiàn)方案。</p><p>  2.1 系統(tǒng)結(jié)構(gòu)設(shè)計</p><p>  C/S結(jié)構(gòu)就是“客戶端/服務(wù)端”的一種工作模式。一般來說,這種模式都會要求安裝一個客戶端程序,由這個程序和服務(wù)器端進(jìn)行協(xié)同工作,因為由客戶端來專門處理一些工作,所以C/S結(jié)構(gòu)的程序一般都功能強大、界面漂亮,由于任務(wù)分散在服務(wù)器端和客

18、戶端分別進(jìn)行,所以提高了硬件的利用效率,對于程序員來說,編程開發(fā)也更加的容易。</p><p>  基于以上原因,在設(shè)計人力資源管理系統(tǒng)時,采用了傳統(tǒng)的基于兩層的C/S結(jié)構(gòu)。</p><p>  2.2 系統(tǒng)功能結(jié)構(gòu)</p><p>  人力資源管理系統(tǒng)的功能結(jié)構(gòu)如圖1所示。</p><p>  圖1 系統(tǒng)功能結(jié)構(gòu)圖</p>

19、<p>  2.3 系統(tǒng)功能概述</p><p><b>  基本資料管理</b></p><p>  基本資料管理主要包括:部門管理、工種類型管理、職務(wù)類型管理、職稱類型管理、文化程度管理、政治面貌管理、民族管理、培訓(xùn)課程管理、考核項目管理、合同類型管理和聘用類型管理。</p><p>  其中部門管理實現(xiàn)了通過樹結(jié)構(gòu)進(jìn)行各個部

20、門的管理,并從部門全稱可以看出該部門的上下級關(guān)系。</p><p><b>  工資設(shè)置</b></p><p>  工資設(shè)置是計算員工工資時的最基本的設(shè)置,其主要包括獎勵項目設(shè)置、懲罰項目設(shè)置和工資設(shè)置。</p><p><b>  人事管理</b></p><p>  人事管理實現(xiàn)了對公司員工的

21、全面管理,其主要包括人事信息管理、新員工登記、員工調(diào)動、員工離職、員工復(fù)職、培訓(xùn)管理、考核管理、合同管理、聘用管理、保險管理、合同到期處理和聘用到期處理。</p><p><b>  工資管理</b></p><p>  工資管理實現(xiàn)了對公司員工工資的計算、發(fā)放和打印,以及員工的獎勵、懲罰和考勤信息。其主要包括工資信息管理、過期數(shù)據(jù)處理、建立新月份工資、員工獎勵管理、

22、員工懲罰管理和考勤信息管理。</p><p><b>  系統(tǒng)管理</b></p><p>  登錄系統(tǒng)時需要驗證身份,只有合法的用戶才可以進(jìn)入人力資源管理系統(tǒng),不同的用戶使用不同的功能,同時也可以對密碼進(jìn)行修改,以及對數(shù)據(jù)進(jìn)行備份與還原,保護(hù)企業(yè)的數(shù)據(jù)安全。其主要包括用戶管理、口令設(shè)置、數(shù)據(jù)初始化和數(shù)據(jù)備份與恢復(fù)。</p><p><b

23、>  工具</b></p><p>  為了方便用戶日常管理工作,工具中提供了記事本、計算器、Office-Word和Office-Excel。</p><p><b>  幫助</b></p><p>  如果要了解系統(tǒng)功能、使用方法以及開發(fā)的相關(guān)信息,可以使用幫助和關(guān)于。</p><p><b

24、>  3 系統(tǒng)設(shè)計</b></p><p><b>  3.1 設(shè)計目標(biāo)</b></p><p>  通過人力資源管理系統(tǒng)使得管理者快速高效地完成企業(yè)日常事務(wù)中的人事工作,降低了人力資源管理成本,使管理者能集中精力在企業(yè)戰(zhàn)略目標(biāo);另一方面,通過軟件及時收集與整理分析大量的人力資源管理數(shù)據(jù),為企業(yè)戰(zhàn)略決策的生成與實施控制提供強有力的支持,以提高組織

25、目標(biāo)實現(xiàn)的可能性。具體實現(xiàn)目標(biāo)如下:</p><p>  系統(tǒng)采用人機對話方式,界面美觀友好,信息查詢靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲安全可靠。</p><p>  鍵盤操作,快速響應(yīng)。</p><p>  對用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗,盡可能排除人為的錯誤。</p><p>  萬能查詢器實現(xiàn)自由設(shè)置查詢。</p>

26、<p><b>  強大的工資報表。</b></p><p>  與EXCEL實現(xiàn)無縫連接,使人員、考勤、工資等信息的查詢結(jié)果可直接保存在EXCEL表中。</p><p>  不同的操作員有不同的操作員權(quán)限,增強了系統(tǒng)的安全性。</p><p>  系統(tǒng)最大限度地實現(xiàn)了易安裝性、易維護(hù)性和易操作性。</p><p

27、>  系統(tǒng)運行穩(wěn)定、安全可靠。</p><p>  3.2 開發(fā)及運行環(huán)境</p><p>  系統(tǒng)開發(fā)平臺:Visual Basic 6.0。</p><p>  數(shù)據(jù)庫管理平臺:SQL Server2000。</p><p>  運行平臺:Windows XP/ Windows 2000。</p><p>

28、  分辨率:最佳效果1024*768。</p><p><b>  3.3 編碼設(shè)計</b></p><p>  編碼設(shè)計是數(shù)據(jù)庫系統(tǒng)開發(fā)的前提條件,是系統(tǒng)不可缺少的重要內(nèi)容。編碼是指與原來名稱對應(yīng)的編號、符號或記號。它是進(jìn)行信息交換、處理、傳輸和實現(xiàn)信息資源共享的關(guān)鍵。編碼也用于指定數(shù)據(jù)的處理方法、區(qū)別數(shù)據(jù)類型,并指定計算機處理的內(nèi)容等。</p>&

29、lt;p>  本系統(tǒng)內(nèi)部信息編碼采用了統(tǒng)一的編碼方式情況。如下所示:</p><p><b>  部門編號</b></p><p>  部門編號是根據(jù)級別訂制的。其設(shè)計思路是:1級部門編號2位,初始值“01”,后面的部門編號依次往下排(如“02”、“03”等);2級部門編號4位,初始值依據(jù)上級編號,如果上級編號為“01”,則該部門編號為“0101”,如果上級編號

30、為“02”,則該部門編號為“0201”;其他級別的部門編號的位數(shù)為級別乘2,編碼思路與上面同理。</p><p><b>  人員編號</b></p><p>  人員編號為5位數(shù)字編碼,初始值為“00001”,后面的人員編號依次往下排。</p><p><b>  合同編號</b></p><p>

31、;  合同編號為當(dāng)前系統(tǒng)年、月和人員編號的組合,如“20051200002”。</p><p><b>  聘用編號</b></p><p>  聘用編號為當(dāng)前系統(tǒng)年、月和人員編號的組合,如“20051100008”。</p><p>  3.4 數(shù)據(jù)庫設(shè)計</p><p>  本系統(tǒng)數(shù)據(jù)庫采用SQL Server 2

32、000數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名稱為db_manpowerinfo。數(shù)據(jù)庫db_manpowerinfo中包含29張表。下面是數(shù)據(jù)表概要說明及主要數(shù)據(jù)表的結(jié)構(gòu)。</p><p><b>  1.?dāng)?shù)據(jù)表概要說明</b></p><p>  數(shù)據(jù)表樹型結(jié)構(gòu)如圖2所示。</p><p>  圖2 數(shù)據(jù)表樹型結(jié)構(gòu)圖</p><p>

33、  2.主要數(shù)據(jù)表的結(jié)構(gòu)</p><p>  數(shù)據(jù)庫中的主要數(shù)據(jù)表結(jié)構(gòu)請參見附錄二。</p><p>  4 主要功能模塊設(shè)計</p><p>  4.1 公用模塊設(shè)計</p><p>  在人力資源管理系統(tǒng)程序中,創(chuàng)建了公用模塊(Module1)。此模塊包括用戶定義的數(shù)據(jù)類型、全局變量、API函數(shù)、數(shù)據(jù)庫連接函數(shù)等。</p>

34、<p><b>  1.添加全局變量</b></p><p>  添加全局變量,用于存儲操作員、表和SQL語句,代碼如下:</p><p>  Public czy As String, tb As String, tb1 As String, sql As String, sql1 As String, text As String</p>

35、<p>  Public jbxxtb As String</p><p>  添加全局變量,用來標(biāo)記各個窗體數(shù)據(jù)添加或修改的狀態(tài),代碼如下:</p><p>  Public blnAddRS As Boolean, blnAddPX As Boolean, blnAddKH As Boolean, blnAddHT As Boolean, blnAddPY As Bool

36、ean, blnAddBX As Boolean</p><p>  Public blnAddJL As Boolean, blnAddCF As Boolean</p><p>  blnAdd….變量用戶記錄數(shù)據(jù)添加還是修改狀態(tài),賦值為True為添加,賦值為False為修改。</p><p>  Public HTygbh As String, PYygbh

37、As String</p><p>  Public KGBH As Integer,JBBH As Integer, deptMark As Integer</p><p>  2.聲明API函數(shù)ShellExecute</p><p>  該函數(shù)主要用于查找與指定文件關(guān)聯(lián)在一起的程序的文件名,代碼如下:</p><p>  Declare

38、 Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVa

39、l nShowCmd As Long) As Long</p><p><b>  3.共享數(shù)據(jù)庫連接</b></p><p>  為了減少重復(fù)的數(shù)據(jù)連接和為日后修改程序提供接口,在公用模塊(Module1)中建立了數(shù)據(jù)庫連接函數(shù)cnn和cnStr。如果使用對象操作數(shù)據(jù)庫,可以調(diào)用cnn函數(shù);如果使用ADO控件訪問數(shù)據(jù)庫,則可以調(diào)用字符串函數(shù)cnStr,并將該函數(shù)值賦

40、給ADO控件的ConnectionString屬性。具代碼如下:</p><p>  Public Function Cnn() As ADODB.Connection '定義一個函數(shù)</p><p>  Set Cnn = New ADODB.Connection</p><p>  '·返回一個數(shù)據(jù)庫連接</p>&

41、lt;p>  Cnn.Open "Driver={SQL Server};Server=(local);Database=db_manpowerinfo;Uid=sa;Pwd="</p><p>  End Function</p><p>  Public Function cnStr() As String</p><p>  cnSt

42、r = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=db_manpowerinfo"</p><p>  End Function</p><p>  4.2 系統(tǒng)登錄模塊設(shè)計</p><p>  系統(tǒng)登錄模塊主要完成對登錄系統(tǒng)的用戶進(jìn)行

43、驗證,只有合法的用戶才可以進(jìn)入系統(tǒng)。</p><p>  另外,為了防止用戶無限期地輸入錯誤的用戶名或密碼,在系統(tǒng)登錄模塊中增加了限制登錄次數(shù)的功能。首先定義一個窗體級的常量MaxTimes,其主要用來保存允許用戶最多登錄的次數(shù)(這里為3次),然后在cmdOk_Click過程中定義一個靜態(tài)變量intMyTimes,其主要用來保存累計登錄系統(tǒng)的次數(shù),并判斷是否超過允許登錄的次數(shù),如果超過,則顯示提示信息,并結(jié)束應(yīng)用

44、程序。</p><p>  系統(tǒng)登錄模塊如圖3所示。</p><p><b>  圖3 系統(tǒng)登錄</b></p><p><b>  1.窗體設(shè)計</b></p><p>  (1)新建一個工程,在該工程中新建一個窗體,將窗體的“名稱”屬性設(shè)置為“frm_Login”,BorderStyle屬性設(shè)

45、置為“3-Fixed Dialog”;Caption屬性設(shè)置為“歡迎使用人力資源管理系統(tǒng)”。</p><p> ?。?)在窗體中添加3個Label控件,設(shè)置BackStyle屬性為“0-Transparent”。其中Label1和Label2的Caption屬性分別設(shè)置為“用戶名稱(U)”和“密碼(P)”。</p><p> ?。?)在窗體中添加2個TextBox控件,分別設(shè)置“名稱”屬性

46、為txtUserName和txtPassword。</p><p> ?。?)在窗體中添加2個CommandButton控件,分別設(shè)置“名稱”屬性為cmdOk和cmdCancel;Caption屬性為“確定(O)”和“放棄(C)”。</p><p>  (5)設(shè)置ADO對象的引用。單擊“工程”/“引用”,在“引用”對話框中選定“Microsoft ActiveX Data Objects

47、2.5 Library”。</p><p><b>  2.代碼設(shè)計</b></p><p>  Option Explicit</p><p>  Const MaxTimes As Integer = 3</p><p>  單擊【確定】按鈕,根據(jù)用戶輸入的用戶名和密碼來判斷該用戶是否為合法用戶。如果是合法用戶,將進(jìn)

48、行系統(tǒng);如果不是將提示用戶,提示超過3次,自動退出系統(tǒng),代碼如下:</p><p>  Private Sub cmdOK_Click()</p><p>  Static intMyTimes As Integer</p><p>  Dim rs1 As New ADODB.Recordset, rs2 As New ADODB.Recordset</p&

49、gt;<p>  rs1.Open "權(quán)限信息表", Cnn, adOpenKeyset, , adLockOptimistic</p><p>  If rs1.RecordCount > 0 Then</p><p>  If txtUserName.text = "" Then</p><p>  M

50、sgBox "請輸入用戶名!", , "提示窗口"</p><p>  txtUserName.SetFocus</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  rs2.Open &q

51、uot;權(quán)限信息表 where 操作員='" + txtUserName.text + "'", Cnn, adOpenKeyset, , adLockOptimistic</p><p>  If rs2.RecordCount > 0 Then</p><p>  If txtPassword.text = ""

52、Then</p><p>  MsgBox "請輸入密碼!", , "提示窗口"</p><p>  txtPassword.SetFocus</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p&

53、gt;<p>  If txtPassword = rs2.Fields("密碼") Then</p><p>  czy = txtUserName</p><p>  Load frmMain</p><p>  frmMain.Show</p><p><b>  Unload Me</

54、b></p><p><b>  Else</b></p><p>  If intMyTimes > MaxTimes Then</p><p>  MsgBox "您無權(quán)使用該軟件!", , "提示窗口"</p><p><b>  End</b&g

55、t;</p><p><b>  Else</b></p><p>  MsgBox "密碼不正確,請重新輸入!", , "提示窗口"</p><p>  intMyTimes = intMyTimes + 1</p><p>  txtPassword.SetFocus</

56、p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  Else</b></p><p>  MsgBox "用戶名不正確,請重新輸入!", , "提示窗口"</p&g

57、t;<p>  txtUserName.SetFocus</p><p><b>  End If</b></p><p><b>  rs2.Close</b></p><p><b>  Else</b></p><p>  MsgBox "初次登錄

58、本系統(tǒng),請在進(jìn)入系統(tǒng)后,立即設(shè)置操作員及其密碼,以確保系統(tǒng)的安全!", , "提示窗口"</p><p>  Load frmMain</p><p>  frmMain.Show</p><p><b>  Unload Me</b></p><p><b>  End If&l

59、t;/b></p><p><b>  rs1.Close</b></p><p><b>  End Sub</b></p><p>  4.3 主界面設(shè)計</p><p>  主界面是應(yīng)用程序的主體,也是應(yīng)用程序的門面,它設(shè)計的好壞將直接影響用戶的第一感覺,如果主界面設(shè)計得很糟糕,則不論

60、應(yīng)用程序的其他部分設(shè)計得多么細(xì)致,用戶都不能或不愿意使用它。所以,在設(shè)計主界面時應(yīng)保持界面的簡潔性和明確性。人力資源管理系統(tǒng)的主界面便遵循了這一原則,其運行結(jié)果如圖4所示。</p><p><b>  圖4 主界面</b></p><p>  主界面擔(dān)負(fù)著調(diào)用各個功能模塊、賦予操作員不同的操作權(quán)限、顯示當(dāng)前操作員、操作狀態(tài)和系統(tǒng)日期等任務(wù)。其中應(yīng)用了VB資源編輯器、

61、動態(tài)創(chuàng)建圖形按鈕、動態(tài)定位圖形按鈕等技術(shù)。</p><p>  下面是調(diào)用各個功能窗體的幾種操作方法。</p><p>  (1)使用Windows標(biāo)準(zhǔn)菜單。單擊菜單命令,進(jìn)入相應(yīng)的功能模塊。</p><p>  (2)通過樹狀菜單。鼠標(biāo)雙擊菜單樹中的主節(jié)點,展開菜單樹,單擊菜單樹中的子節(jié)點,進(jìn)入相應(yīng)的功能模塊。</p><p> ?。?)通

62、過圖形按鈕。鼠標(biāo)雙擊菜單樹中的主節(jié)點,右側(cè)區(qū)域?qū)⒊霈F(xiàn)圖形按鈕,單擊圖形按鈕,進(jìn)入相應(yīng)的功能模塊。</p><p><b>  1.創(chuàng)建主窗體</b></p><p> ?。?)單擊“工程”/“添加窗體”菜單命令,在工程中添加一個新窗體,將該窗體的“名稱”屬性設(shè)置為“frmMain”;BorderStyle屬性為“2-Sizable”;Caption屬性為“人力資源管理

63、系統(tǒng)”;Picture屬性為事先設(shè)計好的背景圖片。</p><p> ?。?)在frmMain窗體上添加1個StatusBar控件和1個CommonDialog控件。</p><p>  2.使用VB資源編輯器和菜單編輯器創(chuàng)建標(biāo)準(zhǔn)菜單</p><p>  使用VB資源編輯器和菜單編輯器設(shè)計完成圖4所示的人力資源管理系統(tǒng)中的標(biāo)準(zhǔn)菜單,應(yīng)分三大步:</p>

64、<p>  (1)使用“資源編輯器”中的“字符串表編輯器”編輯菜單中需要的字符串。(即菜單標(biāo)題)</p><p> ?。?)使用“菜單編輯器”編輯菜單。(菜單標(biāo)題為資源ID)</p><p>  (3)使用LoadResString函數(shù)將資源ID所對應(yīng)的字符串顯示為菜單標(biāo)題。</p><p><b>  詳細(xì)設(shè)計步驟如下:</b>&

65、lt;/p><p>  在“資源編輯器”中的“字符串表編輯器”編輯字符串</p><p> ?。?)單擊“資源編輯器”工具欄上的“編輯字符串表”工具欄按鈕,打開“字符串表編輯器”,如圖5所示。</p><p>  圖5 打開“字符串表編輯器”</p><p> ?。?)添加一個新的字符串表。單擊“插入新字符串表”工具欄按鈕。一個新的字符串表將被

66、添加到表格中,同時突出顯示其“語言ID”列表框,可以該列表中選擇適當(dāng)?shù)恼Z言ID。</p><p>  如果這是資源中的第一個字符串表,網(wǎng)格中將添加一個初始的條目,其資源ID為101,</p><p>  如果這是一個附加的字符串表,將為所有現(xiàn)存的行添加網(wǎng)格單元。</p><p> ?。?)編輯資源ID和字符串條目,編輯完成的字符串表,如圖6所示。</p>

67、<p>  圖6 編輯完成的字符串表</p><p>  在“菜單編輯器”中設(shè)計菜單</p><p>  將frmMain窗體設(shè)為作用中的窗體,然后單擊“工具”/“菜單編輯器”菜單命令,在“菜單編輯器”對話框中的“標(biāo)題”輸入欄內(nèi)輸入菜單標(biāo)題(如“1000”),在“名稱”輸入欄內(nèi)輸入名稱(如“m”),如圖7所示,然后按表1所示菜單名稱和標(biāo)題依次完成。</p>&

68、lt;p>  圖7 菜單編輯器界面</p><p>  為了程序設(shè)計方便,菜單設(shè)計為菜單數(shù)組,其中所有的主菜單為一個菜單數(shù)組,名稱為:m(0)~m(6),每個主菜單下的子菜單為一個數(shù)組(如m1(0)~m1(13))。詳細(xì)設(shè)置如表1所示。</p><p>  表1 菜單名稱和菜單標(biāo)題設(shè)置</p><p>  

69、3.使用TreeView控件創(chuàng)建樹狀菜單</p><p>  樹狀菜單的實現(xiàn)主要使用了Treeview控件的Nodes集合中的Add方法,該方法可以向Nodes集合中添加一個Node對象,從而實現(xiàn)樹狀菜單。</p><p>  在使用TreeView控件前應(yīng)將其添加到frmMain窗體中,添加方法為:在工具箱中選取TreeView控件,將鼠標(biāo)放置在frmMain窗體上,當(dāng)鼠標(biāo)指針變成一個十

70、字架時,按住鼠標(biāo)左鍵同時拖動鼠標(biāo),當(dāng)達(dá)到所需要控件的大小時放開鼠標(biāo)左鍵,這時TreeView控件將被添加到窗體中。</p><p>  如果要將TreeView控件中顯示的內(nèi)容帶圖標(biāo),應(yīng)在窗體上添加一個ImageList控件。</p><p>  4.使用Image控件數(shù)組創(chuàng)建圖形按鈕</p><p>  圖形按鈕的構(gòu)成原理是動態(tài)加載Image控件數(shù)組并設(shè)置其Pic

71、ture、Left、Top屬性。具體設(shè)計思路如下:</p><p>  窗體載入后,使用Load方法動態(tài)加載12個Image控件數(shù)組(初始狀態(tài)為不可見),當(dāng)用戶單擊樹狀菜單的主節(jié)點時,根據(jù)其下的子節(jié)點的數(shù)量,動態(tài)設(shè)置Image控件數(shù)組的Picture、Left和Top屬性。</p><p>  實現(xiàn)上述功能,應(yīng)首先在工具箱中選取Image控件,然后在窗體中添加1個Image控件數(shù)組,默認(rèn)名

72、為Image1,設(shè)置其Index屬性為0,Visible屬性為False。</p><p><b>  5.代碼設(shè)計</b></p><p>  聲明模塊級變量,用于在一個窗體中的不同過程使用,代碼如下:</p><p>  Dim i As Integer, a As Integer</p><p>  自定義函數(shù)bl

73、nPower,用于判斷操作員的權(quán)限,如果有權(quán)限,返回值為True;如果無權(quán)限,返回值為False,代碼如下:</p><p>  Function blnPower(str As String) As Boolean</p><p>  Dim rs1 As New ADODB.Recordset</p><p>  rs1.Open "select *

74、from 權(quán)限信息表 where 操作員='" & czy & "'", Cnn, adOpenKeyset, adLockOptimistic</p><p>  If rs1.RecordCount > 0 Then</p><p>  If rs1.Fields(str) = False Then</p>

75、<p>  blnPower = False</p><p><b>  Else</b></p><p>  blnPower = True</p><p><b>  End If</b></p><p><b>  End If</b></p>

76、<p><b>  rs1.Close</b></p><p>  End Function</p><p>  窗體載入時,設(shè)置狀態(tài)欄和Image1(0)控件數(shù)組的相關(guān)屬性、完成由數(shù)字菜單到字符串菜單的轉(zhuǎn)換、添加樹狀菜單及動態(tài)加載Image1控件數(shù)組等,代碼如下:</p><p>  Private Sub Form_Load()

77、</p><p>  Dim pnlX As Panel</p><p>  '添加面板,并將它們設(shè)置為目錄</p><p>  sbStatusBar.Panels(1).AutoSize = sbrContents</p><p>  sbStatusBar.Panels(1) = mytag</p><p&g

78、t;  Set pnlX = sbStatusBar.Panels.Add</p><p>  pnlX.AutoSize = sbrContents</p><p>  pnlX.text = "當(dāng)前操作員: " & czy</p><p>  Set pnlX = sbStatusBar.Panels.Add</p>&

79、lt;p>  pnlX.Style = sbrDate</p><p>  Set pnlX = sbStatusBar.Panels.Add</p><p>  pnlX.Style = sbrTime</p><p>  '設(shè)置圖形按鈕的初始位置</p><p>  Image1(0).Left = 4000: Image1

80、(0).Top = 2625</p><p>  '將VB資源管理器中的字符串添加到菜單中</p><p>  On Error Resume Next</p><p>  Dim ctl As Control, sCtlType As String</p><p>  For Each ctl In Me.Controls</

81、p><p>  sCtlType = TypeName(ctl)</p><p>  If sCtlType = "Menu" Then</p><p>  ctl.Caption = LoadResString(CInt(ctl.Caption))</p><p><b>  End if</b><

82、;/p><p><b>  Next</b></p><p><b>  '添加樹狀菜單</b></p><p>  Dim nodX As Node</p><p>  Set nodX = TreeView1.Nodes.Add(, , "X1", "基本資料管

83、理", 1)</p><p>  For a = 1 To 11</p><p>  TreeView1.Nodes.Add "X1", tvwChild, "C" & a, LoadResString(a + 1000), 2</p><p><b>  Next a</b></

84、p><p>  Set nodX = TreeView1.Nodes.Add(, , "X2", "工資設(shè)置", 1)</p><p>  For a = 12 To 14</p><p>  TreeView1.Nodes.Add "X2", tvwChild, "C" & a,

85、LoadResString(a + 1001), 2</p><p><b>  Next a</b></p><p>  Set nodX = TreeView1.Nodes.Add(, , "X3", "人事管理", 1)</p><p>  For a = 15 To 26</p>&

86、lt;p>  TreeView1.Nodes.Add "X3", tvwChild, "C" & a, LoadResString(a + 1002), 2</p><p><b>  Next a</b></p><p>  Set nodX = TreeView1.Nodes.Add(, , "X4&

87、quot;, "工資管理", 1)</p><p>  For a = 27 To 32</p><p>  TreeView1.Nodes.Add "X4", tvwChild, "C" & a, LoadResString(a + 1003), 2</p><p><b>  Next

88、 a</b></p><p>  Set nodX = TreeView1.Nodes.Add(, , "X5", "系統(tǒng)管理", 1)</p><p>  For a = 33 To 36</p><p>  TreeView1.Nodes.Add "X5", tvwChild, "

89、C" & a, LoadResString(a + 1004), 2</p><p><b>  Next a</b></p><p>  Set nodX = TreeView1.Nodes.Add(, , "X6", "工具", 1)</p><p>  For a = 37 To

90、40</p><p>  TreeView1.Nodes.Add "X6", tvwChild, "C" & a, LoadResString(a + 1005), 2</p><p><b>  Next a</b></p><p>  Set nodX = TreeView1.Nodes.Ad

91、d(, , "X7", "幫助", 1)</p><p>  Set nodX = TreeView1.Nodes.Add("X7", tvwChild, "C41", "幫助", 2)</p><p>  Set nodX = TreeView1.Nodes.Add("X7&qu

92、ot;, tvwChild, "C42", "關(guān)于", 2)</p><p>  nodX.EnsureVisible</p><p>  '動態(tài)創(chuàng)建圖形按鈕(Image控件)和標(biāo)題(Label控件)</p><p>  For i = 1 To 12</p><p>  i = Image1.

93、UBound + 1</p><p>  Load Image1(i) </p><p>  Load lblCaption1(i)</p><p>  Image1(i).ZOrder (0)</p><p>  lblCaption1(i).ZOrder (0)</p><p><b>  Next i&

94、lt;/b></p><p><b>  End Sub</b></p><p>  當(dāng)鼠標(biāo)移到圖形按鈕(指定的Image1控件數(shù)組)上時,將其BorderStyle屬性由0設(shè)置為1,以形成動態(tài)效果,同時將該圖形按鈕所屬功能的完整路徑顯示在Label1中。其具體代碼如下:</p><p>  Private Sub Image1_Mous

95、eMove(index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)</p><p>  Image1(index).BorderStyle = 1</p><p>  Label1.Caption = TreeView1.SelectedItem.text & "/&

96、quot; & lblCaption1(index).Caption</p><p><b>  End Sub</b></p><p>  Private Sub Label2_MouseMove(index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)&

97、lt;/p><p>  Label2(index).BorderStyle = 1</p><p><b>  End Sub</b></p><p>  當(dāng)鼠標(biāo)移到窗體上時,將圖形按鈕(Image1控件數(shù)組)的BorderStyle屬性由1設(shè)置為0,體代碼如下:</p><p>  Private Sub Form_Mou

98、seMove(Button As Integer, Shift As Integer, X As Single, Y As Single)</p><p>  For i = 1 To Image1.UBound</p><p>  Image1(i).BorderStyle = 0</p><p><b>  Next i</b></p

99、><p>  For i = 0 To Label2.UBound</p><p>  Label2(i).BorderStyle = 0</p><p><b>  Next i</b></p><p><b>  End Sub</b></p><p>  Private S

100、ub Label1_Change()</p><p>  sbStatusBar.Panels(1).text = "當(dāng)前位置: " & Label1</p><p><b>  End Sub</b></p><p>  Private Sub Label2_Click(index As Integer)</

101、p><p>  Select Case index</p><p><b>  Case 0</b></p><p>  Temp = "www.mingrisoft.com" '所要連接的網(wǎng)站名稱</p><p>  ShellExe

102、cute 0&, vbNullString, Temp, vbNullString, vbNullString, 0 '調(diào)用IE</p><p><b>  Case 1</b></p><p>  m7_Click (1)</p><p><b>  Case 2</b></p><

103、p>  m7_Click (0)</p><p><b>  Case 3</b></p><p><b>  End</b></p><p>  End Select</p><p><b>  End Sub</b></p><p>  單擊菜

104、單數(shù)組,首先判斷操作員的權(quán)限,如果操作員有權(quán)限,則調(diào)入相應(yīng)的功能窗體或執(zhí)行相應(yīng)的操作;否則提示用戶。具體代碼如下:</p><p>  Private Sub m1_Click(index As Integer)</p><p>  text = m1(index).Caption</p><p>  If blnPower(m1(index).Caption) =

105、 False Then</p><p>  MsgBox "對不起,您沒有使用此項功能的權(quán)限!", vbInformation, "提示窗口"</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p&g

106、t;  Select Case m1(index).Caption</p><p>  Case "部門管理"</p><p>  Load main_jbzl_bmgl</p><p>  main_jbzl_bmgl.Show 1</p><p>  Case "工種類型管理"</p>

107、<p>  jbxxtb = "工種表"</p><p>  Case "職務(wù)類型管理"</p><p>  jbxxtb = "職務(wù)表"</p><p>  Case "職稱類型管理"</p><p>  jbxxtb = "職稱表&quo

108、t;</p><p>  Case "文化程度管理"</p><p>  jbxxtb = "文化程度表"</p><p>  Case "政治面貌管理"</p><p>  jbxxtb = "政治面貌表"</p><p>  Case

109、"民族管理"</p><p>  jbxxtb = "民族表"</p><p>  Load main_jbzl_pxkc</p><p>  main_jbzl_pxkc.Show 1</p><p>  Case "考核項目管理"</p><p>  Lo

110、ad main_jbzl_khlx</p><p>  main_jbzl_khlx.Show 1</p><p>  End Select</p><p>  With m1(index)</p><p>  If .Caption = "工種類型管理" Or .Caption = "職務(wù)類型管理"

111、Or .Caption = "職稱類型管理" Or .Caption = "文化程度管理" Or .Caption = "政治面貌管理" Or .Caption = "民族管理" Then</p><p>  Load main_jbzl_public</p><p>  main_jbzl_public.Sh

112、ow 1</p><p><b>  End If</b></p><p><b>  End With</b></p><p><b>  End Sub</b></p><p>  '其他菜單數(shù)組的Click事件過程省略,詳細(xì)內(nèi)容可參見光盤。</p>

113、<p>  鼠標(biāo)單擊指定的圖形按鈕(Image1控件數(shù)組),調(diào)入相應(yīng)的功能窗體或執(zhí)行相應(yīng)的操作,代碼如下:</p><p>  Private Sub Image1_Click(index As Integer)</p><p>  text = lblCaption1(index).Caption: Image1(index).BorderStyle = 1</p>

114、<p>  If blnPower(lblCaption1(index).Caption) = False Then</p><p>  MsgBox "對不起,您沒有使用此項功能的權(quán)限!", vbInformation, "提示窗口"</p><p><b>  Exit Sub</b></p>&

115、lt;p><b>  End If</b></p><p>  '此處代碼與菜單數(shù)組Click事件過程中的代碼設(shè)計思路基本相同,因此省略,詳細(xì)內(nèi)容請參見光盤。</p><p><b>  End Sub</b></p><p>  單擊TreeView控件根據(jù)選定節(jié)點的關(guān)鍵字,調(diào)用相應(yīng)的菜單事件過程。具體代碼

116、如下:</p><p>  Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)</p><p>  Label1 = Node.FullPath</p><p>  For b = 1 To Image1.UBound</p><p>  Image1(b).Visi

117、ble = False: lblCaption1(b).Visible = False: lblCaption1(b).Caption = ""</p><p><b>  Next b</b></p><p>  '當(dāng)鼠標(biāo)單擊TreeView控件的父節(jié)點時,根據(jù)其下的子節(jié)點的數(shù)量,設(shè)置相應(yīng)的Image1控件數(shù)組的</p>&

118、lt;p>  '可見數(shù)量、picture、Left和Top屬性。</p><p>  For a = 1 To TreeView1.SelectedItem.Children</p><p>  Image1(a).Visible = True: lblCaption1(a).Visible = True</p><p>  lblCaption1(a

119、) = TreeView1.Nodes(TreeView1.SelectedItem.Child.index + a - 1).text</p><p>  Image1(a).Picture = LoadPicture(App.Path & "\" & Node.text & "\" & a & ".jpg")&

120、lt;/p><p>  Image1(a).Left = Image1(0).Left + (Image1(a).Width + 420) * ((a - 1) Mod 4)</p><p>  lblCaption1(a).Left = Image1(a).Left</p><p>  Image1(a).Top = Int(a / 4.1) * (Image1(0)

121、.Height + 420) + Image1(0).Top</p><p>  lblCaption1(a).Top = Image1(a).Top + Image1(a).Height + 30</p><p><b>  Next a</b></p><p>  '此處代碼省略,詳細(xì)內(nèi)容可參見光盤</p><p

122、><b>  End Sub</b></p><p>  4.4 部門管理模塊設(shè)計</p><p>  部門管理實現(xiàn)了部門的添加、修改、刪除、展開和收縮等功能,其中使用了TreeView控件,充分體現(xiàn)了部門間上下級關(guān)系。其運行結(jié)果如圖8所示。</p><p><b>  圖8 部門管理</b></p>

123、<p><b>  1.窗體設(shè)計</b></p><p>  部門管理窗體主要使用了Toolbar、ImageList、TreeView和TextBox等控件。其具體設(shè)計步驟如下:</p><p>  (1)單擊“工程”/“添加窗體”菜單命令,在工程中添加一個新窗體,將該窗體的“名稱”屬性設(shè)置為main_jbzl_bmgl;BorderStyle屬性設(shè)置

124、為“2-Sizable”。</p><p>  (2)在窗體中添加1個ImageList控件、1個Toolbar控件、1個TreeView控件、1個TextBox控件數(shù)組(text1(0)~text1(6))等。</p><p><b>  2.代碼設(shè)計</b></p><p><b>  '聲明模塊級變量</b>

125、</p><p>  Dim rs1 As New ADODB.Recordset, blnTJ as Boolean, blnAdd As Boolean</p><p>  Dim bmbh As String, bmjc As Integer ,i As Integer, lngOL As Long</p><p>  自定義添加樹狀菜單的過程,其中使用了Tr

126、eeView控件Nodes集合的Add方法,代碼如下:</p><p>  Public Sub tree_change() '定義添加樹狀列表的函數(shù)</p><p>  TreeView1.Nodes.Clear</p><p>  Dim mNode As Node</p><p>  rs1.Open "sel

127、ect * from 部門表 order by 部門編號,編碼級次", Cnn, adOpenKeyset, adLockOptimistic</p><p>  If rs1.RecordCount > 0 Then</p><p>  rs1.MoveFirst</p><p>  Do While rs1.EOF = False</p&g

溫馨提示

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

評論

0/150

提交評論