員工信息管理系統(tǒng)課程設(shè)計

上傳人:good****022 文檔編號:116527828 上傳時間:2022-07-05 格式:DOC 頁數(shù):38 大?。?.67MB
收藏 版權(quán)申訴 舉報 下載
員工信息管理系統(tǒng)課程設(shè)計_第1頁
第1頁 / 共38頁
員工信息管理系統(tǒng)課程設(shè)計_第2頁
第2頁 / 共38頁
員工信息管理系統(tǒng)課程設(shè)計_第3頁
第3頁 / 共38頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《員工信息管理系統(tǒng)課程設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《員工信息管理系統(tǒng)課程設(shè)計(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 信息系統(tǒng)設(shè)計 軟件工程課程設(shè)計課題名稱: 員工信息管理系統(tǒng) 姓 名: 蘭朝仁 學(xué) 號: 學(xué) 院:繼續(xù)教育學(xué)院專 業(yè):計算機科學(xué)與技術(shù)年 級:2008級(夜大專升本)指導(dǎo)教師: 陳郞欽 完成日期: 2010 年 10 月 11 日目 錄引言11.系統(tǒng)規(guī)劃21.1系統(tǒng)設(shè)計目標(biāo)21.2系統(tǒng)總體規(guī)劃21.3設(shè)計方案(步驟)22.系統(tǒng)分析22.1業(yè)務(wù)需求與分析22.2系統(tǒng)業(yè)務(wù)流程圖32.3系統(tǒng)數(shù)據(jù)流程圖43.系統(tǒng)設(shè)計53.1系統(tǒng)軟件功能結(jié)構(gòu)53.2系統(tǒng)主要技術(shù)53.3系統(tǒng)數(shù)據(jù)庫設(shè)計63.3.1數(shù)據(jù)庫設(shè)計要點63.3.2數(shù)據(jù)庫系統(tǒng)設(shè)計要點及難點63.3.3數(shù)據(jù)庫及其表的建立和使用63.3.4系統(tǒng)組成及數(shù)

2、據(jù)環(huán)境63.3.5數(shù)據(jù)庫概念設(shè)計73.3.6數(shù)據(jù)庫邏輯設(shè)計83.3.7數(shù)據(jù)庫物理設(shè)計93.4輸出設(shè)計113.5輸入設(shè)計114.系統(tǒng)實現(xiàn)114.1系統(tǒng)主程序流程124.2系統(tǒng)主界面設(shè)計134.3系統(tǒng)主程序設(shè)計134.4子程序設(shè)計174.4.1系統(tǒng)登錄174.4.2員工管理184.4.3部門管理214.4.4職務(wù)管理234.4.5工資管理254.4.6工資類別管理264.5系統(tǒng)測試275.結(jié)束語28【摘 要】本文從員工信息管理系統(tǒng)規(guī)劃、需求分析、系統(tǒng)設(shè)計、系統(tǒng)實現(xiàn)及系統(tǒng)測試等多個方面,分別敘述系統(tǒng)研發(fā)的整個實現(xiàn)過程,簡述采用Delphi 7編程工具及Access數(shù)據(jù)庫實現(xiàn)系統(tǒng)應(yīng)用的設(shè)計要點,重點闡

3、述系統(tǒng)實現(xiàn)過程中的重點和難點問題的分析及其解決方案,解決企業(yè)對員工的計算機管理。【關(guān)鍵詞】員工、人事、工資、管理、數(shù)據(jù)庫引言隨著我國國民經(jīng)濟建設(shè)的蓬勃發(fā)展和社會主義市場經(jīng)濟體制的迅速完善,各個行業(yè)都在積極使用現(xiàn)代化的手段,不斷改善服務(wù)質(zhì)量,提高工作效率,這些都在很大程度上給企業(yè)提出越來越嚴(yán)峻的挑戰(zhàn),對企業(yè)體系無論是在行政職能、企業(yè)管理水平以及優(yōu)質(zhì)服務(wù)上都提出更高的要求。建設(shè)一個科學(xué)高效的信息管理系統(tǒng)是解決這一問題的必由之路。員工信息管理作為企業(yè)內(nèi)部的一種員工基本檔案管理也是如此,由于企業(yè)的人數(shù)較多,每一位員工的具體實際情況也不盡相同,如果沒有一個完整的員工信息管理系統(tǒng)去完成,將使工作變得復(fù)雜,

4、并且對于工作的效率也將使一個致命的打擊,使無論如何也無法適應(yīng)現(xiàn)代社的需要。另外,目前部分企業(yè)使用的員工信息管理系統(tǒng)只有信息的錄入,修改和刪除的功能,而不具有信息查詢的功能,這對于企業(yè)的信息管理工作來說是一個很遺憾的事情。因此,開發(fā)一套功能完整,設(shè)計合理,使用方便的企業(yè)員工信息管理系統(tǒng)成為很有必要的事情。企業(yè)員工信息管理系統(tǒng)的內(nèi)容功能對于企業(yè)的決策者和管理者來說都至關(guān)重要,所以企業(yè)員工信息管理系統(tǒng)應(yīng)該能夠為管理者提供充足的信息和快捷的查詢與管理手段。作為計算機應(yīng)用的一部分,使用計算機對企業(yè)員工信息進行管理,具有手工管理所無法比擬的優(yōu)點.例如:查詢迅速、查找方便、可靠性高、存儲量大、保密性好、壽命

5、長、成本低等。這些優(yōu)點能夠降低員工管理工作的成本,減輕企業(yè)管理人員的負(fù)擔(dān),方便員工信息的更新、維護和查詢,增加數(shù)據(jù)的可靠性;從而提高企業(yè)員工信息管理的效率,開拓企業(yè)員工管理工作的新局面,提高管理水平,是企業(yè)管理的科學(xué)化、正規(guī)化、信息化管理,與世界接軌的重要條件。當(dāng)前主流的程序開發(fā)環(huán)境有Microsoft Visual Studio.NET,Sun Java,Borland Delphi等。Visual Studio.NET對Windows系統(tǒng)兼容性好;Java可以支持多種環(huán)境及操作系統(tǒng)平臺;而Delphi則可在Windows系統(tǒng)下快速開發(fā)C/S結(jié)構(gòu)程序,具有多方成熟的控件完善系統(tǒng)開發(fā)。主流的數(shù)

6、據(jù)系統(tǒng)則有Oracle,Microsoft SQL Server和Access。Oracle功能強大,穩(wěn)定性好;SQL Server穩(wěn)定,功能齊全;而Access簡單快速、小巧便捷。下面采用Borland Delphi 7開發(fā)環(huán)境,結(jié)合Microsoft Access數(shù)據(jù)庫,對員工信息管理系統(tǒng)的開發(fā)過程和系統(tǒng)規(guī)劃、系統(tǒng)需求及分析、系統(tǒng)設(shè)計、系統(tǒng)實現(xiàn)及系統(tǒng)測試等各個階段,論述其數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計要點,實現(xiàn)過程中存在的難點、問題的分析及其解決方案。1. 系統(tǒng)規(guī)劃系統(tǒng)規(guī)劃的主要內(nèi)容是信息系統(tǒng)設(shè)計的目標(biāo)及信息系統(tǒng)的總體方案。1.1 系統(tǒng)設(shè)計目標(biāo)本系統(tǒng)的設(shè)計目標(biāo)是建立企業(yè)對員工檔案及工資的計算機管理系

7、統(tǒng)。1.2 系統(tǒng)總體規(guī)劃系統(tǒng)本著合理性、可靠性和先進性的原則,實現(xiàn):(1) 完整的數(shù)據(jù)分析系統(tǒng),能對數(shù)據(jù)流實施控制與動態(tài)分析;(2) 有功能強大、資料齊全的查詢系統(tǒng);(3) 方便用戶使用及操作的界面,操作簡便、運行穩(wěn)定。1.3 設(shè)計方案(步驟)在員工信息需求的基礎(chǔ)上,提出整個信息系統(tǒng)的總體結(jié)構(gòu)方案,確定系統(tǒng)開發(fā)設(shè)計的次序及時間的安排。具體分為五個步驟:(4) 分析員工檔案及工資等信息管理的業(yè)務(wù)活動,搞清業(yè)務(wù)流程及數(shù)據(jù)流程;(5) 根據(jù)業(yè)務(wù)流程及數(shù)據(jù)流程,確定屬于系統(tǒng)業(yè)務(wù)處理的范圍;(6) 分析業(yè)務(wù)流程及數(shù)據(jù)流程所涉及的數(shù)據(jù),確定數(shù)據(jù)庫及其數(shù)據(jù)表;(7) 確定系統(tǒng)概要設(shè)計(總體結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu))、

