藥品管理信息系統(tǒng)_第1頁
藥品管理信息系統(tǒng)_第2頁
藥品管理信息系統(tǒng)_第3頁
藥品管理信息系統(tǒng)_第4頁
藥品管理信息系統(tǒng)_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章系統(tǒng)概述1.1系統(tǒng)開發(fā)背景隨著科技的不斷進步,企業(yè)都在不斷的注重管理的信息化以完善企業(yè)管理,增強企業(yè)自身的競爭力。 醫(yī)藥業(yè)也不例外,通過較完善的信息系統(tǒng)實現(xiàn)自身企業(yè)對內(nèi)部管理的方便性、合理性、快捷性、高效性等 要求。以前的手工管理效率低使最明顯的缺陷,另外,數(shù)據(jù)的一致性不好維護,如某個藥品信息的記錄有所改動(如更改編號),那么該要品的其他記錄就與此不一致,造成查詢的費時費力。要把全部數(shù)據(jù)都更改又相 當不方便。對藥品庫存的盤點也很不方便,而且需要較多的人來進行管理操作,而且容易岀錯,造成數(shù)據(jù) 的不一致。而藥品業(yè)是關(guān)民生的行業(yè),錯誤信息可能會造成不可收拾的嚴重后果。因此,運用高效、準確 的信

2、息管理系統(tǒng)來替代手工管理是完善醫(yī)藥業(yè)管理的有效手段。1.2.系統(tǒng)開發(fā)意義利用數(shù)據(jù)庫系統(tǒng)可以很好的對數(shù)據(jù)進行維護,減少由于數(shù)據(jù)不一致等錯誤帶來的麻煩。方便數(shù)據(jù)的更新和 查詢,降低錯誤率,方便藥品信息的維護及庫存的盤點。還可以運用較少的人員,高效的完成對醫(yī)藥的管 理。由于社會的發(fā)展不斷趨于信息化,各個行業(yè)都要加強自身的信息化程度以適應社會的發(fā)展。而管理信息化 正迎合了這個趨勢,數(shù)據(jù)庫系統(tǒng)在醫(yī)藥業(yè)的應用業(yè)實現(xiàn)了醫(yī)藥業(yè)執(zhí)行工具、業(yè)務管理等的信息化,在這個 信息化社會為醫(yī)藥業(yè)的發(fā)展增加了新的動力。相信隨著社會的不斷發(fā)展對該類系統(tǒng)的需求會越來越高。醫(yī)藥管理信息系統(tǒng),即服務于個人,又服務于企業(yè),并最終服務于

3、社會,這是讓科技為人類服務的最好例 證,其開發(fā)意義顯而易見。第二章需求分析2.1信息需求(基本信息)藥品信息:藥品編號,藥品名稱,藥品類別代碼,售價,廠價,單位,庫存量,有效期至,批準文號等 藥品分類索引信息:藥品類別代碼,類別說明等供應商信息:供應商號,供應商名,聯(lián)系人,聯(lián)系電話,所在城市等藥品銷售信息:銷售編碼,藥品編碼,藥品名稱,售價,單位,數(shù)量,總額,銷售日期等用戶信息:職工號,姓名,用戶登錄名,用戶口令,用戶身份,用戶權(quán)限等2.2功能需求系統(tǒng)要實現(xiàn)的主要功能有:(1) 對藥品信息的維護和管理, 能夠萬冊很能夠藥品信息的添加、修改和刪除,并按一定條件查詢藥品信 息。(2)對供應商信息的

4、管理,能夠完成信息的添加、修改和刪除,并按一定條件查詢信息。(3)對用戶信息的管理,能夠完成信息的添加、修改和刪除,并按一定條件查詢信息。(4 )倉庫管理,能夠查詢庫存藥品信息,并對庫存進行更新、盤點(5)查詢功能,要求可以按日期查詢,也可按用戶選擇字段和輸入內(nèi)容查詢。2.4數(shù)據(jù)字典數(shù)據(jù)存儲及數(shù)據(jù)流名字:銷售信息別名:銷售單 描述:一次銷售結(jié)束后所存儲的信息并生成單據(jù)定義:銷售信息=銷售編碼+藥品編碼+藥品名稱+單價+數(shù)量+單位+銷售日期+總額+銷售員編號 位置:存儲 輸出給顧客名字:藥品信息別名:描述:倉庫內(nèi)存儲的所有藥品信息(包括所有藥品查詢的所需信息)定義:藥品信息=藥品編碼+藥品名稱+

