工資管理系統(tǒng)畢業(yè)設(shè)計論文
《工資管理系統(tǒng)畢業(yè)設(shè)計論文》由會員分享,可在線閱讀,更多相關(guān)《工資管理系統(tǒng)畢業(yè)設(shè)計論文(48頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 目錄 1 前言 1 2 系統(tǒng)概況 2 2.1系統(tǒng)開發(fā)背景 2 2.2系統(tǒng)開發(fā)目的 2 2.3系統(tǒng)平臺選用 2 2.3.1數(shù)據(jù)庫技術(shù)的現(xiàn)狀與發(fā)展 2 2.3.2數(shù)據(jù)庫系統(tǒng)的選擇原則 3 2.3.3系統(tǒng)開發(fā)工具的選擇 3 3 需求分析 7 3.1需求陳述 7 3.2可行性分析 7 3.2.1技術(shù)可行性 7 3.2.2時間、設(shè)備可行性 7 3.2.3經(jīng)濟可行性 8 4 概要設(shè)計 9 4.1系統(tǒng)功能結(jié)構(gòu)設(shè)計 9 4.2數(shù)據(jù)庫設(shè)計 10 4.2.1數(shù)據(jù)庫邏輯結(jié)構(gòu) 10 4.2.2 數(shù)據(jù)庫E-R圖 12 4.2.3 Oracle數(shù)據(jù)庫的使用 13 5 詳細(xì)設(shè)計
2、 14 5.1主界面設(shè)計 14 5.2基本信息管理模塊 15 5.3工資數(shù)據(jù)模塊 24 5.4當(dāng)月報表模塊 35 5.5歷史數(shù)據(jù)模塊 37 5.6系統(tǒng)信息模塊 41 6 系統(tǒng)性能測試與分析 42 6.1測試范圍與主要內(nèi)容 42 6.2測試方法 42 6.3測試報告 42 7 結(jié)論 43 參考文獻 44 致謝 45 1 前言 上世紀(jì)八、九十年代以來,計算機產(chǎn)業(yè)飛速發(fā)展,其應(yīng)用滲透在社會生產(chǎn)的各個領(lǐng)域。計算機在國內(nèi)的崛起加速了各企事業(yè)單位、機關(guān)的自動化進程,提高了國民生產(chǎn)的效率,從而為國民經(jīng)濟的飛速發(fā)展創(chuàng)造了必要的條件。 步入21世紀(jì)以來,計算機
3、更是以驚人的普及速度,進入各行各業(yè)和大部分家庭。各種應(yīng)用的需求也不斷增加,人們更加追求生活的品質(zhì)和工作的效率,企業(yè)更是視提高生產(chǎn)效率為生存和發(fā)展之道,于是通過科技手段提高生產(chǎn)和管理效率自然成為競爭和發(fā)展的焦點。這不僅包括如何實現(xiàn)企業(yè)生產(chǎn)設(shè)備的改進和生產(chǎn)技術(shù)的提高還包括如何有效地組織和管理企業(yè)各項事務(wù),實現(xiàn)企業(yè)的辦公自動化。而管理信息系統(tǒng)(Management Information System, MIS)在辦公自動化的進程中發(fā)揮著重要的作用。市場需求也日益增加。 大型企業(yè)的分工比較嚴(yán)格、細(xì)致,組織較為緊密,對軟硬件的要求也就比較高,因此試圖以一款軟件來解決企業(yè)的所有問題顯然是不可能的,這就
4、需要我們細(xì)化事務(wù),有針對性地開發(fā)縱向應(yīng)用廣泛的MIS系統(tǒng)。不僅能夠解決大型企業(yè)和機構(gòu)的某方面問題,還應(yīng)該能為更多的中、小型企業(yè)利用,提高他們的工作效率,加速企業(yè)的發(fā)展,從而促進國民經(jīng)濟的建設(shè)。 財務(wù)是每一個單位都會涉及的問題,管理軟件雨后春筍般崛起的今天,企業(yè)不僅需要通過軟件有效地對其實施管理,還想操作能夠盡可能簡單,軟件易于上手。 通過查閱相關(guān)資料,對市場需求進行分析,對既成工資管理軟件的研究和測試,我們認(rèn)為本課題是一個適應(yīng)現(xiàn)今工資管理需求的計算機信息管理系統(tǒng),具有一定的現(xiàn)實意義和開發(fā)使用價值。 2 系統(tǒng)概況 2.1系統(tǒng)開發(fā)背景 自20世紀(jì)80年代以來,知識經(jīng)濟的興起和信息技術(shù)的日
5、新月異消除了人與人之間知識、信息傳遞的障礙,也帶來了人類經(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)。 2.2系統(tǒng)開發(fā)目的 本系統(tǒng)開發(fā)的主要目的就是要使企事業(yè)單位工資管理實現(xiàn)計算機管理,使管理員能夠有序地管理每一位
6、職工的各項工資條款的發(fā)放以及員工個人臺帳的生成,使企業(yè)運用現(xiàn)代化技術(shù)創(chuàng)造更多更高的經(jīng)濟效益。 2.3系統(tǒng)平臺選用 2.3.1數(shù)據(jù)庫技術(shù)的現(xiàn)狀與發(fā)展 數(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ù)的完整性、一致性。 數(shù)據(jù)庫理論與技術(shù)的發(fā)展極其迅速,其應(yīng)用日益廣泛,在當(dāng)今的信息社會中,它幾乎無所不在。以關(guān)系型為代表的三大經(jīng)典(層次、網(wǎng)狀
7、、關(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)域革命性的突破、IBM DB2的應(yīng)用、數(shù)據(jù)倉庫的實施、我國數(shù)據(jù)庫技術(shù)和應(yīng)用的現(xiàn)狀及趨勢、我國數(shù)據(jù)庫用戶的需求等問題,進行了廣泛而深入的討論。 2.3.2數(shù)據(jù)庫系統(tǒng)的選擇原則 ①數(shù)據(jù)庫系統(tǒng)采用易于集成的,開放的技術(shù)。 ②產(chǎn)品質(zhì)量優(yōu)異,可靠性高,適于長期運行,能支持關(guān)鍵應(yīng)用。 ③數(shù)據(jù)安全,保安型高。 ④能提供分布式數(shù)據(jù)
8、庫功能。 ⑤支持多種開發(fā)環(huán)境,軟件開發(fā)容易。 ⑥擴充性和升級能力強。 2.3.3系統(tǒng)開發(fā)工具的選擇 本次工資管理系統(tǒng)選用Delphi與Oracle11g進行開發(fā),現(xiàn)在市場上有很多MIS的開發(fā)工具,如:Visual basic、Delphi、ASP等等,數(shù)據(jù)庫開發(fā)工具又有很多種,如:Access,SQL Sever,Oracle等等。與其他開發(fā)工具相比,Delphi與Oracle有著自己的特點與優(yōu)勢。 ⑴Delphi簡介 Delphi,是Windows平臺下著名的快速應(yīng)用程序開發(fā)工具(Rapid Application Development,簡稱RAD)。它的前身,即是DOS時
9、代盛行一時的“Borland Turbo Pascal”,最早的版本由美國Borland(寶蘭)公司于1995年開發(fā)。主創(chuàng)者為Anders Hejlsberg。經(jīng)過數(shù)年的發(fā)展,此產(chǎn)品也轉(zhuǎn)移至Embarcadero公司旗下。 從產(chǎn)品名稱上就可以知道,Turbo Pascal使用的是Pascal語言。從Turbo Pascal 5.5版開始,Borland公司在傳統(tǒng)Pascal的基礎(chǔ)上加入了面向?qū)ο蟮墓δ堋? Delphi是一個集成開發(fā)環(huán)境(IDE),使用的核心是由傳統(tǒng)Pascal語言發(fā)展而來的Object Pascal,以圖形用戶界面(Graphical User Interface,簡稱GU
10、I)為開發(fā)環(huán)境,透過IDE、VCL工具與編譯器,配合連結(jié)數(shù)據(jù)庫的功能,構(gòu)成一個以面向?qū)ο蟪绦蛟O(shè)計為中心的應(yīng)用程序開發(fā)工具。Delphi所編譯的可運行檔,雖然容量較大,但效能上卻比較快。除了使用數(shù)據(jù)庫的程序之外,不需安裝即可運行,在使用上相當(dāng)方便。 Delphi在本質(zhì)上應(yīng)該歸類為軟件開發(fā)工具,而非程序語言,但由于Delphi幾乎是目前市場上唯一使用Pascal,并持續(xù)推出新版本的商業(yè)產(chǎn)品。因此,有時人們會把Delphi視為Object Pascal的代名詞。Borland公司因而把Object Pascal改稱為Delphi。2006年,Borland把開發(fā)工具產(chǎn)品線獨立出來,成立了一家新的公
11、司CodeGear,并把產(chǎn)品線交由此公司負(fù)責(zé)。原本的Delphi,亦曾一度因此被命名為Turbo Delphi。但是在新的版本中,除了Delphi for Win32(原有的Delphi版本)之外,還有一個新產(chǎn)品“Delphi for PHP”。在CodeGear的發(fā)展規(guī)劃中,或許“Delphi”不再是Object Pascal的專屬IDE名稱,而是將之提升到通用IDE品牌的層次。2008年5月7日,Embarcadero Technologies(易博龍)公司宣布以2300萬美元的價格收購CodeGear公司,從而把Delphi收入囊中。2009年5月6日,Micro Focus宣布以750
12、0萬美元收購Borland。 Delphi目前的最新版本是2010。 Delphi具有如下特點: ①直接編譯生成可執(zhí)行代碼,編譯速度快。由于Delphi編譯器采用了條件編譯和選擇鏈接技術(shù),使用它生成的執(zhí)行文件更加精煉,運行速度更快。在處理速度和存取服務(wù)器方面,Delphi的性能遠(yuǎn)遠(yuǎn)高于其他同類產(chǎn)品。 ?、谥С謱⒋嫒∫?guī)則分別交給客戶機或服務(wù)器處理的兩種方案,而且允許開發(fā)人員建立一個簡單的部件或部件集合,封裝起所有的規(guī)則,并獨立于服務(wù)器和客戶機,所有的數(shù)據(jù)轉(zhuǎn)移通過這些部件來完成。這樣,大大減少了對服務(wù)器的請求和網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,提高了應(yīng)用處理的速度。 ③提供了許多快速方便的開
13、發(fā)方法,使開發(fā)人員能用盡可能少的重復(fù)性工作完成各種不同的應(yīng)用。利用項目模板和專家生成器可以很快建立項目的構(gòu)架,然后根據(jù)用戶的實際需要逐步完善。 ④具有可重用性和可擴展性。開發(fā)人員不必再對諸如標(biāo)簽、按鈕及對話框等Windows的常見部件進行編程。Delphi包含許多可以重復(fù)使用的部件,允許用戶控制Windows的開發(fā)效果。 ⑤具有強大的數(shù)據(jù)存取功能。它的數(shù)據(jù)處理工具BDE(BorlandDatabaseEngine)是一個標(biāo)準(zhǔn)的中介軟件層,可以用來處理當(dāng)前流行的數(shù)據(jù)格式,如xBase、Paradox等,也可以通過BDE的SQLLink直接與Sybase、SQLServer、Infor
14、mix、Oracle等大型數(shù)據(jù)庫連接。 Delphi既可用于開發(fā)系統(tǒng)軟件,也適合于應(yīng)用軟件的開發(fā)。 ⑥擁有強大的網(wǎng)絡(luò)開發(fā)能力,能夠快速的開發(fā)B/S應(yīng)用,它內(nèi)置的IntraWeb和ExpressWeb使得對于網(wǎng)絡(luò)的開發(fā)效率超過了其他任何的開發(fā)工具。 ⑦Delphi使用獨特的VCL類庫,使得編寫出的程序顯得條理清晰,VCL是現(xiàn)在最優(yōu)秀的類庫,它使得Delphi在軟件開發(fā)行業(yè)處于一個絕對領(lǐng)先的地位。用戶可以按自己的需要,任意的構(gòu)建、擴充、甚至是刪減VCL,以滿足不同的需要。 ?、鄰腄elphi8開始Delphi也支持.Net框架下程序開發(fā)。 當(dāng)前DELPHI 已經(jīng)成為一個品
15、牌,而不僅僅是一個開發(fā)平臺或開發(fā)語言的名稱。 當(dāng)前DELPHI產(chǎn)品已經(jīng)由CodeGear公司繼續(xù)發(fā)展,該公司是BORLAND公司的全資子公司。當(dāng)前,CodeGear為廣大開發(fā)者提供了DELPHI FOR PHP,以高度可視化的方式全面支持面向?qū)ο蟮腜HP 網(wǎng)站開發(fā),大大提高了PHP開發(fā)網(wǎng)站的代碼復(fù)用程度,成為WEB應(yīng)用開發(fā)的新利器。 ⑵Oracle簡介 Oracle的關(guān)系數(shù)據(jù)庫是世界第一個支持SQL語言的數(shù)據(jù)庫。1977年,Lawrence J.Ellison領(lǐng)著一些同事成立了Oracle公司,他們的成功強力反擊了那些說關(guān)系數(shù)據(jù)庫無法成功商業(yè)化的說法?,F(xiàn)在,Oracle公司的財產(chǎn)凈值已
16、經(jīng)由當(dāng)初的2000美元增值到了現(xiàn)在的年收入超過97億美元。 Oracle 11g 擴展了 Oracle 獨家具有的提供網(wǎng)格計算優(yōu)勢的功能,可以利用它來提高用戶服務(wù)水平、減少停機時間以及更加有效地利用 IT資源,同時還可以增強全天候業(yè)務(wù)應(yīng)用程序的性能、可伸縮性和安全性。 11 g降低了數(shù)據(jù)庫升級以及其他硬件和操作系統(tǒng)更改的成本,顯著簡化了更改前后的系統(tǒng)測試以便您可以識別和解決問題。例如: 利用 Database Replay,可以在數(shù)據(jù)庫級別輕松捕獲實際的生產(chǎn)負(fù)載并在您的測試系統(tǒng)上重新播放,這樣您可以全面測試系統(tǒng)更改(包括關(guān)鍵的并發(fā)特性)的影響。 Oracle 數(shù)據(jù)庫 11 g繼續(xù)致力于
17、(從 Oracle9i數(shù)據(jù)庫開始一直到 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)境中的更好的性能全局視圖以及改進的性能比較分析功能。 Oracle 數(shù)據(jù)庫 11 g中新增的故障診斷功能使客戶在發(fā)生錯誤后捕獲 OracleSupport所需的數(shù)據(jù)變得極為簡
18、單。這可以加速問題的解決,減少客戶重現(xiàn)問題的需要。 ⑶Delphi 和 Oracle 數(shù)據(jù)庫的連接方法 Oracle是以高級結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,是目前最流行的客戶/服務(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ù)庫
19、的3種方式,它們分別是BDE、ADO、DbExpress。 ADO(ActiveX Data Objects)是Microsoft的高級接口,基于Microsoft的數(shù)據(jù)訪問OLEDB技術(shù)而實現(xiàn)。本系統(tǒng)采用ADO方式連接Oracle數(shù)據(jù)庫。 3 需求分析 3.1需求陳述 本系統(tǒng)擬在完成工資管理的同時,集成其他必要的功能,以保證系統(tǒng)的完整性和安全性。具體包括,員工基本信息管理、部門管理、當(dāng)前工資及歷史工資管理等。 現(xiàn)對有關(guān)要求描述如下: ①整體結(jié)構(gòu)合理,風(fēng)格一致,模塊化結(jié)構(gòu),界面清晰,接口靈活,操作簡便。 ②開發(fā)方法,文檔規(guī)范化,便于管理,可擴充。 ③完善的數(shù)據(jù)輸入,維護,輸出。
20、 ④自檢性能高,用戶誤輸、錯輸均有提示。 ⑤容錯性能高,某個用戶的操作錯誤不會引起整個系統(tǒng)的癱瘓,每一功能的操作都有信息提示以免重復(fù)操作,錯誤操作有警告,以便用戶及時改正。 3.2可行性分析 3.2.1技術(shù)可行性 技術(shù)上的可行性分析主要分析現(xiàn)有技術(shù)條件能否順利完成開發(fā)工作,軟硬件配置能否滿足開發(fā)者需要等,這一特點非常適合計算機的特點,發(fā)揮計算機的數(shù)據(jù)處理速度快,準(zhǔn)確率高的優(yōu)勢,現(xiàn)代計算機硬件和軟件技術(shù)的飛速發(fā)展,為系統(tǒng)的建設(shè)提供了技術(shù)條件。 通過對Delphi和Oracle的系統(tǒng)學(xué)習(xí),已經(jīng)基本掌握了開發(fā)本系統(tǒng)所需的技術(shù)和查閱文獻的能力。對工資管理系統(tǒng)這一類的財務(wù)系統(tǒng)開發(fā)也有一定的認(rèn)
21、識,因此具備技術(shù)可行性。 3.2.2時間、設(shè)備可行性 12周的時間足夠開發(fā)一個滿足中小型企業(yè)簡單需求的工資管理系統(tǒng),現(xiàn)有計算機的軟硬件配置能夠滿足系統(tǒng)開發(fā)的要求,具備時間和設(shè)備的可行性。 3.2.3經(jīng)濟可行性 基于企業(yè)的現(xiàn)有計算機及配套設(shè)備,建設(shè)MIS系統(tǒng)。不但能大大減少重復(fù)性的書面報告,降低辦公費用,提高辦公室效率,而且能提高檢測數(shù)據(jù)效用,為企業(yè)提供很方便。由于企業(yè)工資管理系統(tǒng)是一個比較小型的系統(tǒng),開發(fā)工具也均可免費使用,網(wǎng)絡(luò)資源豐富,只需較少的花費在技術(shù)文獻上,開發(fā)成本較低,因此,開發(fā)本系統(tǒng)具有經(jīng)濟上的可行性。 4 概要設(shè)計 4.1系統(tǒng)功能結(jié)構(gòu)設(shè)計 工資管理系統(tǒng) 數(shù)據(jù)字
22、典維護 工資數(shù)據(jù) 當(dāng)月報表 歷史數(shù)據(jù) 系統(tǒng)信息 部門信息管理 員工信息管理 基本數(shù)據(jù) 每月填報 每月存檔 當(dāng)月報表 當(dāng)月匯總 部門月報 月匯總表 圖4.1 功能模塊圖 表4.1功能說明表 功能序號 功能名稱 功能說明 1 部門信息管理 包含對部門信息的增加、刪除 2 員工信息管理 包含對員工信息的增加、刪除 3 基本工資數(shù)據(jù) 查看和修改基本工資信息 4 活動工資數(shù)據(jù) 填報每月活動工資數(shù)據(jù) 5 每月工資存檔 每月工資填報完畢后存儲數(shù)據(jù) 6 當(dāng)月報表 查看當(dāng)月各部門工資表,打印工資條 7 當(dāng)月匯總表 查詢當(dāng)月各部
23、門工資匯總信息 8 歷史部門月報 查詢歷史年月的部門工資信息 9 歷史月匯總表 查詢指定部門制定年月的歷史工資匯總信息 10 系統(tǒng)信息 系統(tǒng)與作者信息等 設(shè)計角色:財務(wù)管理人員 4.2數(shù)據(jù)庫設(shè)計 4.2.1數(shù)據(jù)庫邏輯結(jié)構(gòu) 表4.2 部門信息表(bm) 字段名稱 類型 寬度 約束 說明 Bh VARCHAR2 3 Pk 部門編號 Mc VARCHAR2 10 部門名稱 表4.3 職工工資信息表(ry) 字段名稱 類型 寬度 約束 說明 Bm VARCHAR2 10 部門 Bh VARCHAR2 3
24、 編號 Xm VARCHAR2 10 姓名 Z1 NUMBER (8,2) 崗位資 Z2 NUMBER (8,2) 基本資 Z3 NUMBER (8,2) 效益資 J1 NUMBER (8,2) 加班 J2 NUMBER (8,2) 金額 J3 NUMBER (8,2) 夜班 J4 NUMBER (8,2) 金額 Z4 NUMBER (8,2) 獨子 Z5 NUMBER (8,2) 月效資 Z6 NUMBER (8,2) 技師補 Z7 NUMBER (
25、8,2) 醫(yī)務(wù)補 Z8 NUMBER (8,2) 護10% Z9 NUMBER (8,2) 護齡 Z10 NUMBER (8,2) 女工衛(wèi) Z11 NUMBER (8,2) 廠扣 Z12 NUMBER (8,2) 應(yīng)得資 K1 NUMBER (8,2) 房租金 K2 NUMBER (8,2) 水電暖 K3 NUMBER (8,2) 公積金 Z13 NUMBER (8,2) 保險 Rq VARCHAR2 200 日期 Kbx NUMBER (8,2) 實發(fā)工資
26、 表4.4 歷史數(shù)據(jù)表(sj) 字段名稱 類型 寬度 約束 說明 Bm VARCHAR2 10 部門 Bh VARCHAR2 3 編號 Xm VARCHAR2 10 姓名 Z1 NUMBER (8,2) 崗位資 Z2 NUMBER (8,2) 基本資 Z3 NUMBER (8,2) 效益資 J1 NUMBER (8,2) 加班 J2 NUMBER (8,2) 金額 J3 NUMBER (8,2) 夜班 J4 NUMBER (8,2) 金額 Z4 NUM
27、BER (8,2) 獨子 Z5 NUMBER (8,2) 月效資 Z6 NUMBER (8,2) 技師補 Z7 NUMBER (8,2) 醫(yī)務(wù)補 Z8 NUMBER (8,2) 護10% Z9 NUMBER (8,2) 護齡 Z10 NUMBER (8,2) 女工衛(wèi) Z11 NUMBER (8,2) 廠扣 Z12 NUMBER (8,2) 應(yīng)得資 K1 NUMBER (8,2) 房租金 K2 NUMBER (8,2) 水電暖 K3 NUMBER (8,2)
28、 公積金 Z13 NUMBER (8,2) 保險 Rq VARCHAR2 200 日期 Kbx NUMBER (8,2) 實發(fā)工資 4.2.2 數(shù)據(jù)庫E-R圖 部門 部門名稱 部門編號 員工 員工編號 員工姓名 所在部門 工作 工資 月效資 應(yīng)得資 房租金 水電暖 公積金 保險 日期 實發(fā)工資 金額 夜班 獨子 金額 加班 效益資 基本資 崗位資 醫(yī)務(wù)補 技師補 護10% 廠扣 護齡 女工衛(wèi) 領(lǐng)取 n 1 1 n 圖4.2 工資管理系統(tǒng)實體關(guān)系圖
29、 4.2.3 Oracle數(shù)據(jù)庫的使用 在Oracle中創(chuàng)建用戶,如圖4.2所示 圖4.2創(chuàng)建用戶 在Oracle中建表,如圖4.3所示 圖4.3建表 5 詳細(xì)設(shè)計 5.1主界面設(shè)計 由于本系統(tǒng)是針對財務(wù)管理人員角色設(shè)計開發(fā)的,故未進行權(quán)限的設(shè)定。 在主界面顯示每個模塊的入口,點擊即可進入。 在狀態(tài)欄顯示系統(tǒng)日期和登錄系統(tǒng)時間。 系統(tǒng)主界面如圖5.1所示: 圖5.1 系統(tǒng)主界面 該模塊主要代碼: procedure Tgzgl_f.FormCreate(Sender: TObject); //數(shù)據(jù)庫連接處理 begin gzgl_
30、f.Color:=rgb(180,130,100); try db1.Connected:=true; except showmessage('連接數(shù)據(jù)庫失敗 ! '); application.terminate; end; end; procedure Tmainf.FormCreate(Sender: TObject); //狀態(tài)欄系統(tǒng)日期與時間 begin Statusbar1.Panels[0].Text:='系統(tǒng)日期:'+datetostr(date); Statusbar1.
31、Panels[1].Text:='系統(tǒng)時間:'+timetostr(time); end; procedure Tmainf.bmiClick(Sender: TObject); //選中菜單顯示相應(yīng)的窗體,此處為部門管理 begin If bmi.Checked Then //用If語句做異常處理 bmf.Show ELSE begin Application.CreateForm(Tbmf,bmf); bmf.Show; bmi.Checked:=True; end
32、; end; 5.2基本信息管理模塊 此模塊包括部門和員工的基本信息維護,具體功能包括,部門信息的添加和刪除,員工信息的添加和刪除。輸入要添加的數(shù)據(jù)后,點擊“添加”完成數(shù)據(jù)添加,點擊“刷新”按鈕顯示數(shù)據(jù)。刪除數(shù)據(jù)時程序?qū)⑦B接后臺數(shù)據(jù)庫,判斷是否存在該記錄的工資信息,若不存在則刪除成功,若存在,則刪除失敗。如圖5.2,5.3所示 圖5.2部門信息維護 部門信息維護核心代碼: procedure Tbmf.BitBtn1Click(Sender: TObject); begin edit1.Text:=trim(edit1.text); if (length(edit1.
33、Text)=0) or (length(bh.Text)=0) then begin showmessage('編號與單位名稱不能為空!'); exit; end; with Q1 do begin Close; Sql.Clear; Sql.Add('Insert Into bm (bh,mc)'); Sql.Add(' Values(:y0,:y1) '); Parameters.ParamByName(
34、9;y0').Value:=bh.Text; Parameters.ParamByName('y1').Value:=edit1.Text; Try ExecSql; except showmessage('服務(wù)器連接error,程序退出!'); application.Terminate; end; end; end; procedure Tbmf.BitBtn2Click(Se
35、nder: TObject); begin if messagedlg('如果系統(tǒng)中存在本部門數(shù)據(jù)不能刪除,確要刪除嗎?',mtconfirmation,[mbyes,mbno],0) =mrno then exit; q1.Close; q1.Sql.Clear; q1.Sql.Add('delete from bm '); q1.Sql.Add(' where (bh like :bh) '); q1.Parameters.ParamByName('bh').Valu
36、e:=bh.text+'%'; Try q1.ExecSql; except showmessage('服務(wù)器連接error,程序退出!'); application.Terminate; end; q1.Close; end; procedure Tbmf.BitBtn3Click(Sender: TObject); var i:integer; begin Q1.Close; Q1.Sql.Clear;
37、 Q1.Sql.Add('Select bh,mc From bm '); Q1.Sql.Add(' order by bh'); Try Q1.Open; except showmessage('服務(wù)器連接error,程序退出!'); application.Terminate; End; sg.RowCount:=Q1.RecordCount+1; sg.ColCount:=2; For I:=0 To sg.RowCo
38、unt Do sg.Rows[I].Clear; sg.Cells[0,0]:='編號'; sg.Cells[1,0]:='名稱'; For I:=1 To sg.RowCount Do Begin sg.Cells[0,i]:=(Q1.FieldByName('bh').AsString); sg.Cells[1,i]:=(Q1.FieldByName('mc').AsString); Q1.Next; End;
39、 Q1.Close; end; procedure Tbmf.FormClose(Sender: TObject; var Action: TCloseAction); begin mainf.bmi.checked:=false; action:=cafree; end; procedure Tbmf.FormCreate(Sender: TObject); var i:integer; begin bmf.Color:=rgb(220,170,140); for i:=1 to 9 do bh.Items.Add('0'
40、+inttostr(i)); for i:=10 to 50 do bh.Items.Add(inttostr(i)); sg.FixedColor:=rgb(180,130,100); end; 員工信息維護: 圖5.3員工信息維護 員工信息維護核心代碼: procedure Tryf.BitBtn1Click(Sender: TObject); begin edit1.Text:=trim(edit1.text); if (length(edit1.Text)=0) or (length(bh.T
41、ext)=0) or (length(bm.Text)=0) then begin showmessage('編號與單位名稱不能為空!'); exit; end; with Q1 do begin Close; Sql.Clear; Sql.Add('Insert Into ry (bm,bh,xm)'); Sql.Add(' Values(:y0,:y1,:y2) '); Parameters.Param
42、ByName('y0').Value:=bm.Text; Parameters.ParamByName('y1').Value:=bh.Text; Parameters.ParamByName('y2').Value:=edit1.Text; Try ExecSql; except showmessage('服務(wù)器連接error,程序退出!')
43、; application.Terminate; end; end; end; procedure Tryf.BitBtn2Click(Sender: TObject); begin if messagedlg('如果系統(tǒng)中存在本人工資數(shù)據(jù)不能刪除,確要刪除嗎?',mtconfirmation,[mbyes,mbno],0) =mrno then exit; bh.text:=trim(bh.text); if (length(bh.text)<2)
44、then exit; q1.Close; q1.Sql.Clear; q1.Sql.Add('delete from ry '); q1.Sql.Add(' where ((bh like :bh) and (bm like :bm))'); q1.Parameters.ParamByName('bh').Value:=bh.text+'%'; q1.Parameters.ParamByName('bm').Value:=bm.text+'
45、%'; Try q1.ExecSql; except showmessage('服務(wù)器連接error,程序退出!'); application.Terminate; end; q1.Close; end; procedure Tryf.BitBtn3Click(Sender: TObject); var
46、i:integer; begin ListBox1.Items.Clear; Q1.Close; Q1.Sql.Clear; Q1.Sql.Add('Select bh,xm From ry '); q1.Sql.Add(' where (bm like :bm) '); Q1.Sql.Add(' order by bh'); q1.Parameters.ParamByName('bm').Value:=bm.text+'%'; Try Q1.Open;
47、 except showmessage('服務(wù)器連接error,程序退出!'); application.Terminate; End; ListBox1.Items.Add(' 編號 姓名'); For I:=1 To Q1.RecordCount Do Begin ListBox1.Items.Add(' '+Q1.FieldByName('bh').AsString+' '+Q1.Field
48、ByName('xm').AsString); Q1.Next; End; Q1.Close; end; procedure Tryf.bmChange(Sender: TObject); var i:integer; begin ListBox1.Items.Clear; Q1.Close; Q1.Sql.Clear; Q1.Sql.Add('Select bh,xm From ry '); q1.Sql.Add(' where (bm like :bm) '
49、); Q1.Sql.Add(' order by bh'); q1.Parameters.ParamByName('bm').Value:=bm.text+'%'; Try Q1.Open; except showmessage('服務(wù)器連接error,程序退出!'); application.Terminate; End; ListBox1.Items.Add(' 編號 姓名'); For
50、 I:=1 To Q1.RecordCount Do Begin ListBox1.Items.Add(''+Q1.FieldByName('bh').AsString+''+Q1.FieldByName('xm').AsString); Q1.Next; End; Q1.Close; bh.Text:=''; edit1.Text:=''; end; procedure Tryf.FormClose(Sender
51、: TObject; var Action: TCloseAction); begin mainf.ryi.checked:=false; action:=cafree; end; procedure Tryf.FormCreate(Sender: TObject); var i:integer; begin ryf.Color:=rgb(220,170,140); Q1.Close; Q1.Sql.Clear; Q1.Sql.Add('Select mc From bm '); Q1.Sql.Add(' order by bh&
52、#39;); Try Q1.Open; except showmessage('服務(wù)器連接error,程序退出!'); application.Terminate; End; For I:=1 To Q1.RecordCount Do Begin bm.Items.Add(Q1.FieldByName('mc').AsString); Q1.Next; End; Q1.Close;
53、 for i:=1 to 9 do bh.Items.Add('0'+inttostr(i)); for i:=10 to 99 do bh.Items.Add(inttostr(i)); end; 5.3工資數(shù)據(jù)模塊 本模塊包括月基本工資數(shù)據(jù)、月活動工資填報、月數(shù)據(jù)存檔三個子模塊,分別用于查看修改月基本工資數(shù)據(jù),填報月活動工資數(shù)據(jù)以及對填報好的所有數(shù)據(jù)存檔。 月基本數(shù)據(jù)界面設(shè)計如圖5.4所示: 圖5.4 月基本數(shù)據(jù) 核心代碼: procedure Tjbf.BitBtn1Click(Sender: TObject); var i,j,
54、k:integer; s:string; begin if messagedlg('確認(rèn)更新數(shù)據(jù)嗎?',mtconfirmation,[mbyes,mbno],0) =mrno then exit; if bm.Text='' then exit; k:=0; for i:=1 to sg.RowCount-1 do for j:=1 to 10 do begin try sg.Cells[j,i]:=floattostr(strtof
55、loat(sg.Cells[j,i])); except showmessage('第'+inttostr(i)+'行 第'+inttostr(j)+'列有非法數(shù)字'); k:=k+1; end; end; if k>0 then exit; s:=''; for i:=1 to sg.RowCount-1 do begin s:=sg.Cells[0,i]; Q1.Clos
56、e; Q1.Sql.Clear; Q1.Sql.Add(' update ry set z1=:z1,z2=:z2,z3=:z3,z4=:z4,z5=:z5,z6=:z6, '); Q1.Sql.Add('z7=:z7,z8=:z8,z9=:z9,z10=:z10,z11=:z11,k3=:k3,kbx=:kbx '); q1.Sql.Add(' where (bm like :bm ) and (bh like :bh)'); q1.Parameters.ParamByName('z1').Value:=str
57、tofloat(sg.Cells[1,i]); q1.Parameters.ParamByName('z2').Value:=strtofloat(sg.Cells[1,i])*0.4; q1.Parameters.ParamByName('z3').Value:=strtofloat(sg.Cells[1,i])*0.6; q1.Parameters.ParamByName('z4').Value:=strtofloat(sg.Cells[2,i]); q1.Parameters.ParamByName('z5'
58、).Value:=strtofloat(sg.Cells[3,i]); q1.Parameters.ParamByName('z6').Value:=strtofloat(sg.Cells[4,i]); q1.Parameters.ParamByName('z7').Value:=strtofloat(sg.Cells[5,i]); q1.Parameters.ParamByName('z8').Value:=strtofloat(sg.Cells[6,i]); q1.Parameters.ParamByName('z9'
59、).Value:=strtofloat(sg.Cells[7,i]); q1.Parameters.ParamByName('z10').Value:=strtofloat(sg.Cells[8,i]); q1.Parameters.ParamByName('z11').Value:=-(strtofloat(sg.Cells[1,i])*0.1618); //q1.ParamByName('z11').Asfloat:=0; q1.Parameters.ParamByName('k3').Value:=strtofl
60、oat(sg.Cells[9,i]); q1.Parameters.ParamByName('bm').Value:=copy(bm.Text,3,20)+'%'; q1.Parameters.ParamByName('bh').Value:=copy(s,1,2)+'%'; q1.Parameters.ParamByName('kbx').Value:=strtofloat(sg.Cells[10,i]); Try Q1.ExecSql; except
61、 showmessage('數(shù)據(jù)庫更新error 重新點擊“更新”按鈕!'); exit; end; end; showmessage(' 操作 OK !') end; procedure Tjbf.bmExit(Sender: TObject); var i:integer; begin Q1.Close; Q1.Sql.Clear; Q1.Sql.Add('Select bh,xm,z1,z4,z5,z6,z7,z8,z9,z10,k3,kbx Fro
62、m ry '); q1.Sql.Add(' where (bm like :bm )'); q1.Parameters.ParamByName('bm').Value:=copy(bm.text,3,20)+'%'; Q1.Sql.Add(' order by bh'); Try Q1.Open; except showmessage('數(shù)據(jù)庫連接error,程序退出!'); applicat
63、ion.Terminate; End; sg.RowCount:=Q1.RecordCount+1; sg.ColCount:=11; For I:=0 To sg.RowCount-1 Do sg.Rows[I].Clear; sg.Cells[0,0]:='編號姓名'; sg.Cells[1,0]:='崗位資'; sg.Cells[2,0]:='計生補'; sg.Cells[3,0]:='月效資'; sg.Cells[4,0]:='技
64、師補'; sg.Cells[5,0]:='醫(yī)務(wù)補'; sg.Cells[6,0]:='護10%'; sg.Cells[7,0]:='教護齡'; sg.Cells[8,0]:='女工衛(wèi)'; sg.Cells[9,0]:='公積金'; sg.Cells[10,0]:='保險'; //md.Items.Clear; //md.Items.Add('
65、 '); For I:=1 To Q1.RecordCount Do Begin // md.Items.Add((Q1.FieldByName('bh').AsString)+(Q1.FieldByName('xm').AsString)); sg.Cells[0,i]:=Q1.FieldByName('bh').AsString+Q1.FieldByName('xm').AsString; sg.Cells[1,i]:=floattostr(Q1
66、.FieldByName('z1').Asfloat); sg.Cells[2,i]:=floattostr(Q1.FieldByName('z4').Asfloat); sg.Cells[3,i]:=floattostr(Q1.FieldByName('z5').Asfloat); sg.Cells[4,i]:=floattostr(Q1.FieldByName('z6').Asfloat); sg.Cells[5,i]:=floattostr(Q1.FieldBy
67、Name('z7').Asfloat); sg.Cells[6,i]:=floattostr(Q1.FieldByName('z8').Asfloat); sg.Cells[7,i]:=floattostr(Q1.FieldByName('z9').Asfloat); sg.Cells[8,i]:=floattostr(Q1.FieldByName('z10').Asfloat); sg.Cells[9,i]:=floattostr(Q1.FieldByName(
68、39;k3').Asfloat); sg.Cells[10,i]:=floattostr(Q1.FieldByName('kbx').Asfloat); Q1.Next; End; Q1.Close; end; procedure Tjbf.FormClose(Sender: TObject; var Action: TCloseAction); begin mainf.jbi.checked:=false; action:=cafree; end; procedure Tjbf.Fo
69、rmCreate(Sender: TObject); var i:integer; begin jbf.Color:=rgb(255,255,255); bm.Items.Clear; Q1.Close; Q1.Sql.Clear; Q1.Sql.Add('Select bh,mc From bm '); Q1.Sql.Add(' order by bh'); Try Q1.Open; except showmessage('服務(wù)器連接error,程序退出!'
70、); application.Terminate; End; For I:=1 To Q1.RecordCount Do Begin bm.Items.Add(Q1.FieldByName('bh').AsString+Q1.FieldByName('mc').AsString); Q1.Next; End; Q1.Close; end; 每月活動工資填報 圖5.5 每月數(shù)據(jù)填報 該部分核心代碼: procedure Tmybhf.BitBtn1Click(Sender: TObject); var i,j,k:integer; s:string;
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《產(chǎn)品價值鏈與營銷戰(zhàn)略》
- lecture 9(精品)
- Where’s your pen pal from (2)
- (精品)實驗二血清γ球蛋白的分離純化與鑒定by陳蔚文
- 企業(yè)專利風(fēng)險管理
- 高中記敘文寫作指導(dǎo):寫人要凸顯個性ppt課件
- 新生兒溶血病的發(fā)病機理臨床癥狀課件
- 7、艱辛的求索 (2)
- 學(xué)校心理健康教育組織管理課件
- IE七大手法的發(fā)展歷程
- 頸托的正確使用課件
- (精品)電功與電功率復(fù)習(xí)1
- 李曉光-管理學(xué)原理第十三章領(lǐng)導(dǎo)工作概述
- 固體中的相結(jié)構(gòu)
- 智能化酒店系統(tǒng)PPT