8、詳細設(shè)計(模塊、算法)框架;(8) 進行系統(tǒng)實施過程的程序設(shè)計及其軟件測試。2. 系統(tǒng)分析系統(tǒng)分析的最主要內(nèi)容有員工信息管理系統(tǒng)的業(yè)務(wù)需求分析、業(yè)務(wù)流程圖、數(shù)據(jù)流程圖、數(shù)據(jù)庫設(shè)計等四個部分。2.1 業(yè)務(wù)需求與分析(1) 系統(tǒng)數(shù)據(jù)需求通過對企業(yè)員工的信息管理業(yè)務(wù)流程的調(diào)查,總結(jié)系統(tǒng)對其數(shù)據(jù)的需求,主要有:員工檔案信息,員工工資信息,部門、職務(wù)、工資類型等基礎(chǔ)信息(2) 系統(tǒng)功能需求系統(tǒng)的主要需求,即所設(shè)計的系統(tǒng)在功能上應(yīng)做什么。本系統(tǒng)主要的功能有:員工管理:完成員工檔案的新增、修改、刪除、查詢及打印等功能;主要實現(xiàn)對所有員工的姓名、編號、部門、職務(wù)、入職時間、性別、身份證號、出生日期、學(xué)歷、私人

9、電話及工作電話等信息的管理。工資管理:完成員工工資的錄入、查詢、分析及相關(guān)打印等功能;主要實現(xiàn)對員工的姓名、工資類別及工資金額等信息的管理?;拘畔⒐芾恚和瓿刹块T設(shè)置、職務(wù)設(shè)置、工資類別設(shè)置、用戶口令設(shè)置,系統(tǒng)數(shù)據(jù)初始化等功能。部門設(shè)置主要實現(xiàn)部門編號和部門名稱的設(shè)置;職務(wù)設(shè)置主要實現(xiàn)職務(wù)編號和職務(wù)名稱的設(shè)置;工資類別設(shè)置主要實現(xiàn)工資類別編號和工資類別名稱的設(shè)置;口令更改實現(xiàn)用戶口令的修改;系統(tǒng)初始化清除系統(tǒng)所有歷史數(shù)據(jù),使數(shù)據(jù)庫進入初始狀態(tài)。系統(tǒng)幫助:幫助用戶解決問題,溝通與軟件開發(fā)者的聯(lián)系。(3) 系統(tǒng)性能需求系統(tǒng)的性能指標(biāo)包括存儲容量限制、運行時間限制、傳輸速度要求、安全保密性等幾個方面

