第4章(辦公自動化)_第1頁
第4章(辦公自動化)_第2頁
第4章(辦公自動化)_第3頁
第4章(辦公自動化)_第4頁
第4章(辦公自動化)_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章程序設(shè)計初步4.1程序文件4.2程序的控制結(jié)構(gòu)4.3多模塊程序設(shè)計4.4窗口設(shè)計樣例4.1程序文件4.1.1程序文件的建立與執(zhí)行命令格式:MODIFYCOMMAND<文件名>功能:打開文本編輯窗口,建立或修改程序文件。說明:⑴程序文件由VFP命令組成。⑵關(guān)閉編輯窗口的方法:Ctrl+W鍵;Esc鍵;雙擊控制菜單按鈕;單擊關(guān)閉按鈕。一、程序文件的建立和修改二、程序的運行命令格式:

DO<文件名>說明:⑴程序文件可編譯成以下幾種類型:①.EXE:可執(zhí)行文件,可脫離VFP的環(huán)境運行。②.APP:應(yīng)用程序,在VFP的環(huán)境下運行。③.FXP:目標(biāo)程序,非文本文件,運行速度快,可起到對源程序加密的作用。⑵如果執(zhí)行的程序不包含擴(kuò)展名,VFP就按.EXE、.APP、.FXP、.PRG的順序查找并執(zhí)行這些版本的程序。⑶DO命令也可運行查詢、菜單等程序,但必須包括各自的擴(kuò)展名。三、程序書寫規(guī)則1.命令分行程序中每條命令都以回車鍵結(jié)尾,一行只能寫一條命令。2.命令注釋程序中可插入注釋,以提高程序的可讀性。例如:

*本程序用于修改表的指定記錄

SETDATEUSA&&

日期格式設(shè)置為MM-DD-YY四、求解的基本邏輯與程序通用性1.求解的基本邏輯

VFP程序多數(shù)用于數(shù)據(jù)處理,解決問題的基本邏輯是:

輸入數(shù)據(jù)→處理數(shù)據(jù)→輸出數(shù)據(jù)例:計算圓的面積⑴給出圓的半徑;⑵按公式計算圓面積;⑶輸出圓面積。VFP程序為:

r=3s=3.1415*r*r?“圓面積=”,s2.程序的通用性4.1.2程序文件中的專用命令一、程序執(zhí)行的終止命令1.終止命令命令格式:CANCEL功能:結(jié)束當(dāng)前VFP程序的執(zhí)行,清除私有變量,返回命令窗口2.返回命令命令格式:RETURN功能:終止本程序運行,返回調(diào)用它的上一級程序繼續(xù)執(zhí)行,若無上級程序則返回到命令窗口。(可省略)3.退出命令命令格式:QUIT功能:退出VFP系統(tǒng),返回操作系統(tǒng)。二、輸入輸出專用命令1.字符串輸入語句命令格式:ACCEPT[提示信息]TO<內(nèi)存變量>功能:暫停程序執(zhí)行,將用戶從鍵盤上輸入的內(nèi)容作為字符串賦值給指定的內(nèi)存變量。說明:⑴該語句只能輸入字符串,輸入時不必加字符串定界符。⑵如果指定的變量不存在,則創(chuàng)建該變量。⑶提示信息,指定要顯示的自定義信息,若省略則不顯示信息?!纠?-1】編寫一個程序CX1.PRG,該程序打開SB.DBF,查找用戶輸入的設(shè)備情況。*CX1.PRGUSEsbACCEPT“請輸入要查詢的設(shè)備編號:”TOBHLOCATEFOR編號=BHDISPLAYUSERETURN2.表達(dá)式輸入語句命令格式:INPUT[提示信息]TO<內(nèi)存變量名>功能:暫停程序執(zhí)行,將用戶從鍵盤上輸入的內(nèi)容作為表達(dá)式,將表達(dá)式的值賦給指定的內(nèi)存變量。說明:⑴該語句可輸入數(shù)值型、字符型、邏輯型或日期型表達(dá)式。⑵該語句先計算表達(dá)式的值,后將結(jié)果賦值給內(nèi)存變量?!纠?-2】編寫一個CX2.PRG,該程序打開SB.DBF,查找價格為5000.00元的設(shè)備。*CX2.PRGUSEsbINPUT“請輸入要查詢的設(shè)備價格:”TOJGLOCATEFOR價格=JGDISPLAYUSERETURN3.定位輸入輸出命令命令格式:@<行,列>[SAY<表達(dá)式1>][GET<變量名>][DEFAULT<表達(dá)式2>]功能:在屏幕指定行列輸出SAY子句的表達(dá)式值,并可修改GET子句的變量值。說明:⑴<行,列>表示數(shù)據(jù)在窗口中的顯示位置,可使用小數(shù)精確定位。⑵SAY子句用來輸出數(shù)據(jù),GET子句用來輸入及編輯數(shù)據(jù)。⑶GET子句中的變量必須具有初值,或用DEFAULT子句中的<表達(dá)式>指定初值。⑷GET子句的變量必須用READ命令來激活?!纠?-3】試編寫一程序,能根據(jù)記錄號來修改某個設(shè)備的價格和部門。*e4-3.prgCLEARUSEsb