5、藥品類別+售價+廠價+單位+庫存量+有效期至位置:存儲輸出供查詢名字:用戶信息別名:描述:系統(tǒng)用戶的信息定義:用戶信息=職工號+姓名+用戶名+用戶口令+職位+權(quán)限位置:存儲輸出供查詢及維護名字:供應商信息別名:描述:藥品供應商的信息定義:供應商信息=供應商號+供應商名稱+聯(lián)系人+聯(lián)系電話+所在城市位置:存儲輸出供查詢及維護名字:查詢信息描述:用戶所提出的查詢請求定義:查詢信息=銷售管理查詢信息I倉庫管理查詢信息I日常管理查詢信息銷售管理查詢信息=藥品名稱I藥品類別倉庫管理查詢信息=藥品編碼I藥品名稱I藥品類別I過期藥品日常管理查詢信息=藥品編碼I藥品名稱I藥品類別I過期藥品 位置:銷售管理系統(tǒng)

6、倉庫管理系統(tǒng)日常管理系統(tǒng)名字:更新信息描述:用戶操作對庫存信息的添加、刪除、修改定義:更新信息=銷售管理更新信息I倉庫管理更新信息I日常管理更新信息 銷售管理更新信息=藥品編碼+新庫存量倉庫管理更新信息=藥品編碼+藥品名稱+藥品類別+售價+廠價+單位+庫存量+有效期至 日常管理更新信息=用戶更新信息I供應商更新信息用戶更新信息=職工號+姓名+用戶名+用戶口令+職位+權(quán)限供應商更新信息=供應商號+供應商名稱+聯(lián)系人+聯(lián)系電話+所在城市 位置:銷售管理系統(tǒng)倉庫管理系統(tǒng)日常管理系統(tǒng)名字:查詢結(jié)果描述:系統(tǒng)完成用戶查詢請求后所得結(jié)果定義:查詢結(jié)果=銷售管理查詢結(jié)果I倉庫管理查詢結(jié)果I日常管理查詢結(jié)果銷

7、售管理查詢結(jié)果=藥品編碼+藥品名稱+藥品類別+售價+單位+庫存量+有效期至倉庫管理查詢結(jié)果=藥品編碼+藥品名稱+藥品類別+售價+廠價+單位+庫存量+有效期至日常管理查詢結(jié)果=藥品信息查詢結(jié)果I銷售記錄查詢結(jié)果I用戶查詢結(jié)果I供應商查詢結(jié)果藥品信息查詢結(jié)果=藥品編碼+藥品名稱+藥品類別+售價+廠價+單位+庫存量+有效期至銷售記錄查詢結(jié)果=銷售信息=銷售編碼+藥品編碼+藥品名稱+單價+數(shù)量+單位+銷售日期+總額+銷售員編號 用戶信息查詢結(jié)果=職工號+姓名+用戶名+用戶口令+職位+權(quán)限供應商信息查詢結(jié)果=供應商號+供應商名稱+聯(lián)系人+聯(lián)系電話+所在城市 位置:銷售管理系統(tǒng)倉庫管理系統(tǒng)輸入:銷售信息輸

8、出:更新信息數(shù)據(jù)項名字:藥品編碼別名:描述:唯一地標識庫存清單中一種特定藥品的關(guān)鍵域定義:藥品編碼=6字符6位置:藥品信息銷售管理查詢信息及結(jié)果倉庫管理查詢信息及結(jié)果日常管理查詢信息及結(jié)果名字:庫存量別名:描述:倉庫內(nèi)藥品的實際數(shù)量定義:庫存量=1數(shù)字4位置:藥品信息銷售管理更新信息倉庫管理更新信息查詢結(jié)果名字:總額別名:總金額描述:記錄每張銷售單的總銷售額定義:總額=8貨幣8位置:銷售信息名字:銷售日期別名:描述:記錄藥品銷售的時間定義:銷售日期=8時間8位置:銷售信息第二章總體設(shè)計3.1系統(tǒng)E-R圖3.1.1系統(tǒng)局部E-R圖圖3.1供應商、藥品實體聯(lián)系圖圖3.2藥品、藥品類別實體聯(lián)系圖圖3