10、。(4) 系統(tǒng)運行環(huán)境需求硬件方面:采用的設(shè)備機型以及外部設(shè)備等;軟件方面:支持系統(tǒng)運行的系統(tǒng)軟件,如操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等。(5) 系統(tǒng)可靠性及安全保密需求對系統(tǒng)、重要子系統(tǒng)在運行中的安全、可靠、保密方面提出要求。2.2 系統(tǒng)業(yè)務(wù)流程圖從實際業(yè)務(wù)功能的角度將系統(tǒng)規(guī)劃中有關(guān)的業(yè)務(wù)做進一步的分析,用一個完整的圖型來反映業(yè)務(wù)處理過程。系統(tǒng)業(yè)務(wù)流程圖(TFD)如下:2.3 系統(tǒng)數(shù)據(jù)流程圖以數(shù)據(jù)流程圖表示數(shù)據(jù)流向和對數(shù)據(jù)進行的加工;分析系統(tǒng)數(shù)據(jù),對數(shù)據(jù)流圖中的數(shù)據(jù)流給出具體定義。系統(tǒng)的頂層數(shù)據(jù)流程圖(DFD)如下:3. 系統(tǒng)設(shè)計系統(tǒng)設(shè)計主要有以下幾項內(nèi)容:3.1 系統(tǒng)軟件功能結(jié)構(gòu)3.2 系統(tǒng)主要技術(shù)本

11、系統(tǒng)采用Borland Delphi 7開發(fā)環(huán)境,結(jié)合Microsoft Access數(shù)據(jù)庫。Borland Delphi 7使用的是面向?qū)ο蟮腛bject Pascal語言,可以靈活得進行大型應(yīng)用系統(tǒng)的開發(fā)。Delphi 7提供了對數(shù)據(jù)庫系統(tǒng)及標(biāo)準(zhǔn)SQL語言支持,可以開發(fā)出符合標(biāo)準(zhǔn)SQL的應(yīng)用系統(tǒng),提高系統(tǒng)的可移植性,可根據(jù)不同企業(yè)的需求,使用Oracle、SQL Server、Access等標(biāo)準(zhǔn)的SQL數(shù)據(jù)庫。同時,Delphi 7自身提供了很多數(shù)據(jù)庫操作的控件,還有第三方優(yōu)勢的數(shù)據(jù)庫操控件,從面更快,更好得開發(fā)出優(yōu)秀的應(yīng)用系統(tǒng)。本系統(tǒng)就采用了Dev Express公司的DevExpres