jlh=1@2,10SAY“請輸入記錄號:”GETjlh

READGOjlh@4,10SAY“請修改第”+STR(jlh,1)+“個設(shè)備的數(shù)據(jù):”@5,10SAY“價格”GET價格

@6,10SAY“部門”GET部門

READUSE三、WAIT命令命令格式:WAIT[<信息文本>][TO<內(nèi)存變量>][WINDOW[AT<行>,<列>]][NOWAIT][CLEAR|NOCLEAR][TIMEOUT<數(shù)值表達(dá)式>]功能:暫停程序的運行,直到用戶輸入一個字符。也可只用于輸出一條提示信息。【例4-4】WAIT命令輸出信息示例。

WAIT“請檢查輸入內(nèi)容!”WINDOW4.2程序的控制結(jié)構(gòu)VFP程序中常用的3種基本控制結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu):按命令的書寫順序依次執(zhí)行。分支結(jié)構(gòu):根據(jù)指定條件的當(dāng)前值在兩條或多條程序路徑中選擇一條執(zhí)行。循環(huán)結(jié)構(gòu):由指定條件的當(dāng)前值來控制循環(huán)體中的語句(或命令)序列是否要重復(fù)執(zhí)行。4.2.1順序結(jié)構(gòu)例4-1、例4-2和例4-3均為順序結(jié)構(gòu)4.2.2分支結(jié)構(gòu)一、簡單的條件語句語句格式:IF<邏輯表達(dá)式><語句序列>ENDIF圖4-1簡單條件語句邏輯圖【例4-5】將SB.DBF中第一個非主要設(shè)備的價格減少10%。*e4-5.prgUSEsbLOCATEFORNOT主要設(shè)備

IFFOUND()DISPLAY名稱,價格

REPLACE價格WITH價格*(1-0.1)DISPLAY名稱,價格

ENDIFUSERETURN二、帶ELSE的條件語句語句格式:IF<邏輯表達(dá)式><語句序列1>ELSE<語句序列2>ENDIF圖4-2帶ELSE的條件語句的邏輯圖宏找換函數(shù)函數(shù)格式:

&<字符型內(nèi)存變量>[.<字符表達(dá)式>]功能:替換出字符型內(nèi)存變量的值?!纠?-6】宏代換示例。*e4-6.prgm=5x=“m”?x?&x【例4-7】試編寫一程序,能打開任意一個表來瀏覽。*e4-7.prg@5,10SAY“請輸入表名:”GETbmDEFAULTSPACE(10)

READ

bm=ALLTRIM(bm)

IF

FILE(“&bm..dbf”)USE&bmBROWSE

ELSEWAIT“該文件不存在!”WINDOWENDIF三、多分支語句語句格式:DOCASECASE<邏輯表達(dá)式1><語句序列1>CASE<邏輯表達(dá)式2><語句序列2>……CASE<邏輯表達(dá)式n><語句序列n>[OTHERWISE<語句序列n+1>]ENDCASE圖4-3多分支語句框圖【例4-8】顯示當(dāng)前季節(jié)程序*e4-8.prgyue=MONTH(DATE())DOCASECASEINLIST(yue,3,4,5)

jj=“春”

CASEINLIST(yue,6,7,8)

