畢業設計論文—工資管理系統設計_第1頁
畢業設計論文—工資管理系統設計_第2頁
畢業設計論文—工資管理系統設計_第3頁
畢業設計論文—工資管理系統設計_第4頁
畢業設計論文—工資管理系統設計_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目 錄 1 前言12 系統概況22.1系統開發背景22.2系統開發目的22.3系統平臺選用22.3.1數據庫技術的現狀與發展22.3.2數據庫系統的選擇原則32.3.3系統開發工具的選擇33 需求分析73.1需求陳述73.2可行性分析73.2.1技術可行性73.2.2時間、設備可行性73.2.3經濟可行性84 概要設計94.1系統功能結構設計94.2數據庫設計104.2.1數據庫邏輯結構104.2.2 數據庫E-R圖124.2.3 Oracle數據庫的使用135 詳細設計145.1主界面設計145.2基本信息管理模塊155.3工資數據模塊245.4當月報表模塊355.5歷史數據模塊375.6系

2、統信息模塊416 系統性能測試與分析426.1測試范圍與主要內容426.2測試方法426.3測試報告427 結論43參考文獻44致謝451 前言上世紀八、九十年代以來,計算機產業飛速發展,其應用滲透在社會生產的各個領域。計算機在國內的崛起加速了各企事業單位、機關的自動化進程,提高了國民生產的效率,從而為國民經濟的飛速發展創造了必要的條件。步入21世紀以來,計算機更是以驚人的普及速度,進入各行各業和大部分家庭。各種應用的需求也不斷增加,人們更加追求生活的品質和工作的效率,企業更是視提高生產效率為生存和發展之道,于是通過科技手段提高生產和管理效率自然成為競爭和發展的焦點。這不僅包括如何實現企業生產

3、設備的改進和生產技術的提高還包括如何有效地組織和管理企業各項事務,實現企業的辦公自動化。而管理信息系統(Management Information System, MIS)在辦公自動化的進程中發揮著重要的作用。市場需求也日益增加。大型企業的分工比較嚴格、細致,組織較為緊密,對軟硬件的要求也就比較高,因此試圖以一款軟件來解決企業的所有問題顯然是不可能的,這就需要我們細化事務,有針對性地開發縱向應用廣泛的MIS系統。不僅能夠解決大型企業和機構的某方面問題,還應該能為更多的中、小型企業利用,提高他們的工作效率,加速企業的發展,從而促進國民經濟的建設。財務是每一個單位都會涉及的問題,管理軟件雨后春筍

4、般崛起的今天,企業不僅需要通過軟件有效地對其實施管理,還想操作能夠盡可能簡單,軟件易于上手。通過查閱相關資料,對市場需求進行分析,對既成工資管理軟件的研究和測試,我們認為本課題是一個適應現今工資管理需求的計算機信息管理系統,具有一定的現實意義和開發使用價值。2 系統概況2.1系統開發背景自20世紀80年代以來,知識經濟的興起和信息技術的日新月異消除了人與人之間知識、信息傳遞的障礙,也帶來了人類經營意識、管理觀念的巨大改變。21世紀是一個經濟時代,經濟競爭說到底是人才的競爭,誰擁有了人才,誰就將最終擁有財富。通過工資人事管理可以獲得并維持組織的競爭優勢,人作為公司最重要的資產,如何用好人才,為每

5、個人找到合適的崗位去發揮其特長是用人的關鍵環節。而運用先進科技手段進行有效管理是最好的發展方向。MIS作為提高管理效率和辦公自動化進程的重要工具,已深入到國民生產的方方面面。我們更加需要開發適應不同行業不同需求的MIS系統。2.2系統開發目的本系統開發的主要目的就是要使企事業單位工資管理實現計算機管理,使管理員能夠有序地管理每一位職工的各項工資條款的發放以及員工個人臺帳的生成,使企業運用現代化技術創造更多更高的經濟效益。2.3系統平臺選用2.3.1數據庫技術的現狀與發展數據庫是60年代末出現的一門計算機軟件技術,到現在雖然只有三十多年的歷史,但在理論和時間上都得到了和很大的發展。現在,數據庫是