9、.3倉庫、藥品實體聯(lián)系圖圖3.4職工、藥品實體聯(lián)系圖3.12 系統(tǒng)全局E-R圖通過對系統(tǒng)局部ER圖的優(yōu)化設(shè)計系統(tǒng)的基本 ER圖如下:圖3.53.2關(guān)系模式1. 關(guān)系模式設(shè)計該設(shè)計以概念結(jié)構(gòu)設(shè)計中的E-R圖為主要依據(jù),設(shè)計岀相關(guān)的整體邏輯結(jié)構(gòu)。根據(jù)總E-R圖有五個實體但倉庫實體在本系統(tǒng)中作用不大而且僅涉及到一個倉庫,所以倉庫不再單獨設(shè)計一張表。再加上一個多對多 關(guān)系(本系統(tǒng)不考慮供應關(guān)系)總共五個關(guān)系模式:藥品信息(藥品編碼,藥品名稱,藥品類別代碼,售價,廠價,庫存量,單位,有效期至)藥品類別索引(藥品類別代碼,類別說明)供應商信息(供應商編碼,供應商名稱,聯(lián)系人,聯(lián)系電話,所在城市)用戶信息(

10、職工號,姓名,用戶名,用戶口令,職位,權(quán)限)藥品銷售信息(銷售編碼,銷售日期,藥品編碼,藥品名稱,單價,數(shù)量,單位,總額,銷售員編碼)2. 關(guān)系模式優(yōu)化3.2.1中的關(guān)系模式中的每一個分量都是不可分的數(shù)據(jù)項所以都符合第一范式;而且所有的前四個關(guān)系模式都是由單個屬性作為碼,沒有任何屬性對碼部分依賴,在藥品銷售信息內(nèi)雖由三個屬性作為碼,但也 不存在屬性對碼的部分依賴,所以上述模式都符合第二范式;藥品信息、藥品類別索引、供應商信息三個 關(guān)系模式中不存在傳遞依賴,都屬于第三范式。在用戶信息關(guān)系模式中,用戶是按照權(quán)限分類的,職位不同權(quán)限不同,這樣該關(guān)系模式就存在了非主屬性 對碼的傳遞依賴:職工號T職位,

11、職位-權(quán)限,所以應將用戶信息分解為:用戶信息(職工號,姓名,用戶名,用戶口令,職位)職位權(quán)限信息(職位,權(quán)限)但本系統(tǒng)不考慮職工信息的管理,為了使銷售員編號與銷售員的職工號連系起來,并能通過職工姓名和職位來修改用戶信息所以把員工的部分信息(職工號,姓名,職位)跟用戶基本信息(用戶名,用戶口令,權(quán)限)合成了用戶信息(職工號,姓名,用戶名,用戶口令,職位,權(quán)限)以便于系統(tǒng)功能的實現(xiàn),所以 在此不采用分解模式,仍采用原模式。藥品銷售信息中有大量的數(shù)據(jù)冗余,且不夠明確?,F(xiàn)將其分解為:藥品銷售主表(銷售編碼,銷售日期,銷售員編號,總金額)藥品銷售子表(銷售編碼,銷售日期,藥品編碼,藥品名稱,單價,數(shù)量,

12、單位,金額)其中 金額”由單價”和數(shù)量”乘積求得,總金額”由同一銷售單內(nèi)不同藥品的金額”求和得到。這樣不僅方便查詢銷售總額,也加快了合計數(shù)據(jù)的速度,也有利于程序的實現(xiàn)。用戶信息模式和藥品銷售子表模式是為了降低連接操作,減少外鍵和索引數(shù)目對原模式進行重建或分割得來的。更重要得是,這樣不但可以提高查詢速度,而且有利于系統(tǒng)實現(xiàn)。3.3數(shù)據(jù)表設(shè)計通過對關(guān)系模式的優(yōu)化,得到六個基本表:表3 1藥品信息表字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名MedicineCodeChar6Primary KeyNot Null藥品編碼MedicineNameVarchar32Not Null藥品名稱Med

