版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rè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 詳細(xì)設(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當(dāng)月報表模塊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> 參考文獻(xiàn)44</b></p><p><b> 致謝45</b></p><p><b> 1 前言</b></p><p> 上世紀(jì)八、九十年代以來,計算機產(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世紀(jì)以來,計算機更是以驚人的普及速度,進入各行各業(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án)格、細(xì)致,組織較為緊密,對軟硬件的要求也就比較高,因此試圖以一款軟件來解決企業(yè)的所有問題顯然是不可能的,這就需要我們細(xì)化事務(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)資料,對市場需求進行分析,對既成工資管理軟件的研究和測試,我們認(rè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世紀(jì)80年代以來,知識經(jīng)濟的興起和信息技術(shù)的日新月異消除了人與人之間知識、信息傳遞的障礙,也帶來了人類
12、經(jīng)營意識、管理觀念的巨大改變。21世紀(jì)是一個經(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)是當(dā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)用日益廣泛,在當(dāng)今的信息社會中,它幾乎無所不在。以關(guān)系型為代表的三大經(jīng)典(層次、網(wǎng)狀、關(guān)系)型數(shù)據(jù)庫在傳統(tǒng)的(商務(wù)和管理的事務(wù)型)應(yīng)用領(lǐng)域獲得了極大成功。計算機世界報社與IBM公司聯(lián)合舉辦了"21世紀(jì)數(shù)據(jù)庫技術(shù)發(fā)展專家研討會"。IBM DB2的創(chuàng)始人Donald Haderle先生與國內(nèi)著名數(shù)據(jù)庫專家,就下世紀(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> ?、诋a(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> ⑥擴充性和升級能力強。</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ù)庫的程序之外,不需安裝即可運行,在使用上相當(dāng)方便。</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)品線交由此公司負(fù)責(zé)。原本的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的性能遠(yuǎn)遠(yuǎn)高于其他同類產(chǎn)品。 </p><p> ?、谥С謱⒋嫒∫?guī)則分別交給客戶機或服務(wù)器處理的兩種方案,而且允許開發(fā)人員建立一個簡單的部件或部件集合,封裝起所有的規(guī)則,并獨立于服務(wù)器和客戶機,所有
25、的數(shù)據(jù)轉(zhuǎn)移通過這些部件來完成。這樣,大大減少了對服務(wù)器的請求和網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,提高了應(yīng)用處理的速度。 </p><p> ?、厶峁┝嗽S多快速方便的開發(fā)方法,使開發(fā)人員能用盡可能少的重復(fù)性工作完成各種不同的應(yīng)用。利用項目模板和專家生成器可以很快建立項目的構(gòu)架,然后根據(jù)用戶的實際需要逐步完善。 </p><p> ?、芫哂锌芍赜眯院涂蓴U展性。開發(fā)人員不必再對諸如標(biāo)簽、按鈕及對話框等Wind
26、ows的常見部件進行編程。Delphi包含許多可以重復(fù)使用的部件,允許用戶控制Windows的開發(fā)效果。</p><p> ⑤具有強大的數(shù)據(jù)存取功能。它的數(shù)據(jù)處理工具BDE(BorlandDatabaseEngine)是一個標(biāo)準(zhǔn)的中介軟件層,可以用來處理當(dāng)前流行的數(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> ⑦Delphi使用獨特的VCL類庫,使得編寫出的程序顯得條理清晰,VCL是現(xiàn)在最優(yōu)秀的類庫,它使得Delphi在軟件開發(fā)行業(yè)處
28、于一個絕對領(lǐng)先的地位。用戶可以按自己的需要,任意的構(gòu)建、擴充、甚至是刪減VCL,以滿足不同的需要。 </p><p> ?、鄰腄elphi8開始Delphi也支持.Net框架下程序開發(fā)。 </p><p> 當(dāng)前DELPHI 已經(jīng)成為一個品牌,而不僅僅是一個開發(fā)平臺或開發(fā)語言的名稱。 當(dāng)前DELPHI產(chǎn)品已經(jīng)由CodeGear公司繼續(xù)發(fā)展,該公司是BORLAND公司的全資子公司。當(dāng)前,C
29、odeGear為廣大開發(fā)者提供了DELPHI FOR PHP,以高度可視化的方式全面支持面向?qū)ο蟮腜HP 網(wǎng)站開發(fā),大大提高了PHP開發(fā)網(wǎng)站的代碼復(fù)用程度,成為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)由當(dā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)負(fù)載并在您的測試系統(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中的新功能包括: 利用自學(xué)功能自動進行 SQL 優(yōu)化系統(tǒng)全局區(qū)(SGA)和程序全局區(qū)( PGA)的內(nèi)存緩存區(qū)的自動、統(tǒng)一調(diào)整新的 advisor用于分區(qū)、數(shù)據(jù)恢復(fù)、流性能和空間管理針對自動數(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)的完整性和安全性。具體包括,員工基本信息管理、部門管理、當(dāng)前工資及歷史工資管理等。</p><p> 現(xiàn)對有關(guān)要求描述如下:</p><p> ?、僬w結(jié)構(gòu)合理,風(fēng)格一致,模塊化結(jié)構(gòu),界面清晰,接口靈活,操作簡便。</p><p> ?、陂_發(fā)
37、方法,文檔規(guī)范化,便于管理,可擴充。</p><p> ?、弁晟频臄?shù)據(jù)輸入,維護,輸出。</p><p> ④自檢性能高,用戶誤輸、錯輸均有提示。</p><p> ?、萑蒎e性能高,某個用戶的操作錯誤不會引起整個系統(tǒng)的癱瘓,每一功能的操作都有信息提示以免重復(fù)操作,錯誤操作有警告,以便用戶及時改正。</p><p><b> 3.
38、2可行性分析</b></p><p> 3.2.1技術(shù)可行性</p><p> 技術(shù)上的可行性分析主要分析現(xiàn)有技術(shù)條件能否順利完成開發(fā)工作,軟硬件配置能否滿足開發(fā)者需要等,這一特點非常適合計算機的特點,發(fā)揮計算機的數(shù)據(jù)處理速度快,準(zhǔn)確率高的優(yōu)勢,現(xiàn)代計算機硬件和軟件技術(shù)的飛速發(fā)展,為系統(tǒng)的建設(shè)提供了技術(shù)條件。</p><p> 通過對Delphi和
39、Oracle的系統(tǒng)學(xué)習(xí),已經(jīng)基本掌握了開發(fā)本系統(tǒng)所需的技術(shù)和查閱文獻(xiàn)的能力。對工資管理系統(tǒng)這一類的財務(wù)系統(tǒng)開發(fā)也有一定的認(rèn)識,因此具備技術(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)。不但能大大減少重復(fù)性的書面報告,降低辦公費用,提高辦公室效率,而且能提高檢測數(shù)據(jù)效用,為企業(yè)提供很方便。由于企業(yè)工資管理系統(tǒng)是一個比較小型的系統(tǒng),開發(fā)工具也均可免費使用,網(wǎng)絡(luò)資源豐富,只需較少的花費在技術(shù)文獻(xiàn)上,開發(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 詳細(xì)設(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('確認(rèn)更新數(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 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
提交評論