大學(xué)計(jì)算機(jī)專業(yè)畢業(yè)論文-人事工資管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).doc
畢業(yè)論文高等教育自學(xué)考試本科畢業(yè)論文(計(jì)算機(jī)信息管理專業(yè))人事工資管理系統(tǒng)申請(qǐng)人 姓名 學(xué) 科 專 業(yè) 計(jì)算機(jī)信息管理 指 導(dǎo) 教 師 長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院二二年十月摘要隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,計(jì)算機(jī)在企業(yè)管理中應(yīng)用的普及,利用計(jì)算機(jī)實(shí)現(xiàn)企業(yè)人事工資的管理勢(shì)在必行。本系統(tǒng)結(jié)合某中型公司實(shí)際的人事、財(cái)務(wù)制度,經(jīng)過實(shí)際的需求分析,采用功能強(qiáng)大的DDLPHI 5做為開發(fā)工具、Paradox7做為數(shù)據(jù)庫開發(fā)出來的單機(jī)版人事管工資理系統(tǒng)。整個(gè)系統(tǒng)從符合操作簡(jiǎn)便、界面友好、靈活、實(shí)用、安全的要求出發(fā),完成人事、工資管理的全過程,包括新進(jìn)員工加入時(shí)人事檔案的建立、老員工的轉(zhuǎn)出、職位等的變動(dòng)引起職工信息的修改、員工信息查詢、統(tǒng)計(jì)等人事管理工作以及新進(jìn)員工工資的新增、老員工工資修改、出盤、工資短信等工資管理工作。經(jīng)過實(shí)際使用證明,本文所設(shè)計(jì)的人事工資管理系統(tǒng)可以滿足某中型公司人事、工資管理方面的需要。論文主要介紹了本課題的開發(fā)背景,所要完成的功能和開發(fā)的過程。重點(diǎn)的說明了系統(tǒng)設(shè)計(jì)的重點(diǎn)、設(shè)計(jì)思想、難點(diǎn)技術(shù)和解決方案。關(guān)鍵詞:數(shù)據(jù)庫,Paradox7,Delph 5,出盤,工資短信、人事工資管理目 錄第一章 緒 論51.1 課題來源51.2 開發(fā)工具的選擇51.3 本文所作工作6第二章 需求分析82.1 總體需求調(diào)查82.1.1 組織結(jié)構(gòu)圖82.1.2 系統(tǒng)目標(biāo)82.1.3 應(yīng)用現(xiàn)狀調(diào)查82.1.4業(yè)務(wù)總體流程調(diào)查82.2系統(tǒng)功能調(diào)查92.2.1人事管理功能102.2.2工資管理功能102.2.3系統(tǒng)維護(hù)功能102.3系統(tǒng)功能模塊圖10第三章 概要設(shè)計(jì)113.1概念設(shè)計(jì)113.2數(shù)據(jù)庫設(shè)計(jì)133.2.1 ygzlb(員工資料表)133.2.2 Yhklb用戶口令表143.2.3 Ygxjjgb員工薪金結(jié)構(gòu)表143.2.4 Kjcsb控制參數(shù)表153.2.5 Jbcsb基本參數(shù)表16第四章 詳細(xì)設(shè)計(jì)174.1啟動(dòng)界面設(shè)計(jì)174.1.1 功能說明174.1.2屏幕格式設(shè)計(jì)174.2 登錄窗口設(shè)計(jì)174.2.1功能說明174.2.2屏幕格式設(shè)計(jì)184.2.3源程序分析184.3 主窗口設(shè)計(jì)194.3.1功能說明194.3.2屏幕格式設(shè)計(jì)204.3.3源程序分析214.4人事管理模塊的實(shí)現(xiàn)244.4.2員工基本信息維護(hù)274.4.3員工基本信息查看:294.4.4員工基本信息條件查詢304.4.5人事狀況曲線:324.4.6企業(yè)員工花名冊(cè):334.5 工資管理模塊的實(shí)現(xiàn)334.5.1出盤334.5.2員工工資結(jié)構(gòu)調(diào)整474.5.3工資短信504.6系統(tǒng)維護(hù)模塊設(shè)計(jì)544.6.1基本參數(shù)維護(hù)544.6.2 用戶管理554.7系統(tǒng)其它功能的實(shí)現(xiàn)564.7.1 打開計(jì)算器564.7.2打開寫字板574.7.3窗口的層疊、平鋪、極小化操作574.7.4關(guān)于窗口的實(shí)現(xiàn)57第五章 畢業(yè)設(shè)計(jì)小結(jié)57第一章 緒 論 1.1 課題來源隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,計(jì)算機(jī)在企業(yè)管理中應(yīng)用的普及,利用計(jì)算機(jī)實(shí)現(xiàn)企業(yè)人事工資的管理勢(shì)在必行。對(duì)于大中型企業(yè)來說,利用計(jì)算機(jī)支持企業(yè)高效率完成勞動(dòng)人事管理的日常事務(wù),是適應(yīng)現(xiàn)代企業(yè)制度要求、推動(dòng)企業(yè)勞動(dòng)人事管理走向科學(xué)化、規(guī)范化的必要條件;而工資管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作,工資計(jì)算、發(fā)放、核算的工作量很大,一般不允許出錯(cuò),如果實(shí)行手工操作,每月發(fā)放工資須手工填制大量的表格,這就會(huì)耗費(fèi)工作人員大量的時(shí)間和精力,計(jì)算機(jī)進(jìn)行工資發(fā)放工作,不僅能夠保證工資核算準(zhǔn)確無誤、快速輸出,而且還可以利用計(jì)算機(jī)對(duì)有關(guān)工資的各種信息進(jìn)行統(tǒng)計(jì),服務(wù)于財(cái)務(wù)部門其他方面的核算和財(cái)務(wù)處理,同時(shí)計(jì)算機(jī)具有著手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事工資資管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。不同的企業(yè)具有不同的人事、工資管理制度,這就決定了不同的企業(yè)需要不同的人事工資管理系統(tǒng)。某中型公司以前的所有資料都是用Foxbase來進(jìn)行管理的,面對(duì)目前的實(shí)際狀況,迫切需要開發(fā)一個(gè)新系統(tǒng)來適應(yīng)這一些工作。1.2 開發(fā)工具的選擇現(xiàn)在,市場(chǎng)上可以選購的應(yīng)用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國(guó)市場(chǎng)上最為流行、使用最多、最為先進(jìn)的可用作企業(yè)級(jí)開發(fā)工具的產(chǎn)品有:Microsoft公司的Visual BasicMicrosoft公司的Visual CBorland公司的Delphi Powersoft公司的PowerBuliderJava等等在目前市場(chǎng)上這些眾多的程序開發(fā)工具中,有些強(qiáng)調(diào)程語言的彈性與執(zhí)行效率;有些則偏重于可視化程序開發(fā)工具所帶來的便利性與效率的得高,各有各的優(yōu)點(diǎn)和特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒有彈性的語言作支持,許多特殊化的處理動(dòng)作必需要耗費(fèi)數(shù)倍的工夫來處理,使得原來所標(biāo)榜的效率提高的優(yōu)點(diǎn)失去了作用;相反,如果只強(qiáng)調(diào)程語言的彈性,卻沒有便利的工具作配合,會(huì)使一些即使非常簡(jiǎn)單的界面處理動(dòng)作,也會(huì)嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師的寶貴時(shí)間。作為數(shù)據(jù)庫系統(tǒng)的開發(fā),Delphi是一個(gè)非常理想選擇。Delphi因簡(jiǎn)單易學(xué)、功能強(qiáng)大、編譯速度快而從眾多的軟件開發(fā)工具中脫穎而出。它提供了靈活的可視化設(shè)計(jì)工具,將可視化界面與面向?qū)ο蠹夹g(shù)完善、緊密地結(jié)合起來,并封裝了Windows編程的復(fù)雜性。程序的規(guī)模小到簡(jiǎn)單的個(gè)人數(shù)據(jù)庫應(yīng)用,大到復(fù)雜的企業(yè)的多層次分布式系統(tǒng),都可以使用Delphi進(jìn)行開發(fā),其友好的集成開發(fā)界面,可視化的雙向開發(fā)模式,良好的數(shù)據(jù)庫應(yīng)用支持高效的程序開發(fā)和程序運(yùn)行,備受廣大程序開發(fā)人員的好評(píng)。尤其是Delphi對(duì)數(shù)據(jù)庫應(yīng)用的強(qiáng)大支持,大大提高了數(shù)據(jù)庫應(yīng)用軟件開發(fā)的效率,縮短了開發(fā)周期,深受廣大數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì)人員的喜愛。Delphi為數(shù)據(jù)庫應(yīng)用開發(fā)人員提供了豐富的數(shù)據(jù)庫開發(fā)組件,使數(shù)據(jù)庫應(yīng)用開發(fā)功能更強(qiáng)大,控制更靈活,編譯后的程序運(yùn)行速度更快。本系統(tǒng)采用Dephi 5而不選擇Dephi 6、Dephi 7是因?yàn)殚_發(fā)移動(dòng)2000綜合業(yè)務(wù)管理系統(tǒng)的過程中發(fā)現(xiàn)其穩(wěn)定性比較好,所以到現(xiàn)在還用它。 1.3 本文所作工作第一章 緒論部分 主要敘述課題提出背景、目前應(yīng)用現(xiàn)狀、分析比較當(dāng)前開發(fā)工具,數(shù)據(jù)庫技術(shù)的比較。第二章 結(jié)合軟件工程方法,對(duì)系統(tǒng)進(jìn)行需求分析、功能劃分、數(shù)據(jù)流圖設(shè)計(jì),并結(jié)合數(shù)據(jù)庫原理和功能劃分進(jìn)行ER圖的繪制、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì),第三章 根據(jù)需求分析的結(jié)果,用戶概念數(shù)據(jù)模型表示數(shù)據(jù)及其相互間的聯(lián)系。第四章 根據(jù)需求分析的結(jié)果,對(duì)系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),主要介紹用Delphi和Pradox實(shí)現(xiàn)每一個(gè)模塊的具體功能。第五章 畢業(yè)設(shè)計(jì)小結(jié),總結(jié)部分介紹了設(shè)計(jì)體會(huì)和編程體會(huì),并指出了系統(tǒng)設(shè)計(jì)中的不足和改進(jìn)的方向。第二章 需求分析2.1 總體需求調(diào)查2.1.1 組織結(jié)構(gòu)圖某中型公司組織結(jié)構(gòu)圖如下2.1.2 系統(tǒng)目標(biāo)采用公司現(xiàn)有的軟硬件軟件及科學(xué)的管理系統(tǒng)開發(fā)方案,建立某中型人事工資管理系統(tǒng),實(shí)現(xiàn)移動(dòng)人事工資管理的計(jì)算機(jī)自動(dòng)化。系統(tǒng)應(yīng)符合公司人事、工資管理制度,并達(dá)到操作直觀、方便、實(shí)用、安全等要求。2.1.3 應(yīng)用現(xiàn)狀調(diào)查 目前,公司使用的人事工資管理系統(tǒng)采用的是DOS環(huán)境下的Foxbase數(shù)據(jù)庫,界面不友好,不能適應(yīng)移動(dòng)公司發(fā)展的需要。2.1.4業(yè)務(wù)總體流程調(diào)查 維護(hù)員工基本信息維護(hù)員工工資信息數(shù)據(jù)統(tǒng)計(jì)表格制作出盤結(jié)束開始維護(hù)員工基本信息:人事管理主要負(fù)責(zé)人員基本信息的維護(hù),包括新進(jìn)員工檔案的建立,員工信息的修改。公司工資管理基本流程如下:數(shù)據(jù)來源:將各部門送達(dá)的員工工資信息包括基本工資、獎(jiǎng)金、水電費(fèi)等作為數(shù)據(jù)來源,分為新增員工工資數(shù)據(jù)和老員工每月修改數(shù)據(jù)。數(shù)據(jù)的輸入:由工作人員通過新員工本月工資增加和老員工上月工資表修改完成。數(shù)據(jù)的統(tǒng)計(jì):由工作人員通過對(duì)修改后的上月工資表進(jìn)行計(jì)算得到每個(gè)人的實(shí)發(fā)工資以及總金額。表格的制作:由工作人員以修改、計(jì)算后的在上月工資表為藍(lán)本生成與銀行進(jìn)行數(shù)據(jù)交換的軟件即出盤。同時(shí)可打印工資報(bào)表。2.2系統(tǒng)功能調(diào)查整個(gè)系統(tǒng)從總體上分為人事管理、工資管理、系統(tǒng)維護(hù)三大部分,每一部分應(yīng)實(shí)現(xiàn)的功能如下:2.2.1人事管理功能 新員工檔案的輸入: 員工基本信息維護(hù):包括修改、刪除(刪除員工只是將該員工登記為無效,并不要求從表中刪除). 員工基本信息查看: 員工基本信息查詢:支持多條件查詢,可以選擇某一部門、某一職位、某一職稱、學(xué)歷、性別等進(jìn)行查詢,也可以組合查詢。 人事狀況曲線: 企業(yè)員工花名冊(cè):2.2.2工資管理功能 新員工工資新增: 員工工資修改: 出盤:按所規(guī)定的格式生成與銀行進(jìn)行數(shù)據(jù)交換的軟件,一般為文本文件 出盤出錯(cuò)回滾: 工資短信:將員工本月工資信息通過短信發(fā)出,并通知領(lǐng)工資時(shí)間。2.2.3系統(tǒng)維護(hù)功能 部門信息維護(hù):實(shí)現(xiàn)靈活的增減部門信息 職務(wù)信息維護(hù):實(shí)現(xiàn)靈活的增減職務(wù)信息 職稱信息維護(hù):實(shí)現(xiàn)靈活的增減職稱信息 工資賬目維護(hù):能夠靈活的改變員工的薪水賬目。 用戶管理:包括新增用戶、刪除用戶、修改用戶密碼等。2.3系統(tǒng)功能模塊圖株洲移動(dòng)人事工資管理系統(tǒng)新增用戶修改密碼刪除用戶工資管理模塊工資短信新員工工資新增老員工工資維護(hù)出 盤工資報(bào)表系統(tǒng)維護(hù)模塊工資賬目維護(hù)職務(wù)信息維護(hù)部門信息維護(hù)職稱信息維護(hù)用戶管理人事管理模塊新員工檔案的新增員工基本信息維護(hù)員工基本信息查看員工基本信息查詢?nèi)耸聽顩r曲線分析企業(yè)員工花名冊(cè)第三章 概要設(shè)計(jì)3.1概念設(shè)計(jì)概要設(shè)計(jì)基礎(chǔ)是完成需求分析后提供的需求說明書,用概念數(shù)據(jù)模型表示數(shù)據(jù)及其相互間的關(guān)系,這種數(shù)據(jù)模型是與DBMS無關(guān)的、面向現(xiàn)實(shí)世界的、易如理解的數(shù)據(jù)模型,其獨(dú)立于計(jì)算機(jī)的數(shù)據(jù)模型,獨(dú)立于計(jì)算機(jī)的軟硬件系統(tǒng),與用戶進(jìn)行交流十分方便。概念性數(shù)據(jù)模型關(guān)心的是如何完整、正確地反映客觀實(shí)際情況,不關(guān)心在數(shù)據(jù)庫中如何實(shí)現(xiàn)。這種數(shù)據(jù)模式能真實(shí)地反應(yīng)用戶要求的實(shí)際情況,是一種容易被人們理解的直觀的數(shù)據(jù)庫結(jié)構(gòu)模式。同時(shí)也是一種相對(duì)穩(wěn)定統(tǒng)一的數(shù)據(jù)模式,一般情況下很少變動(dòng)。概念性數(shù)據(jù)在用戶和設(shè)計(jì)者之間建立了橋梁。是設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)的基礎(chǔ)。概念設(shè)計(jì)中自頂向下的實(shí)體分析方法,即常用的實(shí)體聯(lián)系模型(簡(jiǎn)稱E-R模型),對(duì)具體數(shù)據(jù)進(jìn)行抽象加工,將實(shí)體集合抽象成實(shí)體類型。用實(shí)體間聯(lián)系反映現(xiàn)實(shí)世界事物間的內(nèi)在聯(lián)系。E-R模型是建立概念性數(shù)據(jù)模型的有力工具。通過對(duì)企業(yè)員工管理內(nèi)容、工資管理內(nèi)容和過程的分析,本系統(tǒng)應(yīng)設(shè)計(jì)的實(shí)體和屬性如下:?jiǎn)T工(包括員工工號(hào)、員工姓名、學(xué)歷、性別、政治面貌、出生日期、所屬部門、職稱、職務(wù)、入職時(shí)間、身份證號(hào)、聯(lián)系電話、家庭住址、手機(jī)號(hào)碼、Email、有效標(biāo)志)部門(部門代號(hào)、部門名稱)職務(wù)(職務(wù)代號(hào)、職務(wù)名稱)職稱(職稱代號(hào)、職稱名稱)薪金結(jié)構(gòu)(月份、員工工號(hào)、薪水帳目、數(shù)目)薪水帳目(薪水帳目代號(hào)、薪水帳目名稱)員工工號(hào)員工姓名學(xué)歷性別政治面貌出生日期所屬部門職稱職務(wù)所屬部門身份證號(hào)家庭住址聯(lián)系電話手機(jī)號(hào)碼Email有效標(biāo)志員工部門部門代號(hào)部門名稱職務(wù)職務(wù)代號(hào)職務(wù)名稱職稱職稱代號(hào)職稱名稱薪水帳目名稱薪水帳目薪水帳目代號(hào)薪金結(jié)構(gòu)薪水帳目月份數(shù)目員工工號(hào)實(shí)體和實(shí)體之間的關(guān)系E-R圖如下:部門職稱職務(wù)員工屬于具有擔(dān)任薪金結(jié)構(gòu)薪水賬目具有1:N具有1:N3.2數(shù)據(jù)庫設(shè)計(jì)作為Borland公司的桌面數(shù)據(jù)庫,Paradox在Delphi中的應(yīng)用非常廣泛,為此我選用Paradox數(shù)據(jù)庫來進(jìn)行數(shù)據(jù)庫的邏輯設(shè)計(jì)。根據(jù)前面定義的實(shí)體及實(shí)休之間的關(guān)系,形成數(shù)據(jù)庫的表格以及各個(gè)表之間的關(guān)系。為了減少數(shù)據(jù)冗余度,將職稱實(shí)體、部門實(shí)體、職務(wù)實(shí)體、薪水帳目實(shí)體放在同一個(gè)表里,以一個(gè)類型字段加以區(qū)分。對(duì)個(gè)關(guān)系選擇主健,按照關(guān)系模式的規(guī)范化進(jìn)行規(guī)范,消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的分離。3.2.1 ygzlb(員工資料表)序號(hào)域名域中文名域類型備注1Ygh員工工號(hào)Alpha(6)主鍵2Xm員工姓名Alpha (12)3Xb性別Alpha(2)4Zzmm政治面貌Alpha(4)5Xl學(xué)歷Alpha(12)6Qsrq出生日期Alpha(19)7Ssbm所屬部門Alpha(30)8Zc職稱Alpha(30)9Zw職務(wù)Alpha(30)10Rzsj入職時(shí)間Alpha(19)11Sfzh身份證號(hào)Alpha(20)12Gdlxdh聯(lián)系電話Alpha(16)13Jtzz家庭住址Alpha(60)14Sjhm手機(jī)號(hào)碼Alpha(12)15EmailEmailAlpha(20)16Yxbz有效標(biāo)志Short1代表有效員工;9代表無效員工17Czy操作員Alpha(20)18Czrq操作時(shí)間Alpha(19)說明:?jiǎn)T工基本信息表用于存儲(chǔ)員工基本信息,為保證數(shù)據(jù)的一致和歷史資料的完整,表的記錄在一般的情況不能被刪除,如果發(fā)生員工離職,只更改其有效標(biāo)志為9。3.2.2 Yhklb用戶口令表序號(hào)域名域中文名域類型備注1Dlgh登錄工號(hào)Alpha(20)主鍵2Pswd口令A(yù)lpha (10)說明:為了便于多個(gè)用戶管理該系統(tǒng),建立此表,記錄用戶的登錄工號(hào)和口令3.2.3 Ygxjjgb員工薪金結(jié)構(gòu)表序號(hào)域名域中文名域類型備注1Yf月份Alpha(6)主鍵2Ygh員工工號(hào)Alpha(6)主鍵3Xszmid薪水帳目IDShort主鍵4Sm數(shù)目Money5Czy操作員Alpha(6)6Czsj操作時(shí)間Alpha(19)說明:?jiǎn)T工薪金結(jié)構(gòu)表采用豎表結(jié)構(gòu),便于以后薪水帳目的新增,利于系統(tǒng)保持較長(zhǎng)時(shí)間的適用。同時(shí)該表采用月帳的形式,便于歷史資料的穩(wěn)定查詢,和統(tǒng)計(jì),同時(shí)也能做到出盤發(fā)生錯(cuò)誤時(shí),進(jìn)行回滾。在準(zhǔn)備當(dāng)前月份的數(shù)據(jù)的時(shí)候,將同時(shí)校驗(yàn)該員工的有效性。如果是無效員工,則系統(tǒng)將不會(huì)顯示該員工的資料。但在歷史月份還是將體現(xiàn)該員工的資料。系統(tǒng)將根據(jù)基本參數(shù)表中的工資帳目的費(fèi)用影響關(guān)系(1或-1)來形成員工的應(yīng)發(fā)工資和實(shí)發(fā)工資。3.2.4 Kjcsb控制參數(shù)表序號(hào)域名域中文名域類型備注1Yf序列Short主鍵2Csdm參數(shù)代碼Alpha(20)3Csmc參數(shù)名稱Alpha(40)4Czy操作員Alpha(6)5Czsj操作時(shí)間Alpha(19)說明:控制參數(shù)表用于控制出盤,在每次出盤成功后,會(huì)在該表中插入一條記錄,以記錄該月是否已經(jīng)出盤;在需要再次出盤的時(shí)候,系統(tǒng)將會(huì)首先判斷該月的出盤標(biāo)志,如果已經(jīng)出盤,則對(duì)數(shù)據(jù)庫不做操作,僅僅在界面上進(jìn)行出盤,生成TXT文本文件,如果未出盤則需要對(duì)數(shù)據(jù)庫進(jìn)行操作(將該月的數(shù)據(jù)重新插入數(shù)據(jù)庫,作為下個(gè)月出盤的初始數(shù)據(jù))3.2.5 Jbcsb基本參數(shù)表序號(hào)域名域中文名域類型備注1IDIDShort主鍵2Lx參數(shù)類型Short1:薪水帳目;2:部門代碼;3:職務(wù)代碼;4:職稱代碼3Mc參數(shù)名稱Alpha(30)4Czy操作員Alpha(20)5Czsj操作時(shí)間Alpha(19)6Rela費(fèi)用影響關(guān)系Short-1代表該項(xiàng)目對(duì)實(shí)發(fā)工資是負(fù)的影響;1代表該項(xiàng)目對(duì)實(shí)發(fā)工資是正的影響;3.2.6工資短信表序號(hào)域名域中文名域類型備注1ygh員工號(hào)Alpha(6)主鍵2sfgz實(shí)發(fā)工資Alpha(10)說明:基本參數(shù)表用于維護(hù)系統(tǒng)的一些基本參數(shù),例如職務(wù),職稱,工資帳目等、部門。員工信息表和員工薪金結(jié)構(gòu)表通過員工ID進(jìn)行關(guān)聯(lián);可得知每個(gè)員工的工資明細(xì)情況;員工薪金結(jié)構(gòu)表中的帳目ID在基本參數(shù)表中進(jìn)行定義;員工信息表的職務(wù)ID和職稱ID和部門ID也在基本參數(shù)表中進(jìn)行定義; 工資短信表:是為便于發(fā)送工資短信信息而建立的,只保存當(dāng)前月的工資數(shù)據(jù)。第四章 詳細(xì)設(shè)計(jì) 根據(jù)需求分析、概要設(shè)計(jì)的結(jié)果,采用Delphi做為開發(fā)工具,實(shí)現(xiàn)公司人事工資管理各模塊的功能。4.1啟動(dòng)界面設(shè)計(jì)4.1.1 功能說明系統(tǒng)運(yùn)行時(shí),首先彈出此啟動(dòng)窗口,4秒鐘后自動(dòng)關(guān)閉出現(xiàn)主窗口和登錄窗口,實(shí)現(xiàn)此界面主要是修改了工程文件,并調(diào)用了一個(gè)延時(shí)函數(shù),實(shí)現(xiàn)起來很簡(jiǎn)單,源程序不加以介紹。4.1.2屏幕格式設(shè)計(jì)啟動(dòng)界面4.2 登錄窗口設(shè)計(jì)4.2.1功能說明控制員工登錄,防止非法用戶闖入本系統(tǒng),保證系統(tǒng)的安全,輸入口令時(shí)屏幕顯示為“*”以利保密。4.2.2屏幕格式設(shè)計(jì)登錄界面4.2.3源程序分析procedure TFrm_dl.Button1Click(Sender: TObject);begin if edit2.text= then /判斷密碼是否輸入為空 begin Application.MessageBox(密碼不能為空,請(qǐng)重新輸入!,系統(tǒng)提示,mb_IconInformation+mb_OK); Edit2.SetFocus; Exit; end; query1.sql.clear; query1.sql.add(select pswd from yhklb where dlyh=+trim(edit1.text)+); if query1.Active then query1.close; query1.open; /根據(jù)用戶名從用戶口令表中取出用戶口令 if edit2.textquery1.fieldbyname(pswd).asstring then begin if err_cou=2 then /判斷是否三次輸入錯(cuò)誤 begin application.messagebox(三次登錄的用戶名或密碼錯(cuò)誤, 系統(tǒng)退出,mb_IconInformation+mb_OK); frm_main.close; /關(guān)閉主窗口,退出系統(tǒng) end; Application.MessageBox(密碼或工號(hào)不正確,請(qǐng)重新輸入!,mb_IconInformation+mb_OK); /若密碼輸入錯(cuò)誤,提示重新輸入 Edit2.SetFocus; err_cou:=err_cou+1; /輸入次數(shù)加1 exit; end; dluser:=edit1.text; /給變量賦值,記錄登錄用戶,供其它程序使用 Close; end;4.3 主窗口設(shè)計(jì)4.3.1功能說明界面采用MDI方式,可同時(shí)打開幾處子窗口體,在界面上放置了菜單欄和工具欄、狀態(tài)欄;菜單欄集中了系統(tǒng)操作的入口,各功能模塊的執(zhí)行從此進(jìn)入;工具框顯示了系統(tǒng)菜單中常用項(xiàng)目的快鍵圖標(biāo),使用戶只需點(diǎn)擊相應(yīng)圖標(biāo)即可進(jìn)入相應(yīng)功能模塊,當(dāng)鼠標(biāo)移動(dòng)到相應(yīng)圖標(biāo)時(shí),系統(tǒng)會(huì)出現(xiàn)提示信息。狀態(tài)欄主要是用于顯示日期時(shí)鐘信息,以及系統(tǒng)操作過程中的信息。4.3.2屏幕格式設(shè)計(jì)系統(tǒng)主界面4.3.3源程序分析procedure TFrm_main.N20Click(Sender: TObject); /菜單關(guān)閉事件beginclose; end;procedure TFrm_main.N_shutdownClick(Sender: TObject);件begin /菜單退出系統(tǒng)并關(guān)機(jī)事件if messagedlg(是否退出并關(guān)閉計(jì)算機(jī)?,mtinformation,mbyes,mbno,1)=mryes thenbegin close; ExitWindowsEx( EWX_FORCE or EWX_SHUTDOWN, 0 ); /調(diào)用API函數(shù)end;end;procedure TFrm_main.N_closeClick(Sender: TObject);beginclose;end;procedure TFrm_main.N_bmcxwhClick(Sender: TObject);/打開部門參數(shù)維護(hù)窗口begin Application.CreateForm(TFrm_bmxg, Frm_bmxg);if frm_bmxg.query1.active then frm_bmxg.query1.close; /判斷Query是否打開frm_bmxg.query1.open; /打開Queryend;procedure TFrm_main.N_zwwhClick(Sender: TObject); /打開職務(wù)參數(shù)維護(hù)窗口begin Application.CreateForm(TFrm_zwxg, Frm_zwxg); if frm_zwxg.query1.active then frm_zwxg.query1.close; frm_zwxg.query1.open;end;procedure TFrm_main.N_ygjbxxsrClick(Sender: TObject);/打開新增員工信息窗口beginApplication.CreateForm(Tfrm_ygzbxxsr, frm_ygzbxxsr);end;procedure TFrm_main.N_yhwhClick(Sender: TObject);/打開用戶維護(hù)窗口beginApplication.CreateForm(TFrm_yhgl, Frm_yhgl); if frm_yhgl.query1.active then frm_yhgl.query1.close; frm_yhgl.query1.open;end;procedure TFrm_main.Timer1Timer(Sender: TObject); var y,m,d:word; /在狀態(tài)欄上顯示日期時(shí)間星期 begin decodedate(now,y,m,d); statusbar1.Panels1.text:=concat(【,inttostr(y),年,inttostr(m),月,inttostr(d),日 ,formatdatetime(hh:nn:ssAM/PM,now) ,f_get_week,】);/調(diào)用函數(shù)f_get_week end;procedure TFrm_main.N_zcwhClick(Sender: TObject);/打開職稱維護(hù)窗口beginApplication.CreateForm(TFrm_zcxg, Frm_zcxg); if frm_zcxg.query1.active then frm_zcxg.query1.close; frm_zcxg.query1.open;end;procedure TFrm_main.N_ygzbxxwhClick(Sender: TObject);/打開員工信息維護(hù)窗口beginApplication.CreateForm(Tfrm_ygzbxxwh, frm_ygzbxxwh);end;procedure TFrm_main.N_zbxxckClick(Sender: TObject); /打開員工信息查看窗口beginApplication.CreateForm(Tfrm_llygzbxx, frm_llygzbxx);end;procedure TFrm_main.N_tjcxClick(Sender: TObject); /打開員工信息條件查詢窗口beginApplication.CreateForm(Tfrm_ygzlcx, frm_ygzlcx);end;procedure TFrm_main.N_gzzmwhClick(Sender: TObject);/打開薪水帳目維護(hù)窗口beginApplication.CreateForm(TFrm_gzzmwh, Frm_gzzmwh);if Frm_gzzmwh.query1.active then Frm_gzzmwh.query1.close;Frm_gzzmwh.query1.open;end;procedure TFrm_main.N_cpClick(Sender: TObject); /打開出盤窗口beginApplication.CreateForm(Tfrm_cp, frm_cp);end;procedure TFrm_main.N_gzdxClick(Sender: TObject); /打開工資短信窗口beginfrm_gzdx:=Tfrm_gzdx.create(application);frm_gzdx.showmodal;frm_gzdx.free;end;procedure TFrm_main.N_jsbClick(Sender: TObject); /打開寫字板beginShellExecute(handle,open,notepad.exe,nil,nil,SW_ShowNormal);/調(diào)用API函數(shù)end;procedure TFrm_main.N_jsqClick(Sender: TObject); /打開計(jì)算器beginShellExecute(handle,open,calc.exe,nil,nil,SW_ShowNormal); end;procedure TFrm_main.N_ppClick(Sender: TObject); /實(shí)現(xiàn)窗口平鋪begin TileMode := tbVertical; Tile;end;procedure TFrm_main.N_cdClick(Sender: TObject); /實(shí)現(xiàn)窗口層疊beginCascade;end;procedure TFrm_main.N_jxhClick(Sender: TObject); /實(shí)現(xiàn)窗口極小化var i:integer;beginwith frm_main do begin for i := MDIchildcount-1 downto 0 do MDIChildreni.Windowstate := wsMinimized; end;end;procedure TFrm_main.N_aboutClick(Sender: TObject); /打開關(guān)于本系統(tǒng)窗口beginApplication.CreateForm(Tfrm_about, frm_about);end;function Tfrm_main.f_get_week :string; /獲取星期函數(shù)var days: array1.7 of string;begin days1 := 星期日; days2 := 星期一; days3 := 星期二; days4 := 星期三; days5 := 星期四; days6 := 星期五; days7 := 星期六; result :=daysDayOfWeek(now);end;procedure TFrm_main.N_ygzlbbClick(Sender: TObject); /生成企業(yè)員工花名冊(cè)beginfrm_ygbb:=Tfrm_ygbb.create(application);if frm_ygbb.Query1.active then frm_ygbb.Query1.close;frm_ygbb.Query1.open;frm_ygbb.QuickRep1.Prepare;frm_ygbb.QuickRep1.Preview;frm_ygbb.Free;end;procedure TFrm_main.N_rsqxfxClick(Sender: TObject); begin /打開人事狀況曲線分析窗口 Application.CreateForm(Tfrm_rsqkqxfs, frm_rsqkqxfs); if frm_rsqkqxfs.Query1.Active then frm_rsqkqxfs.Query1.Close; frm_rsqkqxfs.Query1.open;end;end.4.4人事管理模塊的實(shí)現(xiàn)4.4.1員工基本信息輸入4.4.1.1功能說明完成新員工人事檔案的建立,初始狀態(tài)下所有輸入和選擇框框均無效,只有點(diǎn)新增按鈕后才可用,同時(shí)提交按鈕變成有效。4.4.1.2屏幕格式說明新員工資料錄入界面4.4.1.3源程序分析/增加按鈕事件,只是將各輸入框和提交按鈕置為可用。procedure Tfrm_ygzbxxsr.Button3Click(Sender: TObject); /提交按鈕事件var Sql: String; qsrq,rzsj,czdate: String;beginqsrq:=FormatDatetime(YYYY-MM-DD,datetimepicker1.Datetime); /出生日期rzsj:=FormatDatetime(YYYY-MM-DD,datetimepicker2.Datetime); /入職時(shí)間czdate := FormatDatetime(YYYY-MM-DD HH:MM:SS,Now); /操作時(shí)間if Application.MessageBox(您確認(rèn)要提交嗎?,系統(tǒng)提示,mb_IconInformation+mb_OK+mb_OKCancel)=IDCancel then Exit; begin if (Edit1.text=) or (Edit2.text=) then begin Application.MessageBox(姓名不能為空或員工號(hào)不能為空!,系統(tǒng)提示,mb_IconInformation+mb_OK); Exit; end; if trim(DBLookupComboBox1.Text) = then begin showmessage(請(qǐng)選擇部門);exit;end; if trim(DBLookupComboBox2.Text) = then begin showmessage(請(qǐng)選擇職務(wù));exit;end; if trim(DBLookupComboBox3.Text) = then begin showmessage(請(qǐng)選擇職稱);exit;end; sql:=select * from ygzlb where ygh=+trim(edit1.text)+; /根據(jù)此員工號(hào)是否已存在 query1.sql.clear; query1.sql.add(sql); if query1.Active then query1.close; query1.open; if not query1.isempty then begin showmessage(此員工號(hào)已存在,請(qǐng)重新輸入員工號(hào)); edit1.selectall; edit1.setfocus; exit; end else begin /執(zhí)行插入操作,往員工資料表中插入一條記錄 sql:=insert into ygzlb(ygh,xm,xb,xl,qsrq,ssbm,zc,zw,rzsj,sfzh,jtzz,gdlxdh, +sjhm,email,zzmm,yxbz,czy,czrq) +values(+Trim(Edit1.Text)+,+trim(Edit2.text)+, +combobox1.text+,+combobox3.text+,+qsrq+,+DBLookupComboBox1.keyvalue+, +DBLookupComboBox3.keyvalue+,+DBLookupComboBox2.keyvalue+,+rzsj+,+edit3.text+, +trim(edit4.text)+,+trim(edit7.text)+,+trim(edit6.text)+,+trim(edit5.text)+, +combobox2.text+,1,+dluser+,+czDate+); query1.sql.clear; query1.sql.add(sql); query1.execsql; if Application.MessageBox(該記錄提交成功,繼續(xù)提交嗎?,系統(tǒng)提示,mb_IconInformation+mb_OK+mb_OKCancel)=IDCancel then begin Button3.Enabled := False; Exit; end; button1.Click; end; end;end;4.4.2員工基本信息維護(hù)4.4.2.1功能說明包括修改、刪除(刪除員工只是將該員工登記為無效,并不要求從表中刪除).輸入員工號(hào)后按回車或點(diǎn)擊查詢按鈕,查詢待修改員工基本信息,各輸入框初始狀態(tài)為只讀,4.4.2.2屏幕格式說明4.4.2.3源程序分析4.4.3員工基本信息查看:4.4.3.1功能說明用于瀏覽員工的基本信息,采用卡片式和表格式兩種形式表現(xiàn)員工的基本信息,瀏覽時(shí)應(yīng)具有瀏覽前一條記錄、后一條記錄、最前一條、最后一條記錄的功能。實(shí)現(xiàn)采用pagecontrol控件,中間放置兩個(gè)Tablesheet,其中一個(gè)放置Dbgrid按件實(shí)現(xiàn)表格式瀏覽,另一個(gè)放置Dbedti控件,實(shí)現(xiàn)卡片式瀏覽。由于只涉及到查詢不做源程序分析。4.4.3.2屏幕格式說明 瀏覽員工基本信息界面4.4.4員工基本信息條件查詢4.4.4.1功能說明可以根據(jù)不同的條件組合,查詢員工的基本信息,查詢條件包括所屬部門、職稱、職務(wù)、學(xué)歷、性別、政治面貌、員工號(hào)、姓名,和條件可以任意組合。同時(shí)應(yīng)具有查詢標(biāo)專為無效的員工的作用。系統(tǒng)同時(shí)應(yīng)提供Excel輸出和打印的功能。多條件查詢是本模塊重點(diǎn)考慮的內(nèi)容,本設(shè)計(jì)完成了對(duì)多字段、多條件的查詢,其實(shí)現(xiàn)程序如源程序分析:4.4.4.2屏幕格式說明 員工資料查詢界面4.4.4.3源程序分析4.4.5人事狀況曲線:4.4.1.1功能說明采用餅狀圖分析公司的人事狀況,實(shí)現(xiàn)按性別、職稱、職務(wù)、學(xué)歷、部門五種情況分析公司人員的分布情況,直觀的分析了公司的人力資源情況,用以輔助公司領(lǐng)導(dǎo)安排人力資源計(jì)劃,采用Dbchart控件可以方便的實(shí)現(xiàn),不做程序分析。4.4.6企業(yè)員工花名冊(cè):4.4.6.1功能說明為了保存企業(yè)員工信息,生成公司員工花名冊(cè),設(shè)計(jì)了此報(bào)表打印模塊,通過采用QuickReport控件可能方便實(shí)現(xiàn),由于無特殊之處,在此不做源程序分析。4.5 工資管理模塊的實(shí)現(xiàn)4.5.1出盤4.5.1.1 功能說明選擇月份出盤,打印工資清單,出軟盤與銀行接口,一般不準(zhǔn)刪除歷史月份,不能修改,只能查詢,如需對(duì)本月工資信息進(jìn)行維護(hù),見新員工工資新增、員工工資修改。4.5.1.2 屏幕格式設(shè)計(jì)出盤界面4.5.1.3程序流程圖出盤:選取出盤的月份確認(rèn)出盤否是退出選擇存盤路徑否是將該月的數(shù)據(jù)作為下個(gè)月的初始數(shù)據(jù)插入Ygxjjgb中失敗回滾在Kjcsb中插入一條記錄,表示該月已經(jīng)出盤成功成功失敗數(shù)據(jù)存盤成功出盤發(fā)生錯(cuò)誤如果Ygxjjgb已經(jīng)存在下月數(shù)據(jù),刪除如果Cjcsb存在該月出盤成功標(biāo)志,刪除出盤回滾:4.5.1.4源程序分析多數(shù)據(jù)庫表之間的鏈接操作是本模塊的設(shè)計(jì)重點(diǎn),在生成員工工資信息的過程中,為了能夠顯示工資數(shù)據(jù),系統(tǒng)要建立基本參數(shù)表、員工資料表、員工薪水帳目表之間的連接操作,為了能夠按銀行格式輸出,本程序花了很多功夫。4.5.2員工工資結(jié)構(gòu)調(diào)整4.5.2.1功能說明要求在同一窗口上實(shí)現(xiàn)新員工工資新增和員工工資結(jié)構(gòu)調(diào)整。通過在出盤窗口上點(diǎn)擊右鍵選擇是新增還是修改員工工資信息,動(dòng)態(tài)改變提交按鈕上顯示的信息,實(shí)現(xiàn)調(diào)整員工工資結(jié)構(gòu)的目的。4.5.2.2屏幕格式說明 員工工資結(jié)構(gòu)維護(hù)界面第 31 頁 共 31 頁