13、KindCodeChar1Foreign keyNot Null藥品類別代碼PriceMoney8售價ListPriceMoney8廠價NumberInt4庫存量UnitChar2單位UsefulLifeDatetime8有效期至表3-2供應商信息字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名FirmCodeChar4Primary KeyNot Null供應商編碼FirmNameVarchar16Not Null供應商名稱LinkVarchar12聯(lián)系人LinkTellVarchar11聯(lián)系電話CityVarchar8所在城市表3-3藥品銷售主表字段名字段類型長度主鍵或外鍵字段值約束對

14、應中文屬性名SaleNoint4Primary KeyNot Null銷售編碼WorkNoChar2Foreign keyNot Null銷售員編碼SaleDateDateTime8銷售日期AmountMoney8總金額表3-4藥品銷售子表字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名SaleNoint4Primary KeyNot Null銷售編碼MedicinecodeChar6Foreign keyNot Null藥品編碼MedicineNameVarchar32Not Null藥品名稱PriceMoney8售價NumberInt4數(shù)量UnitChar2單位AmountMoney8

15、金額表3-5藥品類別索引信息字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名MedKindCodeChar1Primary KeyNot Null藥品類別代碼KindExplanationVarchar16Not Null類別說明表3-6用戶信息字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名WorkNoChar2Primary KeyNot Null職工號NameVarchar12姓名UserRegNameChar3Not Null用戶登錄名PasswordMoney3Not Null用戶口令PositionMoney10用戶身份PowerInt10用戶權(quán)限第四章實現(xiàn)4.1數(shù)據(jù)庫實現(xiàn)

