學(xué)士學(xué)位畢業(yè)設(shè)計(jì)(論文)課件_第1頁
學(xué)士學(xué)位畢業(yè)設(shè)計(jì)(論文)課件_第2頁
學(xué)士學(xué)位畢業(yè)設(shè)計(jì)(論文)課件_第3頁
學(xué)士學(xué)位畢業(yè)設(shè)計(jì)(論文)課件_第4頁
學(xué)士學(xué)位畢業(yè)設(shè)計(jì)(論文)課件_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)士學(xué)位畢業(yè)設(shè)計(jì)(論文)藥品管理系統(tǒng)應(yīng)用程序 學(xué)生姓名:李丙吉 指導(dǎo)教師:張方舟 所在學(xué)院:成人教育學(xué)院 專 業(yè):計(jì)算機(jī) 中國(guó)大慶 2008 年 12月摘 要隨著科技的飛速發(fā)展,技術(shù)不斷進(jìn)步,電子計(jì)算機(jī)已經(jīng)逐漸進(jìn)入了千家萬戶。然而現(xiàn)在家庭里對(duì)計(jì)算機(jī)的應(yīng)用卻不夠普及,很少有適合普通家庭應(yīng)用的軟件程序。本系統(tǒng)針對(duì)這一現(xiàn)象,專門為普通家庭設(shè)計(jì)出一套適合日常使用的財(cái)務(wù)管理系統(tǒng)。由于普通家庭所使用的計(jì)算機(jī)種類千差萬別,為了使系統(tǒng)能夠適應(yīng)大眾的需求,本系統(tǒng)后臺(tái)數(shù)據(jù)庫采用桌面型數(shù)據(jù)庫Microsoft Access2000,前臺(tái)程序采用Borland Delphi7開發(fā)。通過本系統(tǒng)可以實(shí)現(xiàn)家庭收支的統(tǒng)計(jì),月

2、末的財(cái)務(wù)結(jié)算以及借貸情況的監(jiān)測(cè)。本程序設(shè)計(jì)力求節(jié)減,貼近日常生活的使用,令家庭帳目清晰易見,讓人一目了然。關(guān)鍵詞: 家庭;財(cái)務(wù)管理系統(tǒng) ;Borland Delphi7 Microsoft Access2000ABSTRACTTurn along with the national information developments fly to develop soon, guiding advanced technical and each university to also accelerate the information of the oneself turn with autom

3、ate developments, managing the teaching in droves, information management etc. is every kind of to transact the system leads into the daily pursuit, this time should effective demand, just for the campus hospital designs a set of then enter the sale saves for the main management software campus hosp

4、itals manage system.In consideration of the actual hardware term of the current campus hospital and the function that realizes, this system backstage database adoption tables top type database Microsoft Access2000, stage procedure adoption Borland Delphi7 development. Passing this system can realize

5、 an operation for storing in warehouse management, pharmacy sale management etc., this procedure designing tightly sticking actual need, nearly measuring reducing operating personnel step of drugs, try hard for simple, reduced obviously campus hospital drugs manage the workload of the aspect, making

6、 drugs the management becomes a relaxed work.Keywords: The teaching management system;Transacts the system;Desktop Database 目 錄1 導(dǎo)言11.1 藥品管理系統(tǒng)的作用及發(fā)展現(xiàn)狀11.2 應(yīng)用背景11.3 本章小結(jié)12 所用工具簡(jiǎn)介.22.1 Microsoft Access2000簡(jiǎn)介.22.2 Borland Delphi7簡(jiǎn)介22.3 本章小結(jié)33 關(guān)鍵技術(shù)介紹.43.1 用Delphi創(chuàng)建數(shù)據(jù)庫應(yīng)用程序43.2 事務(wù)管理63.3 DataSnap技術(shù).63.4 MD

7、I窗體73.5 Rave介紹.73.6 INI文件.83.7 本章小結(jié)84 系統(tǒng)分析與概要設(shè)計(jì).94.1 系統(tǒng)功能分析94.2 系統(tǒng)功能模塊設(shè)計(jì)94.3 數(shù)據(jù)庫需求分析104.4 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)104.5 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)124.6 創(chuàng)建應(yīng)用程序154.7 本章小結(jié)28參考文獻(xiàn).29致謝.301 導(dǎo)言1.1 家庭財(cái)務(wù)管理系統(tǒng)的作用及發(fā)展現(xiàn)狀 藥品管理系統(tǒng)是 在傳統(tǒng)的校醫(yī)院管理系統(tǒng)中,庫存管理的內(nèi)容就是貨物入庫、出庫和庫存管理,它是貨物管理的中間環(huán)節(jié)。用數(shù)據(jù)描述貨物的收入、發(fā)出和儲(chǔ)存狀態(tài),實(shí)際反映了貨物在企業(yè)內(nèi)流動(dòng)的客觀過程,倉庫管理與貨物管理的其他環(huán)節(jié),一方面,倉庫管理受計(jì)劃管理和財(cái)務(wù)管

