Delphi試驗室設(shè)備管理系統(tǒng)_第1頁
Delphi試驗室設(shè)備管理系統(tǒng)_第2頁
Delphi試驗室設(shè)備管理系統(tǒng)_第3頁
Delphi試驗室設(shè)備管理系統(tǒng)_第4頁
Delphi試驗室設(shè)備管理系統(tǒng)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實驗室設(shè)備管理系統(tǒng)摘要學校實驗室設(shè)備管理系統(tǒng)是典型的設(shè)備信息管理系統(tǒng)(EMIS),要求能為學校實驗室管理提供信息化動態(tài)化的管理,方便學校實驗室設(shè)備管理工作,提高學校設(shè)備管理質(zhì)量和使用效率。而且系統(tǒng)應(yīng)符合設(shè)備管理的有關(guān)規(guī)定,包括新設(shè)備的申請、購買確認、新設(shè)備信息錄入、舊設(shè)備維修和報廢及用戶管理等。能滿足日常工作的基本需要,并達到操作過程中的直觀、方便、實用、安全等有關(guān)要求。經(jīng)過分析綜合,使用Sybase公司的delphi7.0作為前端開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能夠方便而簡潔操縱數(shù)據(jù)庫的智能化對象(后端采用SybaseASA數(shù)據(jù)庫),本系統(tǒng)采用結(jié)構(gòu)化程序設(shè)計方

2、法,嚴格按照結(jié)構(gòu)化方法開發(fā)過程,從計劃階段到開發(fā)階段再到維護階段一步一步實現(xiàn)本系統(tǒng)的功能。關(guān)鍵詞:設(shè)備信息管理系統(tǒng)(EMIS)delphi7.0SybaseASA數(shù)據(jù)庫快速原型法面向?qū)ο髷?shù)據(jù)窗口數(shù)據(jù)對象設(shè)備購買申請購買批準確認新設(shè)備信息錄入設(shè)備維修設(shè)備報廢用戶登錄用戶管理一、引言隨著科學技術(shù)的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。實驗室設(shè)備管理系統(tǒng)是一個眾多企業(yè)、事業(yè)單位不可缺少的部分。它的內(nèi)容對于企事業(yè)的決策者和管理者來說都至關(guān)重要,所以實驗室設(shè)備管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳

3、統(tǒng)人工的方式管理設(shè)備,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間稍長,將產(chǎn)生大量的冗余,文件越來越多,使人工管理沒有頭緒,這對于查找、更新和維護都帶來了很大的困難。作為計算機應(yīng)用的一部分,使用計算機對學校實驗室設(shè)備管理,具有手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提設(shè)備管理的效率,也是正規(guī)化管理,與世界接軌的重要條件。1.1 編寫目的本系統(tǒng)的開發(fā)正是為了完成這樣的任務(wù),使用計算機對實驗室設(shè)備進行管理,具有手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等

4、,它在當今信息社會已成為必要。1.2 背景儀征XX學校是一所職業(yè)中學,擁有多個實驗室,實驗室的儀器設(shè)備比較齊全,也比較多,每種設(shè)備情況都不一樣。這就給實驗室管理人員的管理帶來了諸多不便。如果管理跟不上,一旦造成錯誤,很可能給學校造成巨大的損失。在沒有使用管理軟件前,管理人員一直為此而苦惱。今年,該校決定采用計算機技術(shù)進行設(shè)備上面的管理。根據(jù)該校的具體情況,本系統(tǒng)在實施后,將幫助實驗室管理人員提高工作效率。本項目的任務(wù)提出者:學校實驗室設(shè)備管理人員.開發(fā):是本人的實驗設(shè)計.用戶:為學校實驗室設(shè)備管理人員.使用該軟件系統(tǒng)同時與其他Windos系統(tǒng)兼容,能方便實驗室設(shè)備管理人員管理.1.3功能介紹系