16、根據(jù)3.3數(shù)據(jù)表設(shè)計的設(shè)計結(jié)果,運用DBMS SQL Server 2000 的企業(yè)管理器建立數(shù)據(jù)庫表。藥品信息表(Medlnfor ) 設(shè)置藥品編碼(MedicineCode )為主碼,藥品類別索引表(MedKindlnfor )設(shè) 置藥品類別代碼(MedKindCode )為主碼,銷售主表(SaleMainTable )設(shè)置銷售編碼(Saleno )及銷 售日期(SaleDate )共同作為主碼,銷售子表(SaleChildTable )設(shè)置銷售編碼(SaleNo八銷售日期(SaleDate )和藥品編碼(MedcineCode )共同作為主碼,用戶信息表(UserInfor )設(shè)置職工號

17、(WorkNo )作為主碼,供應商信息表(FirmInfor )設(shè)置供應商編碼(FirmCode )為主碼。屬性的字符類型及長度參 照3.3數(shù)據(jù)表設(shè)計結(jié)果進行設(shè)置每類藥品可以有好多種藥,每種藥只有一個類別,所以藥品類別索引表與藥品信息表存在一對多的關(guān)系,以MedKindlnfor 的主碼 MedKindCode 作主鍵,Medlnfor 的MedKindCode 作外鍵建立關(guān)系。 銷售子表內(nèi)的藥品編碼藥參照藥品信息表內(nèi)的藥品編碼,即銷售子表與藥品信息表存在參照關(guān)系,以Medl nfor的MedicineCode 作主鍵,SaleChildTable 的MedicineCode 作外鍵建立關(guān)系。

18、銷售主表與銷售子表存 在依賴關(guān)系,以 SaleMainTable 的 Saleno 和 SaleDate 作為主鍵,SaleChildTable 的 Saleno 和 SaleDate作為外鍵建立關(guān)系。銷售主表內(nèi)的職工號藥參照用戶信息表的職工號,即銷售主表與用戶信息 表存在參照關(guān)系,以 SaleMainTable 的 Workno 為主鍵,Userlnfor 的 WorkNo 為外鍵建立關(guān)系。4.2系統(tǒng)功能結(jié)構(gòu)系統(tǒng)根據(jù)用戶身份的不同分為三個功能模塊:銷售管理模塊,倉庫管理模塊和日常管理模塊。在銷售管理模塊,銷售員可以根據(jù)顧客要求查詢相關(guān)藥品的部分信息,主要是庫存量和售價的查詢;還可 以完成藥品

19、的銷售,根據(jù)顧客所買藥品的代碼和數(shù)量存儲銷售信息,主要是對銷售數(shù)量和銷售總額的記錄,并在銷售完成后實現(xiàn)當前庫存的更新。在倉庫管理模塊,倉庫管理員可以查看藥品的全部信息,對藥品信息進行維護,盤點庫存信息,清除過期藥品等。在日常管理模塊,管理者可以查看藥品信息、銷售記錄,并對供應商信息和用戶信息進行管理維護。具體功能模塊圖如下:圖4.2系統(tǒng)功能圖4.3模塊功能介紹該系統(tǒng)共三個功能模塊:銷售管理、倉庫管理和日常管理。不同的用戶可以進入不同的模塊進行相應 操作。如:銷售人員憑借用戶名和密碼只能進入銷售管理系統(tǒng),進入后可以進行藥品的銷售和查詢;倉庫 管理員憑借用戶名和密碼只能進入倉庫管理系統(tǒng),進行藥品信

20、息的查詢和維護;管理者也要通過身份驗證 進入日常管理界面進行用戶信息和供應商信息的維護即查詢及藥品信息和銷售信息的查詢。系統(tǒng)主界面如 下:圖4.3系統(tǒng)主界面4.3.1銷售管理模塊該模塊主要完成前臺藥品銷售及前臺查詢功能:銷售過程要將銷售信息自動存儲到銷售信息主表及子表內(nèi),便且為了維護數(shù)據(jù)的一致性,藥品庫存量要隨銷售量動態(tài)更新,若購藥量大于庫存時應拒絕銷售操作; 查詢功能主要查詢顧客所需藥品大概信息,可以根據(jù)藥品名稱或所屬類別進行查詢。如下是銷售管理模塊的實現(xiàn)界面:1. 銷售員登錄界面圖4.4銷售管理模塊登錄界面該界面通過如下代碼跟數(shù)據(jù)庫內(nèi)用戶信息表連接,具體實現(xiàn)代碼見附錄Private Sub

21、 Form_Load()AdodcI.RecordSource = "select * from userinfor where userregname= '" & Textl & "'"AdodcI.RefreshEnd Sub2. 前臺查詢(1)輸入藥品名稱 蓋中蓋”所得查詢結(jié)果如下圖4.5查詢結(jié)果(一)(2)選擇藥品類別 非處方藥”所得查詢結(jié)果如下圖4.6查詢結(jié)果(二)系統(tǒng)通過如下主要代碼實現(xiàn)藥品查詢功能按藥品名查詢AdodcI.RecordSource = "select medicinecode藥品編碼

22、,medicinename藥品名稱,price 售價,stocknum 庫存量,unit 單位,usefullife有效期至 from MedInfor where medicinename= '" &Textl &Adodc1.Refresh按藥品類別查詢Select Case Combo1.TextCase "處方藥"Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename 藥品名稱,price as售價,stocknum as 庫存量,unit as 單位,

23、usefullife as有效期至 from MedInfor wheremedkindcode= '1'"Adodc1.RefreshCase "非處方藥"Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,priceas 售價,stocknum as 庫存量,unit as 單位,usefullife as有效期至 from MedInfor wheremedkindcode= '2'"Adodc1.Refresh3.

24、前臺銷售(1)101003 號藥品,銷售量為13時的銷售界面系統(tǒng)主要通過如下主要代碼實現(xiàn)銷售功能更新庫存AdodcI.Recordset.UpdateTextll.Text = Val(Textll.Text) - Val(Text2.Text)AdodcI.Recordset.UpdateAdodcI.Recordset.MoveLast計算總額Text17.Text = Val(Text9.Text) * Val(Text2.Text)x = x + Val(Text17.Text)Text6.Text = x4.3.2倉庫管理模塊該模塊主要完成藥品信息的維護和查詢,其中查詢功能可以分別按

25、藥品代碼、藥品名稱、藥品類別或過期 藥品來查詢。如下是倉庫管理模塊的實現(xiàn)界面:1. 倉庫管理員登錄界面圖4.9管理員登錄界面2. 藥品信息查詢(1 )輸入代碼“101003'的查詢結(jié)果界面圖4.10按藥品編碼的查詢結(jié)果結(jié)果界面(2)輸入藥品名稱 白加黑”的查詢結(jié)果界面圖4.11按藥品名稱的查詢結(jié)果界面(3) 選擇藥品類別 處方藥”的查詢結(jié)果界面圖4.12按藥品類別的查詢結(jié)果界面(4) 按過期藥品查詢的結(jié)果界面圖4.13按過期藥品的查詢結(jié)果界面系統(tǒng)主要通過如下主要代碼實現(xiàn)查詢功能Adodc1.RecordSource = "select medicinecode as藥品編碼,

26、medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as 有效期至,ratifycode as 批準文號 from MedInfor where medicinecode= '" &Text1 &Adodc1.Refresh4.3.3日常管理模塊該模塊可以進行用戶信息和供應商信息的維護及查詢,主要是對藥品信息、銷售信息、用戶信息和供應商信息的查詢。如下是日常管理模塊的實現(xiàn)界面:1. 管理者登錄界

27、面圖4.14管理員登錄界面2. 藥品信息查詢(類似與倉庫管理的藥品信息查詢)3. 銷售記錄查詢(一)銷售主表查詢界面圖4.15查詢銷售主表的結(jié)果界面(二)銷售子表查詢界面圖4.16查詢銷售子表的結(jié)果界面(三)全部信息查詢界面圖4.17查詢?nèi)啃畔⒌慕Y(jié)果界面4. 供應商信息查詢(一)輸如供應商編碼“1002'得查詢結(jié)果界面圖4.18按供應商編碼的查詢結(jié)果界面(二)輸入所在城市名上?!钡貌樵兘Y(jié)果界面圖4.19按供應商所在城市的查詢結(jié)果界面系統(tǒng)主要通過如下主要代碼實現(xiàn)查詢功能Adodc1.RecordSource = " select saleno as銷售編碼 amount as