8、理的控制和監(jiān)督。入庫的品種規(guī)格數(shù)量和出庫的品種規(guī)格數(shù)量由貨物配送計(jì)劃所規(guī)定;實(shí)際發(fā)出的入庫、出庫需接受財(cái)務(wù)監(jiān)督,所有的原始單據(jù)和臺(tái)賬都必須經(jīng)過財(cái)務(wù)人員的稽核;庫存的品種規(guī)格數(shù)量受備貨定額、周轉(zhuǎn)儲(chǔ)備定額以及儲(chǔ)備資金定額的限制。另一方面,它又反作用于計(jì)劃管理和財(cái)務(wù)管理。它實(shí)際反映了貨物計(jì)劃的完成情況和儲(chǔ)備資金的執(zhí)行情況;向計(jì)劃管理提供當(dāng)前庫存數(shù)據(jù),作為編制配送申請(qǐng)計(jì)劃和采購計(jì)劃時(shí)核算缺口或超儲(chǔ)的原始數(shù)據(jù)項(xiàng)之一;向財(cái)務(wù)管理提供編制記賬憑證的入庫、出庫原始數(shù)據(jù),以進(jìn)行材料核算。向統(tǒng)計(jì)分析提供進(jìn)、銷、存數(shù)據(jù),所得出的貨物流轉(zhuǎn)統(tǒng)計(jì)數(shù)據(jù),反過來又影響發(fā)貨定額、備貨定額、儲(chǔ)備資金的制定。 經(jīng)過對(duì)校醫(yī)院的實(shí)際工

9、作情況的調(diào)查,本系統(tǒng)應(yīng)該實(shí)現(xiàn)藥品的入庫、出庫和庫存管理,原始單據(jù)(入庫單和出庫單)管理,藥房藥品接收、開藥等管理功能,還有打印,數(shù)據(jù)庫備份等其它功能。 通過使用本系統(tǒng),可以取代以前的手寫記錄,人工查庫,實(shí)現(xiàn)了處方單的自動(dòng)打印功能,從而有效的提高了校醫(yī)院的工作效率。1.2 應(yīng)用背景 經(jīng)過對(duì)校醫(yī)室的實(shí)際工作情況的調(diào)查,本系統(tǒng)應(yīng)該實(shí)現(xiàn)藥品的入庫、出庫和庫存管理,原始單據(jù)(入庫單和出庫單)管理,藥房藥品接收、開藥等管理功能,還有打印,數(shù)據(jù)庫備份等其它功能。 通過使用本系統(tǒng),可以取代以前的手寫記錄,人工查庫,實(shí)現(xiàn)了處方單的自動(dòng)打印功能,從而有效的提高了校醫(yī)室的工作效率1.3 本章小結(jié) 本章主要是對(duì)現(xiàn)階段

10、的校醫(yī)院各管理職能做個(gè)大概的描述,說明現(xiàn)在比較需要一個(gè)管理功能更多、操作更簡(jiǎn)便的管理系統(tǒng)來為我們服務(wù),讓人們享受更好的服務(wù) 。 2 所用工具簡(jiǎn)介2.1 Microsoft Access2000簡(jiǎn)介 Access是Office辦公套件中一個(gè)極為重要的組成部分。剛開始時(shí)微軟公司是將Access單獨(dú)作為一個(gè)產(chǎn)品進(jìn)行銷售的,后來微軟發(fā)現(xiàn)如果將Access捆綁在Office中一起發(fā)售,將帶來更加可觀的利潤(rùn),于是第一次將Access捆綁到OFFICE97中,成為OFFICE套件中的一個(gè)重要成員?,F(xiàn)在它已經(jīng)成為Office辦公套件中不可缺少的部件了。自從1992年開始銷售以來,Access 已經(jīng)賣出了超過6

11、000萬份,現(xiàn)在它已經(jīng)成為世界上最流行的桌面數(shù)據(jù)庫管理系統(tǒng)。 后來微軟公司通過大量地改進(jìn),將Access的新版本功能變得更加強(qiáng)大。不管是處理公司的客戶訂單數(shù)據(jù);管理自己的個(gè)人通訊錄;還是大量科研數(shù)據(jù)的記錄和處理,人們都可以利用它來解決大量數(shù)據(jù)的管理工作。 你也許要問,Access的功能這么強(qiáng),那使用起來會(huì)不會(huì)很麻煩呢?這一點(diǎn)你可以放心,隨著版本的升級(jí),Access的使用也變得越來越容易。過去很繁瑣的工作現(xiàn)在只需幾個(gè)很簡(jiǎn)單的步驟就可以高質(zhì)量地完成了。2.2 Borland Delphi7簡(jiǎn)介 Delphi是著名的Borland(現(xiàn)在已和Inprise合并)公司開發(fā)的可視化軟件開發(fā)工具。“真正的程

