【正文】
35 第六部分:附錄 附錄一(主程序命令代碼): DEFINE CY 14 DEFINE GY 7 set console off clos all set dele on set safe off set exac off set sysmenu off set status bar off on shutdown quit cCurrentProcedure = SYS(16,1) nPathStart = AT(:,cCurrentProcedure) 1 nLenOfPath = RAT(\, cCurrentProcedure) (nPathStart) SET DEFAULT TO (SUBSTR(cCurrentProcedure, nPathStart, nLenofPath)) zoom window screen max tit=39。不足之處,希望你的批評指正,以便修改完善。在做好備份文件時,用命令語言去實現(xiàn)數(shù)據(jù)的復(fù)制時,就是通不過,我找了好久,才發(fā)現(xiàn)是相對路徑與絕對路徑的的問 題。lpath.\ to amp。lpath.\ to amp。ml.\ dele file amp。ml.\ copy file amp。ml.\ copy file amp。39。amp。 部分實現(xiàn)代碼如下: 查詢 .click =select distinct gydw from ck1 noconsle into cursor xxx =date()30 25 =date() sele ck1 set filt to gydw=allt() and rq= and rq= go top 藥品銷售累計查詢: 可以累計查詢某個單位或科室在某一時期內(nèi)購入藥品的合計,對于衛(wèi)生室管理具有相當(dāng)大的作用。 提示代碼重復(fù)錄入的 實現(xiàn)代碼如下: if !empty() sele yuanb loca for allt(dm)=allt() if found() 17 mm=messagebox(您輸入的代碼已經(jīng)使用,請重新輸入 ,1+32,提示 ) if mm=1 = retu .f. else retu .t. endi endi endi 增加完新藥以后,需要對當(dāng)前實有的藥品進行錄入,可以同藥品購入的錄入用 同一個錄入界面,但在以后的使用過程中,賬簿的正確性就不能保證 ,所以最好使用期初錄入界面進行錄入,保證數(shù)據(jù)的完整性。 14 人員管理界面設(shè)計: 設(shè)置多用戶操作,可以通過按鈕增加,修改,刪除等操作,對人員進行管理。功能模塊設(shè)計的目的都是為了把一個系統(tǒng)分解成一些規(guī)模較小的、功能較簡單的、更易于建立和修改的部分。 ( 4) 經(jīng)濟性??傮w設(shè)計:總體設(shè)計包括子系統(tǒng)的劃分,代碼設(shè)計、設(shè)計規(guī)范制定、信息系統(tǒng)流程圖設(shè)計、功能結(jié)構(gòu)圖設(shè)計和系統(tǒng)物理配置方案設(shè)計等。從節(jié)省人力方面,可以讓管 理人員從繁與復(fù)雜的工作中解脫出來,做更多的工作,可以給宿舍里的管理提高一個層次。隨著我國市場經(jīng)濟的迅速發(fā)展和加入 WTO,企業(yè)信息化程度的要求越來越高,而現(xiàn)階段計算機信息管理普及率并不高,企業(yè)中計算機資源得不到及時充分的利用,信息處理效率跟不上形勢的發(fā)展,近幾年很多單位對計算機信息管理專業(yè)人才需求越來越大。被調(diào)查單位普遍反映且迫切需要善經(jīng)營、會管理,同時能 熟練把計算機運用到信息采集、處理與維護的高級管理人才,計算機信息管理專業(yè)正是在這種背景正應(yīng)運而生的,目的是為企事業(yè)單位提供更多更好的從事計算機信息管理工作的合格人才。 技術(shù)上的可行性: 技術(shù)上的可行性分析要考慮將來要采用的硬件和軟件技術(shù)能否滿足用戶(這里是校方)提出的要求(如計算機的容量、速度等)。詳細設(shè)計:詳細設(shè)計包括數(shù)據(jù)存儲文件設(shè)計(數(shù)據(jù)庫文件的設(shè)計)、輸出設(shè)計、輸入設(shè)計、編寫程序設(shè)計說明書等。這是我們也要考慮的問題。一方面,各個模塊都有自己的獨立性,另一方面,模塊之間的相互關(guān)系可以通過一定的方式予以規(guī)定和說明。 15 藥品分類界面設(shè)計: 藥品期初設(shè)置的一個方面,為保證藥品分類計算時 ,保證數(shù)據(jù)的有效性和立人準(zhǔn)確性。 期初錄入界面設(shè)計: 確定 .click local aa 18 aa=0 set exac on if empty() retu .t. else sele yuanb loca for dm=allt() lbh=bh repl sl with sl+ sele qclr appe blan repl rq with ctod(allt(())+/+allt(())+/+allt(())) repl dm with allt() repl ypmc with allt() repl gg with allt() repl dw with allt() repl dj with val() repl sysl with repl lb with repl sxrq with repl ph with repl chd with sele yuanb2 if allt()allt(subs(lsldj,at(,lsldj,4)+1,at(,lsldj,5)at(,lsldj,4)1)) count to aa for int(bh)=lbh 19 appe blan repl yjj with val(),dj with val(),chd with allt(),ph with 。 具體查詢代碼的實現(xiàn)如下: 查詢 .click sele ltongj dele all sele distinct gydw from ck1 into cursor xxx sele ltongj appe from dbf(xxx) scan sele ck1 sum dj*gysl to aa for lb 中 草 藥 and gydw= and rq= and rq= 26 sum dj*gysl to bb for lb= 中 草 藥 and gydw= and rq= and rq= sele ltongj repl xy with aa,zhcy with bb,hj with aa+bb,rq with allt(dtoc())+allt(dtoc()) endscan sele ltongj sum xy to aa =str(aa,14,2) sum zhcy to aa =str(aa,14,2) sum hj to aa =str(aa,14,2) =2 =ltongj 某品種藥品的模糊查詢: 在忘記某種藥品的代碼時,可以用這個查詢來查找某種藥品的代碼和名稱,可以按代碼查詢,也可以按名稱查詢,非常簡便易用。按了 esc 鍵 cancel endif copy to amp。,39。lpath.\ to amp。lpath.\ to amp。ml.\ dele file amp。ml.\ copy file amp。ml.\ copy file amp。最后,搞好了,又發(fā)現(xiàn)把這個子程序放到別的目錄下時,又出現(xiàn)了問題。不管好,還是差。藥品批發(fā)系統(tǒng) 39。這一門課,讓我學(xué)到了不少的東西。 存在的問題 當(dāng)然,一個程序,一個系統(tǒng)不可能盡善盡美的,因為學(xué)生我還要參加十月份的本科考試,時間方面有所制約。在測試過程中,雖然發(fā)現(xiàn)一些小問題,但一下子就解決掉了,我印象最新的是在設(shè)計查詢模塊時,常出現(xiàn)數(shù)據(jù)庫打開錯誤。ml.\ copy file amp。ml.\ copy file amp。ml.\ dele file amp。lpath.\ to amp。lpath.\ to amp。lpath if month(date())=10 ll=allt(str(month(date()))) else ll=allt(0+allt(str(month(date())))) endi if day(date())=10 nn=allt(str(day(date()))) else nn=allt(0+allt(str(day(date())))) endi ml=allt(str(year(date())))+ll+nn mm=adir(agetdir,39。) if empty(gcdelimfile) amp。 代碼即時性的產(chǎn)生代碼如下: 事件 define DELKEY 127 define ENTER 13 define DOWNARROW 3 LPARAMETERS nKeyCode, nShiftAltCtrl LOCAL cDisplayValue IF nKeyCode = DELKEY cDisplayValue = ALLTRIM() IF LEN(cDisplayValue)=1 cDisplayValue = 23 =.f. ELSE cDisplayValue = LEFT(cDisplayValue,LEN(cDisplayValue)1) =.t. =.t. =SELECT , FROM yuanb where cdisplayvalue $ into cursor xxx =1 =.f. ENDIF ELSE IF nKeyCode=ENTER =.f. else if nKeyCode=DOWNARROW =1 else =.t. cDisplayValue = ALLTRIM()+CHR(nKeyCode) =.t. =.t. =SELECT , FROM yuanb where cdisplayvalue $ into cursor xxx =1 24 =.f. endi endi ENDIF 衛(wèi)生室購藥查詢 : 可以通過查詢得到各衛(wèi)生室及門診部的用藥情況,可以利用日期來查詢起止日期內(nèi) 某個單位的用藥情況。 數(shù)據(jù)存儲界面設(shè)計: 首先要把新藥的品種輸入的計算機之中,在增加新藥的時候,如果輸入的代碼是重復(fù)的,計算機將提示輸入重復(fù)錯誤。 選擇您的姓名之后,輸入口令,如果輸入的口令是錯誤的會給出提示,如果三次輸入錯誤,將退出系統(tǒng)。 表結(jié)構(gòu) : F:\F\LL\VFP\批發(fā) \\ 數(shù)據(jù)記錄數(shù) : 1837 最近更新的時間 : 10/19/06 備注文件塊大小 : 64 代碼頁 : 936 字段 字段名 類型 寬度 小數(shù) 1