jj=“夏”

CASEINLIST(yue,9,10,11)

jj=“秋”

CASEINLIST(yue,12,1,2)

jj=“冬”ENDCASEWAITjjWINDOW4.2.3循環(huán)結(jié)構(gòu)

VFP中的循環(huán)語句:WHILE條件循環(huán)、FOR步長循環(huán)、SCAN掃描循環(huán)。一、條件循環(huán)語句格式:

DOWHILE<邏輯表達(dá)式><語句序列>ENDDO【例4-9】試編寫一程序,顯示SB.DBF中所有單價超過10000元的設(shè)備名稱。*e4-9USEsbDOWHILENOTEOF()IF價格>10000?名稱

ENDIFSKIPENDDOUSE【例4-10】按9萬元以上,1~9萬元,1萬元以下三級價格分檔統(tǒng)計SB.DBF中設(shè)備的個數(shù)。*e4-10STORE0TOK1,K2,K3USEsbDOWHILENOTEOF()DOCASECASE價格>90000K1=K1+1CASE價格<10000K1=K1+1OTHERWISEK2=K2+1ENDCASESKIPENDDO?“9萬元以上設(shè)備個數(shù):”+STR(K1)?“1~9萬元設(shè)備個數(shù):”+STR(K2)?“1萬元以下設(shè)備個數(shù):”+STR(K3)USE二、步長循環(huán)語句格式:FOR<內(nèi)存變量>=<數(shù)值表達(dá)式1>TO<數(shù)值表達(dá)式2>[STEP<數(shù)值表達(dá)式3>]<語句序列>ENDFOR|NEXT【例4-11】編寫計算s=1+2+3+……+100的程序。*e4-11s=0FORi=1TO100s=s+iNEXT?“s=”,s三、掃描循環(huán)語句格式:SCAN[<范圍>][FOR<邏輯表達(dá)式1>][WHILE<邏輯表達(dá)式2>]<語句序列>ENDSCAN【例4-12】根據(jù)例4-9的要求,用掃描循環(huán)語句編程。*e4-12USEsbSCANFOR價格>10000?名稱ENDSCANUSE四、循環(huán)輔助語句LOOP:使執(zhí)行轉(zhuǎn)向循環(huán)語句開頭部繼續(xù)循環(huán);EXIT:立即退出循環(huán),轉(zhuǎn)去執(zhí)行ENDDO、ENDFOR或ENDCASE后面的語句。圖4-4LOOP語句的轉(zhuǎn)向圖4-5EXIT語句的轉(zhuǎn)向【例4-13】編程計算s=1+2+3+…+100,并求1~100之間奇數(shù)之和。*e4-13.prgSTORE0TOi,s,tDOWHILEi<100i=i+1s=s+iIFINT(i/2)=i/2LOOPENDIFt=t+iENDDO?“1+2+3+…+100=”,s?“1~100的奇數(shù)和:”,t五、多重循環(huán)【例4-14】在SB.DBF中找出所有價格超過P的設(shè)備編號、名稱與價格,并要求在各輸出行下顯示一行虛線。*e4-14.prgCLEARUSEsb@5,10SAY“請輸入價格:”GETjgDEFAULT0READSCANIF價格>jg?編號+SPACE(3)+名稱+SPACE(3)+STR(價格,9,2)?FORi=1TO30??“-”ENDFORENDIFENDSCANUSE4.3多模塊程序設(shè)計4.3.1子程序一、調(diào)用與返回調(diào)用:主程序執(zhí)行時遇到DO命令,執(zhí)行就轉(zhuǎn)向子程序。返回:子程序執(zhí)行遇到RETURN命令,返回到主程序中轉(zhuǎn)出處的下一語句繼續(xù)執(zhí)行。二、帶參數(shù)子程序的調(diào)用與返回1.用DO命令進(jìn)行調(diào)用子程序并參數(shù)傳遞命令格式:DO<程序名1>[WITH<參數(shù)表>][IN<程序名2>]說明:⑴<參數(shù)表>中的參數(shù)可以是表達(dá)式,但若為內(nèi)存變量必須具有初值。⑵當(dāng)<程序名1>是IN子句<程序名2>中一個過程時,DO命令調(diào)用該過程。2.參數(shù)接收語句命令格式:

PARAMETERS<參數(shù)表>說明:⑴

PARAMETERS必須是被調(diào)用程序的第一個語句。⑵命令中的參數(shù)被VFP默認(rèn)為私有變量,返主回送參數(shù)值后即被清除。⑶命令中的參數(shù)依次與調(diào)用命令WITH子句中的參數(shù)相對應(yīng),故兩者參數(shù)個數(shù)必須相同。【例4-15】設(shè)計一個計算圓面積的子程序,并要求在主程序中帶參數(shù)調(diào)用它。主程序:*e4-15.prgymj=0@5,10SAY“請輸入圓的半徑:”GETbjDEFAULT0READDOjsWITHbj,ymj?“ymj=”,ymjRETURN子程序:*js.prgPARAMETERSr,ss=PI()*r*rRETURN三、子程序嵌套命令格式:

RETURN[TOMASTER|TO<程序文件名>]圖4-6子程序嵌套示意圖4.3.2自定義函數(shù)一、自定義函數(shù)的建立函數(shù)格式:

[FUNCTION<函數(shù)名>][PARAMETERS<參數(shù)表>]<語句序列>[RETURN<表達(dá)式>]【例4-16】設(shè)計一個自定義函數(shù),用來求一元一次方程AX+B=0的根。解法一:自定義函數(shù)作為一個獨立的文件。*root.prgPARAMETERSa,bRETURNIIF(a=0,“無解”,-b/a)如調(diào)用ROOT函數(shù)解方程3X+1=0:?“X:”,ROOT(3,1)解法二:自定義函數(shù)與其調(diào)用語句包含在同一程序中。*root1.prgCLEAR@5,10SAY“一次項系數(shù):”GETaDEFAULT1@7,10SAY“常數(shù)項:”GETbDEFAULT0READ?“x:”,root(a,b)FUNCTIONrootPARAMETERSu,vRETURNIIF(u=0,無解,-v/u)二、數(shù)組參數(shù)的傳遞*root2.prgCLEARDIMENSIONfs(2)fs(1)=1fs(2)=0@5,10SAY“一次項系數(shù):”GETfs(1)@7,10SAY“常數(shù)項:”GETfs(2)READ?“x:”,root(@fs)FUNCTIONrootPARAMETERSjsRETURNIIF(js(1)=0,無解,-js(2)/js(1))4.3.3過程函數(shù)格式:PROCEDURE<過程名>[PARAMETERS<參數(shù)表>]<命令序列>[RETURN]【例4-17】將例4-15的程序改變?yōu)檫^程調(diào)用。*e4-17SETDECIMALSTO2ymj=0@5,10SAY“請輸入半徑:”GETbjDEFAULT0READDOjsWITHbj,ymjRETURNPROCEDUREjsPARAMETERSr,ss=PI()*r*rRETURN過程是一個程序文件時,需用帶IN子句的DO命令來調(diào)用。【例4-18】調(diào)用過程文件中的過程示例。*e4-18ymj=0@5,10SAY“請輸入半徑:”GETbjDEFAULT0READDOjsWITHbj,ymjINjs1?“ymj=”,ymj過程文件:*js1.prgPROCEDUREjsPARAMETERSr,ss=PI()*r*r補充內(nèi)容:1.編寫一密碼效驗程序CLEAR@5,10SAY"請輸入密碼:"GETMMDEFAULTspace(6)READIFMM="123456"CLEARWAIT"歡迎使用本系統(tǒng)!"WINDOWAT5,10TIMEOUT3ELSEWAIT"密碼錯誤,系統(tǒng)將退出!"WINDOWAT5,10TIMEOUT3QUITENDIF2.編寫乘法口訣表程序,要示輸出一上三角口訣表。CLEARFORI=1TO9FORJ=1TO9IFJ<=IS=I*J??STR(I,1)+"*"+STR(J,1)+"="+STR(S,2)+""ENDIFENDFOR?ENDFOR4.3.4變量的作用域內(nèi)存變量按作用域可分為:公共變量、私有變量和本地變量。一、公共變量公共變量:在任何模塊中都可以使用的變量。命令格式:

PUBLIC<內(nèi)存變量表>建立同時賦初值為.F.需要字義為公共變量的變量:⑴下層模塊建立的變量要供上層使用;⑵某模塊建立的變量要供并列模塊使用;注意:⑴VFP命令窗口定義的變量均為公共變量;⑵公共變量必須用命令(RELEASE或CLEAR)來清除二、私有變量私有變量:僅在定義它的模塊及其下層模塊中使用命令格式:

PRIVATE[<內(nèi)存變量表>][ALL[LIKE|EXCEPT<通配符>]]定義它的模塊運行結(jié)束后自動清除注意:⑴PARAMETERS聲明的參變量也是私有變量⑵PUBLIC命令除聲明明變量類型外還賦初值,稱為建立;PRIVATE只是聲明而已,不進(jìn)行賦值。⑶私有變量準(zhǔn)許與上層模塊的變量同名,同名時屏蔽上層模塊的變量.本模塊運行結(jié)束再恢復(fù)上層模塊變量?!纠?-19】變量隱藏與恢復(fù)的示例。⑴假定已建立了如下的程序:*e4-19PARAMETERSsjPRIVATEmjmj=3.14*sj*sj?“程序執(zhí)行時的變量清單:”LISTMEMOLIKE?jRETURN⑵在命令窗口中鍵入下列命令:RELEASEALLmj=0bj=3?“程序執(zhí)行前的變量清單:”LISTMEMOLIKE?jDOe4-19WITHbj?“程序執(zhí)行后的變量清單:”LISTMEMOLIKE?j⑶命令及程序執(zhí)行結(jié)果顯示如下:程序執(zhí)行前的變量清單:

MJPubN0(0.00000000)BJPubN3(3.00000000)程序執(zhí)行時的變量清單:

MJ(hid)N0(0.00000000)BJ(hid)N3(3.00000000)SJPriv

bjMJPrivN28.26(28.26000000)e4-19程序執(zhí)行后的變量清單:

MJPubN0(0.00000000)BJPubN3(3.00000000)三、本地變量本地變量:只能在建立它的模塊使用的變量。命令格式:

LOCAL<內(nèi)存變量表>注意:

LOCAL不可縮寫。(LOCATE)定義它的模塊運行結(jié)束后自動清除圖4-7變量的作用域4.3.5程序調(diào)試方法一.調(diào)試的概念目的:檢查并糾正程序中的錯誤,以保證程序正確、可靠地運行。

步驟:檢查程序是否存在錯誤→確定出錯位置→糾正錯誤。1.程序中常見的錯誤⑴語法錯誤,例:數(shù)據(jù)類型不匹配等⑵超出系統(tǒng)準(zhǔn)許范圍錯誤,例:文件太大等⑶邏輯錯誤,例:計算邏輯錯誤等2.查錯技術(shù)查錯技術(shù)一:靜態(tài)檢查,通過閱讀程序,找出錯誤查錯技術(shù)二:動態(tài)檢查,通過執(zhí)行程序考察程序是否有錯常用動態(tài)查錯技術(shù):⑴設(shè)置斷點在斷點處查看中間結(jié)果,考察程序是否有錯⑵單步執(zhí)行一次執(zhí)行一個命令,相當(dāng)于斷點設(shè)在每條指令之后⑶跟蹤在程序執(zhí)行過程中,跟蹤某些信息的變化,以確定程序序是否有錯⑷設(shè)置錯誤陷阱通過錯誤陷阱捕捉可能發(fā)生的錯誤??赏ㄟ^ONERROR語句設(shè)置陷阱二、調(diào)試器1.打開調(diào)試器窗口⑴“工具”菜單“調(diào)試器”命令⑵命令窗口鍵如DEBUG命令2.調(diào)試器窗口的組成調(diào)試器可以打開5個子窗口,只要選定“跟蹤”、“監(jiān)視”、“局部”、“調(diào)用堆?!被颉拜敵觥泵?,即可打開相應(yīng)各子窗口圖4-8調(diào)試器窗口

⑴跟蹤窗口

單擊此處設(shè)置斷點,雙擊取消表示斷點表示正在執(zhí)行