6、數據處理的主要工具,是管理信息系統(MIS)的核心部分。數據庫系統是當今計算機信息系統的核心,是計算機技術和應用發展的關鍵。傳統的數據庫系統旨在處理永久、穩定的數據,強調維護數據的完整性、一致性。數據庫理論與技術的發展極其迅速,其應用日益廣泛,在當今的信息社會中,它幾乎無所不在。以關系型為代表的三大經典(層次、網狀、關系)型數據庫在傳統的(商務和管理的事務型)應用領域獲得了極大成功。計算機世界報社與IBM公司聯合舉辦了"21世紀數據庫技術發展專家研討會"。IBM DB2的創始人Donald Haderle先生與國內著名數據庫專家,就下世紀數據庫發展的趨勢、數據庫領域革命性的

7、突破、IBM DB2的應用、數據倉庫的實施、我國數據庫技術和應用的現狀及趨勢、我國數據庫用戶的需求等問題,進行了廣泛而深入的討論。2.3.2數據庫系統的選擇原則數據庫系統采用易于集成的,開放的技術。產品質量優異,可靠性高,適于長期運行,能支持關鍵應用。數據安全,保安型高。能提供分布式數據庫功能。支持多種開發環境,軟件開發容易。擴充性和升級能力強。2.3.3系統開發工具的選擇本次工資管理系統選用Delphi與Oracle11g進行開發,現在市場上有很多MIS的開發工具,如:Visual basic、Delphi、ASP等等,數據庫開發工具又有很多種,如:Access,SQL Sever,Orac

8、le等等。與其他開發工具相比,Delphi與Oracle有著自己的特點與優勢。Delphi簡介Delphi,是Windows平臺下著名的快速應用程序開發工具(Rapid Application Development,簡稱RAD)。它的前身,即是DOS時代盛行一時的“Borland Turbo Pascal”,最早的版本由美國Borland(寶蘭)公司于1995年開發。主創者為Anders Hejlsberg。經過數年的發展,此產品也轉移至Embarcadero公司旗下。從產品名稱上就可以知道,Turbo Pascal使用的是Pascal語言。從Turbo Pascal 5.5版開始,Borl

9、and公司在傳統Pascal的基礎上加入了面向對象的功能。Delphi是一個集成開發環境(IDE),使用的核心是由傳統Pascal語言發展而來的Object Pascal,以圖形用戶界面(Graphical User Interface,簡稱GUI)為開發環境,透過IDE、VCL工具與編譯器,配合連結數據庫的功能,構成一個以面向對象程序設計為中心的應用程序開發工具。Delphi所編譯的可運行檔,雖然容量較大,但效能上卻比較快。除了使用數據庫的程序之外,不需安裝即可運行,在使用上相當方便。Delphi在本質上應該歸類為軟件開發工具,而非程序語言,但由于Delphi幾乎是目前市場上唯一使用Pasc

10、al,并持續推出新版本的商業產品。因此,有時人們會把Delphi視為Object Pascal的代名詞。Borland公司因而把Object Pascal改稱為Delphi。2006年,Borland把開發工具產品線獨立出來,成立了一家新的公司CodeGear,并把產品線交由此公司負責。原本的Delphi,亦曾一度因此被命名為Turbo Delphi。但是在新的版本中,除了Delphi for Win32(原有的Delphi版本)之外,還有一個新產品“Delphi for PHP”。在CodeGear的發展規劃中,或許“Delphi”不再是Object Pascal的專屬IDE名稱,而是將之提

11、升到通用IDE品牌的層次。2008年5月7日,Embarcadero Technologies(易博龍)公司宣布以2300萬美元的價格收購CodeGear公司,從而把Delphi收入囊中。2009年5月6日,Micro Focus宣布以7500萬美元收購Borland。Delphi目前的最新版本是2010。Delphi具有如下特點:直接編譯生成可執行代碼,編譯速度快。由于Delphi編譯器采用了條件編譯和選擇鏈接技術,使用它生成的執行文件更加精煉,運行速度更快。在處理速度和存取服務器方面,Delphi的性能遠遠高于其他同類產品。 支持將存取規則分別交給客戶機或服務器處理的兩種方案,而且允許開發