12、sVCL數(shù)據(jù)控件一起實現(xiàn)員工信息管理系統(tǒng)的開發(fā)。3.3 系統(tǒng)數(shù)據(jù)庫設(shè)計3.3.1 數(shù)據(jù)庫設(shè)計要點(9) 第一階段的設(shè)計任務(wù)是收集和分析用戶需求,完成數(shù)據(jù)庫的概念設(shè)計。(10) 第二階段設(shè)計任務(wù)是數(shù)據(jù)庫的邏輯設(shè)計,完成E-R模型向邏輯模型轉(zhuǎn)換。(11) 第三階段設(shè)計任務(wù)是數(shù)據(jù)庫的物理設(shè)計,確定表的結(jié)構(gòu),建立數(shù)據(jù)庫模型。3.3.2 數(shù)據(jù)庫系統(tǒng)設(shè)計要點及難點(12) 建立數(shù)據(jù)庫,確定數(shù)據(jù)庫中表的數(shù)量及其每個表中各個字段的字段名、類型、寬度、小數(shù)及索引、排序。(13) 確定數(shù)據(jù)庫中各個表的字段的主鍵值、主索引及普通索引。(14) 建立各個表數(shù)據(jù)環(huán)境,確定主表并建立主表與各個表之單的關(guān)聯(lián)。(15) 程序

13、設(shè)計過程中的標(biāo)簽、文本框、編輯框、復(fù)選框、列表框、數(shù)據(jù)庫連接、數(shù)據(jù)查詢的屬性。(16) 采用結(jié)構(gòu)化編程方法,確定系統(tǒng)功能模塊及其相互之間的關(guān)系。3.3.3 數(shù)據(jù)庫及其表的建立和使用使用Access程序建立Access數(shù)據(jù)庫,建立相應(yīng)表,設(shè)置各個表中具體字段名稱、類型、主鍵、索引,設(shè)置各個表間的關(guān)系。3.3.4 系統(tǒng)組成及數(shù)據(jù)環(huán)境(1)數(shù)據(jù)庫:PersonnelInfo.mdb(2)表:員工員工信息表,工資工資表,部門部門信息表,職務(wù)職務(wù)信息表,工資類別工資類別信息表(3)項目:PersonnelInfo.dpr:員工信息管理系統(tǒng)項目管理器(4)表單:Main.dfm系統(tǒng)主界面Personnel

14、.dfm 員工管理界面Wage.dfm工資管理界面Department.dfm部門管理界面Post.dfm職務(wù)管理界面About.dfm 關(guān)于界面WageCategory.dfm工資類型管理界面(5)程序:Main.pas系統(tǒng)主程序Personnel.pas 員工管理程序Wage.pas工資管理程序Department.pas部門管理程序Post.pas職務(wù)管理程序About.pas 關(guān)于程序WageCategory.pas工資類型管理程序(6)數(shù)據(jù)環(huán)境:3.3.5 數(shù)據(jù)庫概念設(shè)計數(shù)據(jù)庫概念設(shè)計主要采用E-R模型進行設(shè)計.E-R模型的關(guān)系是確定每一處理模塊的實體、實體屬性和實體間的聯(lián)系。實體、

15、屬性、聯(lián)系及數(shù)據(jù)結(jié)構(gòu)描述如下:(1)員工管理模塊實體:員工、部門、職務(wù);屬性:員工的屬性有姓名、員工編號、部門、職務(wù)、入職時間、性別、身份證號、出生日期、學(xué)歷、私人電話、工作電話及備注等;部門的屬性有部門編號和部門名稱;職務(wù)的屬性有職務(wù)編號和職務(wù)名稱。聯(lián)系:員工與部門之間是多對一(M:1)的關(guān)系;員工與職務(wù)之間也是多對一(M:1)的關(guān)系。數(shù)據(jù)項:見數(shù)據(jù)庫的物理設(shè)計。(2)工資管理模塊實體:工資、工資類別;屬性:工資的屬性有員工編號、工資類別和工資金額;工資類別有工資類別編號、工資類別名稱。關(guān)系:工資類別與工資這間是一對一(1:1)的關(guān)系。數(shù)據(jù)項:見數(shù)據(jù)庫的物理設(shè)計。3.3.6 數(shù)據(jù)庫邏輯設(shè)計數(shù)