5、統(tǒng)主要功能有:(1)設(shè)備管理:添加設(shè)備、添加設(shè)備、修改設(shè)備、設(shè)備情況查詢。(2)系統(tǒng)管理:用戶管理(添加用戶、刪除用戶、更改密碼)、換名登錄、退出系統(tǒng)。(3)系統(tǒng)幫助:關(guān)于。、系統(tǒng)框架設(shè)計根據(jù)本系統(tǒng)的功能主框架設(shè)計如下所示:用戶管理三、數(shù)據(jù)庫設(shè)計針對該校的具體情況,本系統(tǒng)采用了Access2000數(shù)據(jù)庫,數(shù)據(jù)庫路徑為人事管理系統(tǒng)。數(shù)據(jù)庫共有4個數(shù)據(jù)庫表:用戶表、設(shè)備表、入庫記錄表、出庫記錄表。下面主要介紹一些重要數(shù)據(jù)庫表的結(jié)構(gòu)。1、用戶表該表主要用來存放系統(tǒng)用戶資料。其主要結(jié)構(gòu)如下所示:字段名稱數(shù)據(jù)類型字段大小說明用戶名文本10用戶的名稱口令文本10用戶的口令2、設(shè)備表設(shè)備表主要用來存放設(shè)備的

6、相關(guān)信息。表結(jié)構(gòu)如下所示:字段名稱數(shù)據(jù)類型字段大小說明編R文本6P設(shè)備的編號設(shè)備名稱文本20設(shè)備的名稱數(shù)量文本4設(shè)備的數(shù)量單價貨幣P設(shè)備的單價總金額貨幣設(shè)備的總金額3、入庫記錄表入庫記錄表主要用于存放設(shè)備入庫時的相關(guān)信息。表結(jié)構(gòu)如下圖所示:字段名稱數(shù)據(jù)類型字段大小說明編R文本6設(shè)備的編號設(shè)備名稱文本20設(shè)備的名稱數(shù)量文本4設(shè)備的數(shù)量總金額貨幣總金額入庫日期日期/時間入庫的日期經(jīng)辦人文本10經(jīng)手辦此事的人名備注備注備注4、出庫記錄表出庫記錄表主要用于存放設(shè)備出庫時的相關(guān)信息。表結(jié)構(gòu)如下圖所示:字段名稱數(shù)據(jù)類型字段大小說明編文本6:設(shè)備的編號設(shè)備名稱文本20設(shè)備的名稱數(shù)量文本4設(shè)備的數(shù)量總金額貨幣

7、總金額出庫日期日期/時間入庫的日期經(jīng)辦人文本10經(jīng)手辦此事的人名備注備注備注Delphi7.0中數(shù)據(jù)庫的連接方式。Delphi可以使用多種數(shù)據(jù)庫。我們這里使用ADO開發(fā)數(shù)據(jù)庫技術(shù)。使用ADO開發(fā)數(shù)據(jù)庫程序,通常需要以下組件:Datasource。Adoconnetion。Adocommand。adodatasetadotable。adoquery。adostoredproco使用ADO開發(fā)數(shù)據(jù)庫程序的步驟如下:(1)在窗體添加TADOConnection組件(名稱為ADOConnectionl),可以雙擊該組件設(shè)計其數(shù)據(jù)庫連接屬性。如下圖所示:選才UUserConnectionString,然

8、后單擊Build按鈕,進入下圖所示的界面。使用OLEDB連接能夠發(fā)揮更大的效率。現(xiàn)在我們使用的是Access2000,則可以選擇MicrosoftJet4.0OLEDBProvider。選擇好后,單擊"下一步"按鈕,進入下圖所示界面。點右邊的按鈕,則進入選擇數(shù)據(jù)庫頁面。選擇好數(shù)據(jù)庫,點擊測試連接按鈕。四、詳細設(shè)計1、系統(tǒng)登錄界面設(shè)計程序啟動后,首先進入“系統(tǒng)登錄”界面驗證操作員密碼。系統(tǒng)登錄窗口主要實現(xiàn)如下功能:以圖標列表形式顯示操作員,并憑口令進入系統(tǒng)。操作員錯誤或密碼錯誤提醒并返回錯誤點。系統(tǒng)登錄界面如下圖所示:具體實現(xiàn)如下:添加新窗體,設(shè)置窗體caption屬性為登陸