12、人員建立一個簡單的部件或部件集合,封裝起所有的規則,并獨立于服務器和客戶機,所有的數據轉移通過這些部件來完成。這樣,大大減少了對服務器的請求和網絡上的數據傳輸量,提高了應用處理的速度。 提供了許多快速方便的開發方法,使開發人員能用盡可能少的重復性工作完成各種不同的應用。利用項目模板和專家生成器可以很快建立項目的構架,然后根據用戶的實際需要逐步完善。 具有可重用性和可擴展性。開發人員不必再對諸如標簽、按鈕及對話框等Windows的常見部件進行編程。Delphi包含許多可以重復使用的部件,允許用戶控制Windows的開發效果。 具有強大的數據存取功能。它的數據處理工具BDE(BorlandData

13、baseEngine)是一個標準的中介軟件層,可以用來處理當前流行的數據格式,如xBase、Paradox等,也可以通過BDE的SQLLink直接與Sybase、SQLServer、Informix、Oracle等大型數據庫連接。 Delphi既可用于開發系統軟件,也適合于應用軟件的開發。 擁有強大的網絡開發能力,能夠快速的開發B/S應用,它內置的IntraWeb和ExpressWeb使得對于網絡的開發效率超過了其他任何的開發工具。 Delphi使用獨特的VCL類庫,使得編寫出的程序顯得條理清晰,VCL是現在最優秀的類庫,它使得Delphi在軟件開發行業處于一個絕對領先的地位。用戶可以按自己的

14、需要,任意的構建、擴充、甚至是刪減VCL,以滿足不同的需要。 從Delphi8開始Delphi也支持.Net框架下程序開發。 當前DELPHI 已經成為一個品牌,而不僅僅是一個開發平臺或開發語言的名稱。 當前DELPHI產品已經由CodeGear公司繼續發展,該公司是BORLAND公司的全資子公司。當前,CodeGear為廣大開發者提供了DELPHI FOR PHP,以高度可視化的方式全面支持面向對象的PHP 網站開發,大大提高了PHP開發網站的代碼復用程度,成為WEB應用開發的新利器。Oracle簡介Oracle的關系數據庫是世界第一個支持SQL語言的數據庫。1977年,Lawrence J

15、.Ellison領著一些同事成立了Oracle公司,他們的成功強力反擊了那些說關系數據庫無法成功商業化的說法。現在,Oracle公司的財產凈值已經由當初的2000美元增值到了現在的年收入超過97億美元。Oracle 11g 擴展了 Oracle 獨家具有的提供網格計算優勢的功能,可以利用它來提高用戶服務水平、減少停機時間以及更加有效地利用 IT資源,同時還可以增強全天候業務應用程序的性能、可伸縮性和安全性。11 g降低了數據庫升級以及其他硬件和操作系統更改的成本,顯著簡化了更改前后的系統測試以便您可以識別和解決問題。例如: 利用 Database Replay,可以在數據庫級別輕松捕獲實際的生

16、產負載并在您的測試系統上重新播放,這樣您可以全面測試系統更改(包括關鍵的并發特性)的影響。 Oracle 數據庫 11 g繼續致力于(從 Oracle9i數據庫開始一直到 Oracle 數據庫10 g)顯著簡化和完全自動化 DBA 任務。 Oracle數據庫11 g中的新功能包括: 利用自學功能自動進行 SQL 優化系統全局區(SGA)和程序全局區( PGA)的內存緩存區的自動、統一調整新的 advisor用于分區、數據恢復、流性能和空間管理針對自動數據庫診斷監視器 (ADDM)的增強,能夠提供 Oracle 真正應用集群 (Oracle RAC)環境中的更好的性能全局視圖以及改進的性能比較分