16、據(jù)庫的邏輯設(shè)計主要完成從E-R模型向數(shù)據(jù)邏輯模型的轉(zhuǎn)換。首先將E-R模型中同一實體的所有屬性放在同一記錄類型中,變成記錄的數(shù)據(jù)項;其次如果兩個實體間有M:N的關(guān)系,除各自建立記錄類型之外,還需增加一個記錄類型,這一記錄類型應(yīng)包括兩個實體各自的主鍵。邏輯模型規(guī)范化及總E-R圖描述如下:員工(員工編號、姓名、部門編號、職務(wù)編號、入職時間、性別、身份證號、出生日期、學(xué)歷、私人電話、工作電話、備注);部門(部門編號、部門名稱、備注);職務(wù)(職務(wù)編號、職務(wù)名稱、備注);工資(員工編號、工資類型編號、金額、備注);工資類別(工資類別編號、工資類別名稱、備注);用戶(用戶名、密碼、確認(rèn)密碼、備注)。消除冗余

17、數(shù)據(jù)和聯(lián)系后,其系統(tǒng)的E-R圖如下:3.3.7 數(shù)據(jù)庫物理設(shè)計數(shù)據(jù)庫的物理設(shè)計將完成數(shù)據(jù)邏輯模型向數(shù)據(jù)物理模型的轉(zhuǎn)換。每一記錄類型確定為數(shù)據(jù)庫中的一張表;記錄類型中的數(shù)據(jù)項成為相應(yīng)表中的字段,字段屬性根據(jù)各字段特點設(shè)置;確定索引和表之間的聯(lián)系。系統(tǒng)表結(jié)構(gòu)描述如下:(1)員工表用于存放員工信息,包括員工編號、姓名、部門編號、職務(wù)編號、入職時間、性別、身份證號、出生日期、學(xué)歷、私人電話、工作電話、備注。字段字段名稱類型寬度必需索引說明1員工編號文本20是有無重復(fù)主鍵2姓名文本10是3部門編號數(shù)字長整型4職務(wù)編號數(shù)字長整型5入職時間日期/時間6性別文本27身份證號文本208出生日期日期/時間9學(xué)歷文

18、本1010私人電話文本2011工作電話文本2012備注文本100(2)部門表用于存放員工的部門信息,包括部門編號、部門名稱和備注。字段字段名稱類型寬度必需索引說明1部門編號數(shù)字長整型是有無重復(fù)主鍵2部門名稱文本20是3備注文本100(3)職務(wù)表用于存放員工的職務(wù)信息,包括職務(wù)編號、職務(wù)名稱和備注。字段字段名稱類型寬度必需索引說明1職務(wù)編號數(shù)字長整型是有無重復(fù)主鍵2職務(wù)名稱文本20是3備注文本100(4)工資表用于存放員工的工資信息,包括員工編號、工資類別編號、金額和備注。字段字段名稱類型寬度必需索引說明1員工編號文本20是有重復(fù)主鍵2工資類別編號數(shù)字長整型是有重復(fù)主鍵3金額數(shù)字單精度型4備注文

19、本100(5)工資類別表用于存放員工的工資類別,包括工資類別編號、工資類別名稱和備注。字段字段名稱類型寬度必需索引說明1工資類別編號數(shù)字長整型是有無重復(fù)主鍵2工資類別名稱文本20是3備注文本100(6)用戶表用于存放系統(tǒng)的用戶名和密碼,包括用戶名、密碼和備注。字段字段名稱類型寬度必需索引說明1用戶名文本20是有無重復(fù)主鍵2密碼文本30是3確認(rèn)密碼文本30是4備注文本1003.4 輸出設(shè)計(1) 選擇輸出方式 :顯示終端、打印機;(2) 確定輸出格式:格式設(shè)計體現(xiàn)在各類報表中;(3) 輸出的主要形式:報表;(4) 輸出的內(nèi)容:主要有員工信息、工資信息、部門信息、職務(wù)信息、工資類別信息和用戶信息。

