人力資源管理系統(tǒng)_第1頁
人力資源管理系統(tǒng)_第2頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、人力資源管理系統(tǒng)1 系統(tǒng)分析軟件需求是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。通過對應用問題及其環(huán)境的理解與分析,為問題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、完全化,最終形成需求規(guī)格說明, 這一系列的活動即構成軟件開發(fā)生命周期的需求分析階段。需求分析是介于系統(tǒng)分析和軟件設計階段之間的重要橋梁。一方面,需求分析以系統(tǒng)規(guī)格說明和項目規(guī)劃作為分析活動的基本出發(fā)點,并從軟件角度對它們進行檢查與調整;另一方面,需求規(guī)格說明又是軟件設計、實現(xiàn)測試直至維護的主要基礎。良好的分析活動有助于避免或盡早發(fā)現(xiàn)早期的錯誤,從而提高軟件生產率,降低開發(fā)成本,改進軟件質量。1.1 可

2、行性研究開發(fā)任何一個基于計算機的系統(tǒng),都會受到時間和資源上的限制。因此,對在接受任何一個項目開發(fā)任務之前,必須根據(jù)客戶可能提供的時間和資源條件進行可行性分析,以減少項目開發(fā)風險,避免人力、物力和財力的浪費??尚行苑治雠c風險分析在很多方面是相互關聯(lián)的,項目風險越大,開發(fā)高質量的軟件的可行性就越小。1.2 經濟可行性經濟可行性,進行成本效益分析,評估項目的開發(fā)成本,估算開發(fā)成本是否會超過項目預期的全部利潤。分析系統(tǒng)開發(fā)對其他產品或利潤的影響。1.3 技術可行性技術可行性研究過程中,系統(tǒng)分析員應采集系統(tǒng)性能、可靠性、可維護性和可生產性方面的信息;分析實現(xiàn)系統(tǒng)功能和性能所需要的各種設備、技術、方法和過

3、程;分析項目開發(fā)在技術方面可能擔負的風險以及技術問題對開發(fā)成本的影響。開發(fā)一個中小型人力資源管理( HRM)系統(tǒng),涉及到的技術問題不會太多,主要用到的技術就是數(shù)據(jù)庫和一門可視化開發(fā)的編程語言。在這方面,數(shù)據(jù)庫主要是用來存放數(shù)據(jù),就目前主流的數(shù)據(jù)庫來看,可以考慮采用 Microsoft SQL Server 或 Oracle。Oracle是一個安全、可靠的并且支持面向對象設計的數(shù)據(jù)庫系統(tǒng),同時 Oracle 又有海量存儲的特點。然而,相對于 Microsoft SQL Server而言, Oracle的易用性和可維護性相對差一點,而且 Oracle的成本相對較高,不適合于中小企業(yè)使用。 因此,我

4、們選擇了目前比較流行的 Microsoft SQL Server 數(shù)據(jù)庫系統(tǒng); 在前臺開發(fā)編程方面,本系統(tǒng)采用 Microsoft 公司的 Visual Basic 6.0 作為主要的開發(fā)工具。2 總體設計軟件設計的主要任務是根據(jù)需求規(guī)格說明導出系統(tǒng)的實現(xiàn)方案。C/SC/S結構。1所示。系統(tǒng)管理職 文 政務 稱 化 治 民 訓 核 同 用類 類 程 面 族 課 項 類 類型 C/SC/S結構。1所示。系統(tǒng)管理職 文 政務 稱 化 治 民 訓 核 同 用類 類 程 面 族 課 項 類 類型 型 度 貌 管 程 目 型 型管 管 管 管 理 管 管 管 管理 理 理工資設置新員工登記工資管理培 考

5、 合 聘據(jù)初始理 理 理 理工具合 聘員 員 員 培工 工 工 訓調 離 復 管動 職 職 理理 理數(shù)戶 令管 設化幫助獎 懲考 合核 同管 管理 理置 置據(jù)用 口備份理 置恢聘 保用 險管 管理 理工 過 員 員 考庫信 數(shù) 獎 懲 信息 據(jù) 勵 罰 息與理 理 理 理 理同 用到 到期 期處 處建資 期 工 工 勤月管 處 管 管 管資勵 罰 工項 項 資目 目 設設 設 置立新份工計 記 x算 事 c器 本 eWordE關 幫于 助lC/S結構就是“客戶端 /服務端”的一種工作模式。一般來說,這種模式都會要求安裝一個客戶端程序,由這個程序和服務器端進行協(xié)同工作,因為由客戶端來專門處理一些