28、 總額,saledate as 銷售日期,workno as銷售員編號 from salemaintable where saleno='" & Trim(T ext12.Text) & ""Adodc1.Refresh第五章設(shè)計總結(jié)在課程設(shè)計階段,首先對醫(yī)藥管理進行了了解,仔細分析了該管理對系統(tǒng)功能的要求,并根據(jù)這些功能要求對系統(tǒng)進行定義,確定系統(tǒng)必須做什么。但由于對醫(yī)藥管理了解不多,需求分析難免不夠完善,但是基本需求都考慮到了,并用文檔準確記錄了系統(tǒng)的需求。之后著手對系統(tǒng)的設(shè)計工作,首先是概念結(jié)構(gòu)設(shè)計,根據(jù)需求分析結(jié)果總結(jié)系統(tǒng)內(nèi)實體及聯(lián)

29、系并繪制系統(tǒng)的局部ER圖和全局ER圖。然后是邏輯結(jié)構(gòu)設(shè)計,結(jié)合需求分析與概念結(jié)構(gòu)設(shè)計把設(shè)計好的ER圖轉(zhuǎn)換為DBMS ( SQL Server 2000 )所支持的數(shù)據(jù)模型所符合的邏輯結(jié)構(gòu)。最后運用開發(fā)工具VB6.0進行功能的編碼實現(xiàn)。該系統(tǒng)最終能夠基本實現(xiàn)絕大多數(shù)功能,但是也有很多不做之處,如藥品進庫信息功能,對新進藥品進行入庫存儲,但是由于進價跟有效期的變化不能只是對該藥品的庫存量更改。進價可以運用加成定價法更改,但有效期尚未想到解決方案。希望老師給與意見及幫助,使系統(tǒng)功能更加完善。在這次課程設(shè)計中雖然遇到過很多的困難,但我從中學到了很多有用的知識,通過不斷的翻閱資料,各個問題的解決使我對系

30、統(tǒng)的設(shè)計越來越感興趣。相信我從這次課程設(shè)計所學到的東西可以讓我在以后的學 習及工作中受益無限。附錄實驗程序源代碼1. 登錄界面代碼:(以銷售員登錄為例,倉庫管理員和日常管理者登錄與此類似,不再贅述)在主界面菜單銷售管理內(nèi)編寫代碼如下:Private Sub A1_Click()登錄.Show登錄.Adodc1.RecordSource = "select * from userinforwhere power=' 銷售登錄.AdodcI.Refresh登錄.Optionl.Value = True登錄.Optionl.Visible = True登錄.Option2.Valu

31、e = False登錄.Option2.Visible = False登錄.Option3.Value = False登錄.Option3.Visible = FalseA = 1: B = 0: C = 0End Sub在Text2 的GotFocus事件內(nèi)編寫如下代碼以確定用戶的準確性Private Sub Text2_GotFocus()Adodcl.RecordSource = "select * from userinfor where userregname= '" & Textl & "'"AdodcI.Re