12、序員用C,聰明的程序員用Delphi”,這句話是對(duì)Delphi最經(jīng)典、最實(shí)在的描述。Delphi被稱為第四代編程語言,它具有簡(jiǎn)單、高效、功能強(qiáng)大的特點(diǎn)。和VC相比,Delphi更簡(jiǎn)單、更易于掌握,而在功能上卻絲毫不遜色;和VB相比,Delphi則功能更強(qiáng)大、更實(shí)用??梢哉fDelphi同時(shí)兼?zhèn)淞薞C功能強(qiáng)大和VB簡(jiǎn)單易學(xué)的特點(diǎn)。它一直是程序員至愛的編程工具。 2.3 本章小結(jié) 本章主要針對(duì)此次管理系統(tǒng)設(shè)計(jì)所應(yīng)用到的主要工具M(jìn)icrosoft Access2000和Borland Delphi7做以簡(jiǎn)單介紹,可以使沒有接觸過的讀者也可以對(duì)過這兩個(gè)工具有個(gè)大概的了解,方便以后對(duì)此系統(tǒng)深層次的了解和使

13、用。 3 關(guān)鍵技術(shù)介紹 在系統(tǒng)開發(fā)中主要是應(yīng)用到數(shù)據(jù)庫的連接、事務(wù)管理、DataSnap技術(shù)、MDI窗體、Rave報(bào)表組件、INI文件等關(guān)鍵技術(shù)。3.1 用Delphi創(chuàng)建數(shù)據(jù)庫應(yīng)用程序 指導(dǎo)你通過一個(gè)INTERBASE數(shù)據(jù)庫應(yīng)用程序的創(chuàng)建,來查看和更新數(shù)據(jù)庫樣本。你將使用DELPHI IDE來創(chuàng)建數(shù)據(jù)庫應(yīng)用程序。3.1.1 數(shù)據(jù)庫結(jié)構(gòu)的概述 應(yīng)用程序的結(jié)構(gòu)起初看起來是復(fù)雜的,但是復(fù)合組件簡(jiǎn)化了實(shí)際數(shù)據(jù)庫應(yīng)用程序的發(fā)展和維持。數(shù)據(jù)庫應(yīng)用程序包括3部分:用戶界面,一組數(shù)據(jù)庫訪問組件,和數(shù)據(jù)庫。在這篇文章中,你創(chuàng)建一個(gè)DBEXPRESS數(shù)據(jù)庫應(yīng)用程序。其他的應(yīng)用程序都有相同的結(jié)構(gòu)。用戶界面包括數(shù)據(jù)

14、訪問組件例如網(wǎng)格以便用戶能夠編輯和更新數(shù)據(jù)到數(shù)據(jù)庫中。數(shù)據(jù)訪問組件包括數(shù)據(jù)源,客戶端數(shù)據(jù)集,數(shù)據(jù)提供者,一個(gè)單向數(shù)據(jù)集,和一個(gè)連接數(shù)據(jù)集。數(shù)據(jù)源扮演一個(gè)用戶界面到客戶端的連接者。客戶端數(shù)據(jù)集應(yīng)用程序的核心,因?yàn)樗唤M從底層數(shù)庫來的記錄集。提供者在客戶端數(shù)據(jù)集和單向數(shù)據(jù)集之間轉(zhuǎn)化數(shù)據(jù),其中這些數(shù)據(jù)直接取自數(shù)據(jù)庫。最后,連接組件創(chuàng)建一個(gè)連接到數(shù)據(jù)庫。每一個(gè)單向數(shù)據(jù)集使用一個(gè)不同類型的連接組件。3.1.2 設(shè)置數(shù)據(jù)庫訪問組件 數(shù)據(jù)訪問組件是連接數(shù)據(jù)集到你應(yīng)用程序的其他部分的組件。每一個(gè)數(shù)據(jù)訪問組件指向下一個(gè)低層的組件。例如,數(shù)據(jù)源指向客戶端數(shù)據(jù)集,客戶端數(shù)據(jù)集指向提供者如此等等。當(dāng)你建立一個(gè)數(shù)據(jù)

15、訪問組件時(shí),你首先要添加最底層的組件。接下來,添加組件來創(chuàng)建數(shù)據(jù)庫連接,單向數(shù)據(jù)集,提供者,客戶端數(shù)據(jù)集,和數(shù)據(jù)源。然后,你將為應(yīng)用程序創(chuàng)建用戶界面。這些組件是放在組件板中的DBEXPRES頁,數(shù)據(jù)訪問頁,數(shù)據(jù)控制頁里。 將你的用戶界面和數(shù)據(jù)源組件隔離在不同的窗體上是一個(gè)好主意。但是,為了簡(jiǎn)單化,你可以將用戶界面和所有的組件放在同一個(gè)窗體中。3.1.3 ADO技術(shù)簡(jiǎn)介 ActiveX Data Objects (ADO) 是微軟最新的數(shù)據(jù)訪問技術(shù),是Microsoft發(fā)展的基于 COM的數(shù)據(jù)訪問規(guī)則API訪問的OLE DB技術(shù)。它被設(shè)計(jì)用來同新的數(shù)據(jù)訪問層OLE DB Provider一起協(xié)同