6、工作,所以結構的程序一般都功能強大、界面漂亮,由于任務分散在服務器端和客戶端分別進行,所以提高了硬件的利用效率,對于程序員來說,編程開發(fā)也更加的容易?;谝陨显?,在設計人力資源管理系統(tǒng)時,采用了傳統(tǒng)的基于兩層的2.2 系統(tǒng)功能結構人力資源管理系統(tǒng)的功能結構如圖人力資源管理系統(tǒng)基本資料管理數(shù)工 職部 種門 類管 型理 管理 理復人事管理人事信息管理圖1 系統(tǒng)功能結構圖2.3 系統(tǒng)功能概述基本資料管理基本資料管理主要包括:部門管理、工種類型管理、職務類型管理、職稱類型管理、文化程度管理、政治面貌管理、民族管理、培訓課程管理、考核項目管理、合同類型管理和聘用類型管理。其中部門管理實現(xiàn)了通過樹結構進

7、行各個部門的管理,并從部門全稱可以看出該部門的上下級關系。工資設置工資設置是計算員工工資時的最基本的設置,其主要包括獎勵項目設置、懲罰項目設置和工資設置。人事管理2 EXCEL人事管理實現(xiàn)了對公司員工的全面管理, 其主要包括人事信息管理、 新員工登記、 員工調動、EXCEL員工離職、員工復職、培訓管理、考核管理、合同管理、聘用管理、保險管理、合同到期處理和聘用到期處理。工資管理工資管理實現(xiàn)了對公司員工工資的計算、發(fā)放和打印,以及員工的獎勵、懲罰和考勤信息。其主要包括工資信息管理、過期數(shù)據(jù)處理、建立新月份工資、員工獎勵管理、員工懲罰管理和考勤信息管理。系統(tǒng)管理登錄系統(tǒng)時需要驗證身份,只有合法的用

8、戶才可以進入人力資源管理系統(tǒng),不同的用戶使用不同的功能,同時也可以對密碼進行修改,以及對數(shù)據(jù)進行備份與還原,保護企業(yè)的數(shù)據(jù)安全。其主要包括用戶管理、口令設置、數(shù)據(jù)初始化和數(shù)據(jù)備份與恢復。工具為了方便用戶日常管理工作,工具中提供了記事本、計算器、 Office-Word 和 Office-Excel 。幫助如果要了解系統(tǒng)功能、使用方法以及開發(fā)的相關信息,可以使用幫助和關于。3 系統(tǒng)設計3.1 設計目標通過人力資源管理系統(tǒng)使得管理者快速高效地完成企業(yè)日常事務中的人事工作,降低了人力資源管理成本,使管理者能集中精力在企業(yè)戰(zhàn)略目標;另一方面,通過軟件及時收集與整理分析大量的人力資源管理數(shù)據(jù),為企業(yè)戰(zhàn)略

9、決策的生成與實施控制提供強有力的支持,以提高組織目標實現(xiàn)的可能性。具體實現(xiàn)目標如下:系統(tǒng)采用人機對話方式,界面美觀友好,信息查詢靈活、方便、快捷、準確,數(shù)據(jù)存儲安全可靠。鍵盤操作,快速響應。對用戶輸入的數(shù)據(jù),系統(tǒng)進行嚴格的數(shù)據(jù)檢驗,盡可能排除人為的錯誤。萬能查詢器實現(xiàn)自由設置查詢。強大的工資報表。與EXCEL 實現(xiàn)無縫連接,使人員、考勤、工資等信息的查詢結果可直接保存在表中。不同的操作員有不同的操作員權限,增強了系統(tǒng)的安全性。系統(tǒng)最大限度地實現(xiàn)了易安裝性、易維護性和易操作性。系統(tǒng)運行穩(wěn)定、安全可靠。3.2 開發(fā)及運行環(huán)境系統(tǒng)開發(fā)平臺: Visual Basic 6.0。數(shù)據(jù)庫管理平臺: SQL

10、 Server2000。運行平臺: Windows XP/ Windows 2000 。分辨率:最佳效果 1024*768。3 2所示。3.3 2所示。編碼設計是數(shù)據(jù)庫系統(tǒng)開發(fā)的前提條件,是系統(tǒng)不可缺少的重要內容。編碼是指與原來名稱對應的編號、符號或記號。它是進行信息交換、處理、傳輸和實現(xiàn)信息資源共享的關鍵。編碼也用于指定數(shù)據(jù)的處理方法、區(qū)別數(shù)據(jù)類型,并指定計算機處理的內容等。本系統(tǒng)內部信息編碼采用了統(tǒng)一的編碼方式情況。如下所示:部門編號部門編號是根據(jù)級別訂制的。其設計思路是: 1級部門編號 2位,初始值“ 01”,后面的部門編號依次往下排(如“ 02”、“03”等);2級部門編號 4位,初始