32、freshIf Adodc1.Recordset.EOF ThenMsgBox "無此用戶,請重新輸入 !","提示"Textl.Text =""Textl.SetFocusEnd IfEnd Sub在Commandl 的Click事件內(nèi)編寫如下代碼檢驗用戶密碼Private Sub Command1_Click()Dim x As String, y As StringTextl.SetFocusIf Val(Text2.Text) = Val(Text4.Text) ThenMsgBox "輸入正確",&quo

33、t;提示"Textl.Text =""Text2.Text =""Unload MeIf A = 1 ThenFrmMain.A2.Enabled = TrueFrmMain.A3.Enabled = TrueEnd IfElseMsgBox "密碼錯誤","提示"End IfEnd Sub2. 前臺查詢窗體代碼Private Sub Command1_Click()If Optionl ThenAdodcI.RecordSource = "select medicinecode as藥品編碼,

34、medicinename as藥品名稱,priceas 售價,stocknum as 庫存量,unit as 單位,usefullife as有效期至 from MedInfor wheremedicinename= '" & Text1 & "'"Adodc1.RefreshEnd IfIf Option2 ThenSelect Case Combo1.TextCase "處方藥Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename藥品名稱,

35、price as售價,stocknum as 庫存量,unit as 單位,usefullife as有效期至 from MedInfor wheremedkindcode= '1'"Adodc1.RefreshCase "非處方藥Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,priceas 售價,stocknum as 庫存量,unit as 單位,usefullife as有效期至 from MedInfor wheremedkindcode= &#

36、39;2'"Adodc1.RefreshCase "中藥飲片"AdodcI.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,priceas 售價,stocknum as 庫存量,unit as 單位,usefullife as有效期至 from MedInfor wheremedkindcode= '3'"Adodc1.RefreshCase "中藥材Adodc1.RecordSource = "select medici

37、necode as藥品編碼,medicinename as藥品名稱,price批準文號fromas 售價,stocknum as 庫存量,unit as 單位,usefullife as 有效期至,ratifycode asMedInfor where medkindcode= '4'"Adodc1.RefreshCase "醫(yī)療器械"Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,priceas 售價,stocknum as 庫存量,unit

38、as 單位,usefullife as 有效期至 from MedInfor where medkindcode= '5'"Adodc1.RefreshCase "非藥品(保健品)"Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,priceas 售價,stocknum as 庫存量,unit as 單位,usefullife as 有效期 from MedInfor where medkindcode= '6'"Adod

39、c1.RefreshEnd SelectEnd IfIf Adodc1.Recordset.EOF ThenMsgBox "無此信息!","提示"AdodcI.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,priceas 售價,stocknum as 庫存量,unit as 單位,usefullife as有效期至 from MedInfor "Adodc1.RefreshEnd IfEnd Sub3. 銷售界面代碼Private Sub Command

40、1_Click()Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,priceas 售價 ,unit as 單位,stocknum as 庫存量 from medinfor where medicinecode='" & Text1 &innAdodc1.RefreshIf Adodc1.Recordset.EOF Then MsgBox "無此信息!"," 提示"If Val(Text11.Text) - Val(Te

41、xt2.Text) < 0 ThenMsgBox "庫存不足","提示"Text1.Text = "": Text2.Text = "": Text1.SetFocusElseOn Error Resume NextAdodc2.Recordset.AddNewText12.Text = Text4.TextText13.Text = Text7.TextText14.Text = Text8.TextText15.Text = Text9.TextText16.Text = TextIO.TextText1

42、7.Text = Val(Text9.Text) * Val(Text2.Text)Text18.Text = Text2.TextAdodc2.Recordset.UpdateAdodc2.Recordset.MoveLastAdodc1.Recordset.UpdateText11.Text = Val(Text11.Text) - Val(Text2.Text)Adodc1.Recordset.UpdateAdodc1.Recordset.MoveLast x = x + Va l(T ext17.Text)End IfEnd SubPrivate Sub Command2_Click(

43、)Static y As Integer y = Val(Text4.Text) + 1Text4.Text = yText5.Text = Date$Text6.Text = xAdodc3.Recordset.AddNewText19.Text = Text4.TextText20.Text = Text3.TextText21.Text = Date$Text22.Text = Text6.TextAdodc3.Recordset.UpdateAdodc3.Recordset.MoveLastText6.SetFocusEnd SubPrivate Sub Text6_LostFocus