16、工作,以提供通用數(shù)據(jù)訪問(Universal Data Access)。OLE DB是一個(gè)低層的數(shù)據(jù)訪問接口,用它可以訪問各種數(shù)據(jù)源,包括傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,以及電子郵件系統(tǒng)及自定義的商業(yè)對(duì)象。如果多個(gè)ADO組件需要共享一個(gè)連接,則要用TADOConnection組件來連接數(shù)據(jù)庫,然后,這些ADO組件通過他們的Connection屬性來指定這個(gè)TADOConnection組件。 組件面板的數(shù)據(jù)訪問頁(Data Access)提供用于連接數(shù)據(jù)源的組件。數(shù)據(jù)控制頁(Data Controls)中的數(shù)據(jù)可視化組件用于從數(shù)據(jù)庫獲得數(shù)據(jù)或送數(shù)據(jù)到數(shù)據(jù)庫。ADO頁的組件使用ActiveXData Obje

17、cts技術(shù)通過OLE DB訪問數(shù)據(jù)庫信息。InterBase頁的組件用于直接訪問InterBase數(shù)據(jù)庫。 ADO向我們提供了一個(gè)熟悉的,高層的對(duì)OLE DB的Automation封裝接口。對(duì)那些熟悉RDO的程序員來說,你可以把OLE DB比作是ODBC驅(qū)動(dòng)程序。如同RDO對(duì)象是ODBC驅(qū)動(dòng)程序接口一樣,ADO對(duì)象是OLE DB的接口;如同不同的數(shù)據(jù)庫系統(tǒng)需要它們自己的ODBC驅(qū)動(dòng)程序一樣,不同的數(shù)據(jù)源要求它們自己的OLE DB提供者(OLE DB provider)。目前,雖然OLE DB提供者比較少,但微軟正積極推廣該技術(shù),并打算用OLE DB取代ODBC。3.1.4 建立數(shù)據(jù)庫連接 DB

18、EXPRESS頁上有一組快速訪問SQL數(shù)據(jù)庫服務(wù)器的組件。為了連接數(shù)據(jù)庫,你需要增加一個(gè)連接組件。使用的連接組件的類型依賴于所使用的數(shù)據(jù)集組件。在這節(jié)課上,你將使用TSQLCONNECTION和TSQLDATASET組件。添加一個(gè)DBEXPRESS連接組件:確定INTERBASE服務(wù)器已經(jīng)啟動(dòng)以便你可以連接到這節(jié)課所使用的雇員數(shù)據(jù)庫中。更多的關(guān)于啟動(dòng)服務(wù)器,可以查看INTERBASE操作向?qū)А?在組件板上點(diǎn)擊DBEXPRESS頁,并雙擊TSQLCONNECTION組件來將它定位到窗體中。為了找到TSQLCONNECTION組件,將光標(biāo)指向模板一會(huì)兒,幫助提示就會(huì)顯示組件的名字。組件的默認(rèn)名字為

19、TSQLCONNCERION1。這個(gè)組件是不可見的,所以不管你將它放在窗體的什么位置都是沒有關(guān)系的。但在這里,我們一致將全部的不可見組件放在窗體的頂部。為了顯示組件的標(biāo)題,你把焦點(diǎn)定位在一個(gè)窗體上,選擇 工具|環(huán)境選項(xiàng)|設(shè)計(jì),并點(diǎn)擊顯示組件標(biāo)題。3.2 事務(wù)管理 事務(wù)管理(Transaction Management)是目前所有數(shù)據(jù)庫軟件都必須支持的重要功能之一。原本事務(wù)管理只出現(xiàn)在較大型的關(guān)系型數(shù)據(jù)庫中,但是現(xiàn)在事務(wù)管理功能也被大多數(shù)基于文件的數(shù)據(jù)庫支持。 數(shù)據(jù)庫提供的事務(wù)管理必須提供四個(gè)最基本的功能,那就是:Atomic(原子性):事務(wù)管理必須完全執(zhí)行,或是完全不被執(zhí)行。Consisten

20、t(一致性):事務(wù)管理會(huì)維護(hù)數(shù)據(jù)庫的內(nèi)部一致性。Isolated(隔離性):事務(wù)管理可保證數(shù)據(jù)庫中似乎只有目前的事務(wù)在執(zhí)行,而沒有其他事務(wù)。Durable(持久性):事務(wù)管理的執(zhí)行結(jié)果即使是在數(shù)據(jù)庫發(fā)生錯(cuò)誤時(shí)也不會(huì)遺失。 3.3 DataSnap技術(shù) DataSnap以前的名字是MIDAS,DataSnap不但強(qiáng)化了MIDAS原有的功能,更加入了許多新的組件,讓程序員可以使用它開發(fā)出功能更為強(qiáng)大的應(yīng)用系統(tǒng)。此外,DataSnap也改善了MIDAS的執(zhí)行效率,讓使用它的應(yīng)用程序能夠執(zhí)行得更快速。DataSnap的核心技術(shù)在兩個(gè)組件中,TDatasetProducer和TClientDataSet

21、。Connection組件這些組件所對(duì)應(yīng)的數(shù)據(jù)模塊,提供的是數(shù)據(jù)包引入的媒介。在Delphi幫助文件里,“Deploying multi-tiered database applications (DataSnap)”主題下是這樣介紹的,DataSnap provides multi-tier database capability to Delphi applications by allowing client applications to connect to providers in an application server.(通過讓客戶端程序連接到運(yùn)行在外部應(yīng)用服務(wù)器中的prov

22、ider,DataSnap提供Delphi程序員創(chuàng)建多層數(shù)據(jù)庫應(yīng)用的能力。) Delphis support for developing multi-tiered applications is an extension of the way client datasets communicates with a provider component using transportable data packets. Once you understand how to create and manage a three-tiered application, you can create