11、值依據(jù)上級編號,如果上級編號為“01”,則該部門編號為“ 0101”,如果上級編號為“ 02”,則該部門編號為“ 0201”;其他級別的部門編號的位數(shù)為級別乘 2,編碼思路與上面同理。人員編號人員編號為 5位數(shù)字編碼,初始值為“ 00001”,后面的人員編號依次往下排。合同編號合同編號為當前系統(tǒng)年、月和人員編號的組合,如“ 20051200002”。聘用編號聘用編號為當前系統(tǒng)年、月和人員編號的組合,如“ 20051100008”。3.4 數(shù)據(jù)庫設計本系統(tǒng)數(shù)據(jù)庫采用 SQL Server 2000 數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名稱為 db_manpowerinfo。數(shù)據(jù)庫db_manpowerinfo 中

12、包含 29 張表。下面是數(shù)據(jù)表概要說明及主要數(shù)據(jù)表的結構。1數(shù)據(jù)表概要說明數(shù)據(jù)表樹型結構如圖4 圖2 數(shù)據(jù)表樹型結構圖2主要數(shù)據(jù)表的結構數(shù)據(jù)庫中的主要數(shù)據(jù)表結構請參見附錄二。4 主要功能模塊設計4.1 公用模塊設計在人力資源管理系統(tǒng)程序中, 創(chuàng)建了公用模塊 (Module1)。此模塊包括用戶定義的數(shù)據(jù)類型、全局變量、 API 函數(shù)、數(shù)據(jù)庫連接函數(shù)等。1添加全局變量添加全局變量,用于存儲操作員、表和 SQL 語句,代碼如下:Public czy As String, tb As String, tb1 As String, sql As String, sql1 As String, text

13、As String Public jbxxtb As String 添加全局變量,用來標記各個窗體數(shù)據(jù)添加或修改的狀態(tài),代碼如下:Public blnAddRS As Boolean, blnAddPX As Boolean, blnAddKH As Boolean, blnAddHT As Boolean, blnAddPY As Boolean, blnAddBX As Boolean Public blnAddJL As Boolean, blnAddCF As Boolean blnAdd 變量用戶記錄數(shù)據(jù)添加還是修改狀態(tài),賦值為 True 為添加,賦值為 False為修改。5 Pub