17、析功能。Oracle 數據庫 11 g中新增的故障診斷功能使客戶在發生錯誤后捕獲 OracleSupport所需的數據變得極為簡單。這可以加速問題的解決,減少客戶重現問題的需要。Delphi 和 Oracle 數據庫的連接方法Oracle是以高級結構化查詢語言(SQL)為基礎的大型關系數據庫,是目前最流行的客戶/服務器(CLIENT/SERVER)體系結構的數據庫之一,目前被廣泛應用于各類型企業的信息化管理中。數據庫支持是Delphi7.0開發環境的一個重要特性,很多程序員在數據庫應用程序開發中都采用Delphi7.0作為開發工具,來實現對數據庫的訪問和控制。Delphi數據庫應用程序是通過數

18、據庫引擎來訪問它們引用的數據源的。本文概括性的介紹在Windows XP環境中Delphi7.0連接Oracle數據庫的3種方式,它們分別是BDE、ADO、DbExpress。ADO(ActiveX Data Objects)是Microsoft的高級接口,基于Microsoft的數據訪問OLEDB技術而實現。本系統采用ADO方式連接Oracle數據庫。3 需求分析3.1需求陳述本系統擬在完成工資管理的同時,集成其他必要的功能,以保證系統的完整性和安全性。具體包括,員工基本信息管理、部門管理、當前工資及歷史工資管理等。現對有關要求描述如下:整體結構合理,風格一致,模塊化結構,界面清晰,接口靈活

19、,操作簡便。開發方法,文檔規范化,便于管理,可擴充。完善的數據輸入,維護,輸出。自檢性能高,用戶誤輸、錯輸均有提示。容錯性能高,某個用戶的操作錯誤不會引起整個系統的癱瘓,每一功能的操作都有信息提示以免重復操作,錯誤操作有警告,以便用戶及時改正。3.2可行性分析3.2.1技術可行性技術上的可行性分析主要分析現有技術條件能否順利完成開發工作,軟硬件配置能否滿足開發者需要等,這一特點非常適合計算機的特點,發揮計算機的數據處理速度快,準確率高的優勢,現代計算機硬件和軟件技術的飛速發展,為系統的建設提供了技術條件。通過對Delphi和Oracle的系統學習,已經基本掌握了開發本系統所需的技術和查閱文獻的

20、能力。對工資管理系統這一類的財務系統開發也有一定的認識,因此具備技術可行性。3.2.2時間、設備可行性12周的時間足夠開發一個滿足中小型企業簡單需求的工資管理系統,現有計算機的軟硬件配置能夠滿足系統開發的要求,具備時間和設備的可行性。3.2.3經濟可行性基于企業的現有計算機及配套設備,建設MIS系統。不但能大大減少重復性的書面報告,降低辦公費用,提高辦公室效率,而且能提高檢測數據效用,為企業提供很方便。由于企業工資管理系統是一個比較小型的系統,開發工具也均可免費使用,網絡資源豐富,只需較少的花費在技術文獻上,開發成本較低,因此,開發本系統具有經濟上的可行性。4 概要設計4.1系統功能結構設計工

21、資管理系統數據字典維護工資數據當月報表歷史數據系統信息部門信息管理員工信息管理基本數據每月填報每月存檔當月報表當月匯總部門月報月匯總表圖4.1 功能模塊圖表4.1功能說明表功能序號功能名稱功能說明1部門信息管理包含對部門信息的增加、刪除2員工信息管理包含對員工信息的增加、刪除3基本工資數據查看和修改基本工資信息4活動工資數據填報每月活動工資數據5每月工資存檔每月工資填報完畢后存儲數據6當月報表查看當月各部門工資表,打印工資條7當月匯總表查詢當月各部門工資匯總信息8歷史部門月報查詢歷史年月的部門工資信息9歷史月匯總表查詢指定部門制定年月的歷史工資匯總信息10系統信息系統與作者信息等設計角色:財務

