【正文】
,隨著數(shù)據(jù)技術(shù)的發(fā)展以及企業(yè)信息化建設(shè)的進(jìn)行,使用計(jì)算機(jī)管理企業(yè)考勤工作以成為大勢(shì)所趨。由 BORLAND 公司出品的DELPHI 是一種典型的面向?qū)ο蟮摹⒂糜?RAP 開發(fā)的可視化編程語言。它繼承了 OOP( Orient Object Pascal)語言中優(yōu)越的全功能平臺(tái),以及編程效率高、代碼質(zhì)量好等優(yōu)點(diǎn),并解決了諸如 Visual Basic 等可視化程序設(shè)計(jì)語言中的代碼執(zhí)行效率低下等問題。 基于此,按照軟件工程的思想,對(duì)考勤信息管理系統(tǒng)進(jìn)行功能分析: 天道酬勤 Business School of Central South University ? 實(shí)現(xiàn)系統(tǒng)登陸功能(密碼修改功能),并限制不同用戶(包括普通工人、人事部門人員、財(cái)務(wù)部人員以及管理員)登陸所查看的信息; ? 輸入員工基本信息,包括姓名、性別、所屬部門等; ? 瀏覽和修改員工基本信息; ? 輸入出勤信息; ? 輸入基本工資和獎(jiǎng)金信息并計(jì)算實(shí)際工資; ? 瀏覽和修改員工的出勤情況,可同時(shí)查看該員工基本信息; ? 瀏覽和修改員工的工資情況,可同時(shí)查看該員工基本信息; ? 按實(shí)際工資情況查詢員工; ? 按實(shí)際出勤情況查詢員工; ? 按姓名信息查詢員工; 附加功能: ? 密碼修改功能; ? 幫助說明。 一、本程序由登錄界面、員工信息、出勤信息、員工工資、相關(guān)查詢、密碼修改、幫助 說明及退出系統(tǒng)五部分組成。 出勤信息:本界面可實(shí)現(xiàn)員工出勤信息的輸入,可參看缺勤情況示意圖。 幫助說明:本界面顯示本系統(tǒng)所有應(yīng)用信息,可打印本系統(tǒng)相關(guān)應(yīng)用信息。首先對(duì)主頁中的 Label3的 OnClick和 OnMouseDown 事件添加以下的代碼,功能是當(dāng)用戶將鼠標(biāo)移動(dòng)到該組件上時(shí),出現(xiàn)超鏈接的效果,同時(shí)啟動(dòng)郵件收發(fā)程序向指定的電子郵件地址發(fā)信息。),nil,nil,sw_shownormal)。 X, Y: Integer)。在事件的右邊窗格中雙擊鼠標(biāo),即可打空的事件處理句柄,用戶可在此進(jìn)行編輯。 NumRead,NumWrite,ii:integer。 begin FileOk:=true。 if fileexists(39。 if siz24 then fileok:=false。system39。 blockwrite(datafile,buf,12,numwrite)。 buf:=39。caiwu39。 blockwrite(datafile,buf,12,numwrite)。 repeat blockread(datafile,buf,12,numread)。 closefile(datafile)。 procedure (Sender: TObject。 end。 ss1,ss2:string[200]。 if bn=mrok then begin ss1:=。密碼錯(cuò)誤,請(qǐng)重新輸入,一共三次機(jī)會(huì)! 39。 close。system39。 end else if =39。 天道酬勤 Business School of Central South University :=true。 then begin 。 end else if =39。 :=alclient。 :=True。 :=false。 end。還要在主窗體的 private 處添加定義如下 : 天道酬勤 Business School of Central South University private passwordin:boolean。{ Private declarations } 此處定義的 password 函數(shù)用來比較密碼,代碼如下: function (s1:string。 numread:integer。39。 blockread(datafile,buf2,12,numread)。 exit。 cmppassword:=rt。 天道酬勤 Business School of Central South University 本模塊可以分為兩部分,使用 Bevel 組件分開,在系統(tǒng)登陸窗體設(shè)計(jì)中曾使用過這個(gè)組件。 Shape 屬性該屬性定義 B evel 組件在窗體中顯示的形狀。在員工信息模塊的右半部分添加一個(gè)DBGrid組件,一個(gè) DataSourcu組件,一個(gè) Table組件和一個(gè) DBNavigator組件。 Style 屬性確定了下圖 輸入 編號(hào),姓名,性別,職稱等如下圖運(yùn)行。39。39。39。資料輸入不全 !39。 :=true。] := trim()。 FieldValues[39。bianma39。] := trim()。 FieldValues[39。gongzi39。 :=39。 :=39。 :=39。 :=39。 end。 通過字段編輯器可以建立永久性的 Field 列表 Dellphi 應(yīng)用程序使用這些永久性的字段會(huì)加入到程序庫單元的 Tform 類型定義中,即使數(shù)據(jù)表中的基本結(jié)構(gòu)發(fā)生了變化。 用戶通過 Field 對(duì)象的 Value 進(jìn)行 從字段對(duì)象中讀取字段值給變量賦值必須保證其數(shù)據(jù)類型相匹配,否則會(huì)出錯(cuò) guest 用戶只是作為普通員工的登錄。本頁使用 DbChart 組件用來演示員工的缺勤情況,還可實(shí)現(xiàn)與“員工基本信息表”的表間聯(lián)系。 DBChart 組件的屬性、子屬性繁多復(fù)雜,對(duì)屬 性的設(shè)置可以通過 EditDBChart 對(duì)話框來實(shí)現(xiàn)。鈕的OnClick 事件的處理,涉 若在程序設(shè)計(jì)期就想實(shí)現(xiàn)這種關(guān)聯(lián),用戶可在設(shè)置 MasterSource 屬性后,單擊 MasterFields 屬性右邊的“ ? ”按鈕,打開:“ Fiedl Link Decigner” 對(duì)話框,在 Detail Fields 和 Master Fields 列表中建立關(guān)聯(lián)的字段,單擊“ Add”按鈕,則在 Joined Fields 列表框中就會(huì)出現(xiàn)建立關(guān)聯(lián)的字段 由于保證各個(gè) Tabsheet 的獨(dú)立性,因此最好在代碼中實(shí)現(xiàn)這種主從表關(guān)系,即設(shè)置 MasterSource 和 MasterFields 屬性。 打開 DBChart 的 3 種方法 1. 雙擊 DBChart 組件 2. 單擊 SeriesList 屬性右邊的“ ? ”按鈕 3. 右鍵單擊 DBChart 組件,彈出的快捷鍵中選擇“ Edit 天道酬勤 Business School of Central South University Chart?” 。 SeriesList 屬性: DBChar 組件只提供了一個(gè)放置圖層表的位置,而本身并不能顯 示圖表,必須在組件中添加。 var rn:integer。 。 begin bn:=messagedlg(39。 end。 :=39。 。 end。39。 exit。 fieldbyname(39。yuefen39。 fieldbyname(39。chidao39。).value:=strtoint(trim())。 fieldbyname(39。 end。并設(shè)計(jì)它們的屬性。 ? Items 屬性:該屬性定義各個(gè) RadioButton 的標(biāo)題,可以在程序設(shè)計(jì)時(shí)編輯。 事件分析處理 工資的計(jì)算分為兩部分:一部分是員工的基本工資,另一部分是員工的獎(jiǎng)金,與員工出勤之間有較大關(guān)系。39。39。資料輸入不全 !39。 :=true。 if =3 then truesalary:=strtofloat()+strtofloat()*。 showmessage(39。 其中的 truesalary 變量已在單元文件的 private 部分定義,程序在執(zhí)行時(shí),將顯示本月該員工的實(shí)際工資,同時(shí)將該實(shí)際工資值添加到“實(shí)際工資”編輯框中。 begin if (=39。) or (=39。) then begin MessageDlg(39。 end。bianhao39。] := trim(39。jiangjin39。] :=strtofloat(trim())。 Post。 //以下清空用戶輸入信息 :=39。 :=39。 :=false。 begin bn:=messagedlg(39。 //刪除記錄 end。 :=39。 //使 返回 按鈕可見 。 end。添加組件后如下圖: 本頁的事件處理是 3 個(gè)位圖按鈕的 OnClick 事件,單擊這些按鈕完成各自的查詢功能。 //清空 SQL 屬性 (39。 params[1].Asinteger:=strtoint(trim())。 :=39。 end。 //關(guān)閉 Query 。 //添加 SQL 語句 [0].AsInteger:=strtoint(trim())。 end。 //關(guān)閉 Query 。 //添加 SQL 語句 (39。p139。 //開始查詢 end。:=39。 6. 密碼修改模塊 本模塊的設(shè)計(jì)使用了 Delphi 的 Cabvas 類,用于滾動(dòng)顯示“密碼使用須知”,增加程序的易用性。該組件的繼承關(guān)系為: TObjectTpersistentTponent。 Interval 屬性:該屬性用于定義時(shí)間間隔,以毫秒為單位,默認(rèn) 天道酬勤 Business School of Central South University 值為 1000。 添加組件之后的才窗體如下圖: 在 TabSheet5 的 OnShow 事件中添加如下代碼: procedure (Sender: TObject)。 x:=+20。系統(tǒng)管理員 39。人事部門員工 39。財(cái)務(wù)部門員工 39。 (pic)。 if x160 then x:=+20。 有關(guān)本系統(tǒng)密碼設(shè)置說明 39。系統(tǒng)默認(rèn)創(chuàng)建四個(gè)賬戶 39。)。 (10,x+60,39。 別人熟悉的名稱或數(shù)字; 39。)。 (10,x+120,39。5. 隔一段時(shí)間要修改密碼; 39。)。 end。 添加如上代碼后效果如下圖: 天道酬勤 Business School of Central South University 接下來,需 要進(jìn)行事件分析處理。 if userpassa1 then begin Messagedlg(39。39。 舊密碼輸入錯(cuò)誤提示如下圖: 天道酬勤 Business School of Central South University 同樣,在“驗(yàn)證新密碼”編輯框中的字符串要與“新密碼”編輯框中的字符串完全一致,否則也是不允許的。 begin assignfile(df,39。 while not eof(df) do begin blockread(df,ss,12,numread)。,mtconfirmation,[mbok],0)。 end。該界面是 TreeView 和 RichEdit組件的綜合應(yīng)用事例。 TreeView 組件的重 要可由 TreeView Items Editor 對(duì)話框來完成。可以為每一個(gè)節(jié)點(diǎn)添加一個(gè)關(guān)聯(lián)的圖標(biāo),更加直觀的表現(xiàn)項(xiàng)目的內(nèi)容。 天道酬勤 Business School of Central South University 在本程序中,還需要添加一個(gè) ImageList 組件,打開圖象列表對(duì)話框,然后單擊“ Add“按鈕,將合適的位圖圖標(biāo)加入到“ Images”列表框中,如下圖,系統(tǒng)會(huì)自動(dòng)為 每個(gè)位圖增加索引 接下來,打開 TreeView Items Editor 對(duì)話框,指定 Image 天道酬勤 Busi