14、lic HTygbh As String, PYygbh As String Public KGBH As Integer,JBBH As Integer, deptMark As Integer 2聲明 API 函數(shù) ShellExecute 該函數(shù)主要用于查找與指定文件關聯(lián)在一起的程序的文件名,代碼如下:Declare Function ShellExecute Lib shell32.dll Alias ShellExecuteA (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal

15、 lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long 3共享數(shù)據(jù)庫連接為了減少重復的數(shù)據(jù)連接和為日后修改程序提供接口,在公用模塊( Module1)中建立了數(shù)據(jù)庫連接函數(shù) cnn和 cnStr。如果使用對象操作數(shù)據(jù)庫,可以調用 cnn函數(shù);如果使用 ADO 控件訪問數(shù)據(jù)庫,則可以調用字符串函數(shù) cnStr,并將該函數(shù)值賦給 ADO 控件的 ConnectionString 屬性。具代碼如下:Public Function Cnn() As ADODB.Connection 定義

16、一個函數(shù)Set Cnn = New ADODB.Connection 返回一個數(shù)據(jù)庫連接Cnn.Open Driver=SQL Server;Server=(local);Database=db_manpowerinfo;Uid=sa;Pwd= End Function Public Function cnStr() As String cnStr = Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=db_manpowerinfo End Function 4.2 系統(tǒng)登錄模塊設計系統(tǒng)登錄模塊

17、主要完成對登錄系統(tǒng)的用戶進行驗證,只有合法的用戶才可以進入系統(tǒng)。另外,為了防止用戶無限期地輸入錯誤的用戶名或密碼,在系統(tǒng)登錄模塊中增加了限制登錄次數(shù)的功能。首先定義一個窗體級的常量 MaxTimes,其主要用來保存允許用戶最多登錄的次數(shù)(這里為 3 次),然后在 cmdOk_Click 過程中定義一個靜態(tài)變量 intMyTimes ,其主要用來保存累計登錄系統(tǒng)的次數(shù),并判斷是否超過允許登錄的次數(shù),如果超過,則顯示提示信息,并結束應用程序。系統(tǒng)登錄模塊如圖 3所示。圖 3 系統(tǒng)登錄1窗體設計(1)新建一個工程, 在該工程中新建一個窗體, 將窗體的 “名稱”屬性設置為 “frm_Login ”,B

18、orderStyle 屬性設置為“ 3-Fixed Dialog ”;Caption 屬性設置為“歡迎使用人力資源管理系統(tǒng)” 。6 (2)在窗體中添加 3個 Label控件,設置 BackStyle 屬性為“ 0-Transparent”。其中 Label1 和Label2的 Caption 屬性分別設置為“用戶名稱( U)”和“密碼( P)”。(3)在窗體中添加 2個 TextBox 控件,分別設置“名稱”屬性為 txtUserName 和 txtPassword。(4)在窗體中添加 2個 CommandButton 控件,分別設置“名稱”屬性為 cmdOk 和 cmdCancel;Capt

19、ion 屬性為“確定( O)”和“放棄( C)”。(5)設置 ADO 對象的引用。單擊“工程”“引用”/ ,在“引用”對話框中選定“Microsoft ActiveX Data Objects 2.5 Library ”。2代碼設計Option Explicit Const MaxTimes As Integer = 3 單擊【確定】按鈕,根據(jù)用戶輸入的用戶名和密碼來判斷該用戶是否為合法用戶。如果是合法用戶,將進行系統(tǒng);如果不是將提示用戶,提示超過 3次,自動退出系統(tǒng),代碼如下:Private Sub cmdOK_Click() Static intMyTimes As Integer Dim

20、 rs1 As New ADODB.Recordset, rs2 As New ADODB.Recordset rs1.Open 權限信息表 , Cnn, adOpenKeyset, , adLockOptimistic If rs1.RecordCount 0 Then If txtUserName.text = Then MsgBox 請輸入用戶名! , , 提示窗口 txtUserName.SetFocus Exit Sub End If rs2.Open 權限信息表 where 操作員= + txtUserName.text + , Cnn, adOpenKeyset, , adLoc

21、kOptimistic If rs2.RecordCount 0 Then If txtPassword.text = Then MsgBox 請輸入密碼! , , 提示窗口 txtPassword.SetFocus Exit Sub End If If txtPassword = rs2.Fields( 密碼) Then czy = txtUserName Load frmMain frmMain.Show Unload Me Else If intMyTimes MaxTimes Then MsgBox 您無權使用該軟件! , , 提示窗口 End Else MsgBox 密碼不正確,請重

22、新輸入! , , 提示窗口 intMyTimes = intMyTimes + 1 txtPassword.SetFocus End If End If Else MsgBox 用戶名不正確,請重新輸入! , , 提示窗口 txtUserName.SetFocus 7 , , 提示End If , , 提示rs2.Close Else MsgBox 初次登錄本系統(tǒng),請在進入系統(tǒng)后,立即設置操作員及其密碼,以確保系統(tǒng)的安全!窗口 Load frmMain frmMain.Show Unload Me End If rs1.Close End Sub 4.3 主界面設計主界面是應用程序的主體, 也

23、是應用程序的門面, 它設計的好壞將直接影響用戶的第一感覺,如果主界面設計得很糟糕,則不論應用程序的其他部分設計得多么細致,用戶都不能或不愿意使用它。所以,在設計主界面時應保持界面的簡潔性和明確性。人力資源管理系統(tǒng)的主界面便遵循了這一原則,其運行結果如圖 4所示。標準菜單圖形按鈕樹狀菜單圖4 主界面主界面擔負著調用各個功能模塊、賦予操作員不同的操作權限、顯示當前操作員、操作狀態(tài)和系統(tǒng)日期等任務。 其中應用了 VB 資源編輯器、 動態(tài)創(chuàng)建圖形按鈕、 動態(tài)定位圖形按鈕等技術。下面是調用各個功能窗體的幾種操作方法。(1)使用 Windows 標準菜單。單擊菜單命令,進入相應的功能模塊。(2)通過樹狀菜

24、單。鼠標雙擊菜單樹中的主節(jié)點,展開菜單樹,單擊菜單樹中的子節(jié)點,進入相應的功能模塊。(3)通過圖形按鈕。鼠標雙擊菜單樹中的主節(jié)點,右側區(qū)域將出現(xiàn)圖形按鈕,單擊圖形按鈕,進入相應的功能模塊。8 ;1創(chuàng)建主窗體;(1)單擊“工程” /“添加窗體”菜單命令,在工程中添加一個新窗體,將該窗體的“名稱”屬性設置為“ frmMain ”;BorderStyle 屬性為“ 2-Sizable”;Caption 屬性為“人力資源管理系統(tǒng)”Picture 屬性為事先設計好的背景圖片。(2)在 frmMain 窗體上添加 1個StatusBar控件和 1個 CommonDialog 控件。2使用 VB 資源編輯器

25、和菜單編輯器創(chuàng)建標準菜單使用 VB 資源編輯器和菜單編輯器設計完成圖 4所示的人力資源管理系統(tǒng)中的標準菜單,應分三大步:(1)使用“資源編輯器”中的“字符串表編輯器”編輯菜單中需要的字符串。 (即菜單標題)(2)使用“菜單編輯器”編輯菜單。 (菜單標題為資源 ID)(3)使用 LoadResString 函數(shù)將資源 ID 所對應的字符串顯示為菜單標題。詳細設計步驟如下:在“資源編輯器”中的“字符串表編輯器”編輯字符串(1)單擊“資源編輯器”工具欄上的“編輯字符串表”工具欄按鈕,打開“字符串表編輯器”,如圖 5所示。圖 5 打開“字符串表編輯器”(2)添加一個新的字符串表。單擊“插入新字符串表”

26、工具欄按鈕。一個新的字符串表將被添加到表格中,同時突出顯示其“語言 ID”列表框,可以該列表中選擇適當?shù)恼Z言 ID。如果這是資源中的第一個字符串表,網(wǎng)格中將添加一個初始的條目,其資源 ID 為 101,如果這是一個附加的字符串表,將為所有現(xiàn)存的行添加網(wǎng)格單元。(3)編輯資源 ID 和字符串條目,編輯完成的字符串表,如圖 6所示。9 名稱為:m(0)1所示。菜單名稱和菜單標題設置主菜單標題子菜單名稱子菜單標題圖6名稱為:m(0)1所示。菜單名稱和菜單標題設置主菜單標題子菜單名稱子菜單標題在“菜單編輯器”中設計菜單將 frmMain 窗體設為作用中的窗體,然后單擊“工具” /“菜單編輯器”菜單命令