9、窗口,向窗體中添加相關(guān)控件。程序代碼如下:procedureTloginform.FormShow(Sender:TObject);/讓窗體在顯示之后,框中有用戶選擇。varlist_a:TlistItem;beginadoquery1.Close;adoquery1.SQL.Clear;adoquery1.sql.add('select*from用戶表');/選擇所有操作員adoqueryl.Open;listviewl.Items.Clear;/清空列表whilenotadoqueryl.Eofdo/將所有操作人員加入到列表beginlist_a:=listview1.It

10、ems.Add;list_a.Caption:=adoquery1.fieldbyname('用戶名').AsString;list_a.ImageIndex:=1;adoqueryl.Next;end;editl.setfocus;end;procedureTloginform.Button2Click(Sender:TObject);/退出beginclose;end;procedureTloginform.ListView1Click(Sender:Tobject);/選擇操作員beginiflistviewl.Selected<>Nilthen/如果選擇不為

11、空adoqueryl.Locate('用戶名',listview1.Selected.Caption,loPartialkey);end;procedureTloginform.Button1Click(Sender:TObject);/如果密碼不正確beginifeditl.Text<>adoquery1.FieldByName('口令').AsStringthenbeginshowmessage(密碼不正確請重新輸入!);edit1.Clear;edit1.SetFocus;endelsebeginmainform.showmodal;edit1

12、.Clear;listview1.SetFocus;end;end;procedureTloginform.Edit1KeyPress(Sender:TObject;varKey:Char);/執(zhí)行登錄操作beginifkey=#13thenbuttonl.Click;end;2、主窗體界面設(shè)計程序啟動后,在登錄操作員密碼后,將進入主程序界面。主程序界面主要實現(xiàn)如下功能:使用菜單操作、顯示系統(tǒng)日期、單位信息。通過主界面,退出程序。3、系統(tǒng)管理功能模塊的設(shè)計(1)用戶管理添加按鈕的代碼如下:procedureTyhglform.Button1Click(Sender:TObject);begin

13、adotable1.Append;tjyhform.showmodal;/添加用戶窗口顯end;刪除按鈕的程序如下:procedureTyhglform.Button2Click(Sender:TObject);beginifmessagebox(yhglform.Handle,'確定要刪除本條記錄嗎?,請確認',mb_okcancel)=idokthenbeginadotable1.delete;end;end;添加用戶窗口如下所示:輸入用戶名和密碼,點擊確定。代碼如下:procedureTtjyhform.Button1Click(Sender:TObject);begin

14、yhglform.adotable1.post;dbedit1.Text:=''dbedit1.Clear;dbedit2.Text:=''dbedit1.SetFocus;end;(2)修改口令窗口如下所示:該界面之確定按鈕代碼如下:procedureTfrm_xgmm.BitBtn1Click(Sender:TObject);beginifedit3.Text<>edit2.Textthenbeginmessagebox(frm_xgmm.Handle,'請重新確認新密碼!','提示',mb_iconerror);

15、edit3.Textk";edit3.SetFocus;endelsebeginadotable1.Edit;adotable1.Fields1.Value:=edit3.Text;adotable1.Post;messagebox(frm_xgmm.Handle,'您的密碼修改成功!':信息',mb_iconasterisk);close;end;4、設(shè)備管理模塊的設(shè)計(1)設(shè)備資料入庫end;“確定”按鈕的程序如下:procedureTsbrkform.Button1Click(Sender:TObject);beginifedit6.Text="

