【正文】
指針向下移動一條記錄 enddo messagebox(39。數(shù)據(jù)保存完畢! 39。,48,39。操作成功! 39。) use *清空臨時表 use database\ltabrkdj exclusive amp。amp。以獨占方式打開數(shù)據(jù)表 delete from database\ltabrkdj pack amp。amp。記錄指針向下移動一條記錄 use use database\ltabrkdj endcase endif *設(shè)置文本框無效 l=.f. amp。amp。調(diào)用表單的 Resize 事件 =.t. =.f. =.f. =.t. 以下為銷售退貨的設(shè)計 : 圖 () 如上圖 ()按“登記”的代碼為 : *設(shè)置控件有效 =.t. =.t. =.t. =.t. =.t. =.t. =.t. =.t. =0 =0 =0 =39。39。 =manager =39。39。 =39。39。 =39。39。 =39。39。 amp。amp。Combo4 獲得焦點 =39。ltabxsth39。 amp。amp。賦數(shù)據(jù)源 amp。amp。刷新表格 *自動票號 select tabxsth lmonth=padl(alltrim(str(month(date()),2)),2,39。039。) lday=padl(alltrim(str(day(date()),2)),2,39。039。) if empty(退貨票號 ) set cent on amp。amp。確定顯示日期表達(dá)式的世紀(jì)部分 =alltrim(str(year(date()),4)+39。39。+lmonth+39。39。+lday+39。THD000139。) else select max(退貨票號 ) from tabxsth into array a amp。amp。查找表 tabxsth 中最大的退貨票號存入數(shù)組 a 中 cend=val(substr(a(1),14))+1 =alltrim(str(year(date()),4)+39。39。+lmonth+39。39。+lday+39。THD39。+padl(alltrim(str(cend,4)),4,39。039。)) endif =date() =.f. =.t. =.t. =.f. 以下為入庫退貨的設(shè)計: . =.t. =.t. =.t. =.t. =.t. =.t. =.t. =.t. =0 =0 =0 =39。39。 =manager =39。39。 =39。39。 =39。39。 =39。39。 amp。amp。Combo4 獲得焦點 =39。ltabrkth39。 amp。amp。賦數(shù)據(jù)源 *自動票號 select tabrkth lmonth=padl(alltrim(str(month(date()),2)),2,39。039。) lday=padl(alltrim(str(day(date()),2)),2,39。039。) if empty(退貨票號 ) set cent on amp。amp。確定顯示日期表達(dá)式的世紀(jì)部分 =alltrim(str(year(date()),4)+39。39。+lmonth+39。39。+lday+39。THD000139。) else select max(退貨票號 ) from tabrkth into array a amp。amp。查找表 tabrkth 中最大的退貨票號存入數(shù)組 a 中 cend=val(substr(a(1),14))+1 =alltrim(str(year(date()),4)+39。39。+lmonth+39。39。+lday+39。THD39。+padl(alltrim(str(cend,4)),4,39。039。)) endif =date() =.f. =.t. =.t. =.f. 以下為操作員管理的設(shè)計: 圖 () 如圖 ()需要“增刪用戶”的代碼為 : use database\tabpurview ame=alltrim() ppassword=alltrim() set order to 操作員姓名 seek ame set exact on *檢驗操作員是否正確 if alltrim( )!=ame =+1 cMessagetitle=39。操作員管理 39。 cMessagetext=39。操作員錯誤,請重新輸入! 39。 nDialogtype=4+32 nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle) do case case nanswer=6 =39。39。 case nanswer=7 endcase if =3 endif else *檢驗密碼是否正確 if alltrim( )!=ppassword =+1 cmessagetitle=39。操作員管理 39。 cmessagetext=39。原密碼錯誤,請重新輸入! 39。 ndialogtype=4+32 nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle) do case case nanswer=6 =39。39。 case nanswer=7 endcase if =3 messagebox(39。對不起,您無權(quán)修改密碼! 39。,48,39。操作失??! 39。) endif else =.t. =.t. =.f. =.t. =.t. =.f. =.f. endif endif set exact off 以上是一部分設(shè)計和它的代碼。 菜 單 設(shè) 計 做一個系統(tǒng)要是選擇菜單模式,那末菜單的制作就極為重要,因為菜單制作的好壞直接影響到整個系統(tǒng)使用的方便與否。下面我就介紹以下本系統(tǒng)菜單的制作過程。首先點擊項目管理器中的“其它”中的“菜單”,然后點擊右邊的“新建”起名為菜單。就會彈出菜單設(shè)計器,并在其中填入相應(yīng)內(nèi)容,如下面框體所示: 這樣設(shè)計在執(zhí)行后就會出現(xiàn)下面表單美觀并實用: 主程序及菜單程序 Visual FoxPro 程序文件,是一個以( .prg) 為擴(kuò)展名的文本文件。任何可以建立,編輯文本文件的工具,都可以創(chuàng)建和編輯 Visual FoxPro 程序設(shè)計。這些文本編輯工具可以是 Visual FoxPro 系統(tǒng)提供的內(nèi)部編輯器,也可以是其他常用編輯軟件。下面是本系統(tǒng)的主程序及菜單程序: 主程序: clear screen local lcsys16,lcprogram amp。amp。定義局部變量 lcsys16=sys(16) amp。amp。 sys(16)返回當(dāng)前正在運行的程序名(包括路徑) lcprogram=substr(lcsys16,at(:,lcsys16)1) cd left(lcprogram,rat(\,lcprogram)) amp。amp。用 CD命令進(jìn)入系統(tǒng)所在目錄 deactivate window project manager amp。amp。關(guān)閉項目管理器 do setting amp。amp。設(shè)置系統(tǒng)環(huán)境配置 =10000 amp。amp。程序運行時去掉 Visual FoxPro的主窗口 do form form\admin zoom windows screen max amp。amp。最大化窗口 =39。門診藥品管理系統(tǒng) 39。 amp。amp。設(shè)置主窗口標(biāo)題 public purview amp。amp。定義全局變量 public pxsgl,pjhgl,pkfgl,pthgl,pcwgl,pzmgl,pjcinfo,psysgl store . pxsgl,pjhgl,pkfgl,pthgl,pcwgl,pzmgl,pjcinfo,psysgl purview=5 define window ncover from 0,0 to 800,470 nozoom noclose fill file images\ amp。amp。定義一個窗口 NCOVER,將它作為應(yīng)用系統(tǒng)的背景圖片。 activate window ncover bottom amp。amp。激活窗口 NCOVER do menu\ amp。amp。調(diào)用程序主菜單 =0 On Shutdown do myquit read events amp。amp。準(zhǔn)備接收事件響應(yīng) do reset 菜單 程序 : set sysmenu off amp。amp。將系統(tǒng)菜單關(guān)閉 set sysmenu to set status bar off amp。amp。不顯示圖形狀態(tài)框 set talk off amp。amp。指定在 Visual FoxPro 主窗口、系統(tǒng)信息窗口、圖形狀態(tài)欄或用戶自定義窗口中不顯示命令結(jié)果 set notify off set clock status amp。amp。將時鐘在指定的位置顯示,而不放在圖形狀態(tài)欄中 set palette off amp。amp。用于確定是否使用 Visual FoxPro 的缺省調(diào)節(jié)器色板 set bell on amp。amp。打開計算機(jī)喇叭,使計算機(jī)在指定 的時候發(fā)聲 set safety off amp。amp。指定在覆蓋已經(jīng)存在的文件時,不顯示對話框 set escape on amp。amp。指定按 ESC 鍵后,中斷程序和命令的運行 set keyp to windows set carry on amp。amp。指定在創(chuàng)建新記錄時,將當(dāng)前記錄所有字段的數(shù)據(jù)復(fù)制到新記錄中 set confirm on set exact on amp。amp。設(shè)置字符精確比較 set near on set ansi off set lock on amp。amp。指定在執(zhí)行某些需要只讀訪問一個表的命令時,具有自動鎖定表的功能 set exclusive off set multilocks on set deleted on amp。amp。表示在命令中使用范圍參數(shù)處理記錄時,不訪問標(biāo)有刪除標(biāo)記的記錄 set optimize on amp。amp。指定 可以使用 Rushmore 優(yōu)化技術(shù) set refresh to 0,5 amp。amp。設(shè)定網(wǎng)絡(luò)中表的刷新時間 set collate to 39。stroke39。 amp。amp。設(shè)定字符型字段的排列順序 se