27、,在“菜單編輯器”對話框中的“標題”輸入欄內輸入菜單標題(如“ 1000”),在“名稱”輸入欄內輸入名稱(如“ m”),如圖 7所示,然后按表 1所示菜單名稱和標題依次完成。圖7 菜單編輯器界面為了程序設計方便, 菜單設計為菜單數(shù)組, 其中所有的主菜單為一個菜單數(shù)組,m(6),每個主菜單下的子菜單為一個數(shù)組(如 m1(0)m1(13))。詳細設置如表表1 主菜單名稱10 1000 1012 1016 1029 1036 1041 1046 Treeview 控件的 Nodes集合中的 Add 方法,該方法可以向 NodesfrmMain 窗體中,添加方法為:在工具箱中選取frmMain 窗體上

28、,當鼠標指針變成一個十字架時,按住鼠標左鍵同TreeView 控件將被添加到窗體中。ImageLis1000 1012 1016 1029 1036 1041 1046 Treeview 控件的 Nodes集合中的 Add 方法,該方法可以向 NodesfrmMain 窗體中,添加方法為:在工具箱中選取frmMain 窗體上,當鼠標指針變成一個十字架時,按住鼠標左鍵同TreeView 控件將被添加到窗體中。ImageList 控件。Image 控件數(shù)組并設置其12 個 Image 控件數(shù)組(初始狀態(tài)為不可見)Image 控件數(shù)組的 Picture、LeftImage控件,然后在窗體中添加Tru

29、e;如果無權限,where 操作員= & czy & , Cnn, adOpenKeyset, adLockOptimistic Image1(0)控件數(shù)組的相關屬性、 完成由數(shù)字菜單到字符串菜單的Image1控件數(shù)組等,代碼如下:m1(0)m1(13) m2(0)m2(2) m3(0)m3(14) m4(0)m4(7) m5(0)m5(3) m6(0)m6(3) m7(0)m7(1) Picture、Left、Top 屬性。具體設,當用戶1個 Image控件數(shù)組,10011011 10131015 10171028 10301035 10371040 10421045 10471048 m(

30、1) m(2) m(3) m(4) m(5) m(6) 3使用 TreeView 控件創(chuàng)建樹狀菜單樹狀菜單的實現(xiàn)主要使用了集合中添加一個 Node 對象,從而實現(xiàn)樹狀菜單。在使用 TreeView 控件前應將其添加到TreeView 控件,將鼠標放置在時拖動鼠標,當達到所需要控件的大小時放開鼠標左鍵,這時如果要將 TreeView 控件中顯示的內容帶圖標,應在窗體上添加一個4使用 Image控件數(shù)組創(chuàng)建圖形按鈕圖形按鈕的構成原理是動態(tài)加載計思路如下:窗體載入后,使用 Load 方法動態(tài)加載單擊樹狀菜單的主節(jié)點時,根據(jù)其下的子節(jié)點的數(shù)量,動態(tài)設置和Top 屬性。實現(xiàn)上述功能, 應首先在工具箱中選

31、取默認名為 Image1,設置其 Index 屬性為 0,Visible 屬性為 False。5代碼設計聲明模塊級變量,用于在一個窗體中的不同過程使用,代碼如下:Dim i As Integer, a As Integer 自定義函數(shù) blnPower,用于判斷操作員的權限,如果有權限,返回值為返回值為 False,代碼如下:Function blnPower(str As String) As Boolean Dim rs1 As New ADODB.Recordset rs1.Open select * from 權限信息表If rs1.RecordCount 0 Then If rs1.