監(jiān)視窗口輸入監(jiān)視表達(dá)式回車,進(jìn)入下面的列表執(zhí)行時顯示監(jiān)視表達(dá)式及其當(dāng)前值可將表達(dá)式拖至文本框編輯,可用快捷菜單插入、刪除表達(dá)式⑶局部窗口

⑷調(diào)用堆棧窗口

⑸調(diào)試輸出窗口顯示正在執(zhí)行的程序和過程顯示活動程序、過程代碼輸出顯示所有變量、數(shù)組以及對象3.調(diào)試器窗口的部分調(diào)試命令

⑴運行開始執(zhí)行打開的程序

⑵繼續(xù)執(zhí)行斷點停止后繼續(xù)

⑶單步逐行執(zhí)行代碼,函數(shù)、過程等后臺運行

⑷單步跟蹤逐行執(zhí)行代碼

⑸運行到光標(biāo)處從當(dāng)前行運行到光標(biāo)所在行之間的代碼4.3.6結(jié)構(gòu)化程序設(shè)計【例4-21】試編寫一應(yīng)用程序,能對SB表進(jìn)行維護(hù)、查詢和打印設(shè)備數(shù)據(jù)。CLEARUSEsbTEXT****************************************************1.設(shè)備數(shù)據(jù)維護(hù)3.打印設(shè)備數(shù)據(jù)****2.按編號查詢設(shè)備4.退出****************************************************ENDTEXTDOWHILE.T.@6,5CLEAR@6,5SAY"請輸入1~4:"GETxzDEFAULTSPACE(1)READ

DOCASECASExz="1"*DOe1CASExz="2"*DOe2CASExz="3"LISTTOPRINTERPROMPTNOCONSOLECASExz="4"WAIT"系統(tǒng)將關(guān)閉!"WINDOWTIMEOUT3QUITENDCASEENDDOUSE結(jié)構(gòu)化設(shè)計的三種方法⑴自頂向下,逐步求精從整體出發(fā),逐層分解,使復(fù)雜的問題簡單化。⑵模塊化將系統(tǒng)分解為若干功能相關(guān)而又相對獨立的模塊。⑶層次化系統(tǒng)按層次結(jié)構(gòu)布局,即以樹型結(jié)構(gòu)來組織系統(tǒng)的全部模塊。圖4-9應(yīng)用系統(tǒng)的層次結(jié)構(gòu)4.4窗口設(shè)計樣例4.4.1瀏覽窗口的定制

VFP準(zhǔn)許用戶按照自己的需要配置瀏覽窗口的功能。一、BROWSE命令