16、;thenbeginshowmessage(該記錄不能為空');exit;edit6.Clear;edit6.SetFocus;end;iflength(trim(edit1.Text)<>6thenbeginshowmessage(清輸入6位設(shè)備編號);判斷設(shè)備編號是否為6位edit1.Clear;edit1.SetFocus;exit;end;withadoquery1dobeginclose;adoquery1.SQL.Clear;adoquery1.SQL.add('select*from設(shè)備表where編號=:id');parameters.par

17、ambyname('id').Value:=edit1.text;adoquery1.Open;ifrecordcount>0thenbeginadoquery1.Edit;adoquery1.fieldbyname('數(shù)量).Value:=strtoint(edit3.text)+strtoint(adoquery1.FieldByName('數(shù)量').asstring);adoquery1.FieldByName('總、金額').Value:=strtoint(adoquery1.fieldbyname('單價).ass

18、tring)*strtoint(adoquery1.fieldbyname('數(shù)量').asstring);adoquery1.FieldByName('編號').Value:=edit1.Text;adoquery1.FieldByName('設(shè)備名稱').Value:=edit2.Text;adoquery1.FieldByName('單價').Value:=edit4.Text;post;endelsebeginadoquery1.Append;adoquery1.FieldByName('編號').Valu

19、e:=edit1.Text;adoquery1.FieldByName('設(shè)備名稱).value:=edit2.Text;adoquery1.FieldByName('數(shù)量').Value:=edit3.Text;adoquery1.FieldByName('單價').Value:=edit4.Text;adoquery1.FieldByName('總金額').Value:=strtoint(edit4.Text)*strtoint(edit3.Text);post;end;withadoquery2doadoquery2.Close;a

20、doquery2.SQL.Clear;adoquery2.SQL.Add('select*from入庫記錄表,);adoquery2.Open;adoquery2.Edit;:=edit1.Text;:=edit2.Text;:=edit3.Text;:=strtoint(edit3.Text)*strtoint(edit4.Text);:=date;:=edit6.Text;:=memo1.Text;adoquery2.Append;adoquery2.Fields0.Valueadoquery2.Fields1.Valueadoquery2.Fields2.Valueadoquer

21、y2.Fields3.Valueadoquery2.Fields4.Valueadoquery2.Fields5.Valueadoquery2.Fields6.Valueadoquery2.Post;end;edit1.Clear;edit2.Clear;edit3.Clear;edit4.Clear;edit6.Clear;memo1.Clear;edit1.SetFocus;end;該程序為判斷該產(chǎn)品是否在設(shè)備庫中有庫存,如果有庫存,則會使原有的庫存產(chǎn)生改變。(2)設(shè)備資料管理該程序模塊的用法如下:先在左邊選中某個數(shù)據(jù),如果想修改,則點擊修改按鈕,則左邊選中數(shù)據(jù)在右邊顯示出詳細信息。用戶修

22、改之后,點擊保存即可。另外此界面中還實現(xiàn)了查詢、打印功能。具體該程序的代碼如下所示:procedureTsbglform.Button1Click(Sender:TObject);/修改按鈕的程序代碼beginedit1.Text:=adoquery1.Fields0.AsString;edit2.Text:=adoquery1.Fields1.AsString;edit3.Text:=adoquery1.Fields2.AsString;edit4.Text:=adoquery1.Fields3.AsString;edit5.Text:=adoquery1.Fields4.AsString;

23、end;procedureTsbglform.Edit4Exit(Sender:TObject);/當修改過價格或數(shù)量之后,總金額會智能改變。beginedit5.Text:=inttostr(strtoint(edit4.Text)*strtoint(edit3.Text);end;procedureTsbglform.Edit3Exit(Sender:TObject);beginedit5.Text:=inttostr(strtoint(edit4.Text)*strtoint(edit3.Text);end;procedureTsbglform.Button2Click(Sender:T

24、Object);/保存按鈕的程序代碼如下beginwithadoquery1dobeginadoquery1.delete;end;withadoquery1dobeginclose;withsqldobeginclear;add('insertinto設(shè)備表values(:p0,:p1,:P2,:p3,:p4)');end;parameters0.value:=edit1.text;parameters1.value:=edit2.text;parameters2.value:=edit3.text;parameters3.value:=edit4.text;paramete

25、rs4.value:=edit5.text;execsql;end;withadoquery1dobeginclose;withSQLdobeginclear;add('select*from設(shè)備表');end;execsql;open;end;end;procedureTsbglform.Button3Click(Sender:TObject);/刪除記錄beginifapplication.MessageBox('確定要刪除這條記錄嗎>','提示',mb_okcancel+mb_iconinformation)=id_okthenwit

26、hadoquery1doifisempty=falsethendelete;end;procedureTsbglform.Button5Click(Sender:TObject);beginifcombobox1.Text='編號'thenbeginwithadoquery1dobeginclose;sql.Clear;sql.add('select*from設(shè)備表where編號=:id');parameters.ParamByName('id').Value:=edit6.text;open;ifrecordcount=0thenbeginap

27、plication.MessageBox('沒有檢索到該設(shè)備信息,提示',mb_ok+mb_iconinformation);end;end;end;ifcomboboxl.Text='設(shè)備名稱'thenbeginwithadoquery1dobeginclose;sql.Clear;sql.add('select*from設(shè)備表where編號=:d');parameters.ParamByName('d').Value:=edit6.text;open;ifrecordcount=0thenbeginapplication.Me

28、ssageBox('沒有檢索到該設(shè)備信息,提示',mb_ok+mb_iconinformation);end;end;end;end;procedureTsbglform.Button6Click(Sender:TObject);/打印窗口的代碼如下beginbbdyform.QuickRep1.Preview;end;procedureTsbglform.FormShow(Sender:TObject);beginadoquery1.Close;adoquery1.SQL.clear;adoquery1.SQL.add('select*from設(shè)備表,);adoque

29、ryl.Open;end;procedureTsbglform.Button7Click(Sender:TObject);/刷新beginadoqueryl.Refresh;end;假備禱革打印編號設(shè)備名稱教重單價息金額oom眥棘2720540000003鼠悚20401BDO000001計算機3920007BOOD(3)入庫記錄查詢功能為可查詢歷來設(shè)備入庫的具體記錄。界面如下所示:入貨情況2d編號名稱數(shù)量I總金額入庫日期經(jīng)辦人一OOOOOS計苴機121802005-5-18高飛000001計受機1428000200518高飛000001計算5-1e高飛000002鼠標

30、122402005-5-18高飛000002鼠文兵000003鼠標208002005-M9蔣冬生查詢條件入庫時間等于:2005-5193確定離開可按照入庫時間來查詢。程序代碼如下所示:procedureTrkcxform.Button1Click(Sender:TObject);begininherited;withadoquery1dobeginclose;adoquery1.SQL.clear;adoquery1.SQL.add('select*from入庫記錄表where入庫日期=:id');adoqueryl.Parameters.paramb

31、yname('id').value:=datetostr(datetimepicker1.Date);adoquery1.open;adoquery1.first;end;end;(4)設(shè)備資料出庫功能為對設(shè)備庫中的設(shè)備出庫操作。界面如下所示:該模塊具有智能化,會根據(jù)你輸入的設(shè)備編號,自動得出設(shè)備名稱。程序代碼具體如下:procedureTsbckform.Button1Click(Sender:TObject);beginifedit6.Text="thenbeginshowmessage(該記錄不能為空');exit;edit6.Clear;edit6.S

32、etFocus;end;iflength(trim(edit1.Text)<>6thenbeginshowmessage(清輸入6位設(shè)備編號');edit1.Clear;edit1.SetFocus;exit;end;withadoquery1dobeginclose;adoquery1.SQL.Clear;adoquery1.SQL.add('select*from設(shè)備表where編號=:id');parameters.parambyname('id').Value:=edit1.text;adoquery1.Open;ifrecordcount>0thenbeginadoquery1.Edit;adoquery1.fieldbyname('數(shù)量').Value:=strtoint(adoquery1.FieldByName('

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論