32、Fields(str) = False Then blnPower = False Else blnPower = True End If End If rs1.Close End Function 窗體載入時, 設置狀態(tài)欄和轉換、添加樹狀菜單及動態(tài)加載11 Private Sub Form_Load() Dim pnlX As Panel 添加面板,并將它們設置為目錄sbStatusBar.Panels(1).AutoSize = sbrContents sbStatusBar.Panels(1) = mytag Set pnlX = sbStatusBar.Panels.Add pnlX.

33、AutoSize = sbrContents pnlX.text = 當前操作員: & czy Set pnlX = sbStatusBar.Panels.Add pnlX.Style = sbrDate Set pnlX = sbStatusBar.Panels.Add pnlX.Style = sbrTime 設置圖形按鈕的初始位置Image1(0).Left = 4000: Image1(0).Top = 2625 將VB資源管理器中的字符串添加到菜單中On Error Resume Next Dim ctl As Control, sCtlType As String For Each

34、 ctl In Me.Controls sCtlType = TypeName(ctl) If sCtlType = Menu Then ctl.Caption = LoadResString(CInt(ctl.Caption) End if Next 添加樹狀菜單Dim nodX As Node Set nodX = TreeView1.Nodes.Add(, , X1, 基本資料管理 , 1) For a = 1 To 11 TreeView1.Nodes.Add X1, tvwChild, C & a, LoadResString(a + 1000), 2 Next a Set nodX

35、 = TreeView1.Nodes.Add(, , X2, 工資設置 , 1) For a = 12 To 14 TreeView1.Nodes.Add X2, tvwChild, C & a, LoadResString(a + 1001), 2 Next a Set nodX = TreeView1.Nodes.Add(, , X3, 人事管理 , 1) For a = 15 To 26 TreeView1.Nodes.Add X3, tvwChild, C & a, LoadResString(a + 1002), 2 Next a Set nodX = TreeView1.Nodes

36、.Add(, , X4, 工資管理 , 1) For a = 27 To 32 TreeView1.Nodes.Add X4, tvwChild, C & a, LoadResString(a + 1003), 2 Next a Set nodX = TreeView1.Nodes.Add(, , X5, 系統(tǒng)管理 , 1) For a = 33 To 36 TreeView1.Nodes.Add X5, tvwChild, C & a, LoadResString(a + 1004), 2 Next a Set nodX = TreeView1.Nodes.Add(, , X6, 工具, 1

37、) For a = 37 To 40 TreeView1.Nodes.Add X6, tvwChild, C & a, LoadResString(a + 1005), 2 Next a 12 Set nodX = TreeView1.Nodes.Add(, , X7, 幫助, 1) Set nodX = TreeView1.Nodes.Add(X7, tvwChild, C41, 幫助, 2) Set nodX = TreeView1.Nodes.Add(X7, tvwChild, C42, 關于, 2) nodX.EnsureVisible 動態(tài)創(chuàng)建圖形按鈕( Image控件)和標題( L

38、abel控件)For i = 1 To 12 i = Image1.UBound + 1 Load Image1(i)Load lblCaption1(i) Image1(i).ZOrder (0) lblCaption1(i).ZOrder (0) Next i End Sub 當鼠標移到圖形按鈕(指定的 Image1控件數(shù)組)上時,將其 BorderStyle 屬性由 0設置為 1,以形成動態(tài)效果,同時將該圖形按鈕所屬功能的完整路徑顯示在 Label1 中。其具體代碼如下:Private Sub Image1_MouseMove(index As Integer, Button As In

39、teger, Shift As Integer, X As Single, Y As Single) Image1(index).BorderStyle = 1 Label1.Caption = TreeView1.SelectedItem.text & / & lblCaption1(index).Caption End Sub Private Sub Label2_MouseMove(index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Label2(index).BorderSty

40、le = 1 End Sub 當鼠標移到窗體上時,將圖形按鈕( Image1控件數(shù)組)的 BorderStyle 屬性由 1設置為 0,體代碼如下:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) For i = 1 To Image1.UBound Image1(i).BorderStyle = 0 Next i For i = 0 To Label2.UBound Label2(i).BorderStyle = 0 Next i End Sub Private

41、Sub Label1_Change() sbStatusBar.Panels(1).text = 當前位置: & Label1 End Sub Private Sub Label2_Click(index As Integer) Select Case index Case 0 Temp = 所要連接的網(wǎng)站名稱ShellExecute 0&, vbNullString, Temp, vbNullString, vbNullString, 0 調用IE Case 1 m7_Click (1) Case 2 m7_Click (0) Case 3 End End Select End Sub 13

42、 單擊菜單數(shù)組,首先判斷操作員的權限,如果操作員有權限,則調入相應的功能窗體或執(zhí)行相應的操作;否則提示用戶。具體代碼如下:Private Sub m1_Click(index As Integer) text = m1(index).Caption If blnPower(m1(index).Caption) = False Then MsgBox 對不起,您沒有使用此項功能的權限! , vbInformation, 提示窗口 Exit Sub End If Select Case m1(index).Caption Case 部門管理 Load main_jbzl_bmgl main_jbz

43、l_bmgl.Show 1 Case 工種類型管理 jbxxtb = 工種表 Case 職務類型管理 jbxxtb = 職務表 Case 職稱類型管理 jbxxtb = 職稱表 Case 文化程度管理 jbxxtb = 文化程度表 Case 政治面貌管理 jbxxtb = 政治面貌表 Case 民族管理 jbxxtb = 民族表 Load main_jbzl_pxkc main_jbzl_pxkc.Show 1 Case 考核項目管理 Load main_jbzl_khlx main_jbzl_khlx.Show 1 End Select With m1(index) If .Caption

44、= 工種類型管理 Or .Caption = 職務類型管理 Or .Caption = 職稱類型管理 Or .Caption = 文化程度管理 Or .Caption = 政治面貌管理 Or .Caption = 民族管理 Then Load main_jbzl_public main_jbzl_public.Show 1 End If End With End Sub 其他菜單數(shù)組的 Click事件過程省略,詳細內容可參見光盤。鼠標單擊指定的圖形按鈕( Image1 控件數(shù)組),調入相應的功能窗體或執(zhí)行相應的操作,代碼如下:Private Sub Image1_Click(index As

45、Integer) text = lblCaption1(index).Caption: Image1(index).BorderStyle = 1 If blnPower(lblCaption1(index).Caption) = False Then MsgBox 對不起,您沒有使用此項功能的權限! , vbInformation, 提示窗口 Exit Sub End If 此處代碼與菜單數(shù)組 Click事件過程中的代碼設計思路基本相同,因此省略,詳細內容請參見光盤。14 TreeView 控件,TreeView 控件,單擊 TreeView 控件根據(jù)選定節(jié)點的關鍵字,調用相應的菜單事件過程

46、。具體代碼如下:Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) Label1 = Node.FullPath For b = 1 To Image1.UBound Image1(b).Visible = False: lblCaption1(b).Visible = False: lblCaption1(b).Caption = Next b 當鼠標單擊 TreeView控件的父節(jié)點時,根據(jù)其下的子節(jié)點的數(shù)量,設置相應的 Image1控件數(shù)組的可見數(shù)量、 picture、Left和Top屬性。For a = 1 T