22、管理人員4.2數據庫設計4.2.1數據庫邏輯結構表4.2 部門信息表(bm)字段名稱類型寬度約束說明BhVARCHAR23Pk部門編號McVARCHAR210部門名稱表4.3 職工工資信息表(ry)字段名稱類型寬度約束說明BmVARCHAR210部門BhVARCHAR23編號XmVARCHAR210姓名Z1NUMBER(8,2)崗位資Z2NUMBER(8,2)基本資Z3NUMBER(8,2)效益資J1NUMBER(8,2)加班J2NUMBER(8,2)金額J3NUMBER(8,2)夜班J4NUMBER(8,2)金額Z4NUMBER(8,2)獨子Z5NUMBER(8,2)月效資Z6NUMBER(

23、8,2)技師補Z7NUMBER(8,2)醫務補Z8NUMBER(8,2)護10%Z9NUMBER(8,2)護齡Z10NUMBER(8,2)女工衛Z11NUMBER(8,2)廠扣Z12NUMBER(8,2)應得資K1NUMBER(8,2)房租金K2NUMBER(8,2)水電暖K3NUMBER(8,2)公積金Z13NUMBER(8,2)保險RqVARCHAR2200日期KbxNUMBER(8,2)實發工資表4.4 歷史數據表(sj)字段名稱類型寬度約束說明BmVARCHAR210部門BhVARCHAR23編號XmVARCHAR210姓名Z1NUMBER(8,2)崗位資Z2NUMBER(8,2)基本

24、資Z3NUMBER(8,2)效益資J1NUMBER(8,2)加班J2NUMBER(8,2)金額J3NUMBER(8,2)夜班J4NUMBER(8,2)金額Z4NUMBER(8,2)獨子Z5NUMBER(8,2)月效資Z6NUMBER(8,2)技師補Z7NUMBER(8,2)醫務補Z8NUMBER(8,2)護10%Z9NUMBER(8,2)護齡Z10NUMBER(8,2)女工衛Z11NUMBER(8,2)廠扣Z12NUMBER(8,2)應得資K1NUMBER(8,2)房租金K2NUMBER(8,2)水電暖K3NUMBER(8,2)公積金Z13NUMBER(8,2)保險RqVARCHAR2200日

25、期KbxNUMBER(8,2)實發工資4.2.2 數據庫E-R圖部門部門名稱部門編號員工員工編號員工姓名所在部門工作工資月效資應得資房租金水電暖公積金保險日期實發工資金額夜班獨子金額加班效益資基本資崗位資醫務補技師補護10%廠扣護齡女工衛領取n11n圖4.2 工資管理系統實體關系圖4.2.3 Oracle數據庫的使用在Oracle中創建用戶,如圖4.2所示圖4.2創建用戶在Oracle中建表,如圖4.3所示圖4.3建表5 詳細設計5.1主界面設計由于本系統是針對財務管理人員角色設計開發的,故未進行權限的設定。在主界面顯示每個模塊的入口,點擊即可進入。在狀態欄顯示系統日期和登錄系統時間。系統主界

26、面如圖5.1所示:圖5.1 系統主界面該模塊主要代碼:procedure Tgzgl_f.FormCreate(Sender: TObject); /數據庫連接處理begingzgl_f.Color:=rgb(180,130,100); try db1.Connected:=true; except showmessage('連接數據庫失敗 ! '); application.terminate; end;end;procedure Tmainf.FormCreate(Sender: TObject); /狀態欄系統日期與時間begin Statusbar1.Panels0.T

27、ext:='系統日期:'+datetostr(date); Statusbar1.Panels1.Text:='系統時間:'+timetostr(time);end;procedure Tmainf.bmiClick(Sender: TObject); /選中菜單顯示相應的窗體,此處為部門管理begin If bmi.Checked Then /用If語句做異常處理 bmf.Show ELSE begin Application.CreateForm(Tbmf,bmf); bmf.Show; bmi.Checked:=True; end;end;5.2基本信息管