BROWSE[FIELDS<字段表>][FONT<字符表達(dá)式1>[,<數(shù)值表達(dá)式1>]][STYLE<字符表達(dá)式2>]字體:宋,楷字體大?。?6,20字體形狀:B,I,U見下頁解釋<字段名>[:R][:<數(shù)值表達(dá)式>][:V=<表達(dá)式1>[:F][:E=<字符表達(dá)式1>]]只讀欄寬設(shè)置字段級有效性檢驗[:P=<字符表達(dá)式2>][:B=<表達(dá)式2>,<表達(dá)式3>[:F]][:H=<字符表達(dá)式3>][:W=<邏輯表達(dá)式1>]表達(dá)式1為檢驗條件,光標(biāo)離開字段時檢驗格式碼、掩碼范圍檢查欄目名設(shè)置光標(biāo)進(jìn)入字段驗證條件[FOR<邏輯表達(dá)式>[REST][FREEZE<字段>][LAST][LOCK<數(shù)值表達(dá)式2>][LPARTITION][NAME<對象名>]記錄指針移到首記錄記錄指針保持原位置光標(biāo)只能在指定字段移動保存瀏覽窗口外觀保持某些字段保持顯示光標(biāo)在左分區(qū)第一字段準(zhǔn)許使用表格控件的對象LOCK使瀏覽窗口一分為二,右分區(qū)按常規(guī)顯示左分區(qū)顯示表的前N個字段[NOAPPEND][NODELETE][NOEDIT|NOMODIFY][NOLGRID][NORGRID][NOLINK][NOMENU][NOREFRESH][NORMAL][NOWAIT]不準(zhǔn)許追加記錄不準(zhǔn)許做刪除標(biāo)記不準(zhǔn)許編輯,但準(zhǔn)許刪除和添加刪除左分區(qū)網(wǎng)格線刪除右分區(qū)網(wǎng)格線取消左、右分區(qū)顯示按記錄聯(lián)動使系統(tǒng)菜單不出現(xiàn)表菜單禁止刷新瀏覽窗口用默認(rèn)配置打開瀏覽窗口打開窗口繼續(xù)運行程序[SAVE][TIMEOUT<數(shù)值表達(dá)式3>][TITLE<字符表達(dá)式3>][VALID[:F]<邏輯表達(dá)式2>[ERROR<字符表達(dá)式4>]]保持瀏覽窗口為活動,操作其它窗口后即返回等待輸入時間,超過瀏覽窗口自動關(guān)閉設(shè)置瀏覽窗口標(biāo)題設(shè)置光標(biāo)離開校驗:記錄修改后光標(biāo)離開后計算<邏輯表達(dá)式2>,其值為真準(zhǔn)許光標(biāo)離開;<字符表達(dá)式4>為出錯提示信息[WHEN<邏輯表達(dá)式3>][WIDTH<數(shù)值表達(dá)式4>][WINDOW<窗口名1>][IN[WINDOW]<窗口名2>|INSCREEN]設(shè)置光標(biāo)進(jìn)入校驗:為真準(zhǔn)許修改記錄,否則為只讀瀏覽窗口每個字段寬度,但操作時可變指定一個用戶定義的窗口,瀏覽窗口采用其特性窗口名2指定瀏覽窗口的父窗口,SCREEN表示父窗口為VFP主窗口二、字義功能鍵功能鍵:指鍵盤的單鍵、組全鍵或鼠標(biāo)的按鍵,當(dāng)用戶按下指定鍵后即能實現(xiàn)一定的功能,但按鍵及其功能都須事先設(shè)置。命令格式:

ONKEY[LABEL<鍵標(biāo)號>][<命令>]功能:設(shè)置功能鍵及其功能,包括為鼠標(biāo)按鍵設(shè)置功能。說明:⑴LABEL子句的<鍵標(biāo)號>表示定義功能的按鍵,功能由<命令來實現(xiàn)>。⑵ONKEYLABEL命令執(zhí)行后,若進(jìn)入了某種狀態(tài),則用戶按了指定的功能鍵或鼠標(biāo)鍵就會執(zhí)行所設(shè)置的命令(一般為DO命令)。⑶保存:PUSHKEY

恢復(fù):POPKEY

清除:PUSHKEYCLEAR【例4-23】設(shè)計一個可利用功能鍵為SB.DBF添加記錄、刪除記錄或恢復(fù)記錄的瀏覽窗口。*主程序:定義功能鍵,打開設(shè)備表,設(shè)置窗口標(biāo)題PUSHKEYCLEARONKEYLABELF4DOtjONKEYLABELF5DOschfONKEYLABELF6DOpkbs="BROWSETITLE'設(shè)備表'+'F4:添加F5:刪除/恢復(fù)F6:清除'"USEsb&bs*過程:添加(tj)、刪除/恢復(fù)(schf)、徹底刪除(pk)PROCEDUREtjAPPENDBLANKPROCEDUREschfIFDELETE()RECALLELSEDELETEENDIFPROCEDUREpkPACK&bs【例4-24】將鼠標(biāo)右鍵設(shè)置為功能鍵,使用戶在SB.DBF瀏覽窗口中編輯部門字段時,按下鼠標(biāo)右鍵可出現(xiàn)另一個瀏覽窗口,在其中顯示部門代碼及名稱。CLEARALLPUSHKEYCLEARONKEYLABELrightmouseDOtisSELECT0USEbmdmSELECT0USEsbBROWSETITLE"設(shè)備表"PUSHKEYCLEARPROCEDUREtisIFVARREAD()="部門"SELECTbmdmBROWSETITLE"部門表"NOMODIFY=INKEY(0,"MH")SELECTsbENDIF4.4.2窗口命令函數(shù)一、窗口命令表4-1VFP部分常用窗口命令命令名簡要功能ACTIVATEWINDOW激活指定窗口CLEARWINDOWS關(guān)閉所有用戶自定義窗口DEACTIVATEWINDOW使窗口失效并從

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論