23、and add additional service layers based on your needs.“ (Delphi對(duì)多層應(yīng)用開發(fā)的支持是通過擴(kuò)展客戶端dataset和服務(wù)器端provider組件的數(shù)據(jù)包通訊技術(shù)而來的,當(dāng)你懂了如何創(chuàng)建和管理一個(gè)三層應(yīng)用,就可以根據(jù)需要?jiǎng)?chuàng)建、附加額外的服務(wù)了)理解基于Provider的多層應(yīng)用在Delphi組件面板的DataSnap頁和DataAccess頁里的組件都是支持多層應(yīng)用的,還有一個(gè)向?qū)Вㄔ贜ew Items對(duì)話框Multitier頁上)用于創(chuàng)建遠(yuǎn)程數(shù)據(jù)模塊。多層應(yīng)用是在provider組件打包數(shù)據(jù)為可傳輸數(shù)據(jù)包和根據(jù)從客戶端返回的delt

24、a包中攜帶的數(shù)據(jù)更新請(qǐng)求來刷新數(shù)據(jù)這兩個(gè)功能的基礎(chǔ)上形成的。 DataSnap協(xié)議有多種connection組件可以連接一個(gè)客戶端dataset到應(yīng)用服務(wù)器。他們都是TCustomRemoteServer的子類,根據(jù)所使用的通信協(xié)議不同(DCOM, CORBA, TCP/IP, HTTP, 或SOAP)而不同。 Connection組件用于和應(yīng)用服務(wù)器之間建立連接,并且返回IAppServer接口給客戶端dataset來調(diào)用provider。 這一節(jié)是我們討論DataSnap應(yīng)用中設(shè)計(jì)準(zhǔn)則的開始。對(duì)于多層應(yīng)用,我們首先要考慮用于做RPC(遠(yuǎn)程過程調(diào)用)的低層技術(shù)。RPC是業(yè)界術(shù)語,指的是從遠(yuǎn)程

25、調(diào)用過程或方法的技術(shù)。3.4 MDI窗體 在MDI應(yīng)用程序中,可以同時(shí)顯示多個(gè)文檔,每個(gè)文檔顯示在自己的窗口中。文檔窗口包含在父窗口內(nèi),父窗口為應(yīng)用程序中的所有文檔窗口提供操作空間。例如,在Word中,可以建立和顯示多個(gè)不同類型的文檔窗口,每個(gè)窗口被限制在Word父窗口的區(qū)域內(nèi)。也就是說,一個(gè)MDI應(yīng)用程序可以含有三類窗體,即普通窗體(也稱標(biāo)準(zhǔn)窗體)、MDI父窗體和MDI子窗體,通常把MDI父窗體簡(jiǎn)稱為父窗體或MDI窗體,而把MDI子窗體簡(jiǎn)稱為子窗體。 3.5 Rave介紹 Rave報(bào)表組件已經(jīng)在Delphi7中被默認(rèn)的安裝了。使用過報(bào)表組件的開發(fā)人員都知道,如果一個(gè)好的報(bào)表組件就必須具備以下

26、幾個(gè)特點(diǎn)。簡(jiǎn)單易用模塊化強(qiáng)有供開發(fā)人員和用戶使用的報(bào)表設(shè)計(jì)器可以與應(yīng)用程序高度集成具備優(yōu)秀的數(shù)據(jù)庫連接能力 而我們已經(jīng)知道的報(bào)表組件QuickReport、FastReport、ReportBuilder都具備了這樣的幾個(gè)特點(diǎn),那么Rave又是怎樣支持這樣的幾個(gè)特點(diǎn)的呢?如果想了解這些內(nèi)容,那么就必須進(jìn)行深入的使用才可以讓我們充分的體會(huì)到Rave強(qiáng)大的功能。3.6 INI文件 INI文件在系統(tǒng)配置及應(yīng)用程序參數(shù)保存與設(shè)置方面,具有很重要的作用,所以可視化的編程一族,如VB、VC、VFP、Delphi等都提供了讀寫INI文件的方法,其中Delphi中操作INI文件,最為簡(jiǎn)潔,這是因?yàn)镈elphi

27、3提供了一個(gè)TInifile類,使我們可以非常靈活的處理INI文件。 有必要了解INI文件的結(jié)構(gòu): 注釋 小節(jié)名 關(guān)鍵字=值 INI文件允許有多個(gè)小節(jié),每個(gè)小節(jié)又允許有多個(gè)關(guān)鍵字, “=”后面是該關(guān)鍵字的值。值的類型有三種:字符串、整型數(shù)值和布爾值。其中字符串存貯在INI文件中時(shí)沒有引號(hào),布爾真值用1表示,布爾假值用0表示。注釋以分號(hào)“;”開頭。3.7 本章小結(jié) 本章主要是對(duì)管理系統(tǒng)中所應(yīng)用到的關(guān)鍵技術(shù)做以介紹,其中主要用到數(shù)據(jù)庫的連接、事務(wù)管理、DataSnap技術(shù)、MDI窗體、Rave介紹、INI文件等關(guān)鍵技術(shù)。其中對(duì)于數(shù)據(jù)庫的連接是最為基礎(chǔ)的,主要用到Delphi中ADO控件連接到Acc