28、理模塊此模塊包括部門和員工的基本信息維護,具體功能包括,部門信息的添加和刪除,員工信息的添加和刪除。輸入要添加的數據后,點擊“添加”完成數據添加,點擊“刷新”按鈕顯示數據。刪除數據時程序將連接后臺數據庫,判斷是否存在該記錄的工資信息,若不存在則刪除成功,若存在,則刪除失敗。如圖5.2,5.3所示圖5.2部門信息維護部門信息維護核心代碼:procedure Tbmf.BitBtn1Click(Sender: TObject);begin edit1.Text:=trim(edit1.text); if (length(edit1.Text)=0) or (length(bh.Text)=0) t

29、hen 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('y0').Value:=bh.Text; Parameters.ParamByName('y1').Value:=edit1.Text; Try ExecSql; exce

30、pt showmessage('服務器連接error,程序退出!'); application.Terminate; end; end;end;procedure Tbmf.BitBtn2Click(Sender: TObject);beginif messagedlg('如果系統中存在本部門數據不能刪除,確要刪除嗎?',mtconfirmation,mbyes,mbno,0) =mrno then exit;q1.Close; q1.Sql.Clear; q1.Sql.Add('delete from bm '); q1.Sql.Add(

31、9; where (bh like :bh) '); q1.Parameters.ParamByName('bh').Value:=bh.text+'%' Try q1.ExecSql; except showmessage('服務器連接error,程序退出!'); application.Terminate; end; q1.Close;end;procedure Tbmf.BitBtn3Click(Sender: TObject); var i:integer;begin Q1.Close; Q1.Sql.Clear; Q1.Sql.

32、Add('Select bh,mc From bm '); Q1.Sql.Add(' order by bh'); Try Q1.Open; except showmessage('服務器連接error,程序退出!'); application.Terminate; End; sg.RowCount:=Q1.RecordCount+1; sg.ColCount:=2; For I:=0 To sg.RowCount Do sg.RowsI.Clear; sg.Cells0,0:='編號' sg.Cells1,0:='名稱&

33、#39; For I:=1 To sg.RowCount Do Begin sg.Cells0,i:=(Q1.FieldByName('bh').AsString); sg.Cells1,i:=(Q1.FieldByName('mc').AsString); Q1.Next; End; Q1.Close;end;procedure Tbmf.FormClose(Sender: TObject; var Action: TCloseAction);beginmainf.bmi.checked:=false;action:=cafree;end;procedure

34、Tbmf.FormCreate(Sender: TObject); var i:integer;beginbmf.Color:=rgb(220,170,140); for i:=1 to 9 do bh.Items.Add('0'+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 edi

35、t1.Text:=trim(edit1.text); if (length(edit1.Text)=0) or (length(bh.Text)=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.ParamByN

36、ame('y0').Value:=bm.Text; Parameters.ParamByName('y1').Value:=bh.Text; Parameters.ParamByName('y2').Value:=edit1.Text; Try ExecSql; except showmessage('服務器連接error,程序退出!'); application.Terminate; end; end; end;procedure Tryf.BitBtn2Click(Sender: TObject);beginif messag

37、edlg('如果系統中存在本人工資數據不能刪除,確要刪除嗎?',mtconfirmation,mbyes,mbno,0) =mrno then exit; bh.text:=trim(bh.text); if (length(bh.text)<2) 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(&#

38、39;bh').Value:=bh.text+'%' q1.Parameters.ParamByName('bm').Value:=bm.text+'%' Try q1.ExecSql; except showmessage('服務器連接error,程序退出!'); application.Terminate; end; q1.Close;end;procedure Tryf.BitBtn3Click(Sender: TObject);var i:integer;beginListBox1.Items.Clear; Q1.

39、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; except showmessage('服務器連接error,程序退出!'); application.Terminate; En

40、d; ListBox1.Items.Add(' 編號 姓名'); For I:=1 To Q1.RecordCount Do Begin ListBox1.Items.Add(' '+Q1.FieldByName('bh').AsString+' '+Q1.FieldByName('xm').AsString); Q1.Next; End; Q1.Close;end;procedure Tryf.bmChange(Sender: TObject); var i:integer; beginListBox1.Item

41、s.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; except showmessage('服務器連接error,程序退出!'); application.T

42、erminate; End; ListBox1.Items.Add(' 編號 姓名'); For 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.FormClo

43、se(Sender: TObject; var Action: TCloseAction);beginmainf.ryi.checked:=false;action:=cafree;end;procedure Tryf.FormCreate(Sender: TObject);var i:integer;beginryf.Color:=rgb(220,170,140); Q1.Close; Q1.Sql.Clear; Q1.Sql.Add('Select mc From bm '); Q1.Sql.Add(' order by bh'); Try Q1.Open;

44、 except showmessage('服務器連接error,程序退出!'); application.Terminate; End; For I:=1 To Q1.RecordCount Do Begin bm.Items.Add(Q1.FieldByName('mc').AsString); Q1.Next; End; Q1.Close; 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工資數據

45、模塊本模塊包括月基本工資數據、月活動工資填報、月數據存檔三個子模塊,分別用于查看修改月基本工資數據,填報月活動工資數據以及對填報好的所有數據存檔。月基本數據界面設計如圖5.4所示:圖5.4 月基本數據核心代碼:procedure Tjbf.BitBtn1Click(Sender: TObject); var i,j,k:integer; s:string;beginif messagedlg('確認更新數據嗎?',mtconfirmation,mbyes,mbno,0) =mrno then exit; if bm.Text='' then exit; k:=0

46、; for i:=1 to sg.RowCount-1 do for j:=1 to 10 do begin try sg.Cellsj,i:=floattostr(strtofloat(sg.Cellsj,i); except showmessage('第'+inttostr(i)+'行 第'+inttostr(j)+'列有非法數字'); k:=k+1; end; end; if k>0 then exit; s:='' for i:=1 to sg.RowCount-1 do begin s:=sg.Cells0,i;

47、Q1.Close; 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:=strtofloa

48、t(sg.Cells1,i);q1.Parameters.ParamByName('z2').Value:=strtofloat(sg.Cells1,i)*0.4;q1.Parameters.ParamByName('z3').Value:=strtofloat(sg.Cells1,i)*0.6;q1.Parameters.ParamByName('z4').Value:=strtofloat(sg.Cells2,i);q1.Parameters.ParamByName('z5').Value:=strtofloat(sg.Cel

49、ls3,i);q1.Parameters.ParamByName('z6').Value:=strtofloat(sg.Cells4,i);q1.Parameters.ParamByName('z7').Value:=strtofloat(sg.Cells5,i);q1.Parameters.ParamByName('z8').Value:=strtofloat(sg.Cells6,i);q1.Parameters.ParamByName('z9').Value:=strtofloat(sg.Cells7,i);q1.Parame

50、ters.ParamByName('z10').Value:=strtofloat(sg.Cells8,i);q1.Parameters.ParamByName('z11').Value:=-(strtofloat(sg.Cells1,i)*0.1618);/q1.ParamByName('z11').Asfloat:=0;q1.Parameters.ParamByName('k3').Value:=strtofloat(sg.Cells9,i);q1.Parameters.ParamByName('bm').Va

51、lue:=copy(bm.Text,3,20)+'%'q1.Parameters.ParamByName('bh').Value:=copy(s,1,2)+'%'q1.Parameters.ParamByName('kbx').Value:=strtofloat(sg.Cells10,i); Try Q1.ExecSql; except showmessage('數據庫更新error 重新點擊“更新”按鈕!'); exit; end; end; showmessage(' 操作 OK !')end;

52、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 From ry '); q1.Sql.Add(' where (bm like :bm )'); q1.Parameters.ParamByName('bm').Value:=copy(bm.text,3,20)+'%' Q1.Sql.Add('

53、; order by bh'); Try Q1.Open; except showmessage('數據庫連接error,程序退出!'); application.Terminate; End; sg.RowCount:=Q1.RecordCount+1; sg.ColCount:=11; For I:=0 To sg.RowCount-1 Do sg.RowsI.Clear; sg.Cells0,0:='編號姓名' sg.Cells1,0:='崗位資' sg.Cells2,0:='計生補' sg.Cells3,0:='月效資' sg.Cells4,0:='技師補'

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論