




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、學(xué)士學(xué)位畢業(yè)設(shè)計(論文)藥品管理系統(tǒng)應(yīng)用程序 學(xué)生姓名:李丙吉 指導(dǎo)教師:張方舟 所在學(xué)院:成人教育學(xué)院 專 業(yè):計算機 中國大慶 2008 年 12月摘 要隨著科技的飛速發(fā)展,技術(shù)不斷進步,電子計算機已經(jīng)逐漸進入了千家萬戶。然而現(xiàn)在家庭里對計算機的應(yīng)用卻不夠普及,很少有適合普通家庭應(yīng)用的軟件程序。本系統(tǒng)針對這一現(xiàn)象,專門為普通家庭設(shè)計出一套適合日常使用的財務(wù)管理系統(tǒng)。由于普通家庭所使用的計算機種類千差萬別,為了使系統(tǒng)能夠適應(yīng)大眾的需求,本系統(tǒng)后臺數(shù)據(jù)庫采用桌面型數(shù)據(jù)庫Microsoft Access2000,前臺程序采用Borland Delphi7開發(fā)。通過本系統(tǒng)可以實現(xiàn)家庭收支的統(tǒng)計,月
2、末的財務(wù)結(jié)算以及借貸情況的監(jiān)測。本程序設(shè)計力求節(jié)減,貼近日常生活的使用,令家庭帳目清晰易見,讓人一目了然。關(guān)鍵詞: 家庭;財務(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 所用工具簡介.22.1 Microsoft Access2000簡介.22.2 Borland Delphi7簡介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è)計.94.1 系統(tǒng)功能分析94.2 系統(tǒng)功能模塊設(shè)計94.3 數(shù)據(jù)庫需求分析104.4 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計104.5 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計124.6 創(chuàng)建應(yīng)用程序154.7 本章小結(jié)28參考文獻.29致謝.301 導(dǎo)言1.1 家庭財務(wù)管理系統(tǒng)的作用及發(fā)展現(xiàn)狀 藥品管理系統(tǒng)是 在傳統(tǒng)的校醫(yī)院管理系統(tǒng)中,庫存管理的內(nèi)容就是貨物入庫、出庫和庫存管理,它是貨物管理的中間環(huán)節(jié)。用數(shù)據(jù)描述貨物的收入、發(fā)出和儲存狀態(tài),實際反映了貨物在企業(yè)內(nèi)流動的客觀過程,倉庫管理與貨物管理的其他環(huán)節(jié),一方面,倉庫管理受計劃管理和財務(wù)管
8、理的控制和監(jiān)督。入庫的品種規(guī)格數(shù)量和出庫的品種規(guī)格數(shù)量由貨物配送計劃所規(guī)定;實際發(fā)出的入庫、出庫需接受財務(wù)監(jiān)督,所有的原始單據(jù)和臺賬都必須經(jīng)過財務(wù)人員的稽核;庫存的品種規(guī)格數(shù)量受備貨定額、周轉(zhuǎn)儲備定額以及儲備資金定額的限制。另一方面,它又反作用于計劃管理和財務(wù)管理。它實際反映了貨物計劃的完成情況和儲備資金的執(zhí)行情況;向計劃管理提供當(dāng)前庫存數(shù)據(jù),作為編制配送申請計劃和采購計劃時核算缺口或超儲的原始數(shù)據(jù)項之一;向財務(wù)管理提供編制記賬憑證的入庫、出庫原始數(shù)據(jù),以進行材料核算。向統(tǒng)計分析提供進、銷、存數(shù)據(jù),所得出的貨物流轉(zhuǎn)統(tǒng)計數(shù)據(jù),反過來又影響發(fā)貨定額、備貨定額、儲備資金的制定。 經(jīng)過對校醫(yī)院的實際工
9、作情況的調(diào)查,本系統(tǒng)應(yīng)該實現(xiàn)藥品的入庫、出庫和庫存管理,原始單據(jù)(入庫單和出庫單)管理,藥房藥品接收、開藥等管理功能,還有打印,數(shù)據(jù)庫備份等其它功能。 通過使用本系統(tǒng),可以取代以前的手寫記錄,人工查庫,實現(xiàn)了處方單的自動打印功能,從而有效的提高了校醫(yī)院的工作效率。1.2 應(yīng)用背景 經(jīng)過對校醫(yī)室的實際工作情況的調(diào)查,本系統(tǒng)應(yīng)該實現(xiàn)藥品的入庫、出庫和庫存管理,原始單據(jù)(入庫單和出庫單)管理,藥房藥品接收、開藥等管理功能,還有打印,數(shù)據(jù)庫備份等其它功能。 通過使用本系統(tǒng),可以取代以前的手寫記錄,人工查庫,實現(xiàn)了處方單的自動打印功能,從而有效的提高了校醫(yī)室的工作效率1.3 本章小結(jié) 本章主要是對現(xiàn)階段
10、的校醫(yī)院各管理職能做個大概的描述,說明現(xiàn)在比較需要一個管理功能更多、操作更簡便的管理系統(tǒng)來為我們服務(wù),讓人們享受更好的服務(wù) 。 2 所用工具簡介2.1 Microsoft Access2000簡介 Access是Office辦公套件中一個極為重要的組成部分。剛開始時微軟公司是將Access單獨作為一個產(chǎn)品進行銷售的,后來微軟發(fā)現(xiàn)如果將Access捆綁在Office中一起發(fā)售,將帶來更加可觀的利潤,于是第一次將Access捆綁到OFFICE97中,成為OFFICE套件中的一個重要成員。現(xiàn)在它已經(jīng)成為Office辦公套件中不可缺少的部件了。自從1992年開始銷售以來,Access 已經(jīng)賣出了超過6
11、000萬份,現(xiàn)在它已經(jīng)成為世界上最流行的桌面數(shù)據(jù)庫管理系統(tǒng)。 后來微軟公司通過大量地改進,將Access的新版本功能變得更加強大。不管是處理公司的客戶訂單數(shù)據(jù);管理自己的個人通訊錄;還是大量科研數(shù)據(jù)的記錄和處理,人們都可以利用它來解決大量數(shù)據(jù)的管理工作。 你也許要問,Access的功能這么強,那使用起來會不會很麻煩呢?這一點你可以放心,隨著版本的升級,Access的使用也變得越來越容易。過去很繁瑣的工作現(xiàn)在只需幾個很簡單的步驟就可以高質(zhì)量地完成了。2.2 Borland Delphi7簡介 Delphi是著名的Borland(現(xiàn)在已和Inprise合并)公司開發(fā)的可視化軟件開發(fā)工具。“真正的程
12、序員用C,聰明的程序員用Delphi”,這句話是對Delphi最經(jīng)典、最實在的描述。Delphi被稱為第四代編程語言,它具有簡單、高效、功能強大的特點。和VC相比,Delphi更簡單、更易于掌握,而在功能上卻絲毫不遜色;和VB相比,Delphi則功能更強大、更實用。可以說Delphi同時兼?zhèn)淞薞C功能強大和VB簡單易學(xué)的特點。它一直是程序員至愛的編程工具。 2.3 本章小結(jié) 本章主要針對此次管理系統(tǒng)設(shè)計所應(yīng)用到的主要工具Microsoft Access2000和Borland Delphi7做以簡單介紹,可以使沒有接觸過的讀者也可以對過這兩個工具有個大概的了解,方便以后對此系統(tǒng)深層次的了解和使
13、用。 3 關(guān)鍵技術(shù)介紹 在系統(tǒng)開發(fā)中主要是應(yīng)用到數(shù)據(jù)庫的連接、事務(wù)管理、DataSnap技術(shù)、MDI窗體、Rave報表組件、INI文件等關(guān)鍵技術(shù)。3.1 用Delphi創(chuàng)建數(shù)據(jù)庫應(yīng)用程序 指導(dǎo)你通過一個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ù)合組件簡化了實際數(shù)據(jù)庫應(yīng)用程序的發(fā)展和維持。數(shù)據(jù)庫應(yīng)用程序包括3部分:用戶界面,一組數(shù)據(jù)庫訪問組件,和數(shù)據(jù)庫。在這篇文章中,你創(chuàng)建一個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ù)提供者,一個單向數(shù)據(jù)集,和一個連接數(shù)據(jù)集。數(shù)據(jù)源扮演一個用戶界面到客戶端的連接者。客戶端數(shù)據(jù)集應(yīng)用程序的核心,因為它包含一組從底層數(shù)庫來的記錄集。提供者在客戶端數(shù)據(jù)集和單向數(shù)據(jù)集之間轉(zhuǎn)化數(shù)據(jù),其中這些數(shù)據(jù)直接取自數(shù)據(jù)庫。最后,連接組件創(chuàng)建一個連接到數(shù)據(jù)庫。每一個單向數(shù)據(jù)集使用一個不同類型的連接組件。3.1.2 設(shè)置數(shù)據(jù)庫訪問組件 數(shù)據(jù)訪問組件是連接數(shù)據(jù)集到你應(yīng)用程序的其他部分的組件。每一個數(shù)據(jù)訪問組件指向下一個低層的組件。例如,數(shù)據(jù)源指向客戶端數(shù)據(jù)集,客戶端數(shù)據(jù)集指向提供者如此等等。當(dāng)你建立一個數(shù)據(jù)
15、訪問組件時,你首先要添加最底層的組件。接下來,添加組件來創(chuàng)建數(shù)據(jù)庫連接,單向數(shù)據(jù)集,提供者,客戶端數(shù)據(jù)集,和數(shù)據(jù)源。然后,你將為應(yīng)用程序創(chuàng)建用戶界面。這些組件是放在組件板中的DBEXPRES頁,數(shù)據(jù)訪問頁,數(shù)據(jù)控制頁里。 將你的用戶界面和數(shù)據(jù)源組件隔離在不同的窗體上是一個好主意。但是,為了簡單化,你可以將用戶界面和所有的組件放在同一個窗體中。3.1.3 ADO技術(shù)簡介 ActiveX Data Objects (ADO) 是微軟最新的數(shù)據(jù)訪問技術(shù),是Microsoft發(fā)展的基于 COM的數(shù)據(jù)訪問規(guī)則API訪問的OLE DB技術(shù)。它被設(shè)計用來同新的數(shù)據(jù)訪問層OLE DB Provider一起協(xié)同
16、工作,以提供通用數(shù)據(jù)訪問(Universal Data Access)。OLE DB是一個低層的數(shù)據(jù)訪問接口,用它可以訪問各種數(shù)據(jù)源,包括傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,以及電子郵件系統(tǒng)及自定義的商業(yè)對象。如果多個ADO組件需要共享一個連接,則要用TADOConnection組件來連接數(shù)據(jù)庫,然后,這些ADO組件通過他們的Connection屬性來指定這個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向我們提供了一個熟悉的,高層的對OLE DB的Automation封裝接口。對那些熟悉RDO的程序員來說,你可以把OLE DB比作是ODBC驅(qū)動程序。如同RDO對象是ODBC驅(qū)動程序接口一樣,ADO對象是OLE DB的接口;如同不同的數(shù)據(jù)庫系統(tǒng)需要它們自己的ODBC驅(qū)動程序一樣,不同的數(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ù)庫,你需要增加一個連接組件。使用的連接組件的類型依賴于所使用的數(shù)據(jù)集組件。在這節(jié)課上,你將使用TSQLCONNECTION和TSQLDATASET組件。添加一個DBEXPRESS連接組件:確定INTERBASE服務(wù)器已經(jīng)啟動以便你可以連接到這節(jié)課所使用的雇員數(shù)據(jù)庫中。更多的關(guān)于啟動服務(wù)器,可以查看INTERBASE操作向?qū)А?在組件板上點擊DBEXPRESS頁,并雙擊TSQLCONNECTION組件來將它定位到窗體中。為了找到TSQLCONNECTION組件,將光標(biāo)指向模板一會兒,幫助提示就會顯示組件的名字。組件的默認名字為
19、TSQLCONNCERION1。這個組件是不可見的,所以不管你將它放在窗體的什么位置都是沒有關(guān)系的。但在這里,我們一致將全部的不可見組件放在窗體的頂部。為了顯示組件的標(biāo)題,你把焦點定位在一個窗體上,選擇 工具|環(huán)境選項|設(shè)計,并點擊顯示組件標(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ù)管理必須提供四個最基本的功能,那就是:Atomic(原子性):事務(wù)管理必須完全執(zhí)行,或是完全不被執(zhí)行。Consisten
20、t(一致性):事務(wù)管理會維護數(shù)據(jù)庫的內(nèi)部一致性。Isolated(隔離性):事務(wù)管理可保證數(shù)據(jù)庫中似乎只有目前的事務(wù)在執(zhí)行,而沒有其他事務(wù)。Durable(持久性):事務(wù)管理的執(zhí)行結(jié)果即使是在數(shù)據(jù)庫發(fā)生錯誤時也不會遺失。 3.3 DataSnap技術(shù) DataSnap以前的名字是MIDAS,DataSnap不但強化了MIDAS原有的功能,更加入了許多新的組件,讓程序員可以使用它開發(fā)出功能更為強大的應(yīng)用系統(tǒng)。此外,DataSnap也改善了MIDAS的執(zhí)行效率,讓使用它的應(yīng)用程序能夠執(zhí)行得更快速。DataSnap的核心技術(shù)在兩個組件中,TDatasetProducer和TClientDataSet
21、。Connection組件這些組件所對應(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ī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對多層應(yīng)用開發(fā)的支持是通過擴展客戶端dataset和服務(wù)器端provider組件的數(shù)據(jù)包通訊技術(shù)而來的,當(dāng)你懂了如何創(chuàng)建和管理一個三層應(yīng)用,就可以根據(jù)需要創(chuàng)建、附加額外的服務(wù)了)理解基于Provider的多層應(yīng)用在Delphi組件面板的DataSnap頁和DataAccess頁里的組件都是支持多層應(yīng)用的,還有一個向?qū)Вㄔ贜ew Items對話框Multitier頁上)用于創(chuàng)建遠程數(shù)據(jù)模塊。多層應(yīng)用是在provider組件打包數(shù)據(jù)為可傳輸數(shù)據(jù)包和根據(jù)從客戶端返回的delt
24、a包中攜帶的數(shù)據(jù)更新請求來刷新數(shù)據(jù)這兩個功能的基礎(chǔ)上形成的。 DataSnap協(xié)議有多種connection組件可以連接一個客戶端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è)計準(zhǔn)則的開始。對于多層應(yīng)用,我們首先要考慮用于做RPC(遠程過程調(diào)用)的低層技術(shù)。RPC是業(yè)界術(shù)語,指的是從遠程
25、調(diào)用過程或方法的技術(shù)。3.4 MDI窗體 在MDI應(yīng)用程序中,可以同時顯示多個文檔,每個文檔顯示在自己的窗口中。文檔窗口包含在父窗口內(nèi),父窗口為應(yīng)用程序中的所有文檔窗口提供操作空間。例如,在Word中,可以建立和顯示多個不同類型的文檔窗口,每個窗口被限制在Word父窗口的區(qū)域內(nèi)。也就是說,一個MDI應(yīng)用程序可以含有三類窗體,即普通窗體(也稱標(biāo)準(zhǔn)窗體)、MDI父窗體和MDI子窗體,通常把MDI父窗體簡稱為父窗體或MDI窗體,而把MDI子窗體簡稱為子窗體。 3.5 Rave介紹 Rave報表組件已經(jīng)在Delphi7中被默認的安裝了。使用過報表組件的開發(fā)人員都知道,如果一個好的報表組件就必須具備以下
26、幾個特點。簡單易用模塊化強有供開發(fā)人員和用戶使用的報表設(shè)計器可以與應(yīng)用程序高度集成具備優(yōu)秀的數(shù)據(jù)庫連接能力 而我們已經(jīng)知道的報表組件QuickReport、FastReport、ReportBuilder都具備了這樣的幾個特點,那么Rave又是怎樣支持這樣的幾個特點的呢?如果想了解這些內(nèi)容,那么就必須進行深入的使用才可以讓我們充分的體會到Rave強大的功能。3.6 INI文件 INI文件在系統(tǒng)配置及應(yīng)用程序參數(shù)保存與設(shè)置方面,具有很重要的作用,所以可視化的編程一族,如VB、VC、VFP、Delphi等都提供了讀寫INI文件的方法,其中Delphi中操作INI文件,最為簡潔,這是因為Delphi
27、3提供了一個TInifile類,使我們可以非常靈活的處理INI文件。 有必要了解INI文件的結(jié)構(gòu): 注釋 小節(jié)名 關(guān)鍵字=值 INI文件允許有多個小節(jié),每個小節(jié)又允許有多個關(guān)鍵字, “=”后面是該關(guān)鍵字的值。值的類型有三種:字符串、整型數(shù)值和布爾值。其中字符串存貯在INI文件中時沒有引號,布爾真值用1表示,布爾假值用0表示。注釋以分號“;”開頭。3.7 本章小結(jié) 本章主要是對管理系統(tǒng)中所應(yīng)用到的關(guān)鍵技術(shù)做以介紹,其中主要用到數(shù)據(jù)庫的連接、事務(wù)管理、DataSnap技術(shù)、MDI窗體、Rave介紹、INI文件等關(guān)鍵技術(shù)。其中對于數(shù)據(jù)庫的連接是最為基礎(chǔ)的,主要用到Delphi中ADO控件連接到Acc
28、ess數(shù)據(jù)庫中。4 系統(tǒng)分析與概要設(shè)計 系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)家庭財務(wù)管理的系統(tǒng)化、規(guī)范化、和自動化,從而達到家庭財務(wù)管理效率的目的。4.1 系統(tǒng)功能分析本系統(tǒng)中的藥品管理系統(tǒng)需要完成的功能主要有以下幾點:藥品管理各種信息的輸入,包括收支、借貸、還款的輸入等。藥品管理各種信息的查詢、修改和維護。報表的生成。用戶管理功能。月末總結(jié)功能。借貸情況添加功能。圖3 藥品入庫ER圖圖5 藥品出庫ER圖圖7 藥房庫存ER圖4.5 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計在上面的實體以及實體之間的關(guān)系的基礎(chǔ),形成數(shù)據(jù)庫中的表格和各個表格之間的關(guān)系。表1 病例表 Case字段名稱數(shù)據(jù)類型說明Id自動編號主關(guān)鍵字text文本字段名
29、稱數(shù)據(jù)類型說明藥品ID藥品拼碼藥品名稱規(guī)格產(chǎn)地單位適應(yīng)癥主要成份用法用量自動編號文本文本文本文本文本文本文本文本主關(guān)鍵字表2 藥品字典表 DRUG_Base字段名稱數(shù)據(jù)類型說明藥品ID藥品拼碼藥品名稱數(shù)量單位有效期進價數(shù)字文本文本數(shù)字文本日期/時間貨幣主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表3 藥房庫存表 DRUG_Front表4 藥庫庫存表 DRUG_STORAGE字段名稱數(shù)據(jù)類型說明藥品ID藥品拼碼藥品名稱數(shù)量入庫日期有效期進價總價數(shù)字文本文本數(shù)字日期/時間日期/時間貨幣貨幣主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表5 入庫單表 IN_STORAGE字段名稱數(shù)據(jù)類型說明入庫單號藥品ID藥品拼碼藥品名稱入庫數(shù)量入庫日期有
30、效期進價金額剩余數(shù)量操作員自動編號數(shù)字文本文本數(shù)字日期/時間日期/時間貨幣貨幣數(shù)字文本主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表6 出庫單表 OUT_STORAGE字段名稱數(shù)據(jù)類型說明出庫單號藥品ID藥品拼碼藥品名稱出庫數(shù)量剩余數(shù)量有效期出庫日期進價操作員單位自動編號數(shù)字文本文本數(shù)字數(shù)字日期/時間日期/時間貨幣文本文本主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表7 開藥表 SellList字段名稱數(shù)據(jù)類型說明SellDate藥品ID藥品名稱操作員數(shù)量單價日期/時間數(shù)字文本文本數(shù)字貨幣主關(guān)鍵字主關(guān)鍵字表8 藥品接收表 Send_Drug字段名稱數(shù)據(jù)類型說明藥品ID藥品拼碼藥品名稱數(shù)量有效期進價單位數(shù)字文本文本數(shù)字
31、日期/時間貨幣文本主關(guān)鍵字主關(guān)鍵字主關(guān)鍵字表9 用戶表 USER字段名稱數(shù)據(jù)類型說明IDNAMEPWDTYPEREMARK文本文本文本文本文本主關(guān)鍵字4.6 創(chuàng)建應(yīng)用程序本系統(tǒng)有四個程序構(gòu)成。創(chuàng)建的過程是一樣的:啟動Delphi7,依次點擊FileNewApplication,來創(chuàng)建出應(yīng)用程序。四個應(yīng)用程序分別為:系統(tǒng)登陸、藥房管理、藥庫管理、用戶管理。4.6.1 系統(tǒng)登陸實現(xiàn)的功能:系統(tǒng)啟動后,根據(jù)用戶所輸入的密碼,進入不同的界面。本系統(tǒng)有四種用戶類型,“超級管理員”、“藥房管理員”、“藥庫管理員”、“GUEST”。圖9 系統(tǒng)登陸圖10 選擇管理本程序有一個Data Module容器,其中有
32、一個ADOConnection,及兩個ADOQuery組件,用來完成初使化下拉列表及登陸驗證。在程序開始時檢查是否帶有參數(shù)(用戶名及密碼),如果有,則直接用參數(shù)進入程序,如果沒有,則請用戶輸入。本程序名為“Pro_Logon.exe”。假如系統(tǒng)中有一個類型為“超級管理員的”的用戶ID為“sa”,密碼“1234”。除了運行程序讓用戶輸入密碼外,也可以用如下形式進入本程的圖10畫面:Pro_Logon.exe sa 1234啟動有參數(shù)是否進入程序界面提示用戶名密碼出錯密碼正確否以該用戶身份進入程序圖11 程序啟動過程流程圖當(dāng)進入程序后,程序會根據(jù)用戶身分判斷應(yīng)該調(diào)用的下一個程序,其中有:藥房管理(
33、YaoFang.exe)、藥庫管理(YaoKu.exe)、用戶管理(YongHu.exe)。調(diào)用時,本程序?qū)⒂脩裘砸詤?shù)方式傳給下一個程序。調(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 用戶管理本程序進入時會先檢查用戶身分是否為超級管理員,如果不是則提醒用戶出錯
34、。本程序可以實現(xiàn)用戶的添加、刪除及修改等。當(dāng)用戶退出時,在窗體的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 藥房管理本程序界面如圖所示,其中包括日常模塊、庫存模塊、病例模塊、加價率模塊。其中日常模塊包括診斷、開藥、退藥三個頁面。圖14 日常診斷
35、模塊圖15 日常開藥模塊圖16 日常退藥模塊以上三個頁面都在一個子窗體中,本程序中其它模塊也都是子窗體,是在運行中動態(tài)創(chuàng)建的,其中函數(shù)在附錄中給出。此處只給出調(diào)用范例:OpenChildForm(TForm_RC,Form_RC, Self);在窗體的OnClose事件中加入內(nèi)存釋放語句:Action:=caFree; 圖17 庫存管理模塊本塊可以實現(xiàn)庫存查詢,及打印。圖18 添加病例模塊本模塊可以實現(xiàn)常用病例的插入,修改及刪除。可以提高操作員的工作效率。本模塊用于設(shè)置藥品的加價率。可以使價格隨時變化。此外,本程序還有一個“接收藥品”功能,用來接收藥庫出庫的藥品。如果發(fā)現(xiàn)藥房庫存中有相同藥品,
36、則數(shù)量相加,否則向藥房庫存中插入該藥品。圖19 加價率模塊4.6.4 藥庫管理圖20 藥庫管理模塊本程序包括入庫管理、出庫管理、庫存管理、藥品字典等模塊。本程序啟動時同樣用戶身份以實現(xiàn)不同功能。其中入庫管理模塊包括入庫單的錄入、入庫單的刪除及其查詢。操作員可以反復(fù)添加想要入庫的藥品、最后點擊保存來完成藥品的入庫。同時系統(tǒng)自動將入庫單保存進入庫單表,由于此處對為兩個表進行操作,所在用到了事務(wù)。當(dāng)點擊保存時,建立事務(wù),然后對兩個表操作,如果成功則確定,否則回滾事務(wù)。利用此功能可以保證數(shù)據(jù)的一致性。入庫管理頁面如下面三個圖片。圖21 入庫單錄入頁面圖22 入庫單修改頁面藥品入庫單查詢可以按多種方式查
37、詢,如果不輸入查詢內(nèi)容,則查詢?nèi)克幤贰?圖23 入庫單查詢頁面藥品出庫過程和入庫過程是一樣了。這里不在贅述。庫存管理模塊可以實現(xiàn)庫存查詢及庫存的初使化,界面如下:圖24 庫存查詢頁面當(dāng)以藥品名稱及數(shù)量查詢時,可以按“合并同類藥品”方式查詢,此方式可以顯示藥品名相同的數(shù)量之和。下圖為庫存修改頁面,主要實現(xiàn)庫存的初使化功能。一般只在第一次使用本系統(tǒng)時才用到此頁面的功能。圖25 庫存修改頁面本程序還有一個“警報設(shè)定”功能,其頁面如下:圖26 警報設(shè)置頁面此頁面用來設(shè)定藥品的過期警報及數(shù)量警報,當(dāng)啟動時本程序會自動提醒操作員是否有藥品過期或庫存過低。4.6.5數(shù)據(jù)備份本程序用來備份,其程序界面如下:
38、圖27 數(shù)據(jù)備份模塊左側(cè)有兩個選項:“數(shù)據(jù)備份”和“數(shù)據(jù)恢復(fù)”,選“數(shù)據(jù)備份”后,在右邊選擇將要備份到的文件名,然后點擊“開始備份”。恢復(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ù),在附錄中給出,本處只給出調(diào)用的方式:copyfa(l_ss,f1);其中第一個參數(shù)為源文件,第二個參數(shù)為目標(biāo)文件。報表的創(chuàng)建:在Delphi7中,報表是用一個新的工具實現(xiàn)的,他就是Rave,版本號為5.0,他有十分強大的功能,在此,我將演示本系統(tǒng)中的報表是如何完成的。啟動報表設(shè)計器使用Delphi 集成開發(fā)環(huán)境下的菜單項選項,如下圖所示:圖28 報表設(shè)計器菜單項選項界面如果此時你的計算機系統(tǒng)足夠快的話,不用幾秒鐘,你一定會看到Rave的報表設(shè)計器界面:進入本頁后,先進行打印
40、頁面的設(shè)置,然后在上面對面工具欄中點擊要添加的項目,最后界面如下圖所示:圖30 報表生成最終界面當(dāng)然,本系統(tǒng)中的所有報表都是動態(tài)的,可以從數(shù)據(jù)集中得到應(yīng)該得到的數(shù)據(jù),并顯示出來,這必須在報表中添加一個數(shù)據(jù)集鏈接。圖31 報表中添加數(shù)據(jù)集鏈接在此處必須注意,如果后臺數(shù)據(jù)庫中的字段為中文,那么必須在Delphi7的數(shù)據(jù)集的參數(shù)設(shè)置字段中把所有字段對應(yīng)沒英文的,這樣才可以在Rave的“Direct Data View”中正確的顯示出全部字段。首先將Rave中所有的數(shù)據(jù)組件的DataView屬性的值都設(shè)置為DataView1,然后再根據(jù)要顯示的不同字段,選擇不同的DataField值。這樣一個報表就生
41、成了。不過要想調(diào)用這個報表,還需要在Delphi中加入幾個組件,它們分別是RvDataSetConnection、RvProject、RvSystem。其中RvDataSetConnection用來給我們設(shè)計的報表提供一個數(shù)據(jù)鏈接,讓報表得以顯示數(shù)據(jù),而RvSystem1是用來設(shè)定執(zhí)行打印時的一些選項,在本系統(tǒng)中,我只用到了TitlePreview、TitleSetup及FormState,其中第一個用來設(shè)置打印預(yù)覽的標(biāo)題,第二個用來設(shè)是執(zhí)行時對話窗體的標(biāo)題,第三個是設(shè)定打印預(yù)覽的窗體為最大化。將這些都設(shè)定好后。將RvProject的Engine屬性設(shè)置為RvSystem,這樣在調(diào)用打印時就可以看到效果了。在打印按鈕的程序段中加入調(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等.壓縮文件請下載最新的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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級數(shù)學(xué)上冊 二 快樂大課間-兩位數(shù)乘一位數(shù) 信息窗3 呼啦圈表演 求比一個數(shù)的幾倍多(或少)幾的數(shù)是多少教學(xué)設(shè)計 青島版六三制
- Unit7 Natural World(教學(xué)設(shè)計)-2023-2024學(xué)年劍橋國際少兒英語Kid's Box5五年級下冊
- 七年級地理上冊 第三章 天氣和氣候 第3節(jié) 降水的變化與分布 第2課時 降水的分布教學(xué)設(shè)計 (新版)新人教版
- 老年病人圍手術(shù)期護理
- 海底世界小學(xué)語文
- 1 場景歌教學(xué)設(shè)計-2024-2025學(xué)年二年級上冊語文統(tǒng)編版
- 7《不甘屈辱 奮勇抗?fàn)帯返诙n時 教學(xué)設(shè)計-2023-2024學(xué)年道德與法治五年級下冊統(tǒng)編版
- 七年級生物下冊 4.11.2尿的形成和排出教學(xué)設(shè)計(新版)北師大版
- 初中教學(xué)工作計劃(10篇)
- 2024秋五年級英語上冊 Unit 5 There is a big bed課時6 Read and write-Let's wrap it up教學(xué)設(shè)計 人教PEP
- 畢業(yè)論文-基于單片機的智能澆花系統(tǒng)的設(shè)計與實現(xiàn)
- 鋼筋混凝土水池施工方案(完整版)
- XK3168電子稱重儀表技術(shù)手冊
- 電梯系統(tǒng)質(zhì)量檢查記錄表
- 最新山東地圖含市縣地圖矢量分層可編輯地圖PPT模板
- 電子教案與課件:精細化工工藝學(xué)(第四版)-第5章-食品添加劑
- 機械設(shè)計齒輪機構(gòu)基礎(chǔ)
- 統(tǒng)編版高一語文現(xiàn)代文閱讀理解專題練習(xí)【含答案】
- T∕CGMA 033001-2018 壓縮空氣站能效分級指南
- 世聯(lián)年重慶樵坪山項目發(fā)展戰(zhàn)略與整體規(guī)劃
- 人教版七年級數(shù)學(xué)下冊期中知識點整理復(fù)習(xí)ppt課件
評論
0/150
提交評論