47、o TreeView1.SelectedItem.Children Image1(a).Visible = True: lblCaption1(a).Visible = True lblCaption1(a) = TreeView1.Nodes(TreeView1.SelectedItem.Child.index + a - 1).text Image1(a).Picture = LoadPicture(App.Path & & Node.text & & a & .jpg) Image1(a).Left = Image1(0).Left + (Image1(a).Width + 420) *

48、 (a - 1) Mod 4) lblCaption1(a).Left = Image1(a).Left Image1(a).Top = Int(a / 4.1) * (Image1(0).Height + 420) + Image1(0).Top lblCaption1(a).Top = Image1(a).Top + Image1(a).Height + 30 Next a 此處代碼省略,詳細內容可參見光盤End Sub 4.4 部門管理模塊設計部門管理實現(xiàn)了部門的添加、修改、刪除、展開和收縮等功能,其中使用了充分體現(xiàn)了部門間上下級關系。其運行結果如圖 8所示。圖8 部門管理1窗體設計部門

49、管理窗體主要使用了 Toolbar、ImageList、TreeView 和 TextBox 等控件。其具體設計步驟如下:(1)單擊“工程” /“添加窗體”菜單命令,在工程中添加一個新窗體,將該窗體的“名稱”屬性設置為 main_jbzl_bmgl ;BorderStyle 屬性設置為“ 2-Sizable”。(2)在窗體中添加 1個 ImageList 控件、1個 Toolbar 控件、1個TreeView 控件、1個 TextBox控件數(shù)組( text1(0)text1(6))等。2代碼設計聲明模塊級變量15 Dim rs1 As New ADODB.Recordset, blnTJ as

50、 Boolean, blnAdd As Boolean Dim bmbh As String, bmjc As Integer ,i As Integer, lngOL As Long 自定義添加樹狀菜單的過程,其中使用了 TreeView 控件 Nodes集合的 Add 方法,代碼如下:Public Sub tree_change() 定義添加樹狀列表的函數(shù)TreeView1.Nodes.Clear Dim mNode As Node rs1.Open select * from 部門表 order by 部門編號 ,編碼級次 , Cnn, adOpenKeyset, adLockOptim