20、3.5 輸入設(shè)計(1) 輸入方式設(shè)計鍵盤輸入和鼠標(biāo)操作,為常規(guī)的數(shù)據(jù)錄入方式;磁盤傳遞數(shù)據(jù)。(2) 用戶界面設(shè)計(詳見各子模塊用戶界面)人機對話方式:通過屏幕、鍵盤、鼠標(biāo)與系統(tǒng)對話,當(dāng)操作錯誤時系統(tǒng)給出提示和警告。菜單方式:設(shè)計成下拉式、上彈式、按鈕式,功能選擇:有光帶移動、數(shù)字或字母選擇、鼠標(biāo)驅(qū)動。4. 系統(tǒng)實現(xiàn)系統(tǒng)實施的最主要工作是程序設(shè)計,此外還包括了物理系統(tǒng)的實施、程序的調(diào)試等。本系統(tǒng)的程序設(shè)計由主程序和各模塊表單程序等兩大部份組成。4.1 系統(tǒng)主程序流程4.2 系統(tǒng)主界面設(shè)計4.3 系統(tǒng)主程序設(shè)計unit Main;interfaceuses Windows, SysUtils, C

21、lasses, Graphics, Forms, Controls, Menus, StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns, ActnList, ToolWin, ImgList, DB, ADODB, cxControls, cxContainer, cxEdit, cxLabel;type TMainForm = class(TForm) MainMenu: TMainMenu; File1: TMenuItem; Window: TMenuItem; Help: TMenuItem; FileE

22、xitItem: TMenuItem; WindowCascadeItem: TMenuItem; WindowTileItem: TMenuItem; WindowArrangeItem: TMenuItem; HelpAboutItem: TMenuItem; WindowMinimizeItem: TMenuItem; ActionList: TActionList; FileExit: TAction; WindowCascade1: TWindowCascade; WindowTileHorizontal1: TWindowTileHorizontal; WindowArrangeA

23、ll1: TWindowArrange; WindowMinimizeAll1: TWindowMinimizeAll; HelpAbout1: TAction; WindowTileVertical1: TWindowTileVertical; WindowTileItem2: TMenuItem; ImageList: TImageList; FileWage: TMenuItem; FilePersonnel: TMenuItem; FileDepartment: TMenuItem; ADOConnection: TADOConnection; FilePost: TMenuItem;

24、 N1: TMenuItem; FileWageCategory: TMenuItem; Image1: TImage; FileUser: TMenuItem; ADOQueryDelete: TADOQuery; FileDataInit: TMenuItem; procedure HelpAbout1Execute(Sender: TObject); procedure FileExitExecute(Sender: TObject); procedure FilePersonnelClick(Sender: TObject); procedure FileDepartmentClick

25、(Sender: TObject); procedure FilePostClick(Sender: TObject); procedure FileWageCategoryClick(Sender: TObject); procedure FileWageClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure FileUserClick(Sender: TObject); procedure FileDataInitClick(Sender: TObject); private Private de

26、clarations public Public declarations end;var MainForm: TMainForm; ShowLogin :Boolean = True;implementation$R *.dfmuses Login, Personnel, Department, Post, Wage, WageCategory, User, About;procedure TMainForm.FileExitExecute(Sender: TObject);begin Close;end;procedure TMainForm.HelpAbout1Execute(Sende

27、r: TObject);begin AboutBox.ShowModal;end;procedure TMainForm.FilePersonnelClick(Sender: TObject);var MDIPersonnel: TMDIPersonnel; i: integer;begin for i:=0 to MDIChildCount-1 do if MDIChildreni is TMDIPersonnel then begin MDIChildreni.BringToFront; if MDIChildreni.WindowState = wsMinimized then MDIC

28、hildreni.WindowState := wsNormal; Exit; end; MDIPersonnel := TMDIPersonnel.Create(Application); MDIPersonnel.Show;end;procedure TMainForm.FileDepartmentClick(Sender: TObject);var MDIDepartment: TMDIDepartment; i: integer;begin for i:=0 to MDIChildCount-1 do if MDIChildreni is TMDIDepartment then beg

29、in MDIChildreni.BringToFront; if MDIChildreni.WindowState = wsMinimized then MDIChildreni.WindowState := wsNormal; Exit; end; MDIDepartment := TMDIDepartment.Create(Application); MDIDepartment.Show;end;procedure TMainForm.FilePostClick(Sender: TObject);var MDIPost: TMDIPost; i: integer;begin for i:=