44、()x = 0End Sub4. 藥品信息查詢代碼(倉庫管理和日常管理的藥品查詢都用此代碼)Option ExplicitPrivate Sub Command1_Click()On Error Resume NextIf Command1.Caption ="新增"ThenCommand1.Caption ="確認"Adodc1.Recordset.AddNewText4.SetFocusElseCommandl.Caption =" 新增AdodcI.Recordset.UpdateAdodcI.Recordset.MoveLastEnd

45、IfEnd SubPrivate Sub Command2_Click()On Error Resume NextAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLastEnd SubPrivate Sub Command3_Click()On Error Resume NextIf Command3.Caption =" 修改"ThenCommand3.Caption =" 確認Adodc1.Recordset.Up

46、dateText4.SetFocusElseCommand3.Caption =AdodcI.Recordset.UpdateCommandl.Enabled = TrueCommand2.Enabled = TrueCommand5.Enabled = TrueEnd IfEnd SubPrivate Sub Command4_Click()Command3.Caption =" 修改Command1.Caption =" 添加On Error GoTo RefreshErrAdodc1.RefreshExit SubRefreshErr:MsgBox Err.Descr

47、iptionEnd SubPrivate Sub Command5_Click()Frame1.Visible = TrueEnd SubPrivate Sub Command6_Click()If Optionl ThenAdodcI.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as有效期至,ratifycode as批準文

48、號 from MedInfor where medicinecode= '" &Text1 &Adodc1.RefreshEnd IfIf Option2 ThenAdodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as有效期至,ratifycode as批準文號 from MedInf

49、or where medicinename= '" &Text2 &Adodc1.RefreshEnd IfIf Option3 ThenSelect Case Combo1.TextCase "處方藥"Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as有效期至

50、,ratifycode as批準文號 from MedInfor where medkindcode= '1'"Adodc1.RefreshCase "非處方藥AdodcI.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as 有效期至,ratifycode as批準文號 from MedInf

51、or where medkindcode= '2'"AdodcI.RefreshCase "中藥飲片"Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as 有效期至,ratifycode as批準文號 from MedInfor where medkindcode= &#

52、39;3'"Adodc1.RefreshCase "中藥材"Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as 有效期至,ratifycode as批準文號 from MedInfor where medkindcode= '4'"Adodc1.Ref

53、reshCase "醫(yī)療器械"Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as 有效期至,ratifycode as批準文號 from MedInfor where medkindcode= '5'"Adodc1.RefreshCase "非藥品(保健品)藥

54、品編碼,medicinename as 藥品名AdodcI.RecordSource = "select medicinecode as稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as有效期至,ratifycode as 批準文號 from MedInfor where medkindcode= '6'"AdodcI.RefreshEnd SelectEnd IfIf Option4 ThenAdodc1.RecordSo

55、urce = "select medicinecode as藥品編碼,medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as有效期至,ratifycode as 批準文號 from MedInfor where usefullife <' " &Trim( Text13) & "'"Adodc1.RefreshEnd IfIf Adodc1.Reco

56、rdset.EOF ThenMsgBox "無此信息!","提示"Adodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as 藥品名稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as 庫存量,unit as 單位,usefullife as有效期至,ratifycode as 批準文號 from MedInfor "Adodc1.RefreshEnd SubEnd If藥品名庫存量,un

57、it as 單藥品名庫存量,unit as 單Private Sub Command7_Click()AdodcI.Recordset.MovePreviousIf Adodc1.Recordset.BOF ThenAdodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as位,usefullife as 有效期至,ratifycode as 批準文號 from MedInfor &quo

58、t;Adodc1.RefreshMsgBox "當前記錄為第一條","提示”End IfEnd SubPrivate Sub Command8_Click()Adodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF ThenAdodc1.RecordSource = "select medicinecode as藥品編碼,medicinename as稱,medkindcode as藥品類另U代碼 ,price as 售價,listprice as 廠價,stocknum as位,usefullife as 有效期至,ratifycode as 批準文號 from MedInfor

溫馨提示

  • 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

提交評論