51、istic If rs1.RecordCount 0 Then rs1.MoveFirst Do While rs1.EOF = False Select Case rs1.Fields(編碼級次 ) Case 1 Set mNode = TreeView1.Nodes.Add() mNode.text = ( & rs1.Fields( 本級編號 ) & ) & rs1.Fields( 部門名稱 ) mNode.Key = rs1.Fields(部門全稱 ) Case 2 Set mNode1 = TreeView1.Nodes.Add(mNode.index, tvwChild) mNod

52、e1.text = ( & rs1.Fields( 本級編號 ) & ) & rs1.Fields( 部門名稱) mNode1.Key = rs1.Fields(部門全稱 ) Case 3 Set mNode2 = TreeView1.Nodes.Add(mNode1.index, tvwChild) mNode2.text = ( & rs1.Fields( 本級編號 ) & ) & rs1.Fields( 部門名稱) mNode2.Key = rs1.Fields(部門全稱 ) Case 4 Set mNode3 = TreeView1.Nodes.Add(mNode2.index, tv

53、wChild) mNode3.text = ( & rs1.Fields( 本級編號 ) & ) & rs1.Fields( 部門名稱) mNode3.Key = rs1.Fields(部門全稱 ) Case 5 Set mNode4 = TreeView1.Nodes.Add(mNode3.index, tvwChild) mNode4.text = ( & rs1.Fields( 本級編號 ) & ) & rs1.Fields( 部門名稱) mNode4.Key = rs1.Fields(部門全稱 ) End Select rs1.MoveNext Loop End If rs1.Clos

54、e End Sub 自定義設置工具欄按鈕和控件狀態(tài)的函數(shù)過程,代碼如下:Sub tlbState(state As Boolean) With Toolbar1 If state = True Then .Buttons(1).Enabled = False:.Buttons(2).Enabled = False For i = 4 To 11 .Buttons(i).Enabled = True Next i For i = 0 To Text1.UBound Text1(i).Locked = True Next i 16 Else .Buttons(1).Enabled = True:.

55、Buttons(2).Enabled = True For i = 4 To 11 .Buttons(i).Enabled = False Next i For i = 0 To Text1.UBound Text1(i).Locked = False Next i End If End With End Sub 窗體載入時,設置窗體標題,同時調用 tree_change過程和 tlbState函數(shù)過程,代碼如下:Private Sub Form_Load() Me.Caption = text tree_change tlbState True End Sub 按【Enter】鍵,使下一個文

56、本框獲得焦點,并自動生成“部門全稱” ,代碼如下:Private Sub Text1_KeyDown(index As Integer, KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn And index = 2 Then If blnAdd = False Then If Text1(3) Then Text1(3) = Left(Text1(3), Len(Text1(3) - lngOL) & ( & Text1(1) & ) & Text1(2) Else If blnTJ = True Then If Tr

57、eeView1.Nodes.Count 0 Then If TreeView1.SelectedItem.Root.Selected = True Then Text1(3) = ( & Text1(1) & ) & Text1(2) Else Text1(3) = TreeView1.SelectedItem.Parent.FullPath & & ( & Text1(1) & ) & Text1(2) End If Else Text1(3) = ( & Text1(1) & ) & Text1(2) End If Else Text1(3) = TreeView1.SelectedIte

58、m.FullPath & & ( & Text1(1) & ) & Text1(2) End If End If Text1(4).SetFocus End If If KeyCode = vbKeyReturn And index 3 And index 0 Then For i = 0 To 6 Text1(i) = rs1.Fields(i) 17 Next i End If rs1.Close End Sub 單擊工具欄按鈕, 根據(jù)關鍵字 key來判斷用戶單擊的是哪個按鈕, 從而實現(xiàn)部門信息的添加、修改等,代碼如下:Private Sub Toolbar1_ButtonClick(By

59、Val Button As MSComctlLib.Button) Select Case Button.Key Case ok 保存部門信息tlbState True If Len(Text1(0) 10 Then MsgBox 部門編號超長! Exit Sub End If If blnAdd = True Then rs1.Open select * from 部門表, Cnn, adOpenKeyset, adLockOptimistic rs1.AddNew For i = 0 To 6 rs1.Fields(i) = Text1(i) Next i rs1.Fields(編碼級次

60、) = Len(Text1(0) / 2 rs1.Update rs1.Close Else rs1.Open select * from 部門表 where 部門編號 = + Text1(0) + , Cnn, adOpenKeyset, adLockOptimistic If rs1.RecordCount 0 Then For i = 0 To 6 rs1.Fields(i) = Text1(i) Next i rs1.Update End If rs1.Close End If tree_change Case cancel 取消tlbState True Case addnew 添加

溫馨提示

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

最新文檔

評論

0/150

提交評論