30、0 to MDIChildCount-1 do if MDIChildreni is TMDIPost then begin MDIChildreni.BringToFront; if MDIChildreni.WindowState = wsMinimized then MDIChildreni.WindowState := wsNormal; Exit; end; MDIPost := TMDIPost.Create(Application); MDIPost.Show;end;procedure TMainForm.FileWageCategoryClick(Sender: TObjec

31、t);var MDIWageCategory: TMDIWageCategory; i: integer;begin for i:=0 to MDIChildCount-1 do if MDIChildreni is TMDIWageCategory then begin MDIChildreni.BringToFront; if MDIChildreni.WindowState = wsMinimized then MDIChildreni.WindowState := wsNormal; Exit; end; MDIWageCategory := TMDIWageCategory.Crea

32、te(Application); MDIWageCategory.Show;end;procedure TMainForm.FileWageClick(Sender: TObject);var MDIWage: TMDIWage; i: integer;begin for i:=0 to MDIChildCount-1 do if MDIChildreni is TMDIWage then begin MDIChildreni.BringToFront; if MDIChildreni.WindowState = wsMinimized then MDIChildreni.WindowStat

33、e := wsNormal; Exit; end; MDIWage := TMDIWage.Create(Application); MDIWage.Show;end;procedure TMainForm.FormActivate(Sender: TObject);begin if ShowLogin then begin LoginBox.ShowModal; if ShowLogin then Close; end;end;procedure TMainForm.FileUserClick(Sender: TObject);var MDIUser: TMDIUser; i: intege

34、r;begin for i:=0 to MDIChildCount-1 do if MDIChildreni is TMDIUser then begin MDIChildreni.BringToFront; if MDIChildreni.WindowState = wsMinimized then MDIChildreni.WindowState := wsNormal; Exit; end; MDIUser := TMDIUser.Create(Application); MDIUser.Show;end;end.4.4 子程序設(shè)計4.4.1 系統(tǒng)登錄unit Login;interfa

35、ceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls;type TLoginBox = class(TForm) ButtonLogin: TButton; ButtonCancel: TButton; LabelUser: TLabel; EditUser: TEdit; LabelPassword: TLabel; EditPassword: TEdit; ADOQueryLogin: TADOQuery; procedur

36、e ButtonLoginClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ButtonCancelClick(Sender: TObject); private Private declarations public Public declarations end;var LoginBox: TLoginBox; LoginTime: Integer=0; implementation$R *.dfmuses Main;procedure TLog

37、inBox.ButtonLoginClick(Sender: TObject);begin if (EditUser.Text) then begin try ADOQueryLogin.Close; ADOQueryLogin.SQL.Clear; ADOQueryLogin.SQL.Add(SELECT COUNT(*) FROM 用戶 WHERE 用戶名=:User AND 密碼=:Password); ADOQueryLogin.Parameters.ParamByName(User).Value:=EditUser.Text; ADOQueryLogin.Parameters.Par

38、amByName(Password).Value:=EditPassword.Text; ADOQueryLogin.Open; if ADOQueryLogin.Fields0.AsInteger=1 then begin ShowLogin:=False; Close; end else begin ShowMessage(用戶名或密碼錯誤!); LoginTime:=LoginTime+1; if LoginTime=3 then Close; end; finally ADOQueryLogin.Close; end; end;end;procedure TLoginBox.FormC

39、lose(Sender: TObject; var Action: TCloseAction);begin Action := caFree;end;procedure TLoginBox.ButtonCancelClick(Sender: TObject);begin Close;end;end.4.4.2 員工管理unit Personnel;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, cxStyles, cxCust

40、omData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, cxNavigator, StdCtrls, Grids, DBGrids, StrUtils, cxDBNavigator, cxGridCustomPopupMenu, cxGridPopupMenu, dxSt

41、atusBar, cxCalendar, cxDropDownEdit, cxCheckBox, cxRadioGroup, cxDBLookupComboBox;type TMDIPersonnel = class(TForm) DataSourcePersonne: TDataSource; ADOQueryPersonne: TADOQuery; cxGrid1DBTableView1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxDBNavigator1: TcxDBNavigator; cx

42、Grid1DBTableView1DBColumn: TcxGridDBColumn; cxGrid1DBTableView1DBColumn1: TcxGridDBColumn; cxGrid1DBTableView1DBColumn2: TcxGridDBColumn; cxGrid1DBTableView1DBColumn3: TcxGridDBColumn; cxGrid1DBTableView1DBColumn4: TcxGridDBColumn; cxGrid1DBTableView1DBColumn5: TcxGridDBColumn; cxGrid1DBTableView1DB

