版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、天津理工大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院畢業(yè)論文天津理工大學(xué)畢 業(yè) 論 文題 目:我國(guó)信息資源的開發(fā)與管理研究專 業(yè):計(jì)算機(jī)科學(xué) 姓 名: 第1章 緒論1.1 背景及目的隨著我國(guó)國(guó)民經(jīng)濟(jì)建設(shè)的蓬勃發(fā)展和具有中國(guó)特色的社會(huì)主義市場(chǎng)經(jīng)濟(jì)體制的迅速完善,各個(gè)行業(yè)都在積極使用現(xiàn)代化的手段,不斷改善服務(wù)質(zhì)量,提高工作效率,這些都在很大程度上給企業(yè)提出越來越嚴(yán)峻的挑戰(zhàn)。并且企業(yè)自身人力資源的日益龐大、復(fù)雜程度逐漸增強(qiáng),以前簡(jiǎn)單的幾段文字、幾張報(bào)表的人機(jī)作坊再也無法適應(yīng)如今企業(yè)的人事管理了。而人事管理是企業(yè)管理的重要組成部分,是企業(yè)在激烈競(jìng)爭(zhēng)中賴以生存和發(fā)展的基石。然而傳統(tǒng)的人力資源管理面臨跟不上時(shí)代步伐,作用和重
2、要性日趨減弱的命運(yùn)。建設(shè)一個(gè)科學(xué)高效的信息管理系統(tǒng)是解決這一問題的必由之路。人事管理系統(tǒng)便是在這種狀況下應(yīng)運(yùn)而生的,它是運(yùn)用各種領(lǐng)域的知識(shí),結(jié)合計(jì)算機(jī)科學(xué)而開發(fā)的人事信息管理系統(tǒng),科學(xué)合理的來管理企業(yè)人事信息檔案及擴(kuò)充的人力資源管理系統(tǒng)是企業(yè)運(yùn)用現(xiàn)代化技術(shù)創(chuàng)造更多更高的經(jīng)濟(jì)效益的主要因素之一。經(jīng)過周密的需求分析和詳盡的周密的需求分析和詳盡的研究,我們決定,后臺(tái)設(shè)計(jì)使用對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)和訪問能很好的實(shí)現(xiàn)數(shù)據(jù)的正確性、完整性、一致性,同時(shí)對(duì)數(shù)據(jù)的冗余性可以進(jìn)行很好控制的SQL Server 2000,前臺(tái)開發(fā)使用面向?qū)ο蟮哪芊奖愫?jiǎn)潔操縱數(shù)據(jù)庫(kù)的Delphi 7.0,在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,對(duì)初始原
3、型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn),最后設(shè)計(jì)成一套功能強(qiáng)大、操作簡(jiǎn)單而又實(shí)用的,具有較大的靈活性和可擴(kuò)展性,能夠滿足客戶在人事管理方面更多個(gè)性化的需求的用戶滿意的人事管理系統(tǒng)。目的主要是為了實(shí)現(xiàn)企業(yè)的人事管理系統(tǒng)化、規(guī)范化和自動(dòng)化,為產(chǎn)品的成本減少人工費(fèi)用,提高人力資源,管理的信息共享程度,加快信息的提取和統(tǒng)計(jì)。1.2 國(guó)內(nèi)外研究現(xiàn)狀及相關(guān)領(lǐng)域中的已有研究成果據(jù)統(tǒng)計(jì),在計(jì)算機(jī)應(yīng)用發(fā)展較快的國(guó)家中,計(jì)算機(jī)應(yīng)用于經(jīng)濟(jì)管理和人事管理占80%;用于科技計(jì)算的占8%,用于生產(chǎn)過程控制的占12%;由此可以看出,經(jīng)濟(jì)和人事管理是計(jì)算機(jī)應(yīng)用的主要領(lǐng)域。并且,人事管理是企業(yè)管理的重要組成部分,是企業(yè)在激烈競(jìng)爭(zhēng)中
4、賴以生存和發(fā)展的基石,也直接和間接的影響著經(jīng)濟(jì)的發(fā)展。由于種種原因,我國(guó)的信息資源建設(shè)包括人事資源管理的建設(shè)水平遠(yuǎn)遠(yuǎn)落后于信息基礎(chǔ)設(shè)施的建設(shè)的水平。長(zhǎng)期以來,我國(guó)信息資源的開發(fā)管理未能與信息資源的增長(zhǎng)同步進(jìn)行。我國(guó)在全國(guó)范圍內(nèi)推廣計(jì)算機(jī)在管理中的應(yīng)用,是在80年代初開始的。雖起步雖晚,但發(fā)展快。另外,我國(guó)改革開放的策略的實(shí)施改變了我國(guó)原由的社會(huì)經(jīng)濟(jì)形態(tài),也給企事業(yè)單位的人事管理帶來了挑戰(zhàn)。跨地區(qū)、跨國(guó)企業(yè)的不斷增多,企業(yè)的員工呈現(xiàn)出分散化、個(gè)性化的趨勢(shì)企業(yè)的員工呈現(xiàn)出分散化、個(gè)性化的趨勢(shì),為了滿足知識(shí)員工個(gè)性化的需求,傳統(tǒng)人力資源管理的許多職能如招聘、培訓(xùn)、激勵(lì)、考評(píng)以及工資福利的制定與執(zhí)行已
5、經(jīng)變化很大,對(duì)知識(shí)員工或小團(tuán)隊(duì)進(jìn)行有針對(duì)性地“量身定做”個(gè)性化的人力資源管理“套餐”成為人力資源管理創(chuàng)新的趨勢(shì)之一。1.3 課題的研究方法在設(shè)計(jì)系統(tǒng)時(shí),我們本著軟件開發(fā)的最主要的三個(gè)原則。a)整體性原則。系統(tǒng)是相互聯(lián)系,相互作用的諸要素組成的綜合體。我們必須從整體和各組成部分的相互關(guān)系來考察事物,從整體目標(biāo)和功能出發(fā),正確處理系統(tǒng)各組成部分之間的相互關(guān)系和相互作用。b)分解協(xié)調(diào)原則。就是把復(fù)雜問題化成若干相對(duì)簡(jiǎn)單的子問題以方便求解。若子系統(tǒng)的問題比較復(fù)雜,還可以再分。但在處理各類子問題時(shí),必須根據(jù)系統(tǒng)的整體功能和目標(biāo),協(xié)調(diào)各子系統(tǒng)的行為、功能與目標(biāo),以保證整體功能目標(biāo)的實(shí)現(xiàn)。c)分解協(xié)調(diào)原則。
6、所謂目標(biāo)優(yōu)化原則對(duì)簡(jiǎn)單系統(tǒng)來說,求的是最優(yōu)解,對(duì)復(fù)雜系統(tǒng)來說,求的是滿意解。一定要注意,目標(biāo)優(yōu)化原則并不簡(jiǎn)單是求最優(yōu)解的問題。當(dāng)然,以上并非是全部的原則。在處理實(shí)際問題時(shí),還需在這些原則的指導(dǎo)下,根據(jù)問題的特點(diǎn),確定求解的具體方法和策略。具體實(shí)現(xiàn)時(shí),我們?cè)谝慌_(tái)計(jì)算機(jī)上利用新一代高性能數(shù)據(jù)庫(kù)管理系統(tǒng)Microsoft SQL Server 2000建立人事管理系統(tǒng)的(Personnel Management System)數(shù)據(jù)庫(kù),讓局域網(wǎng)中的其他計(jì)算機(jī)通過ADO的方式訪問數(shù)據(jù)庫(kù)。所應(yīng)用的程序?qū)崿F(xiàn)語(yǔ)言為面向?qū)ο蟮腄elphi 7.0。在現(xiàn)實(shí)時(shí)將系統(tǒng)定位于C/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),在設(shè)計(jì)過程中采用
7、了瀑布模型作為本系統(tǒng)的設(shè)計(jì)模型。數(shù)據(jù)庫(kù)的采用并發(fā)為用戶提供數(shù)據(jù)共享的環(huán)境,具有較小的冗余度和較高的獨(dú)立性,并可確保數(shù)據(jù)的安全、一致和完整。1.4 論文的構(gòu)成及研究?jī)?nèi)容本人結(jié)合人事開發(fā)的要求,對(duì)MS SQL Server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)、SQL語(yǔ)言原理、Delphi應(yīng)用程序設(shè)計(jì),Delphi數(shù)據(jù)庫(kù)技術(shù)進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成對(duì)人事管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫(kù)模式分析,并由此設(shè)計(jì)了數(shù)據(jù)庫(kù)結(jié)構(gòu)和應(yīng)用程序。 首先對(duì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)和人事管理系統(tǒng)進(jìn)行了簡(jiǎn)明的介紹,并分析了人事管理系統(tǒng)所應(yīng)進(jìn)行的工作。然后對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)和SQL語(yǔ)言的使用進(jìn)行了系統(tǒng)分析,接數(shù)據(jù)庫(kù)應(yīng)用打下了基礎(chǔ)
8、。接著對(duì)具體的開發(fā)工具Delphi 7.0,對(duì)其數(shù)據(jù)庫(kù)組件,SQL語(yǔ)言在Delphi中的應(yīng)用等數(shù)據(jù)庫(kù)編程關(guān)鍵技術(shù)進(jìn)行了系統(tǒng)的介紹。然后分析了人事管理系統(tǒng)的應(yīng)用需求,按照各個(gè)模塊的功能進(jìn)行了分析,給出了數(shù)據(jù)流程圖。 另外介紹了我設(shè)計(jì)的各個(gè)模塊窗體,最后是系統(tǒng)測(cè)試,以及經(jīng)過測(cè)試所得的結(jié)論,還有做這次設(shè)計(jì)的心得和體會(huì)。第2章 總體方案設(shè)計(jì)與選擇的論證2.1 體系結(jié)構(gòu)的設(shè)計(jì)與規(guī)劃畢業(yè)設(shè)計(jì)課題內(nèi)容是,在Windows XP環(huán)境下用Delphi 7.0結(jié)合最新一代高性能數(shù)據(jù)庫(kù)管理系統(tǒng)Microsoft SQL Server 2000開發(fā)的人事信息管理系統(tǒng)。采用基于SQL Server 的分布式數(shù)據(jù)庫(kù)管理系
9、統(tǒng)。設(shè)計(jì)的過程包括:1. 規(guī)劃階段此階段首先進(jìn)行企事業(yè)單位進(jìn)行調(diào)查,以了解企事業(yè)的人事組織結(jié)構(gòu),由此畫出管理系統(tǒng)層次圖,然后進(jìn)行數(shù)據(jù)庫(kù)的可執(zhí)行分析,寫出可行性分析的分析報(bào)告,同時(shí)組織小組成員討論其可行性,最后確定數(shù)據(jù)庫(kù)系統(tǒng)的總目標(biāo)和制定項(xiàng)目的開發(fā)計(jì)劃。其管理層次流程圖如圖2.1所示。圖2.1 頂層數(shù)據(jù)流程圖2. 需求分析階段企事業(yè)單位為了對(duì)員工信息進(jìn)行信息化管理,要求所有業(yè)務(wù)均采用電腦辦公,對(duì)各個(gè)部門人力資源信息統(tǒng)一管理和查詢,以員工工作的統(tǒng)一進(jìn)行和管理,實(shí)現(xiàn)人事管理系統(tǒng)化、規(guī)范化和自動(dòng)化,為產(chǎn)品的成本減少人工費(fèi)用,提高人力資源,管理的信息共享程度,加快信息的提取和統(tǒng)計(jì)。具體要求如下:(1)必
10、須保證系統(tǒng)的正確性和實(shí)用性:系統(tǒng)的各個(gè)功能必須達(dá)到人事管理的要求,起到應(yīng)有的作用。(2)必須保證系統(tǒng)的易用性:界面要求簡(jiǎn)單明了,按鈕統(tǒng)一排放,常用按鈕要位于習(xí)慣操作的位置,且各個(gè)按鈕的位置跳動(dòng)不宜過大。(3)必須系統(tǒng)保證的安全性:系統(tǒng)的使用權(quán)限管理,防止非操作人員操作本系統(tǒng),數(shù)據(jù)必須加鎖,以防止不必要的修改。(4)必須系統(tǒng)保證的可擴(kuò)展性:系統(tǒng)必須保留足夠的功能接口,以便以后業(yè)務(wù)發(fā)展的擴(kuò)展。(5)工資管理要和考勤管理掛鉤,實(shí)現(xiàn)管理的人性化,智能化。3. 概念設(shè)計(jì)和邏輯設(shè)計(jì)及物理設(shè)計(jì)階段設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng),且在數(shù)據(jù)庫(kù)設(shè)計(jì)過此階段產(chǎn)生反映信息需求的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),然后轉(zhuǎn)化為DBMS能處理的模式,并對(duì)模型
11、進(jìn)行評(píng)價(jià)和性能測(cè)試,消除由于物理結(jié)構(gòu)改變而引起的對(duì)應(yīng)用程序的修改,以免造成在程序設(shè)計(jì)階段修改應(yīng)用程序的麻煩。4. 數(shù)據(jù)庫(kù)的實(shí)現(xiàn)以及運(yùn)行和維護(hù)程中不斷的評(píng)價(jià),調(diào)整和修改以期設(shè)計(jì)出各個(gè)方面都達(dá)標(biāo)的使用系統(tǒng)。A) 系統(tǒng)要求本價(jià)段主要進(jìn)行人事管理系統(tǒng)的客戶需求分析和實(shí)施的可行性分析,做出系統(tǒng)實(shí)施的行與不行的決策。經(jīng)分析客戶需求運(yùn)用現(xiàn)有計(jì)算機(jī)技術(shù)完全可行。B) 軟件概要設(shè)計(jì)人事管理系統(tǒng)的業(yè)務(wù)數(shù)據(jù)流向?qū)ο到y(tǒng)整體進(jìn)行規(guī)劃,畫出了業(yè)務(wù)數(shù)據(jù)流程圖。軟件詳細(xì)設(shè)計(jì)在概要設(shè)計(jì)的基礎(chǔ)上對(duì)業(yè)務(wù)流程的各個(gè)環(huán)節(jié)做出了具體的設(shè)計(jì)方案,將整個(gè)業(yè)務(wù)劃分為:?jiǎn)T工信息管理、招聘管理、工資管理、考勤管理功能模塊四個(gè)模塊,另外增加了用戶管
12、理模塊、數(shù)據(jù)庫(kù)維護(hù)模塊,共六個(gè)模塊。C) 模塊編碼在詳細(xì)設(shè)計(jì)的基礎(chǔ)上分別進(jìn)行每一個(gè)模塊的界面設(shè)計(jì)和代碼編寫,并進(jìn)行調(diào)試直到調(diào)試正確無誤。D) 模塊耦合將編寫好的各個(gè)模塊組合起來,編寫系統(tǒng)的驅(qū)動(dòng)模塊和樁模塊,對(duì)模塊組進(jìn)行統(tǒng)一測(cè)試。E) 完整系統(tǒng)聯(lián)調(diào)(功能測(cè)試)針對(duì)企事業(yè)單位對(duì)員工管理的需要對(duì)系統(tǒng)進(jìn)行功能級(jí)的測(cè)試,找出與業(yè)務(wù)不相符合的功能部件,逐個(gè)修改后再次測(cè)試。F) 完整系統(tǒng)聯(lián)調(diào)(性能測(cè)試)在功能達(dá)到要求的基礎(chǔ)上對(duì)整個(gè)系統(tǒng)的性能進(jìn)行測(cè)試,力求系統(tǒng)高效無誤地運(yùn)行。2.2 系統(tǒng)方案論證1. 軟件定義 數(shù)據(jù)庫(kù)設(shè)計(jì)所要的解決的問題是:對(duì)于一個(gè)給定的應(yīng)用領(lǐng)域,設(shè)計(jì)優(yōu)化的數(shù)據(jù)庫(kù)邏輯和物理結(jié)構(gòu),使之滿足用戶的
13、信息管理要求和數(shù)據(jù)操作要求,有效地支持各種應(yīng)用系統(tǒng)的開發(fā)和運(yùn)行。數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo)是為用戶和各種應(yīng)用系統(tǒng)提供一個(gè)高效的運(yùn)行環(huán)境。而數(shù)據(jù)庫(kù)的設(shè)計(jì)可以視為如下的優(yōu)化問題。a) 計(jì)算機(jī)的軟硬件環(huán)境;b) 數(shù)據(jù)庫(kù)管理系統(tǒng)的能力;c) 用戶的操作要求與信息要求;d) 完整性和安全性約束。2. 分布式結(jié)構(gòu)的原理基于SQL Server 的分布式數(shù)據(jù)庫(kù)管理系統(tǒng)。這一般有兩層C/S和三層C/S結(jié)構(gòu)兩種模式。兩層C/S結(jié)構(gòu)是在網(wǎng)絡(luò)基礎(chǔ)上,以數(shù)據(jù)庫(kù)管理為后援,以計(jì)算機(jī)為網(wǎng)上工作站的一種系統(tǒng)結(jié)構(gòu)。該結(jié)構(gòu)的關(guān)鍵在把網(wǎng)絡(luò)環(huán)境上的數(shù)據(jù)庫(kù)存取和應(yīng)用程序一分為二,分別由網(wǎng)上的數(shù)據(jù)庫(kù)服務(wù)器和網(wǎng)上客戶來執(zhí)行。雖然本系統(tǒng)C/S是建立
14、在LAN的基礎(chǔ)上,但它比以往的文件服務(wù)系統(tǒng)有了很大的改進(jìn)。首先,它消除了不必要的網(wǎng)絡(luò)傳輸負(fù)擔(dān);其次,它可以使作為數(shù)據(jù)庫(kù)服務(wù)器的計(jì)算機(jī)被高度優(yōu)化,以適應(yīng)數(shù)據(jù)處理的需要。C/S已經(jīng)能夠應(yīng)用于復(fù)雜的網(wǎng)絡(luò)上,并使之能夠更有效地進(jìn)行選擇、檢索、索引排序等數(shù)據(jù)處理。作為一種高級(jí)的分布式計(jì)算機(jī)環(huán)境、C/S有足夠的能力把處理后的結(jié)果(不是整個(gè)文件)通過網(wǎng)絡(luò)傳輸出去,并根據(jù)用戶需求靈活地配置各種大、中、小型計(jì)算機(jī)系統(tǒng)。三層結(jié)構(gòu)是目前用得最多的,這種結(jié)構(gòu)比傳統(tǒng)的C/S結(jié)構(gòu)增加了一個(gè)應(yīng)用程序服務(wù)器,應(yīng)用程序服務(wù)器包括了統(tǒng)一的界面、業(yè)務(wù)規(guī)則和數(shù)據(jù)處理邏輯等等,這樣客戶端程序就可以做得比較小,也就是常說的瘦客戶,更由于
15、業(yè)務(wù)規(guī)則和數(shù)據(jù)處理邏輯的集中在服務(wù)器上統(tǒng)一管理,客戶端無須進(jìn)行復(fù)雜的計(jì)算,也不會(huì)因?yàn)殄e(cuò)誤的操作而影響到其他的用戶,所以他的可靠性、定性和效率都比較好。(其結(jié)構(gòu)如圖2.2所示)圖2.2 三層C/S結(jié)構(gòu)由于本系統(tǒng)用于各大中型企業(yè)和各級(jí)行政部門,故在實(shí)現(xiàn)時(shí)將我們系統(tǒng)定位于C/S結(jié)構(gòu)的兩層數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。其原理就是將服務(wù)器端和數(shù)據(jù)庫(kù)端合為一體。原理如圖3.2所示。圖2.3 兩層C/S結(jié)構(gòu)第3章 系統(tǒng)設(shè)計(jì)3.1體系結(jié)構(gòu)設(shè)計(jì) 1.系統(tǒng)概述人事管理系統(tǒng)是一個(gè)能對(duì)各企事業(yè)單位員工的信息進(jìn)行統(tǒng)一管理、查詢和匯總統(tǒng)計(jì)的C/S結(jié)構(gòu)兩層網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。它通過分散運(yùn)行于各個(gè)部門的前端處理軟件“信息管理系統(tǒng)”和服務(wù)器
16、端運(yùn)行的數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBases Manage System)-SQL Server 2000的兩級(jí)工作模式來實(shí)現(xiàn)信息管理需求。業(yè)務(wù)數(shù)據(jù)處理主要集中于前端處理軟件,而服務(wù)器端只負(fù)責(zé)數(shù)據(jù)的存取、管理及備份。前端處理處主要通過四大模塊即:?jiǎn)T工信息管理、招聘管理、工資管理、考勤管理功來實(shí)現(xiàn)。人事管理功能模塊主要實(shí)現(xiàn)人員基本信息的數(shù)據(jù)輸入和規(guī)范化管理,使企業(yè)高效率地完成勞動(dòng)人事管理的日常業(yè)務(wù); 考勤管理功能模塊主要實(shí)現(xiàn)企業(yè)的考勤管理系統(tǒng)化、規(guī)范化和自動(dòng)化,收集時(shí)間數(shù)據(jù),自動(dòng)地對(duì)數(shù)據(jù)進(jìn)行分析和處理,如缺勤、遲到、早退,法定假期等意外情況進(jìn)行管理。 2.設(shè)計(jì)約束系統(tǒng)的正確性:系統(tǒng)的各個(gè)功能必須確
17、為企事業(yè)單位的業(yè)務(wù)要求,數(shù)據(jù)處理方式必須與現(xiàn)有的工作方式相符,且必須正確無誤。系統(tǒng)的效率(性能):由于系統(tǒng)是基于網(wǎng)絡(luò)的應(yīng)用,多用戶同時(shí)操作的可能性相當(dāng)大,必須以事務(wù)的形式處理每一筆數(shù)據(jù),且要急時(shí)終止已完成的事務(wù),以提高數(shù)據(jù)處理速度。系統(tǒng)的易用性:界面要求簡(jiǎn)單明了,按鈕統(tǒng)一排放,常用按鈕要位于習(xí)慣操作的位置,且各個(gè)按鈕的位置跳動(dòng)不宜過大。系統(tǒng)的安全性:系統(tǒng)的使用必須用權(quán)限管理,防止非操作人員操作本系統(tǒng),數(shù)據(jù)必須加鎖,以防止不必要的修改。系統(tǒng)的可擴(kuò)展性:系統(tǒng)必須保留足夠的功能接口,以便以后業(yè)務(wù)發(fā)展的擴(kuò)展。系統(tǒng)的兼容性:系統(tǒng)必須附帶所有必需的鏈接庫(kù),以確保在不同的機(jī)型上正確無誤的運(yùn)行,而無須再次注冊(cè)
18、其它DLL文件。3.設(shè)計(jì)策略由于采用各部門聯(lián)網(wǎng)操作,決定了本系統(tǒng)必須著眼于客戶端/服務(wù)器的工作模式,服務(wù)器端運(yùn)行數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),客戶端運(yùn)行于各分工會(huì)和民政部門,將數(shù)據(jù)統(tǒng)一保存到服務(wù)器端。這樣既可解決員工信息數(shù)據(jù)的一致性,又能將員工考勤和員工工資管理掛鉤,能更人性化的管理員工的信息。為了盡可能提高數(shù)據(jù)完整性,系統(tǒng)引入了事務(wù)控制,以事務(wù)的形式將數(shù)據(jù)寫入數(shù)據(jù)庫(kù),若任何一個(gè)寫入環(huán)節(jié)出錯(cuò)整個(gè)事務(wù)將被回滾,使數(shù)據(jù)庫(kù)恢復(fù)寫入之前的狀態(tài)。對(duì)于客戶端和服務(wù)器端如何建立連接實(shí)現(xiàn)數(shù)據(jù)存取,本系統(tǒng)采用了ADO(ActiveX Data Objects)對(duì)象,其原因是:(1)它不需要專門的數(shù)據(jù)引擎。(2)訪
19、問速度快。(3)數(shù)據(jù)庫(kù)連接方便,不必在本機(jī)建立數(shù)據(jù)源。(4)能實(shí)現(xiàn)C/S結(jié)構(gòu)的需要。4.軟件環(huán)境a) 操作系統(tǒng)Windows提供了一個(gè)統(tǒng)一的圖形用戶接口界面,也提供了大量API(應(yīng)用程序編程接口)函數(shù)用于Delphi程序設(shè)計(jì)和圖像處理,是大多數(shù)開發(fā)平臺(tái)的核心所在。本系統(tǒng)開發(fā)采用的是Windows XP Professional + SP2 操作系統(tǒng)。b)數(shù)據(jù)庫(kù)管理系統(tǒng)本系統(tǒng)選用了Microsoft SQL Server 2000,原因是 SQL Server 2000 是Microsoft公司推出的最新一代關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它從最初的版本到今天,已經(jīng)積累了足夠的數(shù)據(jù)庫(kù)技術(shù)和經(jīng)驗(yàn),由于它易學(xué)
20、易用,功能強(qiáng)大,因此深受廣大用戶,尤其是一些網(wǎng)站級(jí)、企業(yè)級(jí)用戶的青睞。運(yùn)用SQL SERVER能幫助用戶快速方便地開發(fā)出基于SQL SERVER 的性能優(yōu)越、穩(wěn)定、高效的數(shù)據(jù)庫(kù)應(yīng)用程序。c)開發(fā)工具考查了各種數(shù)據(jù)庫(kù)開發(fā)工具,最后決定選用Delphi 7.0。Delphi 7.0是Borland公司最新推出的一種基于C/S體系的Windows快速應(yīng)用開發(fā)工具(RAD,Rapid Application Development)。自從推出之日起一直受到廣大編程人員的青睞。它是一種面向?qū)ο蟮目梢暬幊坦ぞ撸染哂锌梢暬膬?yōu)越性,又結(jié)合Object Pascal語(yǔ)言的編程技巧,可以開發(fā)出功能強(qiáng)大的Wi
21、ndows應(yīng)用程序和數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。5.硬件配置CPU:Pentium 111 900或以上(服務(wù)器)內(nèi)存:256M或以上(服務(wù)器)硬盤:2GB以上(服務(wù)器)CPU:Pentium 300(客戶機(jī))內(nèi)存:64MB或以上(客戶機(jī))硬盤:200MB以上(客戶機(jī))顯示器:VGA或更高兩塊網(wǎng)卡,一塊安裝在本機(jī)上,另一塊安裝在服務(wù)器3.2 關(guān)系數(shù)據(jù)庫(kù)和SQL語(yǔ)言關(guān)系數(shù)據(jù)庫(kù)已經(jīng)成為名副其實(shí)的數(shù)據(jù)庫(kù)技術(shù)的代名詞,我們能夠接觸的決大部分?jǐn)?shù)據(jù)庫(kù)都是關(guān)系數(shù)據(jù)庫(kù)。為了操縱關(guān)系數(shù)據(jù)庫(kù)以及其中的數(shù)據(jù),經(jīng)過長(zhǎng)時(shí)間的演化,結(jié)構(gòu)化查詢語(yǔ)言(SQL )已經(jīng)成為一個(gè)事實(shí)上的標(biāo)準(zhǔn)。3.3 基于ADO的數(shù)據(jù)庫(kù)連接ADO是Micros
22、oft提供的通過封裝OLE DB技術(shù)得的一種狼藉數(shù)據(jù)庫(kù)的更完善的方式。Delphi提供了讀ADOD的封裝。1.連接數(shù)據(jù)庫(kù)Delphi提供了ADO技術(shù)的數(shù)據(jù)庫(kù)連接和操作的系列組件。其中實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接功能的組件TADOConnection用語(yǔ)簡(jiǎn)單結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用程序中即與數(shù)據(jù)庫(kù)服務(wù)器僅僅保持簡(jiǎn)單C/S模式結(jié)構(gòu)的應(yīng)用程序使用TADOConnection直接建立與數(shù)據(jù)庫(kù)服務(wù)器的連接,從而形成簡(jiǎn)單的C/S模型。在基于ADO技術(shù)的簡(jiǎn)單數(shù)據(jù)庫(kù)應(yīng)用程序中,由組件TADOConnection常見的對(duì)象將處于最底層,其他所有數(shù)據(jù)庫(kù)功能組件將調(diào)用它的服務(wù)。實(shí)際上,Delphi只為數(shù)據(jù)庫(kù)維護(hù)一個(gè)連接,即建立多個(gè)TAD
23、OConnection組件對(duì)象將是徒勞,但并不會(huì)增加程序的負(fù)擔(dān),這樣做的唯一好處,就是使用編寫程序代碼更加方便而已。2.訪問數(shù)據(jù)應(yīng)用程序可以通過調(diào)用 Delphi提供的一些數(shù)據(jù)集組件,而獲得數(shù)據(jù)庫(kù)的數(shù)據(jù),從而可以瀏覽或者修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。在基于ADO技術(shù)的組件中,delphi共提供了四種類型的數(shù)據(jù)集組件,它們包括了TADODataSet,TADOTable,ADOQuery和TADOStoredproc等。其中前三者可以用來提供對(duì)數(shù)據(jù)庫(kù)中的一個(gè)或者多個(gè)數(shù)據(jù)表做快照后的結(jié)果,從而允許應(yīng)用程序迅速查看數(shù)據(jù)庫(kù)中的一個(gè)或者多哥數(shù)據(jù)表中的數(shù)據(jù)。如果再結(jié)合Delphi提供的TDBEdit、TDBGrid
24、等數(shù)據(jù)感知組件,應(yīng)用程序還可以非常容易地實(shí)現(xiàn)修改數(shù)據(jù)庫(kù)中數(shù)據(jù)的功能。除了能夠用來查看或者修改數(shù)據(jù),ADOQuery和ADOStoredProc組件還可以用來做其他各種操作。3.操作數(shù)據(jù)庫(kù)Delphi提供的Query用來針對(duì)數(shù)據(jù)庫(kù)執(zhí)行SQL語(yǔ)句,或者執(zhí)行在數(shù)據(jù)庫(kù)中已經(jīng)建立的存儲(chǔ)過程。4.數(shù)據(jù)庫(kù)程序結(jié)構(gòu)基于ADO數(shù)據(jù)庫(kù)連接技術(shù)的數(shù)據(jù)庫(kù)應(yīng)用程序必須具有數(shù)據(jù)庫(kù)連接組件、數(shù)據(jù)集組件、數(shù)據(jù)感知組件和其他一些用來執(zhí)行數(shù)據(jù)定義功能的組件,從而構(gòu)成完整的數(shù)據(jù)庫(kù)應(yīng)用程序。如圖3.1就是典型的數(shù)據(jù)庫(kù)應(yīng)用程序結(jié)構(gòu)。圖3.1基于ADO數(shù)據(jù)庫(kù)連接技術(shù)的數(shù)據(jù)庫(kù)應(yīng)用程序結(jié)構(gòu)5.連接用戶數(shù)據(jù)庫(kù)在組件面板上有ADO組件頁(yè),其中前
25、6個(gè)是ADO組件。如下圖:圖3.2 ADO組件頁(yè)如何使用ADO和所做所建立的數(shù)據(jù)庫(kù)進(jìn)行連接呢。以我們所做的設(shè)計(jì)為例子。login窗體上放置一個(gè)Adoconnection1組件,雙擊它,將會(huì)出現(xiàn)下圖。點(diǎn)擊“Build”按鈕,將打開數(shù)據(jù)連接屬性窗口如下圖。其中有四個(gè)頁(yè)面,在第一個(gè)“提供者”頁(yè)面中,列出了可以使用的各種驅(qū)動(dòng)數(shù)據(jù)庫(kù)驅(qū)動(dòng)。對(duì)于我們的SQL創(chuàng)建的數(shù)據(jù)庫(kù)庫(kù)來說,用Microsoft OLE DB Provider for SQL Server驅(qū)動(dòng)即可。 選擇完畢數(shù)據(jù)庫(kù)驅(qū)動(dòng)后,點(diǎn)擊“Next”按鈕,到連接頁(yè)面。在這里輸入或選擇數(shù)據(jù)庫(kù),這里我們查找選擇數(shù)據(jù)庫(kù)為我們事先在SQL中建立好的rensh
26、iguanli系統(tǒng)。如果數(shù)據(jù)庫(kù)有密碼,可以為可將“空白密碼”復(fù)選框去掉選擇,就可以輸入密碼,選中“允許保存密碼”這樣以后就可以無需再輸入密碼了。接下來可以點(diǎn)擊“測(cè)試連接”按鈕,如果提示“測(cè)試連接成功”那么說明數(shù)據(jù)庫(kù)可正常連接上。在“高級(jí)”頁(yè)面中選擇訪問權(quán)限為“ReadWrite”。在“所有”頁(yè)面中顯示的是用戶目前設(shè)定的連接屬性,用戶可以再修改。點(diǎn)擊“確定”按鈕后返回到上圖,這時(shí)可以看到屬性設(shè)定字符串已經(jīng)自動(dòng)生成,點(diǎn)擊“OK”按鈕返回即可。再把ADOConnection1組件的LoginPrompt屬性設(shè)定為false,這樣以后程序在運(yùn)行時(shí)就不會(huì)彈出密碼輸入框了。但如果你的數(shù)據(jù)庫(kù)有密碼且在上面的
27、“連接”頁(yè)面中沒有輸入密碼沒有選中“允許保存密碼”,連接頁(yè)面如下圖。6.使用數(shù)據(jù)集組件雖然,前面已經(jīng)建立了與服務(wù)器的連接,但是這并沒有直接提供訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù)的能力,還需要使用數(shù)據(jù)集組件才能夠直接讀取或者修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。a.建立數(shù)據(jù)表中的映射。Delphi提供了一個(gè)訪問數(shù)據(jù)庫(kù)數(shù)據(jù)最直接的方法,那就是為數(shù)據(jù)庫(kù)中數(shù)據(jù)表直接建立映射,從而可以直接訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù)。TADOTable,TADOQuerry就是用來建立直接數(shù)據(jù)映射的組件。 b.訪問多個(gè)數(shù)據(jù)表TADOTable組件只能用建立與數(shù)據(jù)庫(kù)中某個(gè)數(shù)據(jù)表的影射,因此只能訪問某個(gè)數(shù)據(jù)表中的數(shù)據(jù)。如果需要同時(shí)訪問數(shù)據(jù)庫(kù)中多個(gè)存在關(guān)系的數(shù)據(jù)表中的
28、數(shù)據(jù)。那么必須使用TADOQuery組件,它可以以SQL語(yǔ)句的形式指定可以訪問的數(shù)據(jù),而SQL語(yǔ)句就可以用來連接或者包含多個(gè)數(shù)據(jù)表。當(dāng)然使用TADOQuery組件時(shí)就需要為其指定可以返回一定數(shù)量結(jié)果的SQL語(yǔ)句。由于這個(gè)原因,我們一般不能時(shí)刻將TADOQuery的active設(shè)置為true,一打開這個(gè)數(shù)據(jù)集對(duì)象,而必須在應(yīng)用程序執(zhí)行時(shí),使用代碼根據(jù)實(shí)際的需要打開這個(gè)數(shù)據(jù)集對(duì)象。第4章 數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)對(duì)系統(tǒng)需求的分析和基于C/S開發(fā)模式的需求,數(shù)據(jù)庫(kù)采用Microsoft SQL Sever2000,它完全可以適合本系統(tǒng)的工作需求,它所支持的字段數(shù)據(jù)類型包括數(shù)值、字符、日期時(shí)間以及二進(jìn)制和圖片等
29、類型,十分豐富,是當(dāng)前基于C/S的主流數(shù)據(jù)庫(kù)產(chǎn)品之一。它還具有性能穩(wěn)定,便于操作維護(hù)和具有很好的安全可靠性等特點(diǎn),是作為服務(wù)器端數(shù)據(jù)庫(kù)平臺(tái)的理想選擇當(dāng)然,這些表之間都存在著聯(lián)系,如員工意外情況表和員工信息表,工資設(shè)定表,月底統(tǒng)計(jì)表等,都可以通過員工號(hào)進(jìn)行聯(lián)系。根據(jù)系統(tǒng)功能模塊的設(shè)計(jì)以及規(guī)范化的要求,該系統(tǒng)的數(shù)據(jù)庫(kù)中主要的表結(jié)構(gòu)設(shè)計(jì)如表4.1-4.5所示。表4.1 考勤時(shí)間設(shè)置字段名稱數(shù)據(jù)類型字段屬性字段大小作用必填字段Swsbtimesmalldatetime4上午上班時(shí)間是Swxbtimesmalldatetime4上午下班時(shí)間是Xwsbtimesmalldatetime4下午上班時(shí)間是Xw
30、xbtimesmalldatetime4下午下班時(shí)間是Wssbtimesmalldatetime4晚上上班時(shí)間是Wsxbtimesmalldatetime4晚上下班時(shí)間是表4.2 員工意外情況表字段名稱數(shù)據(jù)類型字段屬性字段大小作用必填字段YnoNvarchar25員工號(hào)是YnameNvarchar25姓名是YsexNvarchar4性別否YbumenNvarchar50部門是ChidaocsInt4遲到標(biāo)志否ZaotuicsInt4早退標(biāo)志否FadingjiaqisInt4假期中否YcqkInt4異常情況否YfNvarchar4度假標(biāo)志否YtimeNvarchar25時(shí)間是YdateNvarc
31、har25日期是字段名稱數(shù)據(jù)類型字段屬性字段大小作用必填字段YgnoNvarchar25員工號(hào)是YgbumeNvarchar25部門是YgzhiweiNvarchar 25職務(wù)是YggonglingNvarchar25工齡是YggongziNvarchar25工資是YgjiangjinNvarchar25獎(jiǎng)金是表4.4 工資設(shè)定表字段名稱數(shù)據(jù)類型字段屬性字段大小作用必填字段YnoNvarchar25員工號(hào)是YnameNvarchar25姓名否YsexNvarchar25性別是YbumeNvarchar50部門是yzhiwuNvarchar25職務(wù)是YgzzongerFloat4工資總額是Yko
32、uchugzFloat4扣除工資是YshijigzFloat4實(shí)際工資是表4.3 月底結(jié)資表MonthNvarchar25月份是第5章 模塊設(shè)計(jì)人事管理系統(tǒng)的功能模塊主要有五大部分、員工信息管理、招聘管理、工資管理和考勤管理。結(jié)構(gòu)圖如5.1所示:圖5.1 人事管理系統(tǒng)結(jié)構(gòu)圖5.1考勤模塊考勤模塊的主要功能是根據(jù)設(shè)定的考勤參數(shù)(上下班時(shí)間),確定員工的出勤情況。在設(shè)計(jì)確定員工出勤情況的實(shí)現(xiàn)上,開始時(shí)是準(zhǔn)備在這個(gè)模塊上設(shè)計(jì)一個(gè)模擬員工刷卡考勤系統(tǒng):由系統(tǒng)智能的確定和存儲(chǔ)員工的出勤情況。但因?yàn)閷?shí)現(xiàn)起來比較復(fù)雜,調(diào)試過程中出現(xiàn)錯(cuò)誤加上時(shí)間倉(cāng)促,最終是用考勤登記模塊代替。由管理員根據(jù)考勤參數(shù),在系統(tǒng)中存
33、儲(chǔ)考勤異常情況(遲到,曠工等)。對(duì)考勤情況的操作還包括修改,刪除,按員工號(hào),姓名,部門,月份等進(jìn)行查詢和統(tǒng)計(jì)。數(shù)據(jù)流程圖如圖5.2所示。圖5.2 考勤模塊數(shù)據(jù)流程圖5.2工資管理模塊工資模塊的功能是根據(jù)員工的工齡,部門,職位等因素設(shè)置員工的工資和獎(jiǎng)金,并參照員工的出勤情況,對(duì)所需發(fā)放工資進(jìn)行智能的計(jì)算,并可以按員工名,員工號(hào),月份等因素對(duì)工資情況進(jìn)行調(diào)薪管理,查詢和統(tǒng)計(jì)。數(shù)據(jù)流程圖如圖5.3所示。圖5.3工資管理模塊數(shù)據(jù)流程圖第6章 窗體設(shè)計(jì)6.1 考勤參數(shù)設(shè)置窗體此窗體主要是設(shè)置考勤時(shí)依據(jù)的參數(shù),即上下班時(shí)間,以此來判斷員工的出勤異常情況(包括遲到、早退、缺勤、請(qǐng)假、和法定假期中)。所用主要
34、組件的主要屬性如表6.1所示。表6.1 設(shè)置窗體和加入窗體的主要組件的屬性以及說明組件名稱屬性說明labelTransparent若設(shè)置為True,則標(biāo)簽是透明的TimeClickKind若設(shè)置為dtkTime,則按時(shí)間格式顯示Date用來設(shè)置日期的初始值Time用來設(shè)置時(shí)間的初始值TbitBtnDefault可設(shè)置按鈕的陰影效果,美化按鈕Glygh可為按鈕增加圖片Layout設(shè)置為blGlyphLeft圖片在字體左邊ImageStretch設(shè)置為True,可以加入的背景圖片等比例放縮考勤參數(shù)設(shè)置的工作流程圖如圖6.1 所示。圖6.1 考勤參數(shù)設(shè)置的工作流程圖考勤參數(shù)的設(shè)置的界面如圖6.2所示
35、。圖6.2 考勤參數(shù)設(shè)置的界面6.2 考勤登記窗體考勤登記窗體主要是登記員工的出勤情況,并將所有的情況記錄到員工意外情況表中,以待計(jì)算和匯總員工的工資情況。設(shè)置窗體時(shí)用到了一個(gè)與時(shí)間、日期有關(guān)的對(duì)象(Delphi中主要的與日期、時(shí)間有關(guān)的對(duì)象共三個(gè),在我們的設(shè)計(jì)中全部用到了):DateTimePicker控件。Time控件可以實(shí)現(xiàn)日期和時(shí)間的快速輸入和查看。DateTimerPicker空間有兩種選擇日期的形式,分別對(duì)應(yīng)于其DateMode屬性的個(gè)選項(xiàng):dmComboBox(組合框格式)和dmUpDown(下拉格式)。本設(shè)計(jì)中用的是dmComboBox(組合框格式)。DateTimerPick
36、er控件的常用屬性有Date,DateFormate,DateMode,Kind,MaxDate,Mindate,time等。在使用DateTimePicker組件時(shí)應(yīng)注意,如果Kind屬性為dtkDate,則輸入的是日期,如Kind屬性為dtkTime,則輸入的為時(shí)間。要讀取DateTimePicker控件的日期或時(shí)間,直接用Date,Time屬性就可以了。如果將其在編輯框中顯示,必須首先使用轉(zhuǎn)換函數(shù)DateToStr,TimeToStr將其轉(zhuǎn)化為字符串型。我一開始設(shè)計(jì)時(shí)就是把DateTimePicker控件拖得很短,然后在其中增加了一個(gè)文本框,從外表看和現(xiàn)在的設(shè)計(jì)一樣,但DateMode設(shè)
37、置為dmUpDown(下拉格式)。然后又使用了DateFormare函數(shù)返回時(shí)間。procedure Tfrmkqsettime.timeclick2CloseUp(Sender: TObject);beginedswxbtime.Text:=formatdatetime(hh:mm:ss,timeclick2.DateTime);end;/ edswxbtime是返回上午下班時(shí)間的文本框設(shè)置窗體時(shí)所用主要組件的主要屬性如表6.2。表6.2 考勤登記窗體所用主要組件的主要屬性組件名稱屬性說明TComboboxItems設(shè)置列表框中的字符串,每一項(xiàng)是一個(gè)字符串Text設(shè)置或返回編輯框的主要內(nèi)容。
38、Style設(shè)置組合框的風(fēng)格。本例中用CsDropdownKqdj(TADOQuery)Connection設(shè)為login.ADOConnection1與數(shù)據(jù)庫(kù)連接SQL(TStrings)設(shè)置為select * from 員工意外情況表DataSource1DateSet在下拉菜單中選擇kqdj,指定源泉數(shù)據(jù)源DBGrid1DataSource設(shè)置為DataSource1數(shù)據(jù)表“員工意外情況表”與控件的連接情況如圖5.3所示。當(dāng)TADOQuery控件kqdj的Active屬性決定了數(shù)據(jù)表與空間是否建立邏輯上的連接,只有建立了邏輯上的連接后,才能通過控件操縱數(shù)據(jù)表中的數(shù)據(jù)。如圖6.3所示。圖6.
39、3 考勤登記窗體中數(shù)據(jù)集、數(shù)據(jù)源和數(shù)據(jù)控件的關(guān)系示意圖考勤登記窗體的工作流程如圖6.4。圖6.4 考勤登記的工作流程圖Active屬性值的確定有2種方法,在設(shè)計(jì)期間,可在Object Inspector中單擊kqdj的Active;在運(yùn)行期間可以執(zhí)行語(yǔ)句:kqdj.Active:=true;或kqdj.Active:=false;考勤登記窗體的界面如圖6.5所示。圖6.5 考勤登記窗體的界面顯示時(shí)間的代碼為:procedure Tkqzlweihu.Timer1Timer(Sender: TObject);beginlabel9.caption:=datetostr(monthcalendar
40、1.date)+ +timetostr(time);end;6.3 異常情況查詢窗體異常情況查詢窗體的主要功能是查詢員工的出勤異常情況,并將其顯示在查詢結(jié)果區(qū)域中的表格中。所用主要組件的主要屬性如表5.3所示。表6.3 異常情況查詢窗體所用組件的主要屬性組件名稱屬性說明TEditComboBoxBevelEdge設(shè)置編輯框邊框的風(fēng)格TBitBtnKindbkCustom銨鈕對(duì)應(yīng)的位圖為用戶自定義類型BkClose銨鈕對(duì)應(yīng)的位圖為Close銨鈕類型異常情況查詢窗體的界面如圖6.6所示。圖6.6 異常情況查詢窗體的界面ComboBox1下拉菜單顯示主要代碼為:procedure Tkqyichan
41、gchaxun.FormShow(Sender: TObject);beginwith rsgl.ygxinxi dobegin if not active then /判斷是否為活動(dòng)連接 active:=true; first; while not eof do begin ComboBox1.Items.Add(fieldbyname(yno).AsString); next; /下移動(dòng)符值 end;end;6.4 考勤資料統(tǒng)計(jì)窗體考勤資料統(tǒng)計(jì)窗體的主要功能是按月份,按姓名和月份,按部門和月份統(tǒng)計(jì)員工的出勤情況,將其顯示到下面的表格中。本例子中主要用到CheckBox復(fù)選按鈕和RadioB
42、utton單選按鈕兩個(gè)組件。一般將使用時(shí)將它們置入一個(gè)分組框組件中。它們都可以直觀的表示表示某個(gè)選項(xiàng)能否被選中。不同的地方是,單選框表示的選項(xiàng)是互斥的。如果一組選項(xiàng)中有一個(gè)選項(xiàng)被選定,則該組的其他選項(xiàng)將處于為選中狀態(tài)。CheckBox組件有一段文字和一個(gè)小方框組成,用鼠標(biāo)單擊CheckBox組件的小方框,無論是從選中到未選中還是從未選中到選中都會(huì)觸發(fā)一個(gè)OnClick事件。RadioButton組件由一段文字和一個(gè)小圓圈組成,鼠標(biāo)單擊小圓圈,只有當(dāng)單選框被選中時(shí)才會(huì)觸發(fā)一個(gè)OnClick事件。這兩個(gè)組件的主要屬性如表6.4和6.5所示。表6.4 CheckBox組件的主要屬性屬性說明Align
43、ment設(shè)置單選框的文字與小方框的位置關(guān)系。Checked設(shè)置或返回復(fù)選框是否被選中。True表示被選中,State=cbChecked,用a標(biāo)記。False表示未被選中,有兩種情況:State=cbUnChecked,不用a標(biāo)記;State=cbGrayed,用“變灰”標(biāo)記AlowGrayed這個(gè)屬性設(shè)置為True時(shí),復(fù)選框處于選中但變灰狀態(tài)。表6.5 RadioRutton組件的主要屬性屬性說明Alignment設(shè)置單選框的文字與小方框或的位置關(guān)系。Checked如果設(shè)置為True,則表示選項(xiàng)選中;否則,表示未被選中考勤資料管理窗體的界面如圖6.7所示。圖6.7 考勤資料管理窗體的界面6.
44、5 部門資料管理窗體考勤部門資料管理窗體的主要功能主要是根據(jù)部門這個(gè)參數(shù)查詢你所要查詢部門的全部員工的信息。部門資料管理窗體的界面如圖6.8所示。圖6.8 部門資料管理窗體6.6 部門設(shè)置窗體本窗體是界面如圖6.9所示。圖6.9 部門設(shè)置窗體界面6.7 日歷查看窗體日歷察看窗體的功能比較簡(jiǎn)單。就是給用戶提供日歷,可以顯示當(dāng)前的日期和時(shí)間給員工考勤提供方便。本窗體用到了Delphi中其中的又一個(gè)最重要的日期、時(shí)間有關(guān)的對(duì)象(前面已經(jīng)簡(jiǎn)單列舉Timer的主要屬性) MothCalendar控件。MonthCalendar控件在運(yùn)行時(shí)與前面所用到的組合框擱置的DaeTimerPicker控件幾乎相同
45、,用法也差不多,只是MonthCalendar控件對(duì)象不能選取時(shí)間,僅能選取日期。MonthCalendar控件的常用屬性有CalColors,MaxDate,MinDate,F(xiàn)istDayofWeek,ShowToday,ShowTodayCircle,WeekNumbers等。其中WeekNumbers用來顯示從當(dāng)年元旦開始到某個(gè)星期是第幾周。ShowToday和ShowTodayCircle分別用來顯示和用紅筆圈出今天的日期。這里還用到了一個(gè)中要的組件SpeedBotton,它的Flat屬性設(shè)置為True,就可以透明了。屬性Glyph可以給按鈕增加位圖。圖6.10 日歷查看窗體界面6.8
46、 員工工資設(shè)定窗體員工工資設(shè)定窗體主要是設(shè)置員工的工資,獎(jiǎng)金情況,并把它們存儲(chǔ)到“員工工資設(shè)定”表中,當(dāng)然也可以對(duì)表中的數(shù)據(jù)進(jìn)行刪除和修改。這里有個(gè)異常處理,如果存在相同的員工號(hào),則不能對(duì)員工的工資情況進(jìn)行錄入,但可以修改。在工資設(shè)定窗體中所用的組件在介紹其它窗體時(shí)都已經(jīng)介紹,這里只說一個(gè)組件的應(yīng)用技巧,這個(gè)組件在每個(gè)窗體中都有用到,這就是Image組件。在應(yīng)用時(shí)可以先通過設(shè)置Picture屬性選擇圖片,選擇的圖片的大小可能與窗體所需要的大小并不是一樣,這個(gè)時(shí)候,如果不處理,對(duì)窗體美化效果可能起反作用。這個(gè)時(shí)候可以設(shè)置Stretch的屬性為True,這個(gè)時(shí)候就可以對(duì)圖片進(jìn)行拖大或縮小了,然后,
47、設(shè)置Align是屬性值為alClient就可以使圖片覆蓋整個(gè)窗體或你所選擇的整個(gè)分組框組件了(如Pannel組件)。工資設(shè)定窗體的工作流程圖如圖6.11所示。圖6.11 工資設(shè)定窗體的工作流程圖工資設(shè)定窗體的界面如圖6.12所示。圖6.12 工資設(shè)定窗體的界面6.9月底結(jié)資管理窗體月底結(jié)資窗體的主要功能是和工資計(jì)算窗體一起作用把員工工資發(fā)放情況錄入到“月底結(jié)資”表中,并可以顯示到窗體下面的表中。計(jì)算按鈕就是用來調(diào)用工資計(jì)算窗體的。注意:本窗體的錄入按鈕的作用只是將員工的編號(hào),部門,姓名,性別,職務(wù)錄入到“月底結(jié)資”表中,而工資計(jì)算窗體則用修改表中數(shù)據(jù)的方式追加月份,工資總額,扣除工資和實(shí)際工資
48、等字段的數(shù)據(jù)。本窗體的功能流程圖如圖6.13 所示。圖6.13 月底結(jié)資管理窗體工作流程圖月底結(jié)資管理窗體的界面如圖6.14所示。圖6.14 月底結(jié)資管理窗體界面6.10 員工工資計(jì)算窗體員工工資計(jì)算窗體的主要功能是依據(jù)員工的工資設(shè)定情況、考勤情況和工資計(jì)算的條件,對(duì)員工的工資進(jìn)行核算,并可以通過確定按鈕將核算的情況保存到“月底結(jié)資”表中。要特別交待一下,在這個(gè)窗體中,有用到了前面所提及員工“員工意外情況表”。因?yàn)樵谠O(shè)置考勤登記時(shí),為了顯示每一個(gè)員工每一次出勤的登記的情況,所以不便在“員工意外情況表”在chidaocs,kuanggongcs,qingjiacs,zaotuics等字段設(shè)置遲到
49、次數(shù),缺勤次數(shù),請(qǐng)假次數(shù),早退次數(shù),而是每次在員工出現(xiàn)哪種出勤異常情況時(shí),在相應(yīng)的字段用1標(biāo)志。所以,在這個(gè)窗體中,就必須的對(duì)相應(yīng)異常情況進(jìn)行統(tǒng)計(jì)。實(shí)現(xiàn)語(yǔ)句如下。procedure Tgzjisuan.ComboBox1Change(Sender: TObject);beginwith kqzlweihu.kqdj dobeginclose;sql.Clear;sql.Add(select sum(chidaocs) as cd,sum(zaotuics) as zt,sum(qingjiacs) as qj, sum (kuanggongcs) as kg from where yno=+q
50、uotedstr(combobox1.Text);open;edit1.Text:=inttostr(fieldbyname(cd).AsInteger);edit2.Text:=inttostr(fieldbyname(zt).AsInteger);edit3.Text:=inttostr(fieldbyname(kg).AsInteger);edit4.Text:=inttostr(fieldbyname(qj).AsInteger);end;end;核算按鈕的代碼如下:procedure Tgzjisuan.BitBtn3Click(Sender: TObject);var gz,jj,
51、cdcs,ztcs,kgcs,qjcs,cdfj,ztfj,kgfj,qjfj:integer;beginwith rsgl.adogzsheding dobeginclose;sql.Clear;sql.Add(select * from 員工工資設(shè)定 where ygno=+quotedstr(combobox1.Text);open;if recordcount=0 thenbeginmessagedlg(該員工的工資標(biāo)準(zhǔn)還沒定.,mterror,mbyes,0);exit;bitbtn1.Enabled:=false;endelsegz:=fieldbyname(yggz).AsInt
52、eger;jj:=fieldbyname(ygjiangjin).AsInteger;cdcs:=strtoint(edit1.Text);ztcs:=strtoint(edit2.Text); /早退次數(shù)kgcs:=strtoint(edit3.Text);qjcs:=strtoint(edit4.Text);edit5.Text:=inttostr(gz+jj);cdfj:=cdcs*10;ztfj:=ztcs*15;kgfj:=kgcs*50;qjfj:=qjcs*gz div 30;edit6.Text:=inttostr(cdfj+ztfj+kgfj+qjfj);edit7.Text
53、:=inttostr(strtoint(edit5.Text)-strtoint(edit6.Text);bitbtn1.Enabled:=true;bitbtn3.Enabled:=false;end;end;本窗體的工作流程圖如圖6.15所示。工資計(jì)算窗體的工作流程圖如圖6.15所示。圖6.15 工資計(jì)算窗體的工作流程圖6.11 月底統(tǒng)計(jì)窗體月底統(tǒng)計(jì)窗體的主要功能是按月份統(tǒng)計(jì)工資總額,扣除工資和實(shí)際工資。并把可以它保存到年底結(jié)資表中,以便以后的統(tǒng)計(jì)。在這個(gè)窗體中,關(guān)于計(jì)算總額的語(yǔ)句比較重要,它是在ComboBox1的Onchange事件中實(shí)現(xiàn)的。代碼如下。procedure Tyuedit
54、j.ComboBox1Change(Sender: TObject);beginwith rsgl.ygmonthgzqry dobeginclose;sql.Clear;sql.Add(select sum(ygzzonger) as sumgzze,sum(ykouchugz) as sumkcgz,sum(yshijigz) as sumsjgz from 月底結(jié)資 where ymonth=+quotedstr(combobox1.Text);open; /打開數(shù)據(jù)庫(kù)open;edit1.Text:=inttostr(fieldbyname(sumgzze).AsInteger);ed
55、it2.Text:=inttostr(fieldbyname(sumkcgz).asinteger);edit3.Text:=inttostr(fieldbyname(sumsjgz).asinteger);end;okbtn.Enabled:=true;end;月底統(tǒng)計(jì)界面如圖6.16所示例。圖6.16 月底統(tǒng)計(jì)界面6.12 調(diào)薪管理調(diào)薪管理窗體的主要功能是根據(jù)定義的周期時(shí)間,對(duì)員工的工齡,工資,獎(jiǎng)金等進(jìn)行修改。它和工資設(shè)定一樣,都是操作的工資設(shè)定表。調(diào)薪管理窗體的流程圖如圖6.17所示。圖6.17 調(diào)薪管理窗體的工作流程圖調(diào)薪管理窗體的界面如圖6.18所示。圖6.18調(diào)薪管理窗體的界面第7章 系統(tǒng)測(cè)試由于本系統(tǒng)在編碼階段都采用了白盒子測(cè)試法對(duì)系統(tǒng)各模塊進(jìn)行了仔細(xì)的測(cè)試,所以在系統(tǒng)集成之后的測(cè)試主要又以黑盒測(cè)試為主了,測(cè)試目標(biāo)是:(1)功能是否滿足需求(2)數(shù)據(jù)處理是否正確(3)系統(tǒng)是否能在不同的環(huán)境下正常工作(4)看系統(tǒng)在輸入了不合理數(shù)據(jù)時(shí)候會(huì)出現(xiàn)什么樣的結(jié)果,并由此設(shè)計(jì)異常處理測(cè)試實(shí)例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版面粉加工企業(yè)節(jié)能減排合同4篇
- 二零二四年衛(wèi)星導(dǎo)航系統(tǒng)應(yīng)用開發(fā)合同2篇
- 2025年度農(nóng)產(chǎn)品質(zhì)量安全監(jiān)管與風(fēng)險(xiǎn)評(píng)估協(xié)議4篇
- 2025版面粉品牌形象設(shè)計(jì)與推廣合同4篇
- 二零二五年度大型企業(yè)電器設(shè)備采購(gòu)合同4篇
- 2025年度充電樁配套設(shè)施項(xiàng)目融資合作協(xié)議4篇
- 2025年度魚塘承包與漁業(yè)資源可持續(xù)發(fā)展合作協(xié)議4篇
- 情感交互中的用戶體驗(yàn)-深度研究
- 產(chǎn)品數(shù)據(jù)治理與合規(guī)-深度研究
- 城市擴(kuò)張與權(quán)力流動(dòng)-深度研究
- 《裝配式蒸壓加氣混凝土外墻板保溫系統(tǒng)構(gòu)造》中
- T-CSTM 01124-2024 油氣管道工程用工廠預(yù)制袖管三通
- 2019版新人教版高中英語(yǔ)必修+選擇性必修共7冊(cè)詞匯表匯總(帶音標(biāo))
- 新譯林版高中英語(yǔ)必修二全冊(cè)短語(yǔ)匯總
- 基于自適應(yīng)神經(jīng)網(wǎng)絡(luò)模糊推理系統(tǒng)的游客規(guī)模預(yù)測(cè)研究
- 河道保潔服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 品管圈(QCC)案例-縮短接臺(tái)手術(shù)送手術(shù)時(shí)間
- 精神科病程記錄
- 閱讀理解特訓(xùn)卷-英語(yǔ)四年級(jí)上冊(cè)譯林版三起含答案
- 清華大學(xué)考博英語(yǔ)歷年真題詳解
- 人教版三年級(jí)上冊(cè)口算題(全冊(cè)完整20份 )
評(píng)論
0/150
提交評(píng)論