版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 畢業(yè)設(shè)計(論文)DELPHI工資管理論文</p><p><b> 目錄</b></p><p><b> 1 前言1</b></p><p><b> 2 系統(tǒng)概況2</b></p><p> 2.1系統(tǒng)開發(fā)背景2</p>&
2、lt;p> 2.2系統(tǒng)開發(fā)目的2</p><p> 2.3系統(tǒng)平臺選用2</p><p> 2.3.1數(shù)據(jù)庫技術(shù)的現(xiàn)狀與發(fā)展2</p><p> 2.3.2數(shù)據(jù)庫系統(tǒng)的選擇原則3</p><p> 2.3.3系統(tǒng)開發(fā)工具的選擇3</p><p><b> 3 需求分析7</
3、b></p><p><b> 3.1需求陳述7</b></p><p> 3.2可行性分析7</p><p> 3.2.1技術(shù)可行性7</p><p> 3.2.2時間、設(shè)備可行性7</p><p> 3.2.3經(jīng)濟可行性8</p><p>&l
4、t;b> 4 概要設(shè)計9</b></p><p> 4.1系統(tǒng)功能結(jié)構(gòu)設(shè)計9</p><p> 4.2數(shù)據(jù)庫設(shè)計10</p><p> 4.2.1數(shù)據(jù)庫邏輯結(jié)構(gòu)10</p><p> 4.2.2 數(shù)據(jù)庫E-R圖12</p><p> 4.2.3 Oracle數(shù)據(jù)庫的使用13&l
5、t;/p><p><b> 5 詳細設(shè)計14</b></p><p> 5.1主界面設(shè)計14</p><p> 5.2基本信息管理模塊15</p><p> 5.3工資數(shù)據(jù)模塊24</p><p> 5.4當月報表模塊35</p><p> 5.5歷史數(shù)據(jù)
6、模塊37</p><p> 5.6系統(tǒng)信息模塊41</p><p> 6 系統(tǒng)性能測試與分析42</p><p> 6.1測試范圍與主要內(nèi)容42</p><p> 6.2測試方法42</p><p> 6.3測試報告42</p><p><b> 7 結(jié)論43
7、</b></p><p><b> 參考文獻44</b></p><p><b> 致謝45</b></p><p><b> 1 前言</b></p><p> 上世紀八、九十年代以來,計算機產(chǎn)業(yè)飛速發(fā)展,其應(yīng)用滲透在社會生產(chǎn)的各個領(lǐng)域。計算機在國內(nèi)的
8、崛起加速了各企事業(yè)單位、機關(guān)的自動化進程,提高了國民生產(chǎn)的效率,從而為國民經(jīng)濟的飛速發(fā)展創(chuàng)造了必要的條件。</p><p> 步入21世紀以來,計算機更是以驚人的普及速度,進入各行各業(yè)和大部分家庭。各種應(yīng)用的需求也不斷增加,人們更加追求生活的品質(zhì)和工作的效率,企業(yè)更是視提高生產(chǎn)效率為生存和發(fā)展之道,于是通過科技手段提高生產(chǎn)和管理效率自然成為競爭和發(fā)展的焦點。這不僅包括如何實現(xiàn)企業(yè)生產(chǎn)設(shè)備的改進和生產(chǎn)技術(shù)的提高還
9、包括如何有效地組織和管理企業(yè)各項事務(wù),實現(xiàn)企業(yè)的辦公自動化。而管理信息系統(tǒng)(Management Information System, MIS)在辦公自動化的進程中發(fā)揮著重要的作用。市場需求也日益增加。</p><p> 大型企業(yè)的分工比較嚴格、細致,組織較為緊密,對軟硬件的要求也就比較高,因此試圖以一款軟件來解決企業(yè)的所有問題顯然是不可能的,這就需要我們細化事務(wù),有針對性地開發(fā)縱向應(yīng)用廣泛的MIS系統(tǒng)。不僅
10、能夠解決大型企業(yè)和機構(gòu)的某方面問題,還應(yīng)該能為更多的中、小型企業(yè)利用,提高他們的工作效率,加速企業(yè)的發(fā)展,從而促進國民經(jīng)濟的建設(shè)。</p><p> 財務(wù)是每一個單位都會涉及的問題,管理軟件雨后春筍般崛起的今天,企業(yè)不僅需要通過軟件有效地對其實施管理,還想操作能夠盡可能簡單,軟件易于上手。</p><p> 通過查閱相關(guān)資料,對市場需求進行分析,對既成工資管理軟件的研究和測試,我們認為
11、本課題是一個適應(yīng)現(xiàn)今工資管理需求的計算機信息管理系統(tǒng),具有一定的現(xiàn)實意義和開發(fā)使用價值。</p><p><b> 2 系統(tǒng)概況</b></p><p><b> 2.1系統(tǒng)開發(fā)背景</b></p><p> 自20世紀80年代以來,知識經(jīng)濟的興起和信息技術(shù)的日新月異消除了人與人之間知識、信息傳遞的障礙,也帶來了人類
12、經(jīng)營意識、管理觀念的巨大改變。21世紀是一個經(jīng)濟時代,經(jīng)濟競爭說到底是人才的競爭,誰擁有了人才,誰就將最終擁有財富。通過工資人事管理可以獲得并維持組織的競爭優(yōu)勢,人作為公司最重要的資產(chǎn),如何用好人才,為每個人找到合適的崗位去發(fā)揮其特長是用人的關(guān)鍵環(huán)節(jié)。而運用先進科技手段進行有效管理是最好的發(fā)展方向。MIS作為提高管理效率和辦公自動化進程的重要工具,已深入到國民生產(chǎn)的方方面面。我們更加需要開發(fā)適應(yīng)不同行業(yè)不同需求的MIS系統(tǒng)。</p
13、><p><b> 2.2系統(tǒng)開發(fā)目的</b></p><p> 本系統(tǒng)開發(fā)的主要目的就是要使企事業(yè)單位工資管理實現(xiàn)計算機管理,使管理員能夠有序地管理每一位職工的各項工資條款的發(fā)放以及員工個人臺帳的生成,使企業(yè)運用現(xiàn)代化技術(shù)創(chuàng)造更多更高的經(jīng)濟效益。</p><p><b> 2.3系統(tǒng)平臺選用</b></p>
14、<p> 2.3.1數(shù)據(jù)庫技術(shù)的現(xiàn)狀與發(fā)展</p><p> 數(shù)據(jù)庫是60年代末出現(xiàn)的一門計算機軟件技術(shù),到現(xiàn)在雖然只有三十多年的歷史,但在理論和時間上都得到了和很大的發(fā)展?,F(xiàn)在,數(shù)據(jù)庫是數(shù)據(jù)處理的主要工具,是管理信息系統(tǒng)(MIS)的核心部分。數(shù)據(jù)庫系統(tǒng)是當今計算機信息系統(tǒng)的核心,是計算機技術(shù)和應(yīng)用發(fā)展的關(guān)鍵。傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)旨在處理永久、穩(wěn)定的數(shù)據(jù),強調(diào)維護數(shù)據(jù)的完整性、一致性。</p&
15、gt;<p> 數(shù)據(jù)庫理論與技術(shù)的發(fā)展極其迅速,其應(yīng)用日益廣泛,在當今的信息社會中,它幾乎無所不在。以關(guān)系型為代表的三大經(jīng)典(層次、網(wǎng)狀、關(guān)系)型數(shù)據(jù)庫在傳統(tǒng)的(商務(wù)和管理的事務(wù)型)應(yīng)用領(lǐng)域獲得了極大成功。計算機世界報社與IBM公司聯(lián)合舉辦了"21世紀數(shù)據(jù)庫技術(shù)發(fā)展專家研討會"。IBM DB2的創(chuàng)始人Donald Haderle先生與國內(nèi)著名數(shù)據(jù)庫專家,就下世紀數(shù)據(jù)庫發(fā)展的趨勢、數(shù)據(jù)庫領(lǐng)域革命性的突破
16、、IBM DB2的應(yīng)用、數(shù)據(jù)倉庫的實施、我國數(shù)據(jù)庫技術(shù)和應(yīng)用的現(xiàn)狀及趨勢、我國數(shù)據(jù)庫用戶的需求等問題,進行了廣泛而深入的討論。</p><p> 2.3.2數(shù)據(jù)庫系統(tǒng)的選擇原則</p><p> ?、贁?shù)據(jù)庫系統(tǒng)采用易于集成的,開放的技術(shù)。</p><p> ②產(chǎn)品質(zhì)量優(yōu)異,可靠性高,適于長期運行,能支持關(guān)鍵應(yīng)用。</p><p> ③數(shù)
17、據(jù)安全,保安型高。</p><p> ?、苣芴峁┓植际綌?shù)據(jù)庫功能。</p><p> ?、葜С侄喾N開發(fā)環(huán)境,軟件開發(fā)容易。</p><p> ?、迶U充性和升級能力強。</p><p> 2.3.3系統(tǒng)開發(fā)工具的選擇</p><p> 本次工資管理系統(tǒng)選用Delphi與Oracle11g進行開發(fā),現(xiàn)在市場上有很多MI
18、S的開發(fā)工具,如:Visual basic、Delphi、ASP等等,數(shù)據(jù)庫開發(fā)工具又有很多種,如:Access,SQL Sever,Oracle等等。與其他開發(fā)工具相比,Delphi與Oracle有著自己的特點與優(yōu)勢。</p><p><b> ?、臘elphi簡介</b></p><p> Delphi,是Windows平臺下著名的快速應(yīng)用程序開發(fā)工具(Rapi
19、d Application Development,簡稱RAD)。它的前身,即是DOS時代盛行一時的“Borland Turbo Pascal”,最早的版本由美國Borland(寶蘭)公司于1995年開發(fā)。主創(chuàng)者為Anders Hejlsberg。經(jīng)過數(shù)年的發(fā)展,此產(chǎn)品也轉(zhuǎn)移至Embarcadero公司旗下。</p><p> 從產(chǎn)品名稱上就可以知道,Turbo Pascal使用的是Pascal語言。從Turb
20、o Pascal 5.5版開始,Borland公司在傳統(tǒng)Pascal的基礎(chǔ)上加入了面向?qū)ο蟮墓δ堋?lt;/p><p> Delphi是一個集成開發(fā)環(huán)境(IDE),使用的核心是由傳統(tǒng)Pascal語言發(fā)展而來的Object Pascal,以圖形用戶界面(Graphical User Interface,簡稱GUI)為開發(fā)環(huán)境,透過IDE、VCL工具與編譯器,配合連結(jié)數(shù)據(jù)庫的功能,構(gòu)成一個以面向?qū)ο蟪绦蛟O(shè)計為中心的應(yīng)用
21、程序開發(fā)工具。Delphi所編譯的可運行檔,雖然容量較大,但效能上卻比較快。除了使用數(shù)據(jù)庫的程序之外,不需安裝即可運行,在使用上相當方便。</p><p> Delphi在本質(zhì)上應(yīng)該歸類為軟件開發(fā)工具,而非程序語言,但由于Delphi幾乎是目前市場上唯一使用Pascal,并持續(xù)推出新版本的商業(yè)產(chǎn)品。因此,有時人們會把Delphi視為Object Pascal的代名詞。Borland公司因而把Object Pas
22、cal改稱為Delphi。2006年,Borland把開發(fā)工具產(chǎn)品線獨立出來,成立了一家新的公司CodeGear,并把產(chǎn)品線交由此公司負責。原本的Delphi,亦曾一度因此被命名為Turbo Delphi。但是在新的版本中,除了Delphi for Win32(原有的Delphi版本)之外,還有一個新產(chǎn)品“Delphi for PHP”。在CodeGear的發(fā)展規(guī)劃中,或許“Delphi”不再是Object Pascal的專屬IDE名稱
23、,而是將之提升到通用IDE品牌的層次。2008年5月7日,Embarcadero Technologies(易博龍)公司宣布以2300萬美元的價格收購CodeGear公司,從而把Delphi收入囊中。2009年5月6日,Micro Focus宣布以7500萬美元收購Borland。</p><p> Delphi目前的最新版本是2010。</p><p> Delphi具有如下特點:&
24、lt;/p><p> ?、僦苯泳幾g生成可執(zhí)行代碼,編譯速度快。由于Delphi編譯器采用了條件編譯和選擇鏈接技術(shù),使用它生成的執(zhí)行文件更加精煉,運行速度更快。在處理速度和存取服務(wù)器方面,Delphi的性能遠遠高于其他同類產(chǎn)品。 </p><p> ?、谥С謱⒋嫒∫?guī)則分別交給客戶機或服務(wù)器處理的兩種方案,而且允許開發(fā)人員建立一個簡單的部件或部件集合,封裝起所有的規(guī)則,并獨立于服務(wù)器和客戶機,所有
25、的數(shù)據(jù)轉(zhuǎn)移通過這些部件來完成。這樣,大大減少了對服務(wù)器的請求和網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,提高了應(yīng)用處理的速度。 </p><p> ③提供了許多快速方便的開發(fā)方法,使開發(fā)人員能用盡可能少的重復性工作完成各種不同的應(yīng)用。利用項目模板和專家生成器可以很快建立項目的構(gòu)架,然后根據(jù)用戶的實際需要逐步完善。 </p><p> ?、芫哂锌芍赜眯院涂蓴U展性。開發(fā)人員不必再對諸如標簽、按鈕及對話框等Wind
26、ows的常見部件進行編程。Delphi包含許多可以重復使用的部件,允許用戶控制Windows的開發(fā)效果。</p><p> ?、菥哂袕姶蟮臄?shù)據(jù)存取功能。它的數(shù)據(jù)處理工具BDE(BorlandDatabaseEngine)是一個標準的中介軟件層,可以用來處理當前流行的數(shù)據(jù)格式,如xBase、Paradox等,也可以通過BDE的SQLLink直接與Sybase、SQLServer、Informix、Oracle等大型
27、數(shù)據(jù)庫連接。 Delphi既可用于開發(fā)系統(tǒng)軟件,也適合于應(yīng)用軟件的開發(fā)。 </p><p> ?、迵碛袕姶蟮木W(wǎng)絡(luò)開發(fā)能力,能夠快速的開發(fā)B/S應(yīng)用,它內(nèi)置的IntraWeb和ExpressWeb使得對于網(wǎng)絡(luò)的開發(fā)效率超過了其他任何的開發(fā)工具。 </p><p> ?、逥elphi使用獨特的VCL類庫,使得編寫出的程序顯得條理清晰,VCL是現(xiàn)在最優(yōu)秀的類庫,它使得Delphi在軟件開發(fā)行業(yè)處
28、于一個絕對領(lǐng)先的地位。用戶可以按自己的需要,任意的構(gòu)建、擴充、甚至是刪減VCL,以滿足不同的需要。 </p><p> ?、鄰腄elphi8開始Delphi也支持.Net框架下程序開發(fā)。 </p><p> 當前DELPHI 已經(jīng)成為一個品牌,而不僅僅是一個開發(fā)平臺或開發(fā)語言的名稱。 當前DELPHI產(chǎn)品已經(jīng)由CodeGear公司繼續(xù)發(fā)展,該公司是BORLAND公司的全資子公司。當前,C
29、odeGear為廣大開發(fā)者提供了DELPHI FOR PHP,以高度可視化的方式全面支持面向?qū)ο蟮腜HP 網(wǎng)站開發(fā),大大提高了PHP開發(fā)網(wǎng)站的代碼復用程度,成為WEB應(yīng)用開發(fā)的新利器。</p><p><b> ?、芆racle簡介</b></p><p> Oracle的關(guān)系數(shù)據(jù)庫是世界第一個支持SQL語言的數(shù)據(jù)庫。1977年,Lawrence J.Ellison
30、領(lǐng)著一些同事成立了Oracle公司,他們的成功強力反擊了那些說關(guān)系數(shù)據(jù)庫無法成功商業(yè)化的說法?,F(xiàn)在,Oracle公司的財產(chǎn)凈值已經(jīng)由當初的2000美元增值到了現(xiàn)在的年收入超過97億美元。</p><p> Oracle 11g 擴展了 Oracle 獨家具有的提供網(wǎng)格計算優(yōu)勢的功能,可以利用它來提高用戶服務(wù)水平、減少停機時間以及更加有效地利用 IT資源,同時還可以增強全天候業(yè)務(wù)應(yīng)用程序的性能、可伸縮性和安全性。
31、</p><p> 11 g降低了數(shù)據(jù)庫升級以及其他硬件和操作系統(tǒng)更改的成本,顯著簡化了更改前后的系統(tǒng)測試以便您可以識別和解決問題。例如: 利用 Database Replay,可以在數(shù)據(jù)庫級別輕松捕獲實際的生產(chǎn)負載并在您的測試系統(tǒng)上重新播放,這樣您可以全面測試系統(tǒng)更改(包括關(guān)鍵的并發(fā)特性)的影響。 </p><p> Oracle 數(shù)據(jù)庫 11 g繼續(xù)致力于(從 Oracle9i數(shù)據(jù)
32、庫開始一直到 Oracle 數(shù)據(jù)庫10 g)顯著簡化和完全自動化 DBA 任務(wù)。 Oracle數(shù)據(jù)庫11 g中的新功能包括: 利用自學功能自動進行 SQL 優(yōu)化系統(tǒng)全局區(qū)(SGA)和程序全局區(qū)( PGA)的內(nèi)存緩存區(qū)的自動、統(tǒng)一調(diào)整新的 advisor用于分區(qū)、數(shù)據(jù)恢復、流性能和空間管理針對自動數(shù)據(jù)庫診斷監(jiān)視器 (ADDM)的增強,能夠提供 Oracle 真正應(yīng)用集群 (Oracle RAC)環(huán)境中的更好的性能全局視圖以及改進的性能比較
33、分析功能。</p><p> Oracle 數(shù)據(jù)庫 11 g中新增的故障診斷功能使客戶在發(fā)生錯誤后捕獲 OracleSupport所需的數(shù)據(jù)變得極為簡單。這可以加速問題的解決,減少客戶重現(xiàn)問題的需要。</p><p> ?、荄elphi 和 Oracle 數(shù)據(jù)庫的連接方法</p><p> Oracle是以高級結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,是目
34、前最流行的客戶/服務(wù)器(CLIENT/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫之一,目前被廣泛應(yīng)用于各類型企業(yè)的信息化管理中。數(shù)據(jù)庫支持是Delphi7.0開發(fā)環(huán)境的一個重要特性,很多程序員在數(shù)據(jù)庫應(yīng)用程序開發(fā)中都采用Delphi7.0作為開發(fā)工具,來實現(xiàn)對數(shù)據(jù)庫的訪問和控制。Delphi數(shù)據(jù)庫應(yīng)用程序是通過數(shù)據(jù)庫引擎來訪問它們引用的數(shù)據(jù)源的。本文概括性的介紹在Windows XP環(huán)境中Delphi7.0連接Oracle數(shù)據(jù)庫的3種方式,它們分別
35、是BDE、ADO、DbExpress。</p><p> ADO(ActiveX Data Objects)是Microsoft的高級接口,基于Microsoft的數(shù)據(jù)訪問OLEDB技術(shù)而實現(xiàn)。本系統(tǒng)采用ADO方式連接Oracle數(shù)據(jù)庫。</p><p><b> 3 需求分析</b></p><p><b> 3.1需求陳述&
36、lt;/b></p><p> 本系統(tǒng)擬在完成工資管理的同時,集成其他必要的功能,以保證系統(tǒng)的完整性和安全性。具體包括,員工基本信息管理、部門管理、當前工資及歷史工資管理等。</p><p> 現(xiàn)對有關(guān)要求描述如下:</p><p> ①整體結(jié)構(gòu)合理,風格一致,模塊化結(jié)構(gòu),界面清晰,接口靈活,操作簡便。</p><p> ?、陂_發(fā)
37、方法,文檔規(guī)范化,便于管理,可擴充。</p><p> ?、弁晟频臄?shù)據(jù)輸入,維護,輸出。</p><p> ?、茏詸z性能高,用戶誤輸、錯輸均有提示。</p><p> ⑤容錯性能高,某個用戶的操作錯誤不會引起整個系統(tǒng)的癱瘓,每一功能的操作都有信息提示以免重復操作,錯誤操作有警告,以便用戶及時改正。</p><p><b> 3.
38、2可行性分析</b></p><p> 3.2.1技術(shù)可行性</p><p> 技術(shù)上的可行性分析主要分析現(xiàn)有技術(shù)條件能否順利完成開發(fā)工作,軟硬件配置能否滿足開發(fā)者需要等,這一特點非常適合計算機的特點,發(fā)揮計算機的數(shù)據(jù)處理速度快,準確率高的優(yōu)勢,現(xiàn)代計算機硬件和軟件技術(shù)的飛速發(fā)展,為系統(tǒng)的建設(shè)提供了技術(shù)條件。</p><p> 通過對Delphi和
39、Oracle的系統(tǒng)學習,已經(jīng)基本掌握了開發(fā)本系統(tǒng)所需的技術(shù)和查閱文獻的能力。對工資管理系統(tǒng)這一類的財務(wù)系統(tǒng)開發(fā)也有一定的認識,因此具備技術(shù)可行性。</p><p> 3.2.2時間、設(shè)備可行性</p><p> 12周的時間足夠開發(fā)一個滿足中小型企業(yè)簡單需求的工資管理系統(tǒng),現(xiàn)有計算機的軟硬件配置能夠滿足系統(tǒng)開發(fā)的要求,具備時間和設(shè)備的可行性。</p><p>
40、 3.2.3經(jīng)濟可行性</p><p> 基于企業(yè)的現(xiàn)有計算機及配套設(shè)備,建設(shè)MIS系統(tǒng)。不但能大大減少重復性的書面報告,降低辦公費用,提高辦公室效率,而且能提高檢測數(shù)據(jù)效用,為企業(yè)提供很方便。由于企業(yè)工資管理系統(tǒng)是一個比較小型的系統(tǒng),開發(fā)工具也均可免費使用,網(wǎng)絡(luò)資源豐富,只需較少的花費在技術(shù)文獻上,開發(fā)成本較低,因此,開發(fā)本系統(tǒng)具有經(jīng)濟上的可行性。</p><p><b>
41、 4 概要設(shè)計</b></p><p> 4.1系統(tǒng)功能結(jié)構(gòu)設(shè)計</p><p> 圖4.1 功能模塊圖</p><p><b> 表4.1功能說明表</b></p><p> 設(shè)計角色:財務(wù)管理人員</p><p><b> 4.2數(shù)據(jù)庫設(shè)計</b>&
42、lt;/p><p> 4.2.1數(shù)據(jù)庫邏輯結(jié)構(gòu)</p><p> 表4.2 部門信息表(bm)</p><p> 表4.3 職工工資信息表(ry)</p><p> 表4.4 歷史數(shù)據(jù)表(sj)</p><p> 4.2.2 數(shù)據(jù)庫E-R圖</p><p> 圖4.2 工資管理系統(tǒng)實體關(guān)
43、系圖</p><p> 4.2.3 Oracle數(shù)據(jù)庫的使用</p><p> 在Oracle中創(chuàng)建用戶,如圖4.2所示</p><p><b> 圖4.2創(chuàng)建用戶</b></p><p> 在Oracle中建表,如圖4.3所示</p><p><b> 圖4.3建表</
44、b></p><p><b> 5 詳細設(shè)計</b></p><p><b> 5.1主界面設(shè)計</b></p><p> 由于本系統(tǒng)是針對財務(wù)管理人員角色設(shè)計開發(fā)的,故未進行權(quán)限的設(shè)定。</p><p> 在主界面顯示每個模塊的入口,點擊即可進入。</p><p&
45、gt; 在狀態(tài)欄顯示系統(tǒng)日期和登錄系統(tǒng)時間。</p><p> 系統(tǒng)主界面如圖5.1所示:</p><p> 圖5.1 系統(tǒng)主界面</p><p><b> 該模塊主要代碼:</b></p><p> procedure Tgzgl_f.FormCreate(Sender: TObject); //數(shù)據(jù)庫連接
46、處理</p><p><b> begin</b></p><p> gzgl_f.Color:=rgb(180,130,100);</p><p><b> try</b></p><p> db1.Connected:=true;</p><p><b>
47、; except</b></p><p> showmessage('連接數(shù)據(jù)庫失敗 ! ');</p><p> application.terminate;</p><p><b> end;</b></p><p><b> end;</b></p&
48、gt;<p> procedure Tmainf.FormCreate(Sender: TObject); //狀態(tài)欄系統(tǒng)日期與時間</p><p><b> begin</b></p><p> Statusbar1.Panels[0].Text:='系統(tǒng)日期:'+datetostr(date);</p><
49、p> Statusbar1.Panels[1].Text:='系統(tǒng)時間:'+timetostr(time);</p><p><b> end;</b></p><p> procedure Tmainf.bmiClick(Sender: TObject); //選中菜單顯示相應(yīng)的窗體,此處為部門管理</p><p&g
50、t;<b> begin</b></p><p> If bmi.Checked Then //用If語句做異常處理</p><p><b> bmf.Show</b></p><p><b> ELSE</b></p><p>
51、<b> begin</b></p><p> Application.CreateForm(Tbmf,bmf);</p><p><b> bmf.Show;</b></p><p> bmi.Checked:=True;</p><p><b> end;</b>
52、</p><p><b> end;</b></p><p> 5.2基本信息管理模塊</p><p> 此模塊包括部門和員工的基本信息維護,具體功能包括,部門信息的添加和刪除,員工信息的添加和刪除。輸入要添加的數(shù)據(jù)后,點擊“添加”完成數(shù)據(jù)添加,點擊“刷新”按鈕顯示數(shù)據(jù)。刪除數(shù)據(jù)時程序?qū)⑦B接后臺數(shù)據(jù)庫,判斷是否存在該記錄的工資信息,若不存
53、在則刪除成功,若存在,則刪除失敗。如圖5.2,5.3所示</p><p> 圖5.2部門信息維護</p><p> 部門信息維護核心代碼:</p><p> procedure Tbmf.BitBtn1Click(Sender: TObject);</p><p><b> begin</b></p>
54、<p> edit1.Text:=trim(edit1.text);</p><p> if (length(edit1.Text)=0) or (length(bh.Text)=0)</p><p><b> then</b></p><p><b> begin</b></p>&l
55、t;p> showmessage('編號與單位名稱不能為空!');</p><p><b> exit;</b></p><p><b> end;</b></p><p> with Q1 do</p><p><b> begin</b>&l
56、t;/p><p><b> Close;</b></p><p> Sql.Clear;</p><p> Sql.Add('Insert Into bm (bh,mc)');</p><p> Sql.Add(' Values(:y0,:y1) ');</p><
57、p> Parameters.ParamByName('y0').Value:=bh.Text;</p><p> Parameters.ParamByName('y1').Value:=edit1.Text;</p><p><b> Try</b></p><p><b> ExecSq
58、l;</b></p><p><b> except</b></p><p> showmessage('服務(wù)器連接error,程序退出!');</p><p> application.Terminate;</p><p><b> end;</b></p
59、><p><b> end;</b></p><p><b> end;</b></p><p> procedure Tbmf.BitBtn2Click(Sender: TObject);</p><p><b> begin</b></p><p&g
60、t; if messagedlg('如果系統(tǒng)中存在本部門數(shù)據(jù)不能刪除,確要刪除嗎?',mtconfirmation,[mbyes,mbno],0)</p><p> =mrno then exit;</p><p><b> q1.Close;</b></p><p> q1.Sql.Clear;</p>
61、<p> q1.Sql.Add('delete from bm ');</p><p> q1.Sql.Add(' where (bh like :bh) ');</p><p> q1.Parameters.ParamByName('bh').Value:=bh.text+'%';</p>&
62、lt;p><b> Try</b></p><p> q1.ExecSql;</p><p><b> except</b></p><p> showmessage('服務(wù)器連接error,程序退出!');</p><p> application.Terminat
63、e;</p><p><b> end;</b></p><p><b> q1.Close;</b></p><p><b> end;</b></p><p> procedure Tbmf.BitBtn3Click(Sender: TObject);</p&
64、gt;<p> var i:integer;</p><p><b> begin</b></p><p><b> Q1.Close;</b></p><p> Q1.Sql.Clear;</p><p> Q1.Sql.Add('Select bh,mc From
65、 bm ');</p><p> Q1.Sql.Add(' order by bh');</p><p><b> Try</b></p><p><b> Q1.Open;</b></p><p><b> except</b></p&g
66、t;<p> showmessage('服務(wù)器連接error,程序退出!');</p><p> application.Terminate;</p><p><b> End;</b></p><p> sg.RowCount:=Q1.RecordCount+1;</p><p>
67、 sg.ColCount:=2;</p><p> For I:=0 To sg.RowCount Do sg.Rows[I].Clear;</p><p> sg.Cells[0,0]:='編號';</p><p> sg.Cells[1,0]:='名稱';</p><p> For I:=1 To
68、 sg.RowCount Do</p><p><b> Begin</b></p><p> sg.Cells[0,i]:=(Q1.FieldByName('bh').AsString);</p><p> sg.Cells[1,i]:=(Q1.FieldByName('mc').AsString);&l
69、t;/p><p><b> Q1.Next;</b></p><p><b> End;</b></p><p><b> Q1.Close;</b></p><p><b> end;</b></p><p> proced
70、ure Tbmf.FormClose(Sender: TObject; var Action: TCloseAction);</p><p><b> begin</b></p><p> mainf.bmi.checked:=false;</p><p> action:=cafree;</p><p><
71、b> end;</b></p><p> procedure Tbmf.FormCreate(Sender: TObject);</p><p> var i:integer;</p><p><b> begin</b></p><p> bmf.Color:=rgb(220,170,140
72、);</p><p> for i:=1 to 9 do</p><p> bh.Items.Add('0'+inttostr(i));</p><p> for i:=10 to 50 do</p><p> bh.Items.Add(inttostr(i));</p><p> sg.Fi
73、xedColor:=rgb(180,130,100);</p><p><b> end;</b></p><p><b> 員工信息維護:</b></p><p> 圖5.3員工信息維護</p><p> 員工信息維護核心代碼:</p><p> procedur
74、e Tryf.BitBtn1Click(Sender: TObject);</p><p><b> begin</b></p><p> edit1.Text:=trim(edit1.text);</p><p> if (length(edit1.Text)=0) or (length(bh.Text)=0)</p>&
75、lt;p> or (length(bm.Text)=0)</p><p><b> then</b></p><p><b> begin</b></p><p> showmessage('編號與單位名稱不能為空!');</p><p><b> exit
76、;</b></p><p><b> end;</b></p><p> with Q1 do</p><p><b> begin</b></p><p><b> Close;</b></p><p> Sql.Clear;&l
77、t;/p><p> Sql.Add('Insert Into ry (bm,bh,xm)');</p><p> Sql.Add(' Values(:y0,:y1,:y2) ');</p><p> Parameters.ParamByName('y0').Value:=bm.Text;</p><
78、;p> Parameters.ParamByName('y1').Value:=bh.Text;</p><p> Parameters.ParamByName('y2').Value:=edit1.Text;</p><p><b> Try</b></p><p><b> ExecS
79、ql;</b></p><p><b> except</b></p><p> showmessage('服務(wù)器連接error,程序退出!');</p><p> application.Terminate;</p><p><b> end;</b></
80、p><p><b> end;</b></p><p><b> end;</b></p><p> procedure Tryf.BitBtn2Click(Sender: TObject);</p><p><b> begin</b></p><p&
81、gt; if messagedlg('如果系統(tǒng)中存在本人工資數(shù)據(jù)不能刪除,確要刪除嗎?',mtconfirmation,[mbyes,mbno],0)</p><p> =mrno then exit;</p><p> bh.text:=trim(bh.text);</p><p> if (length(bh.text)<2) t
82、hen exit;</p><p><b> q1.Close;</b></p><p> q1.Sql.Clear;</p><p> q1.Sql.Add('delete from ry ');</p><p> q1.Sql.Add(' where ((bh like :bh) an
83、d (bm like :bm))');</p><p> q1.Parameters.ParamByName('bh').Value:=bh.text+'%';</p><p> q1.Parameters.ParamByName('bm').Value:=bm.text+'%';</p><p
84、><b> Try</b></p><p> q1.ExecSql;</p><p><b> except</b></p><p> showmessage('服務(wù)器連接error,程序退出!');</p><p> application.Terminate;&l
85、t;/p><p><b> end;</b></p><p><b> q1.Close;</b></p><p><b> end;</b></p><p> procedure Tryf.BitBtn3Click(Sender: TObject);</p>
86、<p> var i:integer;</p><p><b> begin</b></p><p> ListBox1.Items.Clear;</p><p><b> Q1.Close;</b></p><p> Q1.Sql.Clear;</p><
87、p> Q1.Sql.Add('Select bh,xm From ry ');</p><p> q1.Sql.Add(' where (bm like :bm) ');</p><p> Q1.Sql.Add(' order by bh');</p><p> q1.Parameters.ParamBy
88、Name('bm').Value:=bm.text+'%';</p><p><b> Try</b></p><p><b> Q1.Open;</b></p><p><b> except</b></p><p> showmess
89、age('服務(wù)器連接error,程序退出!');</p><p> application.Terminate;</p><p><b> End;</b></p><p> ListBox1.Items.Add(' 編號 姓名');</p><p> For I:=1 To
90、Q1.RecordCount Do</p><p><b> Begin</b></p><p> ListBox1.Items.Add(' '+Q1.FieldByName('bh').AsString+' '+Q1.FieldByName('xm').AsString);</p>
91、;<p><b> Q1.Next;</b></p><p><b> End;</b></p><p><b> Q1.Close;</b></p><p><b> end;</b></p><p> procedure Try
92、f.bmChange(Sender: TObject);</p><p> var i:integer;</p><p><b> begin</b></p><p> ListBox1.Items.Clear;</p><p><b> Q1.Close;</b></p>&
93、lt;p> Q1.Sql.Clear;</p><p> Q1.Sql.Add('Select bh,xm From ry ');</p><p> q1.Sql.Add(' where (bm like :bm) ');</p><p> Q1.Sql.Add(' order by bh');</
94、p><p> q1.Parameters.ParamByName('bm').Value:=bm.text+'%';</p><p><b> Try</b></p><p><b> Q1.Open;</b></p><p><b> except&l
95、t;/b></p><p> showmessage('服務(wù)器連接error,程序退出!');</p><p> application.Terminate;</p><p><b> End;</b></p><p> ListBox1.Items.Add(' 編號 姓名
96、9;);</p><p> For I:=1 To Q1.RecordCount Do</p><p><b> Begin</b></p><p> ListBox1.Items.Add(''+Q1.FieldByName('bh').AsString+''+Q1.FieldByName(
97、'xm').AsString);</p><p><b> Q1.Next;</b></p><p><b> End;</b></p><p><b> Q1.Close;</b></p><p> bh.Text:='';</p
98、><p> edit1.Text:='';</p><p><b> end;</b></p><p> procedure Tryf.FormClose(Sender: TObject; var Action: TCloseAction);</p><p><b> begin</b
99、></p><p> mainf.ryi.checked:=false;</p><p> action:=cafree;</p><p><b> end;</b></p><p> procedure Tryf.FormCreate(Sender: TObject);</p><p&
100、gt; var i:integer;</p><p><b> begin</b></p><p> ryf.Color:=rgb(220,170,140);</p><p><b> Q1.Close;</b></p><p> Q1.Sql.Clear;</p><
101、p> Q1.Sql.Add('Select mc From bm ');</p><p> Q1.Sql.Add(' order by bh');</p><p><b> Try</b></p><p><b> Q1.Open;</b></p><p&g
102、t;<b> except</b></p><p> showmessage('服務(wù)器連接error,程序退出!');</p><p> application.Terminate;</p><p><b> End;</b></p><p> For I:=1 To Q1
103、.RecordCount Do</p><p><b> Begin</b></p><p> bm.Items.Add(Q1.FieldByName('mc').AsString);</p><p><b> Q1.Next;</b></p><p><b> E
104、nd;</b></p><p><b> Q1.Close;</b></p><p> for i:=1 to 9 do</p><p> bh.Items.Add('0'+inttostr(i));</p><p> for i:=10 to 99 do</p><
105、;p> bh.Items.Add(inttostr(i));</p><p><b> end;</b></p><p><b> 5.3工資數(shù)據(jù)模塊</b></p><p> 本模塊包括月基本工資數(shù)據(jù)、月活動工資填報、月數(shù)據(jù)存檔三個子模塊,分別用于查看修改月基本工資數(shù)據(jù),填報月活動工資數(shù)據(jù)以及對填報好的所有
106、數(shù)據(jù)存檔。</p><p> 月基本數(shù)據(jù)界面設(shè)計如圖5.4所示:</p><p> 圖5.4 月基本數(shù)據(jù)</p><p><b> 核心代碼:</b></p><p> procedure Tjbf.BitBtn1Click(Sender: TObject);</p><p> var
107、i,j,k:integer;</p><p><b> s:string;</b></p><p><b> begin</b></p><p> if messagedlg('確認更新數(shù)據(jù)嗎?',mtconfirmation,[mbyes,mbno],0)</p><p>
108、 =mrno then exit;</p><p> if bm.Text='' then exit;</p><p><b> k:=0;</b></p><p> for i:=1 to sg.RowCount-1 do</p><p> for j:=1 to 10 do</p>
109、;<p><b> begin</b></p><p><b> try</b></p><p> sg.Cells[j,i]:=floattostr(strtofloat(sg.Cells[j,i]));</p><p><b> except</b></p>&
110、lt;p> showmessage('第'+inttostr(i)+'行 第'+inttostr(j)+'列有非法數(shù)字');</p><p><b> k:=k+1;</b></p><p><b> end;</b></p><p><b> end
111、;</b></p><p> if k>0 then exit;</p><p><b> s:='';</b></p><p> for i:=1 to sg.RowCount-1 do</p><p><b> begin</b></p>
112、<p> s:=sg.Cells[0,i];</p><p><b> Q1.Close;</b></p><p> Q1.Sql.Clear;</p><p> Q1.Sql.Add(' update ry set z1=:z1,z2=:z2,z3=:z3,z4=:z4,z5=:z5,z6=:z6, ');&
113、lt;/p><p> Q1.Sql.Add('z7=:z7,z8=:z8,z9=:z9,z10=:z10,z11=:z11,k3=:k3,kbx=:kbx ');</p><p> q1.Sql.Add(' where (bm like :bm ) and (bh like :bh)');</p><p> q1.Parameter
114、s.ParamByName('z1').Value:=strtofloat(sg.Cells[1,i]);</p><p> q1.Parameters.ParamByName('z2').Value:=strtofloat(sg.Cells[1,i])*0.4;</p><p> q1.Parameters.ParamByName('z3
115、9;).Value:=strtofloat(sg.Cells[1,i])*0.6;</p><p> q1.Parameters.ParamByName('z4').Value:=strtofloat(sg.Cells[2,i]);</p><p> q1.Parameters.ParamByName('z5').Value:=strtofloat(sg
116、.Cells[3,i]);</p><p> q1.Parameters.ParamByName('z6').Value:=strtofloat(sg.Cells[4,i]);</p><p> q1.Parameters.ParamByName('z7').Value:=strtofloat(sg.Cells[5,i]);</p><
117、;p> q1.Parameters.ParamByName('z8').Value:=strtofloat(sg.Cells[6,i]);</p><p> q1.Parameters.ParamByName('z9').Value:=strtofloat(sg.Cells[7,i]);</p><p> q1.Parameters.ParamB
118、yName('z10').Value:=strtofloat(sg.Cells[8,i]);</p><p> q1.Parameters.ParamByName('z11').Value:=-(strtofloat(sg.Cells[1,i])*0.1618);</p><p> //q1.ParamByName('z11').Asfl
119、oat:=0;</p><p> q1.Parameters.ParamByName('k3').Value:=strtofloat(sg.Cells[9,i]);</p><p> q1.Parameters.ParamByName('bm').Value:=copy(bm.Text,3,20)+'%';</p><
120、p> q1.Parameters.ParamByName('bh').Value:=copy(s,1,2)+'%';</p><p> q1.Parameters.ParamByName('kbx').Value:=strtofloat(sg.Cells[10,i]);</p><p><b> Try</b>
121、;</p><p> Q1.ExecSql;</p><p><b> except</b></p><p> showmessage('數(shù)據(jù)庫更新error 重新點擊“更新”按鈕!');</p><p><b> exit;</b></p><p>
122、<b> end;</b></p><p><b> end;</b></p><p> showmessage(' 操作 OK !')</p><p><b> end;</b></p><p> procedure Tjbf.bmExit(Send
123、er: TObject);</p><p> var i:integer;</p><p><b> begin</b></p><p><b> Q1.Close;</b></p><p> Q1.Sql.Clear;</p><p> Q1.Sql.Add(
124、39;Select bh,xm,z1,z4,z5,z6,z7,z8,z9,z10,k3,kbx From ry ');</p><p> q1.Sql.Add(' where (bm like :bm )');</p><p> q1.Parameters.ParamByName('bm').Value:=copy(bm.text,3,20)+&
125、#39;%';</p><p> Q1.Sql.Add(' order by bh');</p><p><b> Try</b></p><p><b> Q1.Open;</b></p><p><b> except</b></p&g
126、t;<p> showmessage('數(shù)據(jù)庫連接error,程序退出!');</p><p> application.Terminate;</p><p><b> End;</b></p><p> sg.RowCount:=Q1.RecordCount+1;</p><p>
127、 sg.ColCount:=11;</p><p> For I:=0 To sg.RowCount-1 Do sg.Rows[I].Clear;</p><p> sg.Cells[0,0]:='編號姓名';</p><p> sg.Cells[1,0]:='崗位資';</p><p> sg.Ce
128、lls[2,0]:='計生補';</p><p> sg.Cells[3,0]:='月效資';</p><p> sg.Cells[4,0]:='技師補';</p><p> sg.Cells[5,0]:='醫(yī)務(wù)補';</p><p> sg.Cells[6,0]:=
129、39;護10%';</p><p> sg.Cells[7,0]:='教護齡';</p><p> sg.Cells[8,0]:='女工衛(wèi)';</p><p> sg.Cells[9,0]:='公積金';</p><p> sg.Cells[10,0]:='保險'
130、;</p><p> //md.Items.Clear;</p><p> //md.Items.Add(' ');</p><p> For I:=1 To Q1.RecordCount Do</p><p><b> Begin</b></p><p> //
131、 md.Items.Add((Q1.FieldByName('bh').AsString)+(Q1.FieldByName('xm').AsString));</p><p> sg.Cells[0,i]:=Q1.FieldByName('bh').AsString+Q1.FieldByName('xm').AsString;</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- delphi工資管理畢業(yè)設(shè)計
- 工資管理畢業(yè)設(shè)計論文
- 工資管理系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計(論文)-delphi 7 管莊校區(qū)工資管理系統(tǒng)的設(shè)計和分析
- [delphi畢設(shè)]工資管理系統(tǒng)+論文
- 人事工資管理系統(tǒng)畢業(yè)設(shè)計論文
- 人事工資管理系統(tǒng)畢業(yè)設(shè)計論文
- vf企業(yè)工資管理系統(tǒng)畢業(yè)設(shè)計論文
- 工資管理信息系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計(論文)-vb6.0工資管理系統(tǒng)設(shè)計
- 畢業(yè)論文范文——人事工資管理系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)論文范文——人事工資管理系統(tǒng)畢業(yè)設(shè)計
- 工資管理系統(tǒng)畢業(yè)設(shè)計---vfp工資管理系統(tǒng)
- 工資管理系統(tǒng)畢業(yè)論文
- 工資管理系統(tǒng)設(shè)計與實現(xiàn)──工資管理、工資組、工資單【畢業(yè)論文設(shè)計】
- 工資管理系統(tǒng)畢業(yè)論文
- 工資管理系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計----工資管理系統(tǒng)
- [vb畢設(shè)]vb人事工資管理系統(tǒng)畢業(yè)設(shè)計(論文)
- 企業(yè)工資管理信息系統(tǒng)—免費畢業(yè)設(shè)計論文
評論
0/150
提交評論