43、Column6: TcxGridDBColumn; cxGrid1DBTableView1DBColumn7: TcxGridDBColumn; cxGrid1DBTableView1DBColumn8: TcxGridDBColumn; cxGrid1DBTableView1DBColumn9: TcxGridDBColumn; cxGrid1DBTableView1DBColumn10: TcxGridDBColumn; cxGrid1DBTableView1DBColumn11: TcxGridDBColumn; DataSourceDepartment: TDataSource; AD

44、OQueryDepartment: TADOQuery; DataSourcePost: TDataSource; ADOQueryPost: TADOQuery; procedure ADOQueryPersonnePostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ADOQueryPersonneBeforeRefresh(DataSet: TDat

45、aSet); private Private declarations public Public declarations end;implementation$R *.dfmuses main;procedure TMDIPersonnel.ADOQueryPersonnePostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);begin if DataSet.Fields0.AsString = then ShowMessage(“員工編號”不能為空!) else if AnsiContainsSt

46、r(e.Message, 重復(fù)數(shù)據(jù)) then ShowMessage(“員工編號”不能重復(fù)!) else if DataSet.Fields1.AsString = then ShowMessage(“姓名”不能為空!) else if DataSet.Fields2.AsString = then ShowMessage(“部門編號”不能為空!) else if DataSet.Fields3.AsString = then ShowMessage(“職務(wù)編號”不能為空!) else if DataSet.Fields4.AsString = then ShowMessage(“入職時間”

47、不能為空!) else ShowMessage(e.Message); Action:=daAbort;end;procedure TMDIPersonnel.FormClose(Sender: TObject; var Action: TCloseAction);begin Action := caFree;end;procedure TMDIPersonnel.ADOQueryPersonneBeforeRefresh(DataSet: TDataSet);begin ADOQueryDepartment.Close; ADOQueryDepartment.Open; ADOQueryPo

48、st.Close; ADOQueryPost.Open;end;end.4.4.3 部門管理unit Department;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridCustomTableView, cxGridTableView, cx

49、GridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, cxNavigator, StdCtrls, Grids, DBGrids, StrUtils, cxDBNavigator, cxGridCustomPopupMenu, cxGridPopupMenu, dxStatusBar;type TMDIDepartment = class(TForm) DataDepartment: TDataSource; ADOQueryDepartment: TADOQuery; cxGrid1DBT

50、ableView1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxDBNavigator1: TcxDBNavigator; cxGrid1DBTableView1DBColumn1: TcxGridDBColumn; cxGrid1DBTableView1DBColumn2: TcxGridDBColumn; procedure ADOQueryDepartmentPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAct

51、ion); procedure FormClose(Sender: TObject; var Action: TCloseAction); private Private declarations public Public declarations end;implementation$R *.dfmuses main;procedure TMDIDepartment.ADOQueryDepartmentPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);begin if DataSet.Field

52、s1.AsString = then ShowMessage(“部門名稱”不能為空!) else if AnsiContainsStr(e.Message, 重復(fù)數(shù)據(jù)) then ShowMessage(“部門名稱”不能重復(fù)!) else ShowMessage(e.Message); Action:=daAbort;end;procedure TMDIDepartment.FormClose(Sender: TObject; var Action: TCloseAction);begin Action := caFree;end;end.4.4.4 職務(wù)管理unit Post;interfa

53、ceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView

54、, cxGrid, cxNavigator, StdCtrls, Grids, DBGrids, StrUtils, cxDBNavigator, cxGridCustomPopupMenu, cxGridPopupMenu, dxStatusBar;type TMDIPost = class(TForm) DataPost: TDataSource; ADOQueryPost: TADOQuery; cxGrid1DBTableView1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxDBNavig

55、ator1: TcxDBNavigator; cxGrid1DBTableView1DBColumn1: TcxGridDBColumn; cxGrid1DBTableView1DBColumn2: TcxGridDBColumn; procedure ADOQueryPostPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction); procedure FormClose(Sender: TObject; var Action: TCloseAction); private Private declara

56、tions public Public declarations end;implementation$R *.dfmuses main;procedure TMDIPost.ADOQueryPostPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);begin if DataSet.Fields1.AsString = then ShowMessage(“職務(wù)名稱”不能為空!) else if AnsiContainsStr(e.Message, 重復(fù)數(shù)據(jù)) then ShowMessage(“職務(wù)名稱”不能重復(fù)!) else ShowMessage(e.Message); Action:=daAbort;end;procedure TMDIPost.FormClose(Sender: TObject; var Action: TCloseAction);begin Action := caFree;end;end.4.4.5 工資管理4.4.6 工資類別管理unit WageCategory;in

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!