28、ess數(shù)據(jù)庫中。4 系統(tǒng)分析與概要設(shè)計(jì) 系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)家庭財(cái)務(wù)管理的系統(tǒng)化、規(guī)范化、和自動(dòng)化,從而達(dá)到家庭財(cái)務(wù)管理效率的目的。4.1 系統(tǒng)功能分析本系統(tǒng)中的藥品管理系統(tǒng)需要完成的功能主要有以下幾點(diǎn):藥品管理各種信息的輸入,包括收支、借貸、還款的輸入等。藥品管理各種信息的查詢、修改和維護(hù)。報(bào)表的生成。用戶管理功能。月末總結(jié)功能。借貸情況添加功能。圖3 藥品入庫ER圖圖5 藥品出庫ER圖圖7 藥房庫存ER圖4.5 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)在上面的實(shí)體以及實(shí)體之間的關(guān)系的基礎(chǔ),形成數(shù)據(jù)庫中的表格和各個(gè)表格之間的關(guān)系。表1 病例表 Case字段名稱數(shù)據(jù)類型說明Id自動(dòng)編號(hào)主關(guān)鍵字text文本字段名

29、稱數(shù)據(jù)類型說明藥品ID藥品拼碼藥品名稱規(guī)格產(chǎn)地單位適應(yīng)癥主要成份用法用量自動(dòng)編號(hào)文本文本文本文本文本文本文本文本主關(guān)鍵字表2 藥品字典表 DRUG_Base字段名稱數(shù)據(jù)類型說明藥品ID藥品拼碼藥品名稱數(shù)量單位有效期進(jìn)價(jià)數(shù)字文本文本數(shù)字文本日期/時(shí)間貨幣主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表3 藥房庫存表 DRUG_Front表4 藥庫庫存表 DRUG_STORAGE字段名稱數(shù)據(jù)類型說明藥品ID藥品拼碼藥品名稱數(shù)量入庫日期有效期進(jìn)價(jià)總價(jià)數(shù)字文本文本數(shù)字日期/時(shí)間日期/時(shí)間貨幣貨幣主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表5 入庫單表 IN_STORAGE字段名稱數(shù)據(jù)類型說明入庫單號(hào)藥品ID藥品拼碼藥品名稱入庫數(shù)量入庫日期有

30、效期進(jìn)價(jià)金額剩余數(shù)量操作員自動(dòng)編號(hào)數(shù)字文本文本數(shù)字日期/時(shí)間日期/時(shí)間貨幣貨幣數(shù)字文本主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表6 出庫單表 OUT_STORAGE字段名稱數(shù)據(jù)類型說明出庫單號(hào)藥品ID藥品拼碼藥品名稱出庫數(shù)量剩余數(shù)量有效期出庫日期進(jìn)價(jià)操作員單位自動(dòng)編號(hào)數(shù)字文本文本數(shù)字?jǐn)?shù)字日期/時(shí)間日期/時(shí)間貨幣文本文本主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表7 開藥表 SellList字段名稱數(shù)據(jù)類型說明SellDate藥品ID藥品名稱操作員數(shù)量單價(jià)日期/時(shí)間數(shù)字文本文本數(shù)字貨幣主關(guān)鍵字主關(guān)鍵字表8 藥品接收表 Send_Drug字段名稱數(shù)據(jù)類型說明藥品ID藥品拼碼藥品名稱數(shù)量有效期進(jìn)價(jià)單位數(shù)字文本文本數(shù)字

31、日期/時(shí)間貨幣文本主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表9 用戶表 USER字段名稱數(shù)據(jù)類型說明IDNAMEPWDTYPEREMARK文本文本文本文本文本主關(guān)鍵字4.6 創(chuàng)建應(yīng)用程序本系統(tǒng)有四個(gè)程序構(gòu)成。創(chuàng)建的過程是一樣的:?jiǎn)?dòng)Delphi7,依次點(diǎn)擊FileNewApplication,來創(chuàng)建出應(yīng)用程序。四個(gè)應(yīng)用程序分別為:系統(tǒng)登陸、藥房管理、藥庫管理、用戶管理。4.6.1 系統(tǒng)登陸實(shí)現(xiàn)的功能:系統(tǒng)啟動(dòng)后,根據(jù)用戶所輸入的密碼,進(jìn)入不同的界面。本系統(tǒng)有四種用戶類型,“超級(jí)管理員”、“藥房管理員”、“藥庫管理員”、“GUEST”。圖9 系統(tǒng)登陸圖10 選擇管理本程序有一個(gè)Data Module容器,其中有

