第一篇:vfp命令、語句等說明總結(jié)
VFP命令、函數(shù)及程序語句大全
VFP提供一些簡單的程序設(shè)計語言命令,包括賦值語句、控制語句、設(shè)置命令等,我們可根據(jù)某種功能的需要,利用這些命令及數(shù)據(jù)庫操作的有關(guān)命令構(gòu)成語句,分行存在文件中(稱為命令文件,以. PRG為擴展名,在項目管理器中標(biāo)為“程序”)或一些對象的過程或事件處理程序中。如被調(diào)用,系統(tǒng)將一條條順序執(zhí)行各行命令,如遇到控制語句(IF,DO,CALL,F(xiàn)OR?等),依據(jù)控制語句的指定,轉(zhuǎn)移到指定語句再一條條順序執(zhí)行。
這些命令書寫時,每條語句應(yīng)在一行中寫完,如不能寫完,可用分號“;”結(jié)束,表示下一行繼續(xù)。兩條語句不能寫在一行上。每條語句中命令字及選項中保留字大多數(shù)可只書寫前四個字符。
一般一個簡單的VFP應(yīng)用系統(tǒng)由若干模塊組成,各自完成一定的功能,總的系統(tǒng)用一個總控模塊去控制,通過它調(diào)用子模塊,層層調(diào)用以實現(xiàn)全系統(tǒng)的功能。這種結(jié)構(gòu)如圖5.4所示。這種方式便于設(shè)計、調(diào)試,保證程序的正確性,也容易實現(xiàn)模塊共亭,實現(xiàn)軟件重用,提高程序設(shè)計效率。
主模塊可由主封面表單、主命令文件和主菜單文件構(gòu)成;各個模塊可由過程、自定義函數(shù)、表單、表單集、應(yīng)用程序或子菜單等構(gòu)成。
一個表單或一個表單集中可有一到多個用戶界面,可設(shè)置一到多個命令按鈕及其他程序控件,用戶可利用按鈕及程序控件,產(chǎn)生特定的消息觸發(fā)執(zhí)行一個程序,完成一個功能。應(yīng)用程序是對一個模塊編譯后的. APP執(zhí)行文件,“過程”是由命令組成的程序,以RETURN語句結(jié)束,它可為另一個程序所調(diào)用,調(diào)用執(zhí)行時遇到RETURN語句將返回其調(diào)用程序。
圖 5.4 VFP程序總體結(jié)構(gòu)
一.變量賦值與顯示語句
在項目管理器中選“代碼→程序→新建”或在命令框利用命令MODIFY COMMAND建立命令文件。
1.MODIFY COMMAND
意義:創(chuàng)建命令文件。
命令格式:MODIFY COMMAND 文件名
例如:MODIFY COMMAND PROC1
執(zhí)行此命令后,將進入全屏幕編輯狀態(tài)。如原已建立了該文件proc1,將調(diào)出該文件在屏幕上顯示,用戶可對之修改。如是新文件,則用戶可利用全屏幕編輯鍵,輸入自己的程序。新文件將自動加上擴展名.PRG。
2.DO
意義:執(zhí)行命令文件程序,有三種方法:①在項目管理器中選“代碼→程序→選擇程序名→運行”。②在主菜單中選“程序→運行→輸入(選擇)程序名→運行”。③在程序中或命令窗日中使用DO命令。命令格式:DO 程序名[WITH 表達式表]
程序名可以是上述方式建立的命令文件(.PRG文件)、可執(zhí)行文件(.EXE文件)、應(yīng)用程序(.APP文件),及對.PRG文件編譯后的文件(.FXP文件)。如調(diào)用DO命令時不帶擴展名,則按.EXE文件、.APP文件、.FXP文件、.PRG文件的順序查找同名程序并執(zhí)行之。
例如:DO PROC1
此外,程序名還可能是菜單程序,調(diào)用時必須帶擴展名(.MPR)。例如,有菜單程序MAIN.MPR,則可如下調(diào)出執(zhí)行:
DO MAIN.MPR
程序名還可以是事件名或過程名。
其中表達式表由多個表達式組成,用逗號分開,在執(zhí)行時首先計算各表達式的值,并帶入被調(diào)程序,被調(diào)程序第一句應(yīng)是LPARAMETERS形參表語句,形參表是以逗號分隔的多個內(nèi)存變量名,其個數(shù)應(yīng)等于調(diào)用時的表達式的個數(shù),執(zhí)行時,首先用調(diào)用語句中各表達式的值對應(yīng)給它們賦值。
例如:主程序中:DO PROC1 WITH “AB”,21
被調(diào)程序:LPARAMETERS M1,X0
執(zhí)行時,首先完成賦值:M1=“AB”;X0=21,再往下執(zhí)行。
當(dāng)使用DO運行一個程序時,包含在其中的命令一直執(zhí)行,直到下列某一事件發(fā)生。遇到RETURN語句,返回到調(diào)用程序DO命令的下一句,遇到了CANCEL命令,返回VFP命令狀態(tài)。遇到QUIT命令退出程序并退出VFP;到達文件尾回到調(diào)用前狀態(tài);再遇到另一個DO命令,將轉(zhuǎn)人新程序執(zhí)行。
3.PUBLIC
意義:設(shè)置全局性內(nèi)存變量命令。
格式:PUBLIC 變量名1[,變量名2]?
在不同程序或過程或事件中,同名內(nèi)存變量的值不一定相同,如要將一個程序(過程、事件)中變量的值傳到另一程序(過程、事件)中,可應(yīng)用上述命令將它定義成全局變量。
4.PRIVATE
意義:設(shè)置局部變量的命令。
格式:PRIVATE[ALL[LIKE∣EXCEPT 通配符]∣內(nèi)存變量表]
其中選項意義:ALL將所有內(nèi)存變量說明為局部性變量,ALL[LIKE∣EXCEPT 通配符]將變量名能與通配符相匹配的內(nèi)存變量說明為局部性變量?!癆LL EXCEPT通配符”將除了能與通配符相匹配的變量名之外的內(nèi)存變量說明為局部性變量。在程序中,為了一個程序的運行結(jié)果不影響另一個程序的執(zhí)行,不希望同名變量將值從一個程序帶到另一個程序而造成干擾。為此,可將該變量定義成局部性變量。
5.DIMENSION
意義:定義內(nèi)存變量數(shù)組命令,VFP中可定義一維或二維數(shù)組。
格式:DIMENSION 數(shù)組名(數(shù)字表達式1[,數(shù)字表達式2])[,數(shù)組名2(數(shù)字表達式1[,數(shù)字表達式2])]?
每個數(shù)組的每個元素都可單獨使用,如同一個內(nèi)存變量,稱為下標(biāo)變量,下標(biāo)起始值為1。
例如,DIMENSION ARRAY1(8,20),X1(30)定義了兩個數(shù)組,數(shù)組名分別為ARRAY1和X1,前一個數(shù)組共有20×8=160個元素:ARRAY1(l,l)、ARRAY1(l,2)?? ARRAY1(l,20),ARRAY1(2,1)?ARRAY1(8,20)。對各元素也可用單下標(biāo)取用其值,如用ARRAY1(l),ARRAY1(2)?ARRAY1(160)也可訪問該數(shù)組各元素,與前面雙下標(biāo)表示形式一一對應(yīng)。
6.PUBLIC ARRAY
意義:定義全局性內(nèi)存變量數(shù)組。
格式:PUBLIC ARRAY 數(shù)組名(數(shù)字表達式1[,數(shù)字表達式2])[,數(shù)組名2(數(shù)字表達式1[,數(shù)字表達式2])]?
7.=
意義:賦值語句。
將表達式的值賦值給一個內(nèi)存變量。對變量賦值后,該變量類型也即確定為表達式返回值的類型。對一個變量可重復(fù)賦值,也可改變變量的類型。但為了保證程序的清晰和結(jié)構(gòu)完整,建議在一個系統(tǒng)中每個變量名應(yīng)有確定的意義和數(shù)據(jù)類型。
8.STORE
意義:同時對多個變量賦值命令。
格式:STORE 表達式 TO變量1[,變量2]?
在程序運行時常要求用戶輸入控制參數(shù)或數(shù)據(jù),實現(xiàn)此功能語句我們稱為人機對話語句。在程序中如插入人機對話語句,用戶可借助鍵盤輸入?yún)?shù)或控制量賦值給變量??刂瞥绦蜃呦?,或用于不同數(shù)據(jù)處理。在程序執(zhí)行到這類語句時,將停止運行,在屏幕上顯示命令中附注的提示信息,同時等待用戶從鍵盤輸入數(shù)據(jù),賦給所指定的變量。完成賦值之后再接著運行下一條語句。在VFP中這類語句可在主控程序中或在調(diào)試程序時使用,在表單程序中使用文本框等各種控件及消息框代替它們。
9.INPUT
意義:輸入各種類型數(shù)據(jù)賦給內(nèi)存變量
格式:INPUT “提示信息” TO 內(nèi)存變量名
本命令允許輸入字符類型、數(shù)值類型、日期類型、邏輯類型等不同類型的數(shù)據(jù),要求輸入數(shù)據(jù)是字符類型時,數(shù)據(jù)兩端要加定界符,例“張平”;輸入數(shù)據(jù)是日期類型時,要按{MM/DD/YY}或設(shè)定的格式,例{12/21/00};邏輯類型按.T.、.F.格式。
用戶輸入還可以是包括變量名及函數(shù)在內(nèi)的表達式,但變量必須是己賦值的,表達式是可以計算出確定值的。用戶輸入完后回車表示輸入結(jié)束。
例:INPUT“請輸入初始日期:” TO D1
屏幕上顯示:“請輸入初始日期:”,光標(biāo)在此句之后。用戶可輸入{05/10/96}。
此時用戶如果執(zhí)行命令:?D1
屏幕上將顯示:05/10/96
10.ACCEPT
意義:輸入字符串賦給變量。
格式:ACCEPT[“提示內(nèi)容”]TO內(nèi)存變量名
該命令和INPUT命令區(qū)別有兩點:
.輸入數(shù)據(jù)均被視為字符類型。
.輸入數(shù)據(jù)兩端不需加定界符,如加了定界符,定界符被視作字符串的一部分。
11.WAIT
意義:接收單個字符賦給變量,或中斷程序,按任意鍵后繼續(xù)。
格式:WAIT [“提示信息”] TO 內(nèi)存變量名
該命令與ACCEPT命令不同點在于只接收從鍵盤輸入的一個字符,用戶輸入一個字符后無須回車。該命令也可用在VFP表單程序的某個事件中,用于中斷該事件的執(zhí)行,讓屏幕顯示程序運行的中間結(jié)果,按某個鍵或單擊鼠標(biāo)后再繼續(xù)執(zhí)行。
12.GET
意義:格式化輸入數(shù)據(jù),給內(nèi)存變量賦值或修改表中當(dāng)前記錄字段內(nèi)容。
格式:@ 行號,列號 GET 內(nèi)存變量名或字段名
[FUNCTION功能代碼][PICTURE格式代碼][DEFAULT表達式][MESSAGE提示信息]
[RANGE輸入值范圍下限,輸入值范圍上限][SIZE文本框高度,文本框?qū)挾萞[VALID 條件表達式]
該命令可用于對內(nèi)存變量賦值,也可用于修改當(dāng)前打開表中當(dāng)前記錄中指定字段的內(nèi)容。如對內(nèi)存變量賦值且省略DEFAULT選項,在使用此語句時,必須已對該內(nèi)存變量賦值。否則按此選項中表達式對內(nèi)存變量初始化。
本命令執(zhí)行后只顯示內(nèi)存變量或字段當(dāng)前值,要到執(zhí)行命令“READ”時,此語句方被激活,程序停止執(zhí)行,等待用戶從鍵盤輸入數(shù)據(jù),直待回車后才繼續(xù)執(zhí)行。行號、列號為當(dāng)前窗口中字符行和列的位置號。行號與列號允許是小數(shù)。FUNCTION選項用于對輸入內(nèi)容限制或變化。功能代碼:
A:只允許輸入內(nèi)容由字母字符組成,包括不允許空格和標(biāo)點符號。
B:數(shù)值數(shù)據(jù)左對齊,默認格式為右對齊。
I:文本居中對齊。
J:文本右對齊,默認為左對齊。
Sn:限定文本框中字符個數(shù)為n。如S20。
T:去掉前導(dǎo)和后綴空格。
Z:當(dāng)數(shù)值數(shù)據(jù)值為0時顯示空格。
!:把字母字符轉(zhuǎn)換為大寫。
PICTURE選項用于限定輸入數(shù)據(jù)的字符類型及大小。功能代碼例:
A:該位為字母或數(shù)字
L:只允許邏輯數(shù)據(jù)。
N:該位為字符或數(shù)字。
X:任何字符。
I:該位為數(shù)字,或數(shù)值數(shù)據(jù)中的符號。
-:標(biāo)明小數(shù)點位置。,:用逗號分隔左右數(shù)字。
!:將小寫字母轉(zhuǎn)換為大寫字符。
例:@3,10 GET x1 DEFAULT 0 PICTURE“9999.99”
此時在屏幕第3行的第10列位置顯示方框,其中內(nèi)容為DEFAULT規(guī)定的初始值0.00,如再發(fā)出命令:READ,將光標(biāo)落在尚未激活的第一個方框上等待輸入,只能輸入數(shù)字和符號,且整數(shù)部分不多于4位,小數(shù)部分不多于2位,否則將提示“請您重新輸入”。
RANGE、VALID兩個選項用于保證數(shù)據(jù)完整性,輸入數(shù)據(jù)必須在預(yù)定范圍內(nèi),滿足條件表達式要求時,才可完成賦值操作。本語句還有設(shè)置字體、字形和顏色的選項。
在VFP中,綜合上述人機交互命令尤其是@? GET命令的功能和特性,設(shè)計了文本框、編輯框等類和控件,便之應(yīng)用更加方便、簡單,我們將在下一章中介紹。
程序運行結(jié)果一般由輸出語句使其顯示在屏幕上或輸出到其他地方,輸出語句可將數(shù)據(jù)輸出到屏幕上顯示也可傳送給打印機或傳送存入到其他文件中。屏幕顯示語句在VFP中一般用在主控程序或調(diào)試程序時使用。在表單程序中使用各種控件、消息框代替它們。
13.?|??
意義:計算<表達式表>所指定的各表達式的值,并顯示在屏幕上。
格式:?表達式1[,表達式2]?
用?時,從下一行第一列起顯示結(jié)果。用??時,從當(dāng)前行當(dāng)前列起顯示結(jié)果。
14.SAY
意義:格式化輸出語句。
格式:@行號,列號 SAY表達式[FUNCTION功能代碼] [PICTURE格式代碼][SIZE高度,寬度]
有關(guān)選項的意義與@?GET命令相似,此外還有關(guān)于字體,顏色設(shè)置的選項。若發(fā)出有SET DEVICE TO PRINTER命令,輸出到打印機,否則輸出至屏幕上顯示。
本語句常與@? GET語句合用,合用時,行號、列號指SAY內(nèi)容顯示所在行、列號,GET變量內(nèi)容框?qū)⒎胖迷赟AY內(nèi)容之后。二.程序控制命令
1.IF?ENDIF命令
意義:分支條件語句,根據(jù)邏輯表達式的值,有選擇的執(zhí)行一組命令。根據(jù)條件表達式的值是.T.還是.F.控制程序流向。
格式:
IF 條件表達式
語句序列1
[ELSE
語句序列2]
ENDIF
IF條件表達式語句是條件語句的開始,ENDIF語句是條件語句的終止。語句序列是若干條順序執(zhí)行的語句。執(zhí)行時首先計算條件表達式的值,如結(jié)果為“真”(.T.)則執(zhí)行語句序列l(wèi),執(zhí)行完后退出該語句。如條件表達式不滿足,且有ELSE語句和語句序列2,則執(zhí)行語句序列2。其程序流程圖如圖5.5所示。
圖5.5 分支結(jié)構(gòu)程序流程圖
圖5.6 主控模塊程序流程圖
在一個分支控制語句塊中可以嵌套另一個IF?ENDIF語句塊?!纠?.7】主控模塊的程序
程序流程圖如圖5.6所示。編寫程序清單如下: CLEAR &&清屏幕
@ 5,27 SAY “設(shè)備管理系統(tǒng)” @ 7,36 SAY “主菜單”
@10,21 PROMPT “1.各種查詢、屏幕修改”+SPAC(16)@11,21 PROMPT “2.數(shù)據(jù)編輯”+SPAC(26)@12,21 PROMPT “3.資產(chǎn)統(tǒng)計”+SPAC(26)@13,21 PROMPT “4.報表打印”+SPAC(26)@14,21 PROMPT “5.系統(tǒng)維護”+SPAC(26)MENU TO m_choic &&等待用戶輸入
IF LASTKEY()=27 &&按Esc鍵返回VFP
RETURN ENDIF
IF m_choic=1
DO sbcx_sc.spr
ELSE
IF m_choic=2
DO sjbj_sc.spr
ELSE
IF m_choic=3
DO zctj_sc.spr
ELSE
IF m_choic=4
DO bbdy_sc.spr
ELSE
IF m_choic=5
DO xtwh_pg
ENDIF
ENDIF
ENDIF
ENDIF ENDIF RETURN
2.CASE
意義:分情況語句,當(dāng)求解一個問題存在多種情況,如要求對不同選擇執(zhí)行不同的語句序列,可采用分情況語句。該語句一句中列出許多語句成分,每個語句成分給出一個條件表達式,每次只根據(jù)具體條件找出第一個條件表達式值為.T.的語句成分,執(zhí)行該成分語句中的語句序列后退出該語句。
命令格式:
DO CASE
CASE條件表達式1
語句序列1
CASE條件表達式2
語句序列2
?
CASE條件表達式n
語句序列n
[OTHERWISE
語句序列n+1]
END CASE
執(zhí)行該語句時,系統(tǒng)逐一計算條件表達式1的值,條件表達式2的值?只要有一個條件表達式的值為.T.則執(zhí)行其后語句序列,執(zhí)行它后退出本分情況語句。
如到條件表達式n的值仍均為.F.又有OTHERWISE成分,則執(zhí)行語句序列n+l,其程序流程圖如圖5.7所示。
仍如上面主控程序的例子,程序可設(shè)計為:
CLEAR &&清屏幕
@ 5,27 SAY “設(shè)備管理系統(tǒng)”
@ 7,36 SAY “主菜單”
@10,21 PROMPT “1.各種查詢、屏幕修改”+SPAC(16)
@11,21 PROMPT “2.數(shù)據(jù)編輯”+SPAC(26)
@12,21 PROMPT “3.資產(chǎn)統(tǒng)計”+SPAC(26)
@13,21 PROMPT “4.明細報表打印”+SPAC(22)@14,21 PROMPT “5.系統(tǒng)維護”+SPAC(26)MENU TO m_choic &&等待用戶輸入
IF LASTKEY()=27 &&按Esc鍵返回VFP
RETURN ENDIF
DO CASE
CASE m_choic=1
DO sbcx_sc.spr
CASE m_choic=2
DO sjbj_sc.spr
CASE m_choic=3
DO zctj_sc.spr
CASE m_choic=4
DO bbdy_sc.spr
CASE m_choic=5
DO xtwh_pg
ENDCASE
RETURN
圖5.7 CASE結(jié)構(gòu)程序流程圖
從上面兩段程序可見,對于同一個問題,用DO CASE ?ENDCASE 語句比IF?ENDIF語句要簡潔了并且邏輯關(guān)系清晰,因此不容易出錯。在分情況語句中也可嵌入分支條件語句及分情況。它本身也可嵌入到分支條件語句中去使用。
在對數(shù)據(jù)表中數(shù)據(jù)時,常常每條記錄被處理的過程是一樣的,處理語句也就大體相同,如果表中有多少記錄就寫多少條語句是十分困難的,為避免重復(fù)書寫,可使用循環(huán)。
3.DO WHILE?.ENDDO
意義:循環(huán)語句,可使多次重復(fù)執(zhí)行同一組語句。格式:
DO WHILE條件表達式
語句序列
[LOOP]
[EXIT]
ENDDO
其中“DO WHILE條件表達式”語句稱為循環(huán)起始語句,“ENDDO”語句稱為循環(huán)結(jié)束語句,進入此命令時首先檢查條件表達式的值是否為真(.T.)。如果是真,則執(zhí)行語句序列,然后再判斷條件表達式的結(jié)果,如仍為真,則繼續(xù)下去。如果為假(.F.)則退出循環(huán),執(zhí)行ENDDO后面的語句。如果進入本命令一開始,條件表達式的值為假,則語句序列一次也不執(zhí)行,就直接轉(zhuǎn)入執(zhí)行ENDDO后面的語句。其中LOOP意義為結(jié)束本次循環(huán),返回循環(huán)體開始。EXIT意義為結(jié)束循環(huán),轉(zhuǎn)入執(zhí)行ENDDO后面的語句。
LOOP語句和EXIT語句一般用在分支條件語句中,因而語句格式為:
DO WHILE 條件表達式1
語句序列1
[IF條件表達式2
LOOP
ELSE
語句序列2
ENDIF]
[IF條件表達式3
EXIT
ELSE
語句序列3
ENDIF]
ENDDO
其程序流程圖如圖5.8所示。
在使用時必須保證經(jīng)有限次循環(huán)后條件表達式1應(yīng)變?yōu)榧倩驐l件表達式3的值應(yīng)變?yōu)檎?,使退出循環(huán)。否則就可能成為死循環(huán)。在條件表達式中的變量稱循環(huán)變量,在數(shù)據(jù)庫中循環(huán)變量可能是內(nèi)存變量,也可能是表中的指針。必須注意在每次循環(huán)過后,循環(huán)變量的值都要改變并且是向最終使條件表達式1的值為假或條件表達式3的值變真的方向變化,否則就無法滿足前述退出條件。在VFP中有兩類特殊用法。
(1)循環(huán)變量是指針。該用法中有兩種結(jié)構(gòu)①指針首先指向第一條的DO WHILE結(jié)構(gòu)如圖5.9所示。②指向滿足條件記錄的第一條的DO WHILE結(jié)構(gòu)如圖5.10所示。
圖5.8 DO WHILE?ENDDO結(jié)構(gòu)程序流程圖
圖5.9 指針做循環(huán)變量開始指向第一條時的DO WHILE結(jié)構(gòu)流程圖
圖5.10 指針做循環(huán)變量開始指向滿足條件記錄的第一條時 的DO WHILE結(jié)構(gòu)流程圖
格式1:圖5.9實現(xiàn)的語句。
USE(表名)
SELECT工作區(qū)別名
GO TOP
DO WHILE NOT EOF()
語句序列
SKIP
ENDDO
在本格式中,循環(huán)變量是表中指針,首先讓指針指向表的第一條記錄,如果不是文件尾,則執(zhí)行語句序列之后讓指針下移一條,再返回判斷指針是否指向文件尾。這樣一直繼續(xù)下去直到指針指到最后一條記錄的后面,循環(huán)結(jié)束。
【例5.8】在學(xué)生表中有少數(shù)學(xué)生更換了班級,現(xiàn)要求在屏幕上一屏一屏地顯示每個學(xué)生的數(shù)據(jù),并提問是否修改班級名稱,如回答“Y”,則提供修改框。
SET TALK OFF
USE學(xué)生
KEY=“Y”
GO TOP
DO WHILE NOT EOF()
@3,10 SAY“姓名:”+姓名
@5,10 SAY“班級:”+班級
@7,10 SAY“出生日期:”+DTOC(出生日期)
@9,10 SAY“是否修改,Y/N?’GET KEY
READ
IF UPPER(KEY)=“Y”
@11,10 SAY“請輸入改后班級名稱” GET 班級
READ
ENDIF
SKIP
ENDDO
USE
SET TALK ON
格式2:如果只按某個條件查看記錄,則可用查找語句開始。圖5.10實現(xiàn)語句:
LOCATE FOR條件表達式
DO WHILE NOT EOF()
語句序列
CONTINUE
ENDDO
例5.8中如只查99級學(xué)生,顯示其姓名則:
LOCATE FOR “99”$班級
DO WHILE NOT EOF()
?姓名
CONTINUE
ENDDO
(2)當(dāng)于DO UNTIL的循環(huán)結(jié)構(gòu)。
有些循環(huán)要在執(zhí)行部分語句之后再根據(jù)一個條件表達式判斷是否結(jié)束,此時循環(huán)條件可用常量.T.,見圖5.11所示。
圖5.11 DO UNTIL結(jié)構(gòu)程序流程圖
語句格式: DO WHILE.T.語句序列
IF 條件表達式
EXIT ENDIF
ENDDO
【例5.9】求編寫學(xué)生表錄入新數(shù)據(jù)的程序,每次錄入一條記錄,之后提問是否繼續(xù),如回答不是“Y”,就停止錄入。
SET TALK OFF
USE 學(xué)生
KEY=“ ”
DO WHILE.T.APPEND BLANK
@3,10 SAY“姓名:” GET 姓名
@5,10 SAY“班級:” GET 班級
@7,10 SAY“出生日期:”GET 出生日期
READ
@9,10 SAY“否繼續(xù)?Y/N?” GET KEY
READ
IF UPPER(KEY)<>“Y”
EXIT
ENDIF
ENDDO
USE
SET TALK ON
此語句由用戶輸入Y或N控制程序結(jié)束。
上述第一、二兩種格式可以用等價的SCAN循環(huán)取代。
4.SCAN?ENDSCAN循環(huán)語句
意義:在數(shù)據(jù)表中循環(huán)檢查或處理一條條記錄。
命令格式一:
SCAN
語句序列
ENDSCAN
此句等價于前述格式1的語句。
命令格式二:
SCAN FOR條件表達式
語句序列
ENDSCAN
本語序等價于前述格式2的語句。有一些循環(huán)次數(shù)是一定的,或者循環(huán)變量的值在每次循環(huán)中增加的量是相同的,則可應(yīng)用FOR循環(huán)。
5.FOR?ENDFOR循環(huán)語句
命令格式:
FOR內(nèi)存變量=初始值 TO 終了值[STEP 增量]
語句序列
ENDFOR
此循環(huán)以某個內(nèi)存變量為循環(huán)變量,進入循環(huán)時首先給它賦初始數(shù)值,只要不超過終了值,則執(zhí)行語句序列。STEP語句為可選項,指示在每次循環(huán)后循環(huán)變量的增加量。前面執(zhí)行語句序列之后,將循環(huán)變量值增加增量的值,再判斷是否超過終了值,這樣繼續(xù)下去直到超過終了值。增量可為正值也可為負值,省略時默認值是1。如增量為正,則當(dāng)循環(huán)變量大于終了值時,循環(huán)結(jié)柬。如增量為負,則每循環(huán)一次,循環(huán)變量均減小,減少到小于終了值時循環(huán)結(jié)束。
例5.8中修改班級名的程序也可寫為:
SET TALK OFF
USE 學(xué)生
KEY=“ ”
N=RECCOUNT()&&記錄總條數(shù)
FOR I=1 TO N
@3,10 SAY“姓名:”十姓名
@5,10 SAY“班級:”十班級
@7,10 SAY“出生日期:”+DTOC(出生日期)
@
9、10 SAY“是否修改班級名,Y/N?” GET KEY
READ
IF UPPER(KEY)=“Y”
@11,10 SAY“請輸入改后班級名稱” GET 班級
READ
ENDIF
ENDFOR
USE
SET TALK ON
使用相對指針,如果打開索引,或某些錄入、修改、查詢操作使當(dāng)前指針位置改變都可能引起錯誤。不如本例中采用物理地址,比較可靠。
【例5.10】要求輸入N個學(xué)生的總分X,按總分分成優(yōu)、良、及格、不及格四個等級,統(tǒng)計每個等級的人數(shù)。等級劃分標(biāo)準(zhǔn)為:90-100分為優(yōu),75-89分為良,60-74分為及格,59分及以下為不及格。
SET TALK OFF
DIMENSION M(4)&&定義數(shù)組
STORE 0 TO M&&M所有元素初值設(shè)為0
x=0
INPUT“學(xué)生人數(shù) N=?” TO N&&計數(shù)循環(huán)
FOR I=1 TO N
?“請輸入第”,I,“人的成績”
@ROW(),20 SAY “X=?” GET X
READ
DO CASE
CASE x>=90
M(l)=M(1)+1&&統(tǒng)計優(yōu)秀生人數(shù)
CASE x>=75
M(2)=M(2)+1
CASE x>=60
M(3)=M(3)+l
CASE x<60 AND x>=0
M(4)=M(4)+1
OTHERWISE
?“輸入數(shù)據(jù)有錯,請重輸”
I=I-1
ENDCASE
ENDFOR
?“優(yōu)、良、及格、不及格人數(shù)各為”,M(1),M(2),M(3),M(4)SET TALK ON
【例5.11】設(shè)有商品表,結(jié)構(gòu)為商品(商品代碼,品名,單價,數(shù)量,金額),欲對其中部分商品調(diào)動單價,為此建立一個調(diào)價表,其結(jié)構(gòu)為調(diào)價(商品代碼,原單價,新單價),編寫程序用調(diào)價表中新單價數(shù)據(jù)修改商品表中單價與金額。
SET TALK OFF
SELE 1
USE商品
SELE 2
USE 調(diào)價
SCAN
代碼1=商品代碼
SELE 1
LOCATE FOR商品代碼=代碼1
IF NOT EOF()
REPL 單價 WITH 調(diào)價.新單價、金額 WITH 單價*數(shù)量
ENDIF
SELE 2
ENDSCAN
CLOSE ALL
SET TALK ON
本例中設(shè)置二個工作區(qū),分別打開二個表,首先在工作區(qū)2上利用SCAN循環(huán)遍歷調(diào)價所有記錄,對每一記錄在商品表中查找有無商品代碼標(biāo)識相同的記錄,如有,則用新單價更新原單價,并修改金額。由于在非當(dāng)前工作區(qū)中不能移動指針,不能查詢,不能修改數(shù)據(jù),因而在轉(zhuǎn)到商品表中查詢之前要將商品表所在工作區(qū)1設(shè)為當(dāng)前工作區(qū),更新以后又轉(zhuǎn)到工作區(qū)2將調(diào)價表中指針指向下一條,再準(zhǔn)備按第二個品種調(diào)價。
在當(dāng)前工作區(qū)中可讀取非當(dāng)前工作區(qū)中數(shù)據(jù),如本例中用 “調(diào)價.單價”這樣的格式從工作區(qū)2的調(diào)價表中讀取其中指針?biāo)赣涗浀膯蝺r,這種方式稱為聯(lián)訪。如此對多個數(shù)據(jù)表操作十分麻煩,可采用預(yù)先建立關(guān)聯(lián)的辦法,在一個表中移動指針時,第二個表中指針按關(guān)鍵字保持一致的方式跟著移動。
三.其他常用命令
1.SET RELATION
意義:將當(dāng)前數(shù)據(jù)庫和“別名”工作區(qū)中的表文件關(guān)聯(lián)在一起,當(dāng)前表文件稱為主動表文件,“別名”工作區(qū)中的表文件稱為被關(guān)聯(lián)表文件,每當(dāng)主動表文件中指針移動時,被關(guān)聯(lián)表文件中指針也相應(yīng)移動。
命令格式:SET RELATION TO 字段名 INTO 別名[ADDITIVE]
命令中選用的“字段名”必須同時包含在兩個表文件中,且被關(guān)聯(lián)表必須以該字段建立索引文件并打開為主索引文件。每當(dāng)主動表文件中記錄指針移動時,被關(guān)聯(lián)表中記錄指針根據(jù)主索引文件指引指向與之相匹配(索引字段值等于主動表當(dāng)前記錄該字段的值)的第一條記錄。若找不到匹配記錄,則指針將指向文件尾,EOF()為真(.T.)
如命令無ADDITIVE選項,在建立關(guān)聯(lián)時將取消當(dāng)前數(shù)據(jù)庫與其他數(shù)據(jù)庫的任何關(guān)聯(lián),僅保留一個新關(guān)聯(lián)。而選了此選項,則原有關(guān)聯(lián)均保留,增加一個新關(guān)聯(lián)。
要注意的是,如果對應(yīng)主動表中某記錄在被關(guān)聯(lián)表中找不到匹配記錄時,主動表中數(shù)據(jù)被改為0。例5.11中如果調(diào)價表中商品包括商品表中全部商品,利用此命令程序可修改為:
USE 調(diào)價&&第一個打開表默認置于1號工作區(qū)
INDEX ON 商品代碼 TO INDEX1
SELECT 2
USE 商品
SET RELATION TO 商品代碼 INTO 調(diào)價
SCAN
REPLACE 單價 WITH 調(diào)價.新單價,金額 WITH 單價*數(shù)量
ENDSCAN
本例中關(guān)于被關(guān)聯(lián)表中字段名也可用“區(qū)號.字段名”形式對之訪問。
不過使用本程序要求兩表中內(nèi)容必須匹配,例如例5.11中如商品只有部分調(diào)價,在調(diào)價表中只有商品表中部分商品,那么該程序?qū)⑹股唐繁碇胁徽{(diào)價商品單價均變?yōu)?。
一般在涉及利用一個表數(shù)據(jù)修改另一個表數(shù)據(jù)時,我們以采用SQL語言中修改命令UPDATE比較好。也可采用全聯(lián)結(jié)視圖再對之操作?!?/p>
2.RUN
意義:在VFP環(huán)境中調(diào)用DOS命令。·
命令格式:RUN DOS命令或!DOS命令
3.LOAD命令
意義:把匯編或C語言編寫并編譯的二進制文件調(diào)入內(nèi)存命令。
命令格式:LOAD 二進制文件名
4.CALL命令
意義:執(zhí)行由LOAD裝入內(nèi)存的二進制代碼文件命令。命令格式:CALL 文件名[WITH 字符表達式/內(nèi)存變量] 其中WITH選項用于向調(diào)用程序傳遞參數(shù)。
5.ON ERROR
意義:當(dāng)出現(xiàn)錯誤時執(zhí)行的命令。
命令格式:ON ERROR 命令
其中命令可為任何VFP語句。在程序調(diào)試過程中,可在程序中加入此命令,并設(shè)計命令處理程序,在其中可加入顯示ERROR(),MESSAGE(),LINENO()和PROGRAM()的語句,將錯誤代碼、錯誤消息、錯誤行號及程序名稱顯示出來,以幫助發(fā)現(xiàn)錯誤所在,方便糾正錯誤。在應(yīng)用程序中,有時可能出現(xiàn)一些不影響最終結(jié)果的錯誤,我們也可在程序中加入這類錯誤陷阱,所指定的命令可以是一條無效語句,不讓錯誤影響程序運行。
【例5.12】程序出錯時的處理程序及調(diào)用方法 主程序:
*---Set system enviroment------
clos data
clea
on erro do showerro with prog(),lineno(),erro(),mess()&&調(diào)用出錯程序showerro
語句序列
程序出錯時的處理程序:
para m_prog,m_line,m_num,m_mess&&傳遞參數(shù)
priv m_odcons&&定義局部變量
m_odcons=set('cons')
set cons off
defi wind erro_win from 0,0 to 14,49;
titl ' 系統(tǒng)錯誤 ';
colo gr+/b;
shad doub;
in desktop
move wind erro_win cent
acti wind erro_win
@1,4 say ' 錯誤警告' colo gr+/b
@3,8 say '當(dāng)前程序無法繼續(xù),按<確定>將返回主調(diào)!' colo w+/b
@4,4 say '程序建議:稍后再試或與軟件供應(yīng)商聯(lián)系.' colo w+/b
@6,4 say '出錯程序:'+m_prog colo w+/b
@7,4 say '出 錯 行:'+allt(str(m_line))colo w+/b
@8,4 say '錯誤代碼:'+allt(str(m_num))colo w+/b
@9,4 say '錯誤內(nèi)容:'+iif(len(m_mess)<=28,m_mess,subs(m_mess,1,28)+'...')colo w+/b
@2,3 to 2,wcol()-4 colo w/b
@5,3 to 10,wcol()-4 colo w/b
=opendbf('errosave','errosave','shar')&&存放錯誤情況
inse into;
dbferrosave(errodate,errotime,erroprog,erroline,errocode,erromess);
valu(date(),time(),m_prog,m_line,m_num,m_mess)
use in errosave
m_readkey=20
m_cnt=1
do while m_readkey=20
if mod(m_cnt,2)=0
@1,6 say ' 錯誤警告' colo b/b
else
@1,6 say ' 錯誤警告' colo gr+/b
endi
@wrow()-2,wcol()/2-2 get mb_isee func '*th 確定' defa 1 &&colo sche 13
read cycl modal time 0.4
m_readkey=readkey()
m_cnt=m_cnt+1
endd
set cons &m_odcons
clea wind
close data
clea
retu to master&&返回主程序
6.顯示文件目錄命令
格式:DIR [<驅(qū)動器>][<路徑>][<文件名>] 功能:顯示指定的磁盤驅(qū)動器上的文件名
說明:<文件名>中可帶通配符;命令中不指定文件名,則僅僅顯示指定目錄下的數(shù)據(jù)表文件名。7.清屏命令CLEAR 格式:CLEAR 功能:清除屏幕 8.總清命令CLEAR ALL 格式:CLEAR ALL 功能:關(guān)閉所有打開的數(shù)據(jù)表文件、索引文件和其他各種文件,清除已有的內(nèi)存變量 9.SET TALK ON/OFF
四.程序設(shè)計基礎(chǔ)
程序的概念
命令執(zhí)行方式:通過命令菜單或直接在命令窗口輸命令來執(zhí)行,執(zhí)行的結(jié)果顯示在屏幕上。程序執(zhí)行方式:以程序的方式來執(zhí)行。
程序是能夠完成一定任務(wù)的命令的有序集合,這組命令存放在程序文件(*.prg)中,執(zhí)行程序時,系統(tǒng)按一定的次序自動執(zhí)行包含在程序文件中的命令。
程序的特點
可以利用編輯器,方便地輸入、修改和保存程序??梢岳枚喾N方式、多次運行程序??梢栽谝粋€程序中調(diào)用另一個程序。
程序的基本要求
正確性,能實現(xiàn)算法的各個步驟,邏輯上正確,對輸入產(chǎn)生的錯誤有檢測措施。通用性,不能只解決一個問題,還考慮解決一類問題。高效率性,編寫執(zhí)行時間短,占用存儲空間少的程序??删S護性,程序應(yīng)易讀、易懂、易修改。安全性,必須確保安全、可靠。
程序文件的建立
在項目管理器中和菜單中建立
用命令方式:modify command <文件名>
程序的執(zhí)行
從“ 程序” 菜單中選擇“ 運行” 命令方式:do < 文件名> <文件名>中如果沒有指定擴展名,系統(tǒng)將按下列順序?qū)ふ页绦蛭募?zhí)行:.exe-->.app(應(yīng)用程序)-->.fxp(編譯程序)-->.prg
當(dāng)程序文件被執(zhí)行時,文件中包含的命令將被依次執(zhí)行,直到所有的命令被執(zhí)行完畢中,或者執(zhí)行到以下命令:
cancel(終止程序執(zhí)行,返回命令窗口)do(轉(zhuǎn)去執(zhí)行另一個程序)return(結(jié)束當(dāng)前程序,返回到上級程序,若無上級程序則返回到命令窗口)quit(退出VFP 系統(tǒng),返回到操作系統(tǒng))
程序結(jié)構(gòu)
(1)每個程序都必須有1個文件名,文件名由字符、數(shù)字或下劃線組成,第一個字符必須是字母或漢字,程序擴展名為.PRG(2)程序由若干行數(shù)據(jù)庫命令組成,每行最多寫2048個字符,1行只能寫1條命令,若把一個命令寫成若干行,需在該命令的第1行及中間各行的行尾寫“;”號,但最后一行不寫。(3)注釋行由“*”開頭,用以說明程序的名稱、功能及其他需要說明的問題,“*”是注釋命令,是非執(zhí)行語句,可以寫在程序任一位置。
(4)以“set”開頭的命令為環(huán)境設(shè)置命令,一般出現(xiàn)在可執(zhí)行語句的前面。(5)每行程序的后部可以寫由“&&”號引導(dǎo)的注釋。(6)“return”命令是返回命令,表示程序結(jié)束。
編寫程序的步驟
舉例:編寫一個簡單的程序:給出一個整數(shù),判斷是奇數(shù)還是偶數(shù)。(1)分析任務(wù),確定方法;(2)分解任務(wù),描述算法;(3)編寫程序,認真檢查;(4)上機調(diào)試,糾正錯誤
流程圖
流程圖符號的使用規(guī)則: 流程線的方向是從左到右,自上而下,非標(biāo)準(zhǔn)流向的流程線要用箭頭表示。流程線就盡量避免交叉。
流程圖符號內(nèi)的文字一律從左到右,自上而下書寫。流程圖符號的注釋應(yīng)寫在符號右側(cè)。
出入口處的連接符應(yīng)使用相同名稱,表示把它們連接起來。
子程序、過程和自定義函數(shù)
模塊化:按適當(dāng)?shù)脑瓌t把一個情況復(fù)雜、規(guī)模較大的程序系統(tǒng)劃分為一個個較小的、功能相關(guān)而又相對獨立的模塊的過程。
模塊:一個在結(jié)構(gòu)上相對獨立的程序段??梢允亲映绦?、過程或自定義函數(shù)。
子程序的基本概念
子程序:總被其它程序調(diào)用的,一般不單獨運行的一個程序段。
子程序與主程序的關(guān)系:是一種調(diào)用和被調(diào)用的關(guān)系。主程序是能調(diào)用其他子程序,而不被其他程序調(diào)用的程序,凡能被調(diào)用的程序都稱為子程序。程序中至少應(yīng)有一個主程序,可以有一個或若干個子程序。子程序的使用
①使用模塊化程序設(shè)計方法編寫程序時,把各個功能劃分成若干個功能子模塊,把子模塊寫成一個子程序。
②需要反復(fù)調(diào)用的情況下,可以寫成一個子程序,以節(jié)省存儲空間。
編寫子程序
調(diào)用子程序命令格式:
do <子程序名>[ WITH<參數(shù)表>] 子程序返回命令
return [ to master ] 表示返回到上一級子程序或主程序。帶參數(shù)to master表示無論在哪級子程序上,均立即返回主程序。
例
1、對任意給的正整數(shù)A、B、C,編寫程序計算S=A?。?/5)B?。–!/2)調(diào)試子程序 聯(lián)合調(diào)試:當(dāng)主程序和子程序分別編輯完成之后,直接運行主程序。若主程序或子程序有錯,再進行編輯、調(diào)試、重新運行,直到輸出正確結(jié)果為止。單獨調(diào)試:編輯一個模塊,調(diào)試一個模塊,各個模塊都調(diào)試成功后,加入主程序聯(lián)調(diào)。例
2、根據(jù)數(shù)據(jù)庫student.dbf編寫一個菜單程序main.prg,完成對數(shù)據(jù)庫查詢程序cx.prg和刪除程序sc.prg的調(diào)用
過程與過程文件
過程是一段程序,它與子程序不同之處在于,子程序是一個獨立文件,而過程是過程文件的一個組成部分,可以把多個過程寫在一個過程文件中。過程的結(jié)構(gòu):
procedure <過程名> <過程體> return [to master/to <程序名>] 過程名由用戶定義,供調(diào)用過程時使用,過程體是一個語句序列,是過程的核心部分,選擇to <程序名>表示返回到“程序名”指定的程序。過程文件的結(jié)構(gòu)
procedure <過程名1> <過程體1> return [to master/to <程序名>] procedure <過程名2> <過程體2> return [to master/to <程序名>] ??
procedure <過程名n> <過程體n> return [to master/to <程序名>] 過程文件的調(diào)用
在主程序中,調(diào)用過程前,首先要打開過程文件。
命令格式:set proc to <過程文件名>
調(diào)用后,要關(guān)閉過程文件。
命令格式:set procedure to 或 close procedure 過程的調(diào)用
格式:do <過程名> 例
3、根據(jù)數(shù)據(jù)庫student.dbf編寫一個菜單程序gczxc.prg,用過程形式完成對數(shù)據(jù)庫查詢程序cx.prg和刪除程序sc.prg的調(diào)用。
自定義函數(shù)命令
命令格式:(1)function <函數(shù)名>(2)return <表達式> 基本格式:
function<函數(shù)名> parameters <參數(shù)表> <語句序列>
return <表達式>
主程序與自定義函數(shù)的組織形式:
舉例計算組合數(shù)的值
編寫K!的函數(shù)。作業(yè)
1、從鍵盤輸入五個數(shù)組,每組有六個數(shù)據(jù),分別用子程序、過程、自定義函數(shù)的方法,輸出每組數(shù)的最大值和最小值。
2、用子程序、過程、自定義函數(shù)三種不同形式對student.dbf數(shù)據(jù)庫編寫一個菜單程序:
系統(tǒng)主菜單
1??追加記錄
2??修改記錄
3??插入記錄
4??刪除記錄
5??輸出記錄
6??退
出
第二篇:VFP命令、函數(shù)及程序語句解讀
VFP命令、函數(shù)及程序語句大全(1 學(xué)過VFP(Microsoft Visual FoxPro的朋友都知道它是微軟公司開發(fā)的數(shù)據(jù)庫管理系統(tǒng)。它
經(jīng)歷了從dBASE、FoxBASE、FoxPro直到VFP的發(fā)展過程。本文便以VFP 6.0為例介紹它的命令、函數(shù)
及程序語句,為學(xué)習(xí)VFP的朋友提供必要的學(xué)習(xí)參考,也為已經(jīng)精通VFP的朋友提供復(fù)習(xí)的好機會。
一、主要命令:
1、CREATE 作用:建立一個新的表。
格式:CREATE [<文件>|?](注意,命令字符可取前面四個字符,后面可省略不寫,即CREA,下
同;中括號表示其中的參數(shù)是可選的;|管道符號表示兩個參數(shù)只能選擇一個,不能同時選擇,下
同。
說明:文件指建立以.dbf為擴展名的VFP數(shù)據(jù)庫文件,在命令后面加上一個問號表示系統(tǒng)會彈出
對話框,要求用戶輸入想要建立的表名。在命令中不加文件名或問號系統(tǒng)也會彈出對話框,要求用
戶輸入想要建立的表名。
2、MODIFY STRUCTURE
作用:顯示表文件結(jié)構(gòu),并允許修改此表的結(jié)構(gòu)。格式:MODIFY STRUCTURE 說明:只有在用USE命令打開表文件以后,才能顯示或修改表文件的結(jié)構(gòu)。
3、APPEND 作用:在當(dāng)前表的尾部(無論表中有無記錄追加記錄(在當(dāng)前表指當(dāng)前正使用的表。
格式:APPEND [BLANK] 說明:在APPEND命令后面加上BLANK參數(shù)表示在當(dāng)前表的尾部添加一條空白記錄。無BLANK 參數(shù)
時,表示在當(dāng)前表的尾部添加一條記錄并要求用戶輸入相應(yīng)的字段內(nèi)容。
4、INSERT 作用:在表文件中間插入一個新記錄。格式:INSERT [BEFORE] [BLANK] 說明:INSERT 在當(dāng)前記錄后插入一記錄;INSERT BEFORE 在當(dāng)前記錄前插入一記錄;INSERT BEFORE BLANK 在當(dāng)前記錄前插入一空記錄。INSERT-SQL命令追加記錄
INSERT INTO 表名[(字段1[,字段2…]];VALUES(表達式1[,表達式2…]
例:INSERT INTO XS(XH,XM,XB,XIMING VALUES(“950106”,“高山”,“男”,“”
5、UPDATE 作用:修改數(shù)據(jù)
update <表名> set <字段1=表達式1>,<字段2=表達式2...> where <條件> 例: update <表名> set <字段1,字段2...>=<表達式1,表達式2...> where <條件>
6、BROWSE 作用:主要用于打開瀏覽窗口,查閱表文件并同時進行修改。格式:BROWSE 作用:打開一個“瀏覽”窗口,供用戶瀏覽或修改記錄。格式:BROWSE [FIELDS <字段名表>]
7、USE 作用:打開和關(guān)閉表文件。格式:USE [<文件名>] USE 說明:前一個命令用來打開<文件名>指定的表文件,該表如有備注型字段,則同時打開相應(yīng)的
備注文件(.fpt文件;后一個命令關(guān)閉當(dāng)前打開的表文件。
8、LIST和DISPLAY
作用:顯示表(.dbf的內(nèi)容、結(jié)構(gòu)或狀態(tài)。
格式:LIST|DISPLAY [OFF] [<范圍>] [FIELDS] <表達式表> [WHILE <條件>] [FOR <條件>] [TO PRINT|TO FILE <文件>] LIST|DISPLAY STRUCTURE TO PRINT|TO FILE <文件> LIST|DISPLAY STATUS [TO PRINT|TO FILE <文件>] 說明:命令帶OFF參數(shù)表示不顯示記錄號,范圍指定對哪些記錄進行操作,范圍包括:RECORD n 第幾號記錄、NEXT n 當(dāng)前記錄開始的幾個記錄、REST 自當(dāng)前記錄開始至文件末尾的所有記錄、ALL 所有的記錄。不選范圍則隱含范圍為ALL;FIELDS后跟字段名,字段名與字段名之間用逗號分
隔。WHILE后跟條件,FOR后面也跟條件,區(qū)別是,WHILE后的條件如果不滿足,便停止查找;FOR后的條件查找所有滿足條件的記錄。TO PRINT和TO FILE <文件>分別表示將顯示結(jié)果在打印機上打印出
來和將顯示結(jié)果輸出到文件。
格式中,下面兩個命令分別為顯示表結(jié)構(gòu)(STRUCTURE和工作狀態(tài)(STATUS。注:LIST命令一次連續(xù)顯示完所有記錄內(nèi)容。DISPLAY命令在顯示記錄滿屏后,要求用戶按
任意鍵繼續(xù)顯示。如果LIST與DISPLAY都無任何選擇項時,LIST顯示文件的全部記錄, DISPLAY僅顯示當(dāng)前記錄。
9、記錄的定位
作用:用記錄指針(POINTER定位記錄。格式: 1GO[TO] RECORD n|TOP|BOTTOM 命令定位 GO [RECORD] N GO BOTTOM GO TOP 2n 3SKIP [+|-] n 說明:第一個命令又叫絕對定位,其中,RECORD n定位到n號記錄,TOP定位到第1個記錄, BOTTOM定位到最后一個記錄。第二個命令定位到第n個記錄,n是一個數(shù)值。第三個命令又叫相對定
位,它以當(dāng)前記錄為基準(zhǔn)前移(-或后移(+n個記錄,不選任選項,則默認記錄指針后移一個記
錄。
LOCATE [<范圍>] FOR <表達式> 范圍: ALL NEXT N RECORD N
REST
10、CHANGE和EDIT 作用:顯示要編輯或修改的字段。
格式:CHANGE|EDIT [<范圍>] [FIELDS <字段名表>] [WHILE <條件>] [FOR <條件>]
11、REPLACE 作用:用表達式的值代替命令中與之相對應(yīng)的字段的內(nèi)容。
格式:REPLACE [<范圍>] <字段1> WITH <表達式1>[,<字段2> WITH <表達式2>] [FOR <條件> ] [WHILE<條件>] 例:USE B2-1 REPLACE ALL 工資 WITH 工資+200 FOR 工資<1000 BROW
12、DELETE、PACK、ZAP和RECALL 作用:分別是給要刪除的記錄作刪除標(biāo)記、徹底刪除、刪除所有記錄和取消被選中的表記錄的
刪除標(biāo)志。
格式:DELETE [<范圍>] [WHILE<條件>] [FOR <條件>](特例:DELETE FILE FILENAME.DBF,該命令刪除指定的表文件
PACK
ZAP RECALL [<范圍>] [FOR <條件>] [WHILE<條件>]
13、SORT和INDEX 1SORT 作用:是建立一個其記錄以新的物理順序排列的新表文件,原文件不變.格式:SORT TO <文件名> ON <字段名1> [/A] [/C] [/D][,<字段名2> [/A] [/C] [/D>...[ASCENDING|DESCENDING] [<范圍>] [FOR <條件>] [WHILE<條件>] [FIELDS<字段表>] 2INDEX 作用: 對當(dāng)前表根據(jù)關(guān)鍵字表達式的值從小到大排列,并存入TO后指定的索引文件名的文件或復(fù)合索引文件的一個標(biāo)識中。
格式: INDEX ON <關(guān)鍵字表達式> TO <文件名> INDEX ON <關(guān)鍵字表達式> TAG <標(biāo)識名> [OF <文件名>] [FOR <條件>] 說明:第1個命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小寫,針對字符型
關(guān)鍵字而言,ASCENDING和DESCENDING分別表示升序和降序。第1個命令建立.dbf表文件,第2個命令建立.idx單一索引文件,第3個命令建立.cdx復(fù)合索引文件(Compound Index。
刪除索引
DELETE TAG ALL [OF 復(fù)合索引文件名]
DELETE TAG 索引標(biāo)識1 [OF 復(fù)合索引文件名1][,索引標(biāo)識2 [OF 復(fù)合索引文件名2>…
14、USE <表文件名> INDEX <索引文件名表>、SET INDEX TO和SET ORDER TO 作用:分別是打開表文件的同時打開索引文件、打開索引文件和改變主索引。并確定第一個索引文件為主控索引文件.(當(dāng)前起作用的索引文件稱為主控索引文件, 當(dāng)前起作用的索引標(biāo)識稱為主控索引
格式:USE <表文件名> INDEX <索引文件名表> SET INDEX TO [<索引文件名表>] 作用:打開當(dāng)前表的一個或多個索引文件并確定第一個索引文件為主控索引文件,該命令用于單索引文件.格式:SET INDEX TO [<索引文件表>] [ADDITIVE] 說明:(1[<索引文件表>]中第一個索引文件為主控索引文件.(2若缺省ADDITIVE選項,則在用本命令打開索引文件時,除結(jié)構(gòu)復(fù)合索引文件以外的索引文件均被關(guān)閉
SET ORDER TO [<數(shù)值表達式>]|[<單索引文件名>]|[TAG] <索引標(biāo)識> [ASCENDING|DESCENDING>(特例:重新索引命令:REINDEX 作用:對于打開表時自動打開的復(fù)合索引文件確定主索引,也能確定主索引文件.(1 數(shù)值表達式表示已打開的索引的序號.系統(tǒng)先為單索引文件編號,故結(jié)構(gòu)復(fù)合索引文件的序號比單索引文件大.(2 SET ORDER TO 或 SET ORDER TO 0命令取消主索引和主索引文件,表中記錄將按物理記錄輸出.15、CLOSE INDEX 或 SET INDEX TO 單獨關(guān)閉索引文件,并不關(guān)閉與之相關(guān)的表文件
16、FIND、SEEK和LOCATE及CONTINUE 作用:前兩個命令FIND和SEEK是在一個已經(jīng)建立了索引文件的表中,定位到關(guān)鍵字中的內(nèi)容與命
令行中字符串相同的第一個記錄。后一個命令在用USE打開表文件以后,直接查詢表中字段內(nèi)容。
格式:FIND <“字符串”>|<字符串> SEEK <表達式>(表達式的數(shù)據(jù)類型可為字符型、數(shù)字型、日期型和邏輯型。LOCATE [<范圍>] [FOR <條件>] [WHILE<條件>] CONTINUE 說明:FIND命令與SEEK命令的區(qū)別是前者后跟字符串,而后者后跟表達式。在用LOCATE命令找到
一個匹配記錄后,可用CONTINUE命令搜索表的剩余部分來尋找其他匹配的記錄。
例:SET ORDER TO NL ?確定索引關(guān)鍵字為NL(年齡 FIND 28 ?找年齡字段為“28“的記錄 DISPLAY ?顯示當(dāng)前記錄
SET ORDER TO NL ?確定索引關(guān)鍵字為NL(年齡 SEEK “28”?找年齡字段為“28“的記錄
DISPLAY 17.從磁盤上刪除任意文件:(1ERASE filename|?(2DELETE FILE [filename|?]
18、COUNT 作用:統(tǒng)計當(dāng)前表文件中符合條件的記錄數(shù)。
格式:COUNT [<范圍>] [FOR <條件>] [WHILE<條件>] [TO <內(nèi)存變量名>] 說明:內(nèi)存變量名可用除參數(shù)外的任意字符。
19、SUM 作用:對當(dāng)前表中選中記錄的全部或指定的數(shù)值字段或由指定字段組成的數(shù)值表達式累加求和。
格式:SUM [<范圍>] [數(shù)值<表達式>] [TO <內(nèi)存變量名表>] [FOR <條件>] [WHILE<條件>] 20、AVERAGE 作用:對當(dāng)前表中選中記錄的全部或部分數(shù)值型字段及其組成的表達式求平均值并顯示。
格式:AVERAGE [<范圍>] [數(shù)值<表達式>] [TO <內(nèi)存變量名表>] [FOR <條件>] [WHILE<條件>]
21、TOTAL 作用:分類匯總命令,按<表達式>做過索引或排序的表文件的數(shù)字型字段進行分類匯總。它把與<表達式>值相同的所有記錄中的數(shù)字字段的值分別進行求和,并各
自作為一條記錄存放在由文件指定的文件中去。在新生成的記錄中,還將包括與<表達式>值相同的所有記錄中的首項記錄的其他字段內(nèi)容。
格式:TOTAL TO <文件名> ON <表達式>[FIELDS <數(shù)值型字段名表>][<范圍>][FOR <邏輯表達式1>][WHILE <邏輯表達式2>] 例:USE B2-1 INDEX ON 職稱 TO ZC TATOL ON 職稱 TO B2-1T FILEDS 工資 22.APPEND FROM 作用:從其他文件向表文件添加數(shù)據(jù)。數(shù)據(jù)來源文件既可以是表文件,也可是文本文件或其他符合規(guī)定的文件。
格式:APPEND FROM <文件名>|?[FIELDS <字段名表>][FOR <邏輯表達式>] FIELDS <字段名表>和FOR <邏輯表達式>,用于源文件為表文件時,指定追加記錄的字段和條件。在字段名表和邏輯表達式中的字段名,必須是在來源和目的兩個文件中公有的,共注意寬度和類型匹配。實際應(yīng)用中,數(shù)據(jù)來源文件常為表文件(.DBF和ASCII碼文本文件(.TXT 對于文本文件又有標(biāo)準(zhǔn)格式(SDF和通用格式(DELIMITED之分.例: USE B2-1 APPE FROM S3-1.TXT SDF BROWSE 23.COPY(選擇表的部分內(nèi)容生成一個新表
作用:把打開的表文件結(jié)構(gòu)及數(shù)據(jù)復(fù)制成由<文件名>所指定的并符合規(guī)定要求的文件。如果默認全部選擇項和文件名的擴展名,則結(jié)構(gòu)及全部數(shù)據(jù)都被復(fù)制,且其文件擴展名由系統(tǒng)規(guī)定為“.DBF”。
格式:COPY TO<文件名> [FIELDS <字段名表>][<范圍>][FOR <邏輯表達式1>][WHILE <邏輯表達式2>] 格式中的或用來為新表建立一個與原表相同的結(jié)構(gòu)索引.例1: COPY TO B3-2 COPY TO S3-2.TXT SDF 例2: USE RS COPY TO RS3 FIELDS 姓名,基本工資,獎金 USE RS3 LIST 24.COPY FILE復(fù)制數(shù)據(jù)整表:(可用于復(fù)制任何類型文件 COPY FILE 原文件名 TO 目標(biāo)文件名
注:復(fù)制表時,還應(yīng)當(dāng)復(fù)制和它相配的備注文件(.FPT,如有備注字段和結(jié)構(gòu)復(fù)合索引文件。
當(dāng)前表應(yīng)關(guān)閉。(如果已打開表:COPY TO 新文件名 例:將RS.DBF復(fù)制為RS1.DBF COPY FILE RS.DBF TO RS1.DBF 或USE RS
COPY TO RS1 USE RS1 LIST 25.COPY STRUCTURE(只復(fù)制結(jié)構(gòu)不復(fù)制數(shù)據(jù)
作用:表文件結(jié)構(gòu)復(fù)制,生成一個指定文件名和包括指定字段的表文件結(jié)構(gòu);如有CDX或PRODUCTION選擇項還將為新表建立一個與源表相同的結(jié)構(gòu)索引.格式: COPY STRUCTURE TO<文件名> [FIELDS <字段名表>] 例: COPY STRUCTURE TO B3-3 FIELDS 編號,姓名,何時工作,職稱 26.copy to建立結(jié)構(gòu)擴展文件
作用:把已打開的表文件的結(jié)構(gòu)作為數(shù)據(jù)記錄復(fù)制到由<文件名>指定的庫文件中去.格式: COPY TO<文件名> STRUCTURE EXTENDED 例: USE B3-3 COPY TO B3-4 STRUCTURE EXTENDED USE B3-4 BROW 該命令可以用于測試表文件結(jié)構(gòu),也可以用于順序方式建立庫文件結(jié)構(gòu).新庫文件的結(jié)構(gòu)是一個由系統(tǒng)規(guī)定的標(biāo)準(zhǔn)結(jié)構(gòu),它由4個字段構(gòu)成: FIELD_NAME 字段名
FIELD_TYPE 字段類型 FIELD_LEN 字段寬度 FIELD_DEC 小數(shù)位數(shù) 27.常用命令: 庫表
建立數(shù)據(jù)庫: CREATE DATABASE 庫文件名.DBC 建立表: CREATE 表文件名.DBF CREATE TABLE/DBF 表名(各個字段屬性 打開數(shù)據(jù): OPEN DATABASE 庫文件名 打開表: USE 表文件名
使用非前庫的表:USE 庫名!表名 打開索引表:USE 表名 INDEX 索引名 顯示庫信息:DISP DATABASE [TO PRINTER] 顯示記錄:LIST(快速查看 BROWSE(分屏瀏覽可修改 DISP(顯示當(dāng)前記錄
關(guān)閉數(shù)據(jù)庫:CLOSE ALL(關(guān)閉所有庫、表、索引 關(guān)閉表: USE
CLOSE DATABASES(關(guān)閉當(dāng)前庫、表 CLOSE TABLES(關(guān)閉當(dāng)前表,不關(guān)庫 CLOSE INDEXES(關(guān)閉當(dāng)前索引
修改庫:MODI DATA 庫名 [NOWAIT] [NOEDIT] 修改表結(jié)構(gòu):MODI STRU ALTER TABLE 表名 ADD 字段名 ALTER TABLE 表名 ALTER 字段名 ALTER TABLE 表名 DROP 字段名 添加表:ADD TABLE 表名追加記錄: INSERT INTO 表名(字段名列表 VALUES(對應(yīng)數(shù)值 APPEND APPEND FROM 源文件 移去表:REMOVE TABLE 表名
刪除記錄:DELETE ALL FOR [條件](邏輯刪除 PACK(物理刪除 ZAP(全部徹底刪除
刪除庫:DELETE DATABASE 庫名(先關(guān)閉庫 刪除表:DELETE FILE 表名(先關(guān)閉表 VFP命令、函數(shù)及程序語句大全(2
二、常用函數(shù)
1、數(shù)學(xué)函數(shù) 函數(shù)用途
ABS(<數(shù)值表達式>絕對值,|x| CEILING(<數(shù)值表達式> >=自變量的最小整數(shù) EXP(<數(shù)值表達式>對基E的冪,e=2.71828 FLOOR(<數(shù)值表達式> <=自變量的最大整數(shù) INT(<數(shù)值表達式>取整(舍尾自變量
LOG(<數(shù)值表達式>自變量的自然對數(shù),ln x LOG10(<數(shù)值表達式>自變量的普通對數(shù),lg x MAX(<表達式1>,<表達式2>兩個值的最大值 MIN(<表達式1>,<表達式2>兩個值的最小值 MOD(<數(shù)值表達式1>,<數(shù)值表達式2>求余數(shù) RAND([<數(shù)值表達式1>]返回偽隨機數(shù)
ROUND(<數(shù)值表達式1>,<數(shù)值表達式2>四舍五入第一個自變量 SIGN(<數(shù)值表達式>自變量的符號 SQRT(<數(shù)值表達式>平方根(正根
2、字符串操作函數(shù) 函數(shù)用途
&<內(nèi)存變量> 用于代替內(nèi)存變量內(nèi)容
LEN(<字符串表達式>返回字符串表達式的字符個數(shù) SPACE(<數(shù)值表達式>生成空格
SUBSTR(<字符串表達式>,<數(shù)值表達式n>[,<數(shù)值表達式L>]求子字符串,從指定的字符串表達式第n個開始,總長為L的字符串
LOWER(<字符串表達式>將字符串字母轉(zhuǎn)換成小寫字母 UPPER(<字符串表達式>將字符串字母轉(zhuǎn)換成大寫字母 TRIM(<字符串表達式>刪除字符串尾空格
ASC(<字符串表達式>返回字符串表達式最左邊的第一個字符的ASCII碼 CHR(<數(shù)值表達式>將數(shù)值表達式轉(zhuǎn)換成字符
AT(<字符串表達式1>,<字符串表達式2>[,<數(shù)值表達式n>] 確定字符串表達式1在字符串表達式2中的位置,n為字符串表達式第幾次出現(xiàn) STR(<數(shù)值表達式>[,<數(shù)值表達式L>][,<數(shù)值表達式n>將數(shù)值轉(zhuǎn)換為字符串,L為數(shù)值表達式總長,n為小數(shù)位數(shù)
VAL(<字符串表達式>將數(shù)字字符串轉(zhuǎn)換為數(shù)字 TYPE(<表達式>檢測表達式值的數(shù)據(jù)類型 LTRIM(<字符串表達式>刪除字符串左部空格 RTRIM(<字符串表達式>刪除字符串右部空格
LEFT(<字符串表達式>,<數(shù)值表達式n>取字符串左邊部分字符,n為返回的字符個數(shù)
RIGHT(<字符串表達式>,<數(shù)值表達式n>取字符串右邊部分字符,n從右邊截取字符個數(shù)
3、表(.dbf操作函數(shù)
函數(shù)用途
BOF([<工作區(qū)號或別名>]查表文件開始函數(shù) EOF([<工作區(qū)號或別名>]表文件結(jié)尾測試函數(shù)
RECNO([<工作區(qū)號或別名>]測試當(dāng)前或指定工作區(qū)表的當(dāng)前記錄號 DELETED([<工作區(qū)號或別名>]記錄刪除測試函數(shù) FILE(<“字符串”>測試文件是否存在函數(shù) DBF([<工作區(qū)號或別名>]檢測表的文件名函數(shù)
4、日期、時間函數(shù) 函數(shù)用途
DATE(查系統(tǒng)當(dāng)前日期函數(shù)
TIME([<數(shù)值表達式>]查系統(tǒng)當(dāng)前時間函數(shù)
YEAR(<日期型表達式>|<日期時間型表達式>由日期查年函數(shù) MONTH(<日期型表達式>|<日期時間型表達式>從日期查月份函數(shù) CMONTH(<日期型表達式>|<日期時間型表達式>由日期查月份名函數(shù) DAY(<日期型表達式>|<日期時間型表達式>從日期查當(dāng)月的日函數(shù)
DOW(<日期型表達式>|<日期時間型表達式>[,<數(shù)值表達式>]由日期查星期函數(shù)
CDOW(<日期型表達式>|<日期時間型表達式>從日期查星期名函數(shù) DTOC(<日期型表達式>|<日期時間型表達式>日期轉(zhuǎn)換為字符函數(shù)
CTOD(<字符串表達式>字符串轉(zhuǎn)換為日期函數(shù) CTOT(<字符串表達式>返回日期時間值函數(shù) TTOC(<日期時間型表達式>返回字符值
5、顯示、打印位置函數(shù) 函數(shù)用途
ROW(判斷光標(biāo)行位置函數(shù) COL(判斷光標(biāo)列位置函數(shù)
INKEY([<數(shù)值表達式>]檢測用戶所擊鍵對應(yīng)的ASCII碼函數(shù),數(shù)值表達式以秒為單位等待擊鍵的時間
6、其他函數(shù) 函數(shù)用途
DISKSPACE(返回默認磁盤驅(qū)動器中可用字節(jié)數(shù)函數(shù) OS(檢測操作系統(tǒng)名稱的函數(shù) VERSION(返回VFP版本號的函數(shù) VFP命令、函數(shù)及程序語句大全(3
三、主要程序語句
1、條件判斷語句 格式:(1IF <條件> <命令語句組>
ENDIF 說明:如果條件為真,則執(zhí)行命令語句組中的各語句,否則跳過這些命令語句不執(zhí)行, 而執(zhí)行ENDIF后的語句。(2IF <條件> <命令語句組1> ELSE <命令語句組2> ENDIF 說明:如果條件為真,執(zhí)行命令語句組1,否則執(zhí)行命令語句組2。(3IF <條件1> IF <條件2> <命令語句組1> ELSE <命令語句組2> ENDIF...ELSE <命令語句組N>
ENDIF 說明:進行多重條件的嵌套選擇。(4DO CASE CASE <條件1> <命令語句組1> CASE <條件2> <命令語句組2> CASE <條件3> <命令語句組3>......CASE <條件N> <命令語句組N> [OTHERWISE] [<命令語句組N+1>] ENDCASE 說明:依次判斷條件,轉(zhuǎn)入條件為真的命令語句組中執(zhí)行。當(dāng)所有條件都不成立時,若有
OTHERWISE項,則執(zhí)行命令語句組N+1,否則執(zhí)行ENDCASE后面的語句。
2、循環(huán)語句
格式:(1DO WHILE <條件> <命令語句組> [LOOP] <命令語句組> [EXIT] <命令語句組> ENDDO 說明:判斷條件是否為真,如為真就重復(fù)執(zhí)行循環(huán)體中的命令語句組,直到條 件為假,結(jié)束循環(huán)。(2)SCAN <命令語句組> ENDSCAN 說明:在一個表中建立一個執(zhí)行命令語句組的循環(huán),并執(zhí)行對每一條記錄的操 作,直到表文件 記錄完為止。
第三篇:VFP對口高考命令-3至5
DO <查詢文件名> 功能:運行指定的查詢
例:do d:chax1.qpr 運行名為chax1的查詢文件
MODIFY QUERY <查詢文件名> 功能:打開指定的查詢文件 例:modify query d:chax1.qpr 打開名為chax1的查詢文件
注:不論用什么方法打開查詢文件,VFP都會自動打開查詢設(shè)計器
SELECT <字段列表> FROM [數(shù)據(jù)庫名!] <表名> [,[數(shù)據(jù)庫名!] <表名>,?] [WHERE 條件] [GROUP BY 分組項列表] [ORDER BY 排序項[DESC]?] [INTO 目標(biāo)|TO FILE 文件名|TO PRINTER] 功能:從一個或多個表中查詢數(shù)據(jù)
例:select b1.語文,b1.數(shù)學(xué),b1.英語 from sjk1!b1 where b1.語文>70 group by b1.語文 order by b1.學(xué)號 desc 查詢sjk1數(shù)據(jù)庫中的b1表的語文,數(shù)學(xué),英語字段中滿足語文大于70的數(shù)據(jù),按照b1表的語文字段分組,按照b1表的學(xué)號排序,且設(shè)置排序方式為倒序。
[INTO 目標(biāo)]的“目標(biāo)”可以使用如下3種:“ARRAY 數(shù)組名”、“CURSOR 表名”、“DBF 表名”。
[ORDER BY[desc]]中若缺省“desc”則按升序排序。否則則按降序排序。[TO PRINTER]:將查詢結(jié)果送往打印機輸出
[TO FILE 文件名]:將查詢結(jié)果輸出到指定的文本文件中
CREATE VIEW <視圖名> AS <查詢語句> 功能:為當(dāng)前數(shù)據(jù)庫創(chuàng)建視圖 例:open database d:sjk1 打開數(shù)據(jù)庫sjk1
create view st1 as select * from sjk1!b1 為當(dāng)前數(shù)據(jù)庫創(chuàng)建一個視圖st1其功能為“查詢數(shù)據(jù)庫sjk1的表b1中所有字段數(shù)據(jù)”
注:使用上述命令創(chuàng)建的視圖還需要在視圖設(shè)計器中指定可更新字段,才能實現(xiàn)更新數(shù)據(jù)的功能
DROP VIEW <視圖名> 功能:刪除當(dāng)前數(shù)據(jù)庫中指定的視圖 例:open database d:sjk1 打開數(shù)據(jù)庫sjk1
drop view st1 刪除視圖st1 CREATE REPORT <報表文件名> 功能:建立一個空白報表 例:create report d:bb1 建立一個報表bb1
MODIFY REPORT <報表文件名> 功能:打開指定的報表文件 例:modify report d:bb1 打開報表bb1
REPORT FORM <報表文件名> TO PRINTER 功能:打印指定的報表 例:report form d:bb1 to printer 打印報表bb1
MODIFY COMMAND <程序文件名> 功能:建立一個程序文件 例:modify command cx1 建立一個名為cx1的程序文件并打開編寫 DO <程序文件名> 功能:運行指定的程序 例:do d:cx1 運行程序cx1
注:如果在A程序中使用命令調(diào)用B程序,則B程序稱為A程序的子程序,A程序稱為B程序的主程序。
VFP中可以使用“*”號和NOTE命令可以給某一行加注釋,也可以使用“&&”在語句行后面添加注釋。
注:給某一個行加注釋就是以“*”或NOTE開頭后進行注釋,給語句行加注釋就是使用“&&”直接在語句后面加上注釋,相比來說“&&”注釋更加靈活。
例:clear &&清屏
給clear加注釋“清屏” 注:注釋的作用就是幫助理解程序的功能,以利今后修改程序時提高工作效率,一般注釋的內(nèi)容在VFP中以綠色顯示。
CLEAR 功能:清除屏幕上的顯示信息 ACCEPT [提示信息] TO <內(nèi)存變量>
功能:把用戶輸入的字符串保存到指定的內(nèi)存變量中
例:accept to x 在屏幕上光標(biāo)處輸入字符串,并將字符串保存到變量x中
accept ”請輸入x:” to x
在屏幕上”請輸入x:”后輸入字符串,并將字符串保存變量x中 INPUT [提示信息] TO <內(nèi)存變量>
功能:把用戶輸入的表達式的值保存到指定的內(nèi)存變量 例:input ”請輸入y:” to y 在“清輸入y:”后輸入數(shù)據(jù),并將數(shù)據(jù)保存到變量y中 注:input與accept的區(qū)別是,前者可以輸入數(shù)值型數(shù)據(jù)、邏輯型數(shù)據(jù),也可輸入字符型數(shù)據(jù),在輸入字符型數(shù)據(jù)時要加定界符,后者輸入的數(shù)據(jù)都一律被認為是字符型數(shù)據(jù),且不用加定界符。
WAIT [提示信息] [TO 內(nèi)存變量] [WINDOW] [TIMEOUT 時間] 功能:等待用戶輸入一個字符
例:wait 屏幕上顯示“按任意鍵繼續(xù)?”,并要求任意輸入一個字符以繼續(xù)
wait “是否繼續(xù)(Y/N)?” to x window timeout 2 在屏幕右上角中的系統(tǒng)窗口中顯示“是否繼續(xù)(Y/N)?”系統(tǒng)窗口存在2秒,并將輸入的字符保存到變量x中
注:wait命令和accept命令中的變量的一定是字符型變量且不用加定界符,而input命令的變量的類型由輸入表達式值的數(shù)據(jù)類型決定。wait命令常用于輸入單字符和顯示信息,accept命令常用于輸入字符串,input命令常用于輸入其他類型的數(shù)據(jù)。
@<行,列> SAY <顯示信息> 功能:在指定位置輸出信息 例:@1,1 say ”你好” 在第一行第一列顯示“你好” @<行,列> [SAY 顯示信息] GET <變量> 功能:在指定位置輸入數(shù)據(jù),并把輸入的數(shù)據(jù)保存在指定的變量 例:@1,1 say”姓名:” get xm
read 在第一行第一列顯示“姓名:”并在其后面輸入數(shù)據(jù)并將數(shù)據(jù)其保存給變量xm 注:該命令需要與read命令共同使用,才能激活命令中的變量,接收輸入的數(shù)據(jù)。注:不與read命令共同使用的話,系統(tǒng)將自動將原先變量的值載入。ROW()功能:返回當(dāng)前坐標(biāo)的行坐標(biāo) COL()功能:返回當(dāng)前坐標(biāo)的列坐標(biāo) SET TALK ON|OFF
功能:設(shè)置是否顯示某些命令執(zhí)行的結(jié)果,ON為顯示,OFF為不顯示 SET SAFETY ON|OFF
功能:設(shè)置刪除文件數(shù)據(jù)時是否顯示提示信息,ON為顯示,OFF為不顯示 CLEAR ALL 功能:清除用戶自定義的內(nèi)存變量和對象 IF <條件>
功能:單分支選擇結(jié)構(gòu)
<語句組> ENDIF 例:if x<0 判斷x是否小于0,其返回值是.T.或.F.?”x小于0”
返回.T.時執(zhí)行,執(zhí)行后執(zhí)行endif后面的語句
endif
返回.F.時執(zhí)行endif后面的語句 IF<條件> 功能:雙分支選擇結(jié)構(gòu)
<語句組1> ELSE
<語句組2> ENDIF 例:if x<0 判斷x是否小于0,其返回值是.T.或.F.?”x小于0”
返回.T.時執(zhí)行,執(zhí)行后執(zhí)行endif后面的語句
else
?”x大于等于0” 返回.F.時執(zhí)行,執(zhí)行后執(zhí)行endif后面的語句
endif 注:條件是一個邏輯表達式,其返回值為.T.或.F.。
注:if和endif必須成對使用,分別表示選擇結(jié)構(gòu)開始和選擇結(jié)構(gòu)結(jié)束 DO CASE
功能:多分支選擇結(jié)構(gòu)
CASE <條件1>
<語句組1> CASE <條件2> <語句組2> ?
CASE <條件n> <語句組n> [OTHERWISE 語句組] ENDCASE 例:do case
case x=1
?”x等于1”
x等于1時執(zhí)行,執(zhí)行后執(zhí)行endcase后面的語句
case x=2 ?”x等于2”
x等于2時執(zhí)行,執(zhí)行后執(zhí)行endcase后面的語句
case x=3
?”x等于3”
x等于3時執(zhí)行,執(zhí)行后執(zhí)行endcase后面的語句
otherwise
? ”x是大于3的數(shù)”
x不滿足以上的所有條件時執(zhí)行,執(zhí)行后執(zhí)行endcase后面的語句 endcase 注:do case和endcase必須成對使用,分別表示選擇結(jié)構(gòu)開始和選擇結(jié)構(gòu)結(jié)束
DO WHILE <條件> 功能:基于條件的循環(huán)結(jié)構(gòu) <語句組>
ENDDO 例:do while x<10 判斷x是否小于10,其返回值是.T.或.F.?”x小于10”
x=x+1
返回.T.時執(zhí)行,執(zhí)行完畢后跳回循環(huán)開始處(do while <條件>)再次判斷條件是不是滿足或不滿足
enddo 返回.F.時執(zhí)行enddo后面的語句
SCAN [FOR條件] 功能:針對表記錄的循環(huán)結(jié)構(gòu) <語句組> ENDSCAN
例:use d:b1 由于是針對表記錄的循環(huán),所以需打開一張表
scan for 性別=”男”
display
每個性別字段等于“男”的記錄都會執(zhí)行一次語句組的語句,全部執(zhí)行完畢后,執(zhí)行endscan后面的語句
endscan FOR <變量>=<初值> TO <終值> [STEP 步長] 功能:指定次數(shù)的循環(huán)
<語句組> ENDFOR
例:s=0 設(shè)置累加器s
for x=1 to 11 step 2 給x賦初值1,終值11,其步長為s=s+x
因步長為2,故x的值為1、3、5、7、9、11,s將x從初值1到11的每一步的值都加起來,當(dāng)x的值下一步大于其終值時,執(zhí)行endfor后面的語句
endfor 注:do while enddo,scan endscan,for endfor必須成對使用
LOOP 功能:終止本次循環(huán),使程序再次檢查是否滿足循環(huán)條件,以決定是否進行下一次循環(huán)即直接跳回循環(huán)開始處(如do while <條件>)。
EXIT 功能:結(jié)束循環(huán),使程序執(zhí)行循環(huán)結(jié)構(gòu)后面的語句即直接跳到循環(huán)結(jié)束處(如 enddo)。PROCEDURE <過程名> 功能:定義一個過程 <語句組> ENDPROC 例:procedure x 定義一個過程,過程名為x
display
該過程的語句
endproc
結(jié)束過程
SET PROCEDURE TO [過程文件名] 功能 :打開指定的過程文件 例:set procedure to 關(guān)閉正在打開的過程
set procedure to d:gc1 打開過程文件gc1 注:缺省可選項則關(guān)閉已經(jīng)打開的過程文件。DO <程序名|過程名> [WITH 參數(shù)表] 功能:調(diào)用指定的程序,并把指定的參數(shù)傳遞給調(diào)用的下級程序。注:缺省可選項,則不傳遞參數(shù)。
PAREMETERS <參數(shù)表> 功能:接受上級程序傳遞來的參數(shù) 例:input”你出生的年份:” to c
input”現(xiàn)在的年份:” to n
do c1 with c,n
調(diào)用過程c1并傳遞參數(shù)c和n,并執(zhí)行過程c1的語句
?”你現(xiàn)在”+alltrim(str(n))+alltrim(”歲”)
在屏幕上顯示“你現(xiàn)在n(變量)歲”,因n為數(shù)值型,所有要用str()函數(shù)轉(zhuǎn)換成字符型,用alltrim()函數(shù)消除多余的空格
return
procedure c1 定義過程c1
parameters x,y 接收上級傳遞過來的參數(shù),c對應(yīng)x,n對應(yīng)y
y=y-x 即用現(xiàn)在的年份減去你出生的年份,算出要計算的年齡
endproc
結(jié)束過程,并將參數(shù)y,x的值傳遞回c,n,此時執(zhí)行調(diào)用該過程之后的語句 注:在這里c,n稱為實參,即實際使用的參數(shù)。x,y稱為形參,即位置相同,形式相同的參數(shù)。
CREATE FORM <表單文件名> 功能:創(chuàng)建一個空白表單 例:create form d:bd1 建立一個名為bd1的表單 DO FORM <表單文件名> 功能:運行指定的表單 例:do form d:bd1 運行表單bd1
MODIFY FORM <表單文件名> 功能:打開指定的表單 例:modify form d:bd1 打開表單bd1 Thisform.refresh 功能:刷新表單
Thisform.release 功能:釋放并關(guān)閉表單,即從內(nèi)存中清除表單
Thisform.<對象名>.<屬性名>=<屬性值> 功能:修改或設(shè)置表單對象的屬性值Thisform.text1.value=”VFP”
這個表單的text1控件的value屬性值是”VFP” DO <菜單程序名> 功能:運行指定的菜單 例:do d:cd1.mpr 運行菜單cd1
DO <菜單程序名> WITH this ,T,功能:使用表單調(diào)用菜單 例:do d:cd1 with this ,T, 在當(dāng)前表單上調(diào)用菜單cd1
例:5
第四篇:VFP實驗報告總結(jié)
南京信息工程大學(xué)實驗(實習(xí))報告
實驗(實習(xí))名稱順序和選擇結(jié)構(gòu)程序設(shè)計實驗(實習(xí))日期 得分 指導(dǎo)老師
系專業(yè) 班級 學(xué)號 【實驗?zāi)康摹?/p>
1、掌握程序的建立、修改與運行
2、掌握基本輸入輸出語句與函數(shù)
3、熟練掌握if語句(包括單分支和雙分支)和do case語句的使用。
4、分析程序的運行結(jié)果。
【實驗內(nèi)容】
操作結(jié)果的界面截圖顯示。
1、從鍵盤輸入兩個數(shù)存入變量x和y,若x>y則交換他們的值,否則直接輸出x和y的值。
2、執(zhí)行下列程序后,變量x的值為()。x=1 if x>=1 do case case x>0 x=x+1 case x>1 x=x+1 otherwise x=4 endcase else x=3 endif
3、執(zhí)行下列命令序列,屏幕顯示()a=100 b=50 a=a+b b=a-b b=a*2 ? a+b
4、執(zhí)行下列命令序列,屏幕顯示()。b=6 do case case mod(b,3)=0 b=b+1 case mod(b,2)=0 b=b+2 otherwise b=b+3 endcase ? b
5、執(zhí)行下列命令序列,屏幕顯示()input to a if a=10 b=0 else b=1 endif ? b篇二:vfp實驗報告
天水師范學(xué)院數(shù)學(xué)與統(tǒng)計學(xué)院
實驗報告
實驗項目名稱 所屬課程名稱 實 驗 類 型 實 驗 日 期
班 級 學(xué) 號 姓 名 成 績 1 附錄1:源 程 序 2 附錄2:實驗報告填寫說明
1.實驗項目名稱:要求與實驗教學(xué)大綱一致。2.實驗?zāi)康模耗康囊鞔_,要抓住重點,符合實驗教學(xué)大綱要求。3.實驗原理:簡要說明本實驗項目所涉及的理論知識。4.實驗環(huán)境:實驗用的軟、硬件環(huán)境。5.實驗方案(思路、步驟和方法等):這是實驗報告極其重要的內(nèi)容。概括整個實驗過程。對于驗證性實驗,要寫明依據(jù)何種原理、操作方法進行實驗,要寫明需要經(jīng)過哪幾個步驟來實現(xiàn)其操作。對于設(shè)計性和綜合性實驗,在上述內(nèi)容基礎(chǔ)上還應(yīng)該畫出流程圖、設(shè)計思路和設(shè)計方法,再配以相應(yīng)的文字說明。對于創(chuàng)新性實驗,應(yīng)注明其創(chuàng)新點、特色。6.實驗過程(實驗中涉及的記錄、數(shù)據(jù)、分析):寫明具體實驗方案的具體實施步驟,包括實驗過程中的記錄、數(shù)據(jù)和相應(yīng)的分析。7.實驗結(jié)論(結(jié)果):根據(jù)實驗過程中得到的結(jié)果,做出結(jié)論。8.實驗小結(jié):本次實驗心得體會、思考和建議。9.指導(dǎo)教師評語及成績:指導(dǎo)教師依據(jù)學(xué)生的實際報告內(nèi)容,給出本次實驗報告的評價。3 篇三:vfp實驗報告范例
指導(dǎo)老師 萬潤澤 實驗名稱visual foxpro 操作基礎(chǔ)
同組人 日期日 成績
一、實驗?zāi)康?/p>
1)理解各種不同的數(shù)據(jù)類型 2)常量的含義以及各種不同數(shù)據(jù)類型的常量 3)變量的含義以及字段變量、內(nèi)存變量、系統(tǒng)變量和數(shù)組變量的使用
二、實驗環(huán)境(儀器設(shè)備、軟件等)windowsxp操作系統(tǒng)、visual foxpro環(huán)境
三、實驗原理(或要求)
(1)數(shù)值型、貨幣型、字符型、日期型和日期時間型常量的輸入
(2)日期格式的設(shè)置的命令
(3)字段變量與內(nèi)存變量同名時候,觀察賦值運算結(jié)果(4)數(shù)組變量的賦值
(5)內(nèi)存變量顯示、清除與保存所使用的命令
四、實驗步驟
?”計算機”,?123.45?,[?abc?,?abc?] 日期格式的設(shè)置
set century on|off set date to american ?{^2007-1-2} 結(jié)果: set mark to “.” ?{^2007-1-2} 結(jié)果 set strictdate to 0 ?{2007-5-30} 結(jié)果 set century on set mark to “|” set date to ymd 結(jié)果
創(chuàng)建一個學(xué)生表“學(xué)生.dbf”,其中包含字段學(xué)號、姓名、性別、出生日期等字段。并輸入多行記錄,再使用以下命令 use 學(xué)生
?姓名 go 3 ?姓名
五、記錄與處理(實驗數(shù)據(jù)、誤差分析、結(jié)果分析)
注意:
實驗步驟與記錄處理合成一個部分,都是用來記載上機實驗中的代碼以及運行結(jié)果,對于visual foxpro編程而言,不必分兩個部分。
在此頁中繼續(xù)寫入程序代碼以及相應(yīng)的運行結(jié)果。
這個部分內(nèi)容到課本52面結(jié)束
六、思考題
1、什么是常量?visual foxpro中哪幾種類型的數(shù)據(jù)有常量表示?
2、什么是變量?visual foxpro中有哪幾種變量?變量名取名是如何規(guī)定的?
七、實驗小結(jié)
這個地方可以寫入自己對上機內(nèi)容的理解,也可把自己不懂的內(nèi)容寫在下面
同組人 日期 成績
一、實驗?zāi)康?/p>
1)掌握表達式中各種運算符的運算規(guī)則 2)掌握各種類別的運算符的優(yōu)先級 3)理解函數(shù)的三要素以及各常用函數(shù)的用法
二、實驗環(huán)境(儀器設(shè)備、軟件等)windowsxp操作系統(tǒng)、visual foxpro環(huán)境
三、實驗原理(或要求)(1)幾種算術(shù)運算符、日期時間運算符和關(guān)系運算符的規(guī)則與使用
(2)字符串匹配運算符“=”、“= =”、“$”的含義
(3)在含有多種運算符的表達式中根據(jù)運算符優(yōu)先級進行運算
(4)常用函數(shù)的用法,注意函數(shù)的參數(shù)與返回類型
四、實驗步驟 p52 例3-8 3-9 3-10 例3-12 課后練習(xí)習(xí)題一(13)小題
例 3-14
五、記錄與處理(實驗數(shù)據(jù)、誤差分析、結(jié)果分析)
(接上頁)
例 3-15 ~ 34 選取有代表性的例子
注意:
實驗步驟與記錄處理合成一個部分,都是用來記載上機實驗中的代碼以及運行結(jié)果,對于visual foxpro編程而言,不必分兩個部分。
在此頁中繼續(xù)寫入程序代碼以及相應(yīng)的運行結(jié)果。
這個部分內(nèi)容從課本53到課本63面結(jié)束
六、思考題
1.什么是表達式?當(dāng)一個表達式中有多種類型的運算符并存時,一般的運算
順序是什么?
2.函數(shù)的三要素是什么?試指出month()函數(shù)在使用時的參數(shù)和返回值
數(shù)據(jù)類型?另外測試數(shù)據(jù)類型的函數(shù)是什么?
七、實驗小結(jié)
這個地方可以寫入自己對上機內(nèi)容的理解,也可把自己不懂的內(nèi)容寫在下面
同組人 日期 成績
一、實驗?zāi)康?/p>
1)掌握數(shù)據(jù)庫的基本操作
2)掌握表的基本操作,包括表結(jié)構(gòu)的創(chuàng)建、表結(jié)構(gòu)的顯示與修改以及表記錄的顯示、增加和修改
3)理解索引的概念并會在表設(shè)計器中建立索引
二、實驗環(huán)境(儀器設(shè)備、軟件等)windowsxp操作系統(tǒng)、visual foxpro環(huán)境
三、實驗原理(或要求)
(1)建立自由表,并使用表設(shè)計器設(shè)計每個字段的字段名、數(shù)據(jù)類型、寬度等
(2)在數(shù)據(jù)庫中創(chuàng)建表,在表設(shè)計器中對字段的有效性規(guī)則、默認值、格式、輸入掩碼等進行修改
(3)表的打開與瀏覽,增加表記錄和刪除表記錄
(4)在表設(shè)計器中建立索引,另外通過命令方式建立索引
四、實驗步驟
這個部分內(nèi)容從69面到課本88面結(jié)束
例4-1 顯示表結(jié)構(gòu) 例4-3 顯示男生的記錄
例4-4 例4-7 8 9 理解物理刪除和邏輯刪除之間的區(qū)別
例4-11
五、記錄與處理(實驗數(shù)據(jù)、誤差分析、結(jié)果分析)
注意:
實驗步驟與記錄處理合成一個部分,都是用來記載上機實驗中的代碼以及運行結(jié)果,對于visual foxpro編程而言,不必分兩個部分。
在此頁中繼續(xù)寫入程序代碼以及相應(yīng)的運行結(jié)果。
六、思考題
1)什么叫參照完整性?參照完整性分為哪幾種? 2)數(shù)據(jù)庫表和自由表有什么區(qū)別?
七、實驗小結(jié)
這個地方可以寫入自己對上機內(nèi)容的理解,也可把自己不懂的內(nèi)容寫在下面
同組人 日期 成績
一、實驗?zāi)康?/p>
1)使用sql查詢語句對表進行條件查詢 2)理解select命令中的幾個常用關(guān)鍵字的含義 3)能熟練掌握簡單查詢、聯(lián)接查詢、嵌套查詢 4)排序顯示查詢結(jié)果和計算查詢
二、實驗環(huán)境(儀器設(shè)備、軟件等)windowsxp操作系統(tǒng)、visual foxpro環(huán)境
三、實驗原理(或要求)1)select說明要查詢的數(shù)據(jù) 2)from說明要查詢的數(shù)據(jù)來自哪些表 3)where說明查詢的條件
4)order by 用來對查詢的結(jié)果排序 5)幾個特殊的運算符,如like,not in,between。。and。。,以及計算查詢
中用到的函數(shù),如count,sum,avg,max,min等
四、實驗步驟
這個部分內(nèi)容從104面到課本112面結(jié)束
例5-1 到 5-21 選擇典型的sql查詢語句
五、記錄與處理(實驗數(shù)據(jù)、誤差分析、結(jié)果分析)
(接上面的實驗步驟)
注意:
實驗步驟與記錄處理合成一個部分,都是用來記載上機實驗中的代碼以及運行結(jié)果,對于visual foxpro編程而言,不必分兩個部分。
在此頁中繼續(xù)寫入程序代碼以及相應(yīng)的運行結(jié)果。
六、思考題
1、課本136面
三、上機題 2(注:題目也要抄寫)
2、課本136面
三、上機題 3(注:題目也要抄寫)
七、實驗小結(jié)
這個地方可以寫入自己對上機內(nèi)容的理解,也可把自己不懂的內(nèi)容寫在下面篇四:vfp實驗報告1 實驗報告 時間:2013.4.6 地點:經(jīng)濟管理學(xué)院機房
實驗1:visual foxpro 集成環(huán)境及項目管理 實驗?zāi)康模?.掌握vfp啟動與退出的各種方法 2.熟悉vfp的集成操作環(huán)境,包括掌握工具欄、命令窗口打開與關(guān)閉的方法 3.了解“選項”對話框的內(nèi)容,并掌握一些常用的設(shè)置與命令 4.了解vfp幫助系統(tǒng)的大致結(jié)構(gòu),掌握其使用方法 5.掌握項目文件建立與打開的方法 6.了解項目管理器的結(jié)構(gòu)及其定制方法 實驗內(nèi)容:
一、vfp的啟動與退出 1.vfp的啟動 2.vfp的退出
二、工具欄
1、通過菜單命令“編輯”——“工具欄”
“工具欄”對話框
2、右擊工具欄無按鈕區(qū)域,利用快捷菜單打開與關(guān)閉快捷菜單 vfp主窗口
“工具欄”快捷菜單
三、“命令”窗口
1、命令窗口的打開與關(guān)閉
2、在“命令”窗口中執(zhí)行命令 練習(xí)內(nèi)容: ①計算并顯示算術(shù)表達式的值 ;?和??命令的區(qū)別
②clear清除vfp主窗口中所有信息;顯示默認文件夾中類型為dbf的文件目錄 ;顯示d盤根文件夾中所有文件的目錄
③新建文件夾、復(fù)制文件夾、改名文件、刪除文件、運行“計算器”
3、命令的編輯與重用
四、“選項”對話框
五、vfp的幫助系統(tǒng) 菜單命令”幫助——vfp幫助主題”
六、創(chuàng)建項目文件 “新建”對話框;“創(chuàng)建”對話框
1、項目文件的打開與關(guān)閉
2、項目管理器的定制
3、利用項目管理器管理文件
①添加文件 ②移去文件 ③其他操作
實驗心得:通過這次實驗,進一步掌握了vfp 啟動與退出的各種方法和vfp項目管理器有關(guān)的操作,同時也熟悉了vfp的集成操作環(huán)境。篇五:vfp--劉子恒--實驗報告1 13級電子信息工程班vfp實驗報告1 注:
1、一個實驗題目編寫一個實驗報告,每個報告至少占用1頁。
2、報告內(nèi)容必須具體、詳實,不得籠統(tǒng)、簡單。
第五篇:VFP程序設(shè)計總結(jié)
班級:電氣2013-1 學(xué)號:20***9
VFP程序設(shè)計
——課設(shè)總結(jié)
為期幾周的VFP數(shù)據(jù)庫設(shè)計的課設(shè)就快過去了,在這做課設(shè)的這段時間,可以說是有苦有甜,令人難忘。因此,有必要寫一篇總結(jié),記錄一下自己做課設(shè)的歷程。
剛剛接到老師的課設(shè)要求的時候有點傻眼了,得優(yōu)秀的要求是系統(tǒng)完善、寫一篇系統(tǒng)總結(jié)、回答老師對于代碼方面的提問。第一點似乎都還算能做到,但是對于我們這種連SQL語言的皮毛都沒學(xué),對于數(shù)據(jù)庫的系統(tǒng)結(jié)構(gòu)完全不了解的人,怎么能把三點要求都完成。
但是經(jīng)過一段時間的摸索,我漸漸對vf的數(shù)據(jù)庫系統(tǒng)有了大體的了解知道了什么是項目,數(shù)據(jù)庫就是數(shù)據(jù)表的集合,搞清了基本表單的制作過程,知道如何用快速報表和報表向?qū)ё龈袷降膱蟊?,以及對報表的美化、求和、計算等處理,還有就是如何去制作菜單,以及用菜單調(diào)用各種數(shù)據(jù)文件,最后的主程序是直接復(fù)制老師的代碼,但是憑著一點點C++和C語言基礎(chǔ),能夠看懂代碼的意思,這有助于我后期對整個系統(tǒng)進行查錯和修改。下面就講一下我對自己做的系統(tǒng)的總結(jié)。
1數(shù)據(jù)表(.dbf):數(shù)據(jù)表是整個系統(tǒng)的“原材料”,后期所有的制作處理,都是為了去處理和顯示這些數(shù)據(jù),去用這些數(shù)據(jù),當(dāng)然也可以說數(shù)據(jù)表依靠后期的表單等等呈現(xiàn)給用戶。
2數(shù)據(jù)庫(.dbc):數(shù)據(jù)庫以我看來就是數(shù)據(jù)表的集合,可以將無聯(lián)系的自由表集合到一個容器里,使他們可以產(chǎn)生聯(lián)系。并且將這些表作為后面其他東西的數(shù)據(jù)環(huán)境。
3表單(.scx):表單就是最后呈現(xiàn)給用戶的人機交互界面,并且?guī)в幸欢ǖ墓δ?。表單的制作首先需要要給他設(shè)置數(shù)據(jù)環(huán)境,因為其上面的各種控件都是以數(shù)據(jù)環(huán)境里面的數(shù)據(jù)實現(xiàn)控件的意義。各種控件比如標(biāo)簽就是用來顯示表單上需要顯示的一些文字提示,文本框就是用來顯示文本內(nèi)容,組合框可以下拉顯示一連串的內(nèi)容,表格控件可以顯示表格數(shù)據(jù),可以用生成器做出自定義的表格,按鈕控件可以通過某個過程比如單擊執(zhí)行用戶需要的事件代碼等等。最后表單生成以后,作為整個系統(tǒng)的優(yōu)良的用戶與系統(tǒng)的交互平臺。
4菜單(.mnx):菜單就是整個系統(tǒng)調(diào)用文件的工具,通過點擊菜單,可以調(diào)用任意用戶想要調(diào)用的文件比如表單,數(shù)據(jù)表,程序等等。
5程序(.prg)程序就是一段代碼,生成文件以后可以由其他文件調(diào)用并執(zhí)行,如主程序就是在系統(tǒng)運行時的入口,當(dāng)然得先設(shè)置好主文件;quit程序可以實現(xiàn)系統(tǒng)的退出。
除了以上幾個以外,還有工具欄、自定義類等等在系統(tǒng)中都起著重要的作用,最后講一下設(shè)置背景音樂所用的方法,用set bell to的方式定位到文件,用?chr(7)就能對WAV格式的音樂進行播放。
致謝:
整個課設(shè)過程收獲很多,不僅僅是了解了利用Visual fox 制作系統(tǒng)的方法,而且還增進了同學(xué)們之間的友誼。在這里感謝同學(xué)們的互相學(xué)習(xí)以及交流分享,還有老師孜孜不倦的引導(dǎo),總之,感謝老師,感謝同學(xué),感謝大家!
XXX