32、一個(gè)ADOConnection,及兩個(gè)ADOQuery組件,用來完成初使化下拉列表及登陸驗(yàn)證。在程序開始時(shí)檢查是否帶有參數(shù)(用戶名及密碼),如果有,則直接用參數(shù)進(jìn)入程序,如果沒有,則請(qǐng)用戶輸入。本程序名為“Pro_Logon.exe”。假如系統(tǒng)中有一個(gè)類型為“超級(jí)管理員的”的用戶ID為“sa”,密碼“1234”。除了運(yùn)行程序讓用戶輸入密碼外,也可以用如下形式進(jìn)入本程的圖10畫面:Pro_Logon.exe sa 1234啟動(dòng)有參數(shù)是否進(jìn)入程序界面提示用戶名密碼出錯(cuò)密碼正確否以該用戶身份進(jìn)入程序圖11 程序啟動(dòng)過程流程圖當(dāng)進(jìn)入程序后,程序會(huì)根據(jù)用戶身分判斷應(yīng)該調(diào)用的下一個(gè)程序,其中有:藥房管理(

33、YaoFang.exe)、藥庫管理(YaoKu.exe)、用戶管理(YongHu.exe)。調(diào)用時(shí),本程序?qū)⒂脩裘砸詤?shù)方式傳給下一個(gè)程序。調(diào)用函數(shù)如下:以調(diào)用藥房為例procedure TForm_select.Btn_YaoFangClick(Sender: TObject);var s:string;begin s:=yaofang.exe +Form_Logon.ID+ +Form_Logon.Pwd; WinExec(Pchar(s),0); Application.Terminate;end;4.6.2 用戶管理本程序進(jìn)入時(shí)會(huì)先檢查用戶身分是否為超級(jí)管理員,如果不是則提醒用戶出錯(cuò)

34、。本程序可以實(shí)現(xiàn)用戶的添加、刪除及修改等。當(dāng)用戶退出時(shí),在窗體的OnClose事件中加入了下列代碼調(diào)用系統(tǒng)登陸程序(Pro_Logon.exe):procedure TForm_User.FormClose(Sender: TObject; var Action: TCloseAction);var s:string;begin s:=Pro_Logon.exe +UserID+ +UserPwd; WinExec(PChar(s),0);end;4.6.3 藥房管理本程序界面如圖所示,其中包括日常模塊、庫存模塊、病例模塊、加價(jià)率模塊。其中日常模塊包括診斷、開藥、退藥三個(gè)頁面。圖14 日常診斷

35、模塊圖15 日常開藥模塊圖16 日常退藥模塊以上三個(gè)頁面都在一個(gè)子窗體中,本程序中其它模塊也都是子窗體,是在運(yùn)行中動(dòng)態(tài)創(chuàng)建的,其中函數(shù)在附錄中給出。此處只給出調(diào)用范例:OpenChildForm(TForm_RC,Form_RC, Self);在窗體的OnClose事件中加入內(nèi)存釋放語句:Action:=caFree; 圖17 庫存管理模塊本塊可以實(shí)現(xiàn)庫存查詢,及打印。圖18 添加病例模塊本模塊可以實(shí)現(xiàn)常用病例的插入,修改及刪除??梢蕴岣卟僮鲉T的工作效率。本模塊用于設(shè)置藥品的加價(jià)率??梢允箖r(jià)格隨時(shí)變化。此外,本程序還有一個(gè)“接收藥品”功能,用來接收藥庫出庫的藥品。如果發(fā)現(xiàn)藥房庫存中有相同藥品,

36、則數(shù)量相加,否則向藥房庫存中插入該藥品。圖19 加價(jià)率模塊4.6.4 藥庫管理圖20 藥庫管理模塊本程序包括入庫管理、出庫管理、庫存管理、藥品字典等模塊。本程序啟動(dòng)時(shí)同樣用戶身份以實(shí)現(xiàn)不同功能。其中入庫管理模塊包括入庫單的錄入、入庫單的刪除及其查詢。操作員可以反復(fù)添加想要入庫的藥品、最后點(diǎn)擊保存來完成藥品的入庫。同時(shí)系統(tǒng)自動(dòng)將入庫單保存進(jìn)入庫單表,由于此處對(duì)為兩個(gè)表進(jìn)行操作,所在用到了事務(wù)。當(dāng)點(diǎn)擊保存時(shí),建立事務(wù),然后對(duì)兩個(gè)表操作,如果成功則確定,否則回滾事務(wù)。利用此功能可以保證數(shù)據(jù)的一致性。入庫管理頁面如下面三個(gè)圖片。圖21 入庫單錄入頁面圖22 入庫單修改頁面藥品入庫單查詢可以按多種方式查

37、詢,如果不輸入查詢內(nèi)容,則查詢?nèi)克幤贰?圖23 入庫單查詢頁面藥品出庫過程和入庫過程是一樣了。這里不在贅述。庫存管理模塊可以實(shí)現(xiàn)庫存查詢及庫存的初使化,界面如下:圖24 庫存查詢頁面當(dāng)以藥品名稱及數(shù)量查詢時(shí),可以按“合并同類藥品”方式查詢,此方式可以顯示藥品名相同的數(shù)量之和。下圖為庫存修改頁面,主要實(shí)現(xiàn)庫存的初使化功能。一般只在第一次使用本系統(tǒng)時(shí)才用到此頁面的功能。圖25 庫存修改頁面本程序還有一個(gè)“警報(bào)設(shè)定”功能,其頁面如下:圖26 警報(bào)設(shè)置頁面此頁面用來設(shè)定藥品的過期警報(bào)及數(shù)量警報(bào),當(dāng)啟動(dòng)時(shí)本程序會(huì)自動(dòng)提醒操作員是否有藥品過期或庫存過低。4.6.5數(shù)據(jù)備份本程序用來備份,其程序界面如下:

38、圖27 數(shù)據(jù)備份模塊左側(cè)有兩個(gè)選項(xiàng):“數(shù)據(jù)備份”和“數(shù)據(jù)恢復(fù)”,選“數(shù)據(jù)備份”后,在右邊選擇將要備份到的文件名,然后點(diǎn)擊“開始備份”?;謴?fù)方法是一樣的,這里不再贅述。本程序以讀INI文件的方式找到源數(shù)據(jù)庫的位置,然后作為源文件復(fù)制到要備份的地方。其讀寫INI文件的代碼如下:procedure Tbuckup_Form.FormShow(Sender: TObject);var L_DB:tinifile;begin L_DB:=tinifile.Create(.Mams.ini); L_ss:=L_DB.ReadString(Dbinfo,position,aaainfirmary.mdb);

39、 L_DB.Destroy; l_ss:=ExpandFileName(l_ss);end;復(fù)制文件時(shí)用到一個(gè)自編的函數(shù),在附錄中給出,本處只給出調(diào)用的方式:copyfa(l_ss,f1);其中第一個(gè)參數(shù)為源文件,第二個(gè)參數(shù)為目標(biāo)文件。報(bào)表的創(chuàng)建:在Delphi7中,報(bào)表是用一個(gè)新的工具實(shí)現(xiàn)的,他就是Rave,版本號(hào)為5.0,他有十分強(qiáng)大的功能,在此,我將演示本系統(tǒng)中的報(bào)表是如何完成的。啟動(dòng)報(bào)表設(shè)計(jì)器使用Delphi 集成開發(fā)環(huán)境下的菜單項(xiàng)選項(xiàng),如下圖所示:圖28 報(bào)表設(shè)計(jì)器菜單項(xiàng)選項(xiàng)界面如果此時(shí)你的計(jì)算機(jī)系統(tǒng)足夠快的話,不用幾秒鐘,你一定會(huì)看到Rave的報(bào)表設(shè)計(jì)器界面:進(jìn)入本頁后,先進(jìn)行打印

40、頁面的設(shè)置,然后在上面對(duì)面工具欄中點(diǎn)擊要添加的項(xiàng)目,最后界面如下圖所示:圖30 報(bào)表生成最終界面當(dāng)然,本系統(tǒng)中的所有報(bào)表都是動(dòng)態(tài)的,可以從數(shù)據(jù)集中得到應(yīng)該得到的數(shù)據(jù),并顯示出來,這必須在報(bào)表中添加一個(gè)數(shù)據(jù)集鏈接。圖31 報(bào)表中添加數(shù)據(jù)集鏈接在此處必須注意,如果后臺(tái)數(shù)據(jù)庫中的字段為中文,那么必須在Delphi7的數(shù)據(jù)集的參數(shù)設(shè)置字段中把所有字段對(duì)應(yīng)沒英文的,這樣才可以在Rave的“Direct Data View”中正確的顯示出全部字段。首先將Rave中所有的數(shù)據(jù)組件的DataView屬性的值都設(shè)置為DataView1,然后再根據(jù)要顯示的不同字段,選擇不同的DataField值。這樣一個(gè)報(bào)表就生

41、成了。不過要想調(diào)用這個(gè)報(bào)表,還需要在Delphi中加入幾個(gè)組件,它們分別是RvDataSetConnection、RvProject、RvSystem。其中RvDataSetConnection用來給我們?cè)O(shè)計(jì)的報(bào)表提供一個(gè)數(shù)據(jù)鏈接,讓報(bào)表得以顯示數(shù)據(jù),而RvSystem1是用來設(shè)定執(zhí)行打印時(shí)的一些選項(xiàng),在本系統(tǒng)中,我只用到了TitlePreview、TitleSetup及FormState,其中第一個(gè)用來設(shè)置打印預(yù)覽的標(biāo)題,第二個(gè)用來設(shè)是執(zhí)行時(shí)對(duì)話窗體的標(biāo)題,第三個(gè)是設(shè)定打印預(yù)覽的窗體為最大化。將這些都設(shè)定好后。將RvProject的Engine屬性設(shè)置為RvSystem,這樣在調(diào)用打印時(shí)就可以看到效果了。在打印按鈕的程序段中加入調(diào)用程序。 if DM.DS_KaiYao_RC.Active=true then begin rv_KaiYao_RC.SetParam(caozuoyuan,Form_Main.UserName); rv_KaiYao_RC.SetParam(sum,label_Sum_RC2.Caption); rv_KaiYao_RC.ExecuteR

溫馨提示

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

評(píng)論

0/150

提交評(píng)論