




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章表的基本操作2.1表的建立與修改2.2表達式2.3表的維護命令2.1表的建立與修改2.1.1表結構的建立一、設計表的結構編號名稱啟用日期價格部門主要設備備注商標016-1車床03/05/9062044.6121.T.Memogen016-2車床01/15/9227132.7321.T.memogen037-2磨床07/21/90241292.1222.T.memogen038-1鉆床10/12/895275.0023.F.Memogen100-1微機08/12/978810.0012.T.memoGen101-1復印機06/12/9210305.0112.F.memogen210-1轎車05/08/95151000.0011.F.memoGen表2-1設備清單表由結構和數據兩部分組成。表結構的建立就是定義各字段的屬性,基本的字段屬性可包括字段名、字段類型、字段寬度和小數位數等1.字段名字段名:用來標識字段,是一個以字母或漢字開頭,長度不超過10的字母、漢字、數字、下劃線序列。文件名:最多255個字符,\/:?*“<>|不能使用2.類型與寬度類型代號說明字段寬度范圍字符型C存放從鍵盤輸入的可顯示或打印的漢字和字符1個字符占1個字節最多254個字節數值型N存放由正負號、數字和小數點所組成且能參與數值運算的數據最多20位-0.9999999999E+19到0.9999999999E+20貨幣型Y與數值型不同的是數值保留4位小數8個字節-922337203685477.5808到922337203685477.5807日期型D格式為mm/dd/yy,mm、dd、yy分別代表月、日、年。例如05/15/95表示1995年5月15日8個字節01/01/001到12/31/9999表2-2字段類型與寬度類型代號說明字段寬度范圍日期時間型T存放日期與時間。例如05/15/9512:00:00AM表示1995年上午12點鐘8個字節01/01/001到12/31/9999,加上午00:00:00到下午11:59:59邏輯型L存放邏輯值T或F。T表示“真”;F表示“假”1個字節“真”值.T.或“假”值.F.浮點型F同數值型,為與其它軟件兼容而設置整型I存放不帶小數點的數值4個字節-27147483747到27147483747雙精度型B存放精度要求較高的數值,或真正的浮點數8個字節+/-4.94065645841247E-324到+/-8.9884656743115E307備注型M能接受一切字符型數據,數據保存在與表主名相同的備注文件中,其擴展名為.FPT。該文件隨表的打開自動打開,但被損壞或丟失表就打不開。4個字節只受存儲空間限制通用型G用來存放圖形、電子表格、聲音等多媒體數據。數據也儲存于擴展名為.FPT的備注文件中。4個字節只受存儲空間限制3.小數位數注意:小數點和正負號都須在字段寬度中占一位。表2-3設備表的結構字段名類型寬度小數位數編號字符型5名稱字符型6啟用日期日期型8價格數值型92部門字符型2主要設備邏輯型1備注備注型4商標通用型4方便起見,上述表結構也可表示為:SB(編號C(5),名稱C(6),啟用日期D,價格N(9,2),部門C(2),主要設備L,備注M,商標G)。二、建立表的結構兩個約定:⑴菜單操作方式中,用“→”來表示下一步驟。⑵用戶文件均建立在D:\xxx目錄下(xxx表示姓名縮寫)。指定路徑方法:①“工具”菜單→“選項”命令圖2-1設置默認目錄②在命令窗口內鍵入命令:SETDEFAULTTOD:\xxx。命令窗口的顯示與隱藏:隱藏:“窗口”菜單→“隱藏”命令;顯示:“窗口”菜單→“命令窗口”命令,或按快捷鍵Ctrl+F2。【例2-1】建表操作示例:建立表SB.DBF的結構。⑴菜單方式建表。設置路徑:SETDEFAULTTOD:\xxx。選擇“文件”菜單→“新建”命令,出現如圖2-2所示對話框。
圖2-2新建對話框圖2-3創建對話框在“創建”對話框中輸入表名后出現如圖2-4所示的表設計器。圖2-4表設計器的字段選項卡⑵命令方式建表。設置路徑:SETDEFAULTTOD:\xxx。在命令窗口中鍵入“creatsb.dbf”或“creatsb”,回車后即可出現sb.dbf的表設計器。⑶設定表中各字段的屬性值。字段屬性設置完成后,單擊“確定”按鈕,即出現如圖2-5所示的對話框。圖2-5輸入記錄詢問對話框2.1.2表數據的輸入圖2-6記錄編輯窗口一、數據輸入要點⑴表的數據可通過記錄編輯窗口按記錄逐個字段輸入。用其它方法輸入或修改⑵邏輯字段只能接受T,Y,F,N這4個字母之一(不分大小寫)。⑶日期型數據必須與日期格式相符,默認按美國日期格式mm/dd/yy。設置中國日期格式yy.mm.dd:在命令窗口中鍵入:SETDATEANSI。設置美國日期格式mm/dd/yy:在命令窗口中鍵入:SETDATEAMERICAN。顯示/隱藏“世紀”:在命令窗口中鍵入:SETCENTURYON|OFF。⑷備注型(memo)或通用型(gen)字段的輸入方法:若不想輸入數據可按回車鍵跳過;若要輸入數據,按Ctrl+PgDn或用鼠標雙擊能打開相應的字段編輯窗口。注意:某記錄的備注型或通用型字段非空時,其字段標志首字母將以大寫顯示。二、備注型字段數據的輸入打開當前記錄的備注型字段編輯窗口就可以輸入工修改備注信息。備注字段的文本可利用編輯菜單進行剪切、復制、粘貼,還可利用格式菜單的字體選項設置字體、字體樣式、字的大小。三、編輯窗口的打開與關閉表2-4編輯窗口打開或關閉的方法窗口開關操作記錄編輯窗口備注型或通用型字段編輯窗口打開打開表,選定顯示菜單的瀏覽命令雙擊memo或gen區,或光標在該區時按Ctrl+PgDn關閉數據存盤單擊窗口右上角的關閉按鈕或按Ctrl+W鍵廢棄本次輸入的數據按Esc鍵或Ctrl+Q鍵四、表的打開與關閉1.用USE命令來打開或關閉表命令格式:USE[<文件名>]功能:在當前工作區中打開或關閉表。(.DBF和.FPT)說明:⑴<文件名>表示被打開的表的名字;缺省<文件名>表示關閉當前工作區。⑵打開一個表時,該工作區中原來打開的表會自動關閉。⑶表剛打開時,記錄指針指向第一個記錄。⑷表操作結束后就及時關閉,以便將內存的數據保存到表中。2.打開表的其它常用方法⑴通過文件菜單的打開命令來打開表。“文件”菜單→“打開”命令圖2-7打開對話框注意:若要修改表結構或記錄,還應選定打開對話框中的“獨占”復選框。3.關閉表的其它方法⑴可用下列命令之一來關閉表。CLEARALL(注意與CLEAR的區別)CLOSEALLCLOSEDATABASE[ALL]CLOSETABLES[ALL]⑵通過窗口菜單的數據工作期命令來關閉表。⑶通過退出VFP來關閉。選定“文件”菜單的“退出”命令,或在命令窗口中鍵入命令QUIT。2.1.3表結構的修改一、打開表設計器來修改表結構前提:表必須打開。表設計器的打開方法:⑴打開“顯示”菜單→“表設計器”。⑵在命令窗口中鍵入命令:MODIFYSTRUCTURE。圖2-4表設計器的字段選項卡二、利用表向導來修改表結構1.打開表向導對話框的方法方法一:“文件”菜單→“新建”命令→“表”單選框→“向導”按鈕。方法二:“工具”菜單→選定“向導”命令的“表”子命令。圖2-8表向導對話框2.字段選取窗口的操作⑴選表:利用“加入”按鈕添加需要的表,并在樣表中列表中選定它。⑵確定字段:用戶所要的字段應從“可用字段”列表中選取,并使用箭頭按鈕將它們送到“選定字段”列表中。⑶選定下一步按鈕進入修改字段設置窗口。其它步驟一般可省略。按“完成”按鈕是操作表向導的最后一步。2.1.4表數據的修改一、兩種記錄顯示方式1.編輯方式一個字段占一行,記錄按字段豎直排列。2.瀏覽方式一個記錄占一行。(a)編輯窗口(b)瀏覽窗口圖2-9編輯窗口與瀏覽窗口3.顯示格式的切換顯示格式可通過“顯示”菜單來切換。
(a)沒有表被打開(b)打開sb.dbf(c)打開sb.dbf并瀏覽二、瀏覽窗口的操作1.打開瀏覽窗⑴界面操作方式打開要瀏覽的表(例如sb.dbf),然后選定顯示菜單的瀏覽命令。⑵命令方式在命令窗口先后發出以下命令:USE<表名>&&例如USEsbBROWSE&&瀏覽命令2.滾動查看3.一窗兩區(a)一窗兩區(b)表菜單圖2-11具有兩個分區的瀏覽窗口【例2-2】以一窗兩區顯示SB.DBF的數據,要求一窗瀏覽,一窗編輯。三、在記錄窗口追加與刪除記錄⑴記錄的追加追加方式:在表末追加一個新記錄,連續追加。追加記錄:在表末僅添加一個記錄。⑵記錄的刪除刪除記錄分打上刪除標記和從磁盤上徹底刪除兩步。邏輯刪除:標記瀏覽窗口左側的刪除標記域。物理刪除:執行顯示菜單的徹底刪除命令。菜單菜單命令等效命令功能顯示追加方式在表末追加一個新記錄,連續追加表追加新記錄APPEND在表末追加一個新記錄切換刪除標記DELETE;RECALL給相應記錄標記上或取消“刪除標記”徹底刪除PACK將具有刪除標記的記錄從磁盤上刪除追加記錄APPENDFROM在表末追加一批記錄,來源為其它表、文本文件等之一表2-5追加與刪除記錄的部分菜單命令2.1.5通用型字段一、通用型字段數據的輸入1.通過剪貼板粘貼。2.通過“編輯”菜單的“插入對象”命令來插入圖形。【例2-3】在SB.DBF的“微機”記錄中輸入它的“商標”。⑴打開SB.DBF微機記錄的通用型字段窗口。圖2-12“sb.商標”通用型字段窗口⑵往通用型字段窗口插入圖形。步驟:“編輯”菜單→“插入對象”命令→“由文件創建”選項按鈕→“瀏覽”按鈕→“確定”按鈕。圖2-13插入對象對話框幾點說明:⑴通用型字段窗口也可用命令來打開。若SB.DBF已打開,執行下述命令就能打開第一個記錄的“sb.商標”窗口:MODIFYGENERAL商標⑵除位圖文件外,其它類型的圖形及聲音等多媒體數據也可供插入。⑶“從文件創建”選項按鈕的功能是插入已有的的圖形。“新建”選項按鈕的是建立其它類型的媒體文件,并打開相應的編輯窗口。⑷圖形的插入也可通過剪貼板來粘貼。操作過程:復制圖形→打開通用型字段窗口→“編輯”菜單→“粘貼”命令。二、通用型字段數據的編輯方法:雙擊通用型字段窗口便可編輯圖形。OLE服務器:存儲源對象的應用程序,如畫圖程序或Word、Excel等。OLE客戶:存儲鏈接對象的應用程序。如VFP的通用型字段。鏈接:OLE服務器存儲著OLE對象,但客戶應用程序僅存儲指向該OLE對象的指針,不存儲OLE對象本身。故客戶使用的OLE對象來自服務器,而且源OLE對象的變化能使客戶使用的OLE對象立即變化。鏈接方式節省了存儲空間。嵌入:OLE服務器和客戶都存儲OLE對象,但后者的OLE對象是從前者得到的。服務器OLE對象的變化不能使客戶OLE對象自動發生變化。三、通用型字段數據的刪除打開通用型字段窗口,然后選定編輯菜單的“清除”命令。2.2表達式表達式具有計算、判斷和數據類型轉換等作用,廣泛應用于命令、函數、對話框、控件及屬性之中,可以是常量、變量、函數和運算符的組合。如表達式2*PI()*R可計算半徑為R的圓的周長。2.2.1常量一、數值型常量整數、小數或用科學計數法表達的數。例如10,-100,2.81828,0.281828E1。二、字符型常量用雙引號、單引號或方括號等定界符括起來的字符串,如″微機″,′PC′機、,[計算機],″3.14159″。其最大長度為254個字符。若字符串中包含有定界符,則需用另一種定界符把它括起來,如″I′mastudent″。三、日期型和日期時間型常量
日期型常量必須用{}括起來,如{06/90/1999},{6/30/99},空白的日期可表示為{}或{/}。
日期時間型常量的寫法如{9/15/988:45},空白的日期可表示為{/:}。“嚴格的日期格式”為:^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]。“-”可用“/”來代替。VFP默認使用嚴格的日期格式。通常日期格式與嚴格日期格式的切換命令為:SETSTRICTDATETO0|1。四、邏輯型常量只有真和假兩種值。.T.,.t.,.Y.,.y.都表示真;.F.,.f.,.N.,.n.都表示假。五、貨幣型常量貨幣型常量以$符號開頭,并四舍五入到4位小數。如貨幣型常量$100.12345的計算結果為:100.1235。2.2.2變量在命令操作和程序運行過程中其值允許變化的量稱為變量,變量包括內存變量、字段變量和系統內存變量等3種。一、內存變量內存變量可用來存儲數據,定義內存變量時需為它取名并賦值,內存變量建立后存儲于內存中。1.VFP的命名規則⑴以字母(也可漢字)或下劃線開頭;⑵由字母、數字、下劃線組成;⑶至多128個字符;⑷不可與系統保留字(如USE)同名。2.內存變量賦值
命令格式1:<內存變量>=<表達式>命令格式2:STORE<表達式>TO<內存變量表>
功能:計算<表達式>,然后將計算結果賦給內存變量。【例2-3】定義內存變量S,N1,N2,N3。s=′VFP′STORE2*4TOn1,n2,n3說明:⑴內存變量在賦值時定義了它的類型,其類型與所賦的值的類型相同。⑵STORE命令的<內存變量表>可包括多個內存變量,但須用逗號來分隔;“=”僅可給一個變量賦值。3.表達式值顯示命令
命令格式:?|??<表達式表>
功能:計算表達式的值,并將其顯示在屏幕上。⑴?表示從屏幕下一行的第一列起顯示結果,如顯示例2-4中變量S和N1的值。?s&&在VFP主窗口中顯示VFP?n1&&換一行后顯示8⑵??表示從當前行的當前列起顯示結果,如:?s&&顯示VFP??′數據庫應用′&&緊接上一命令顯示結果VFP的后面顯示數據庫應用⑶<表達式表>表示可用逗號來隔開多個表達式,命令執行時遇到逗號就會空一格,如:?′S=′,s&&顯示S=VFP二、數組數組是按一定順序排列的一組內存變量,數組中的各個變量稱為數組元素。數組必須先定義后使用。1.數組的定義命令格式:DIMENSION|DECLARE<數組名>(<下標1>[,<下標2>])[,<數組名>(<下標1>)[,<下標2>]]……]功能:定義一維或二維數組,及其下標的上界。說明:⑴系統規定各下標的下界為1.例如:DIMENSIONx(3),a(2,3)分別定義一維數組x和二維數組a。數組x有3個數組元素x(1),x(2),x(3)數組a有2行3列6個元素,分別表示為a(1,1),a(1,2),a(1,3),a(2,1),a(2,2),a(2,3)。⑵數組最大數將受可用內存的制約。2.數組的賦值⑴VFP允許同一數組的元素取不同類型,而且同一個元素的前后類型也允許改變。在定義數組時,系統將各數組元素的初值設置為.F.。⑵用賦值命令可為數組元素單個地賦值,也可為整個數組的各個元素賦以相同值。例如賦值命令“a=8”可為上面定義的二維數組a的6個元素都賦以同樣的初值8。⑶二維數組各元素在內存中按行的順序存儲,而且也可按一維數組來表示其數組元素。例如上述二維數組a中的元素a(2,2)排在第2行第2列,由于每行有3個元素,所以該元素也可用a(5)來表示。三、字段變量表的每一個字段都是一個字段變量。如:USEsb?名稱&&SB.DBF打開后記錄指針指向第1個記錄,顯示車床GO5&&將記錄指針指向第5個記錄?名稱&&顯示微機為簡便計,內存變量簡稱為變量,字段變量直接以字段來稱呼。四、系統變量以下劃線開頭,分別用于控制外部設備(如打印機、鼠標等),屏幕輸出格式,或處理有關計算器、日歷、剪貼板等方面的信息。⑴_DIARYDATE:存儲當前日期⑵_CLIPTEXT:接受文本并送入剪貼板。如:_CLIPTEXT=″VFP″五、內存變量的顯示命令格式:LIST|DISPLAYMEMORY[LIKE<通配符>][TOPRINTER[PROMPT]|TOFILE<文件名>]功能:顯示當前已定義的內存變量名、作用范圍、類型和值。說明:⑴LIKE子句表示將選出與通配符相匹配的內存變量,<通配符>有?和*兩種。缺省該選項則選出全部內存變量(包括系統內存變量),并同時顯示當前內存變量總的個數、字節數等。⑵TOPRINTER能將屏幕顯示內存輸出到打印機;[PROMPT]能提供要否打印的提示窗;TOFILE<文件名>能將顯示內容存入文件。六、內存變量的清除命令格式:RELEASE[<內存變量表>][ALL[LIKE|EXCEPT<通配符>]]功能:從內存清除指定的內存變量。例如:RELEASEa,b&&清除內存變量a和bRELEASEALL&&清除用戶定義的所有內存變量RELEASEALLLIKEa*&&清除所有首字母為A的內存變量RELEASEALLEXCEPT?b*&&清除第二個字符為B以外所有內存變量2.2.3運算符一、算術、關系、邏輯運算表2-6VFP算術、關系、邏輯運算符運算優先級運算符意義例子算術8()圓括號7^或**乘方?3^2&&96×乘/除%取模:取兩數相除的余數?15%4&&35+加-減關系4<小于?63<54&&.F.<=小于等于?{01/01/92}<={01/01/92}&&.T.>大于?”ABC”>”AAAA”&&.T.>=大于等于?”大專”>=”大學”&&.T.=相等:串比較時串首同就得真?“ABC”=”AB”&&.T.==完全相等:兩串全同才得真?“ABC”==”AB”&&.F.<>、#或!=不相等?.T.<>.F.&&.T.$包含:左串是右串子串才得真?“BC”$”ABCD”&&.T.邏輯3NOT或!非:結果是右邊邏輯值的反?NOT”BC”$”ABCD”&&.F.2AND與:兩邊結果都真才得真?.T.AND”ABC”>”AB”&&.F.1OR或:兩邊有一為真就得真?.T.OR4=5&&.T.說明:⑴算術運算的操作數必須是數值,運算結果也是數值。運算順序為:乘方→乘除、取模→加、減;同一級別從左至右;先括號,括號嵌套先內后外。⑵關系運算兩操作數類型必須一致,比較結果是邏輯型。⑶邏輯運算的操作數須是能得出邏輯值的表達式,運算結果也是邏輯值。關系運算常用來描述某種條件,而邏輯運算可用于描述復合的條件。⑷表達式計算按優先級從高到低執行。如:.T.AND”ABC”>”AB”。⑸表達式值的類型決定了表達式的類型。二、字符、日期與日期時間運算1.字符運算符+運算符:連接兩個字符串。-運算符:連接兩個字符串,并將前一個字符串尾部的空格移到結果字符尾部。?“信息”+”技術”&&顯示“信息技術”?“信息”-”技術”&&顯示“信息技術”2.日期與日期時間運算符日期型數據進行運算指日期的加減,或加減某個天數。?{12/31/99}-{12/31/98}?{06/30/98}-61日期時間型數據進行運算指日期時間的加減,或加減某個秒數。?{09/01/199812:00am}+60若表達式含有變量,必須是當前表的字段或者是已賦過值的內存變量。2.2.4函數一、函數的要素函數有函數名、參數和函數值3個要素。⑴函數名:起標識作用。⑵參數:自變量,一般是表達式,寫在括號內。⑶函數值:函數運算后會返回一個值。如:?SQRT(4)&&顯示函數值2.00有的函數缺省參數,稱為啞參,但仍有返回值。如DATE()能返回系統當前日期。二、函數的類型函數的類型指函數值的類型。使用TYPE函數能返回表達式的類型,或測出函數的類型。如:?TYPE(“DATE()”)&&顯示D,表明函數DATE()是日期型函數。三、常用函數表2-7數值型函數函數功能例子ABS(<數值表達式>)求<數值表達式>的絕對值?ABS(-4)&&4SQRT(<數值表達式>)求<數值表達式>的平方根?SQRT(4)&&2.00EXP(<數值表達式>)求e的<數值表達式>次方的值?EXP(2)&&7.39INT(<數值表達式>)返回<數值表達式>的整數部分?INT(7,5)&&7MAX(<數值表達式1>,<數值表達式2>)返回兩個數值表達式中的較大者?MAX(4,7)&&7MOD(<數值表達式1>,<數值表達式2>)取模,即返回<數值表達式1>除以<數值表達式2>所得的余數?MOD(8.7,3)&&2.7ROUND(<數值表達式1>,<數值表達式2>)<數值表達式1>四舍五入,保留<數值表達式2>位小數?ROUND(3.1415,3)&&3.142RAND(<數值表達式>)返回偽隨機數?RAND()&&返回偽隨機數,如0.85表2-8字符處理函數函數功能例子SUBSTR(<字符表達式1>,<數值表達式1>[,<數值表達式2>])返回<字符表達式>中第<數值表達式1>位起的長度為<數值表達式2>的子串?SUBSTR(“ABCD”,2,2)&&“BC”LEFT(<字符表達式>,<數值表達式>)返回<字符表達式>左起<數值表達式>個字符的子串?LEFT(“ABCD”,2)&&”AB”RIGHT(<字符表達式>,<數值表達式>)返回<字符表達式>右起<數值表達式>個字符的子串?RIGHT(“ABCD”,2)&&”CD”LEN(<字符表達式>)返回字符串的長度?LEN(“ABCD”)&&4AT(<字符表達式1>,<字符表達式2>[,<數值表達式>])返回字符串<字符表達式1>在<字符表達式2>中第<數值表達式>次出現的位置?AT(“BC”,”ABCD”,1)&&2ALLTRIM(<字符表達式>)刪除字符串前導和末尾的空格?ALLTRIM(“ABCD“)&&“ABCD”SPACE(<數值表達式>)返回<數值表達式>個空格?SPACE(4)&&““UPPER(<字符表達式>)將小寫字母轉換為大寫?UPPER(“aBc”)&&”ABC”LOWER(<字符表達式>)將大寫字母轉換為小寫?LOWER(“aBc”)&&“abc”VAL(<字符表達式>)將字符串轉換為數值?VAL(“3.14”)&&3.14STR(<數值表達式1>[,<數值表達式2>[,<數值表達式3>]]))將數值<數值表達式1>轉換為長度為<數值表達式2>位,有<數值表達式3>位小數的字符串?STR(3.14,5,1)&&“3.1”CHR(<數值表達式>)從<數值表達式>表示的ASCII碼返回字符?CHR(65)&&”A”ASC(<字符表達式>)返回字符的ASCII碼值?ASC(“A”)&&65說明:⑴STR函數中<數值表達式2>缺省值為10,<數值表達式3>缺省值為0。例如:STR(3.1415)的值是”3”,該字符串之中有9個空格。⑵AT函數中<數值表達式3>的缺省值為1,即求第一次出現的位置。⑶SUBSTR函數中若<數值表達式2>缺省,則子串取到<字符表達式>的最后一個字符。表2-9日期處理函數函數功能例子CTOD(<字符表達式>)將<字符表達式>轉換為日期?CTOD(“10/1/99”)&&10/01/99DTOC(<日期表達式>)將<日期表達式>轉換為字符串?DTOC({10/1/99})&&“10/01/99”DTOS(<日期表達式>)<日期表達式>轉換為YYYYMMDD格式字符串?DTOS({10/1/99})&&“19991001”TIME()以HH:MM:SS的格式返回系統當前時間?TIME()&&“14:56:12”DATE()返回系統的當前日期?DATE()&&02/01/99YEAR(<日期表達式>)返回年份?YEAR(DATE())&&1999表2-10邏輯型函數函數功能例子BOF([<工作區>])記錄指針指向首記錄之前時返回.T.,否則返回.F.EOF([<工作區>])記錄指針指向末記錄之后時返回.T.,否則返回.F.FOUND([<工作區>])用LOCATE,CONTINUE,SEEK,FIND查到返回.T.,否則返回.F.FILE([<字符表達式>])文件<字符表達式>存在返回.T.,否則返回.F.MDOWN()鼠標左鍵按下返回.T.,否則返回.F.(用于程序中)表2-11其它函數函數功能例子DBF([<工作區>])返回工作區中打開表名稱RECNO([<工作區>])返回工作區中當前記錄的記錄號TYPE(“<字符表達式>”)返回表達式類型,以N,C,D,L等之一表示2.2.5VFP命令常用子句一、四種常用命令子句命令構成:命令動詞+命令子句。常用子句:<范圍>、FOR<條件>、WHILE<條件>與FIELDS<字段名表>。以LIST命令為例說明。命令格式:LIST|DISPLAY[[FIELDS]<表達式表>][<范圍>][FOR<條件>][WHILE<條件>][OFF][TOPRINT[PROMPT]|TOFILE<文件>]功能:在表中按指定范圍與條件篩選出記錄并顯示出來,或送出指定的目的地。說明:⑴命令動詞命令動詞是VFP的命令的名字,用來表示命令的操作,如“LIST”,“DISPLAY”等。⑵范圍子句用來確定執行該命令涉及的記錄,范圍有4種限定方法:ALL所有記錄NEXT<N>從當前記錄起的N個記錄RECORD<N>第N個記錄REST從當前記錄起到最后一個記錄止的所有記錄缺省范圍子句時通常默認為ALL,但也有例外,如DISPLAY。⑶FOR子句FOR子句的<條件>為邏輯表達式,它指定選擇記錄的條件。USEsbGO2&&記錄指針指向第2條記錄LISTNEXT5FOR價格>10000&&顯示第2,3,6等3個記錄⑷WHILE子句該子句也用于指明操作條件,但它僅在當前記錄符合<條件>時開始依次篩選記錄,一旦遇到不滿足條件的記錄時就停止操作。注意:若一條命令中同時有FOR與WHILE子句時則優先處理后者。⑸FIELDS子句確定需要操作的字段。該子句的保留字FIELDS可以缺省。例如:LISTRECORD5FIELDS編號,名稱,價格FIELDS子句缺省時顯示除備注型、通用型字段外的所有字段。⑹LIST命令自動顯示記錄號,若要求記錄號不顯示,只須在命令中使用[OFF]選項。⑺LIST和DISPLAY功能區別:前者以滾動方式輸出,后者則為分屏輸出;在缺省范圍時,前者默認所有記錄,后者只指當前一個記錄。【例2-5】按下列要求顯示SB.DBF的有關信息。⑴列出頭3個記錄。⑵列出部門代碼為21(一車間)的編號、名稱與備注。⑶列出1995年前所有啟用設備的編號、名稱、價格與啟用日期,還要求其中的價格打9折,并且不顯示記錄號。USEsbLISTNEXT3LIST部門,編號,名稱,備注FOR部門=”21”LIST編號,名稱,價格*0.9,啟用日期FORYEAR(啟用日期)<1995二、命令和子句的書寫規則⑴命令動詞與子句、子句與子句之間、子句內的各部分之間必須用空格隔開,但各子句的次序允許任意排列。⑵命令動詞、各子句中的保留字和函數名都可簡寫為4個字母,大小寫等效。⑶命令最長8192個字符,一行寫不下,可使用續行符“;”。2.3表的維護命令2.3.1表與表結構的復制一、復制任何文件命令格式:COPYFILE<文件名1>TO<文件名2>功能:從<文件名1>文件復制得<文件名2>文件。說明:⑴若對表進行復制,該表必須處于關閉狀態,例如復制SB表:USECOPYFILESB.DBFTOSB1.DBFCOPYFILESB.FPTTOSB1.FPT⑵<文件名1>和<文件名2>都可使用通配符*號和?號。二、從表復制出表或其它類型的文件命令格式:COPYTO<文件名>[范圍][FOR<條件>][WHILE條件][FIELDS<字段名表>|FIELDSLIKE<通配字段名>|FIELDSEXCEPT<通配字段名>][[TYPE][SDF|XLS|DELIMITED[WITH<定界符>|WITHBLANK|WITHTAB]]功能:將當前表中選定的部分記錄和部分字段復制成一個新表或其它類型的文件。說明:⑴含有備注型字段的表,復制擴展名為DBF的文件的同時自動復制擴展名為.FPT的備注文件。【例2-6】復制表示例。USEsbCOPYTOa1COPYTOa2FIELDS名稱,編號FORLEFT(部門,1)="2";⑵復制所得的新表必須被打開,也即被選作為當前表后才可進行操作。接上例,LISTUSEa2LIST⑶<通配字段名>指表示字段名時可使用通配符?和*。⑷新文件的類型:表,系統數據格式、定界格式等的文本文件或MicrosoftExcel文件。不含TYPE子句,默認新文件的類型是表。【例2-6】以系統數據格式將sb.dbf的前3個記錄復制到文本文件。USEsbCOPYTOb1NEXT3SDFTYPEb1.txt
016-1車床1990030562044.6121T016-2車床1992011527132.7321T037-2磨床19900721241292.1222T若例中COPY命令的SDF改為XLS,將產生文件B1.XLS。若例中COPY命令的SDF改為DELIMITED,將產生文件B1.TXT,用TYPE命令顯示如下:
"037-2","磨床",07/21/1990,241292.12,"22",T,"038-1","鉆床",10/12/1989,5275.00,"23",F,"100-1","微機",08/12/1997,8810.00,"12",T,三、復制表的結構命令格式:COPYSTRUCTURETO<文件名>[FILEDS<字段名表>]功能:僅僅復制當前表的結構。如:USEsbCOPYSTRUCTURETOsb2FIELDS名稱,價格,編號,備注表2-11其它函數四、其它文件操作命令命令格式功能RENAME<原文件名>TO<新文件名>文件改名ERASE|DELETEFILE<文件名>刪除文件DIR[<驅動器>][<通配符>][TOPRINT]顯示文件目錄TYPE<文件名>[TOPRINT]顯示文本文件的內容2.3.2記錄指針的移動一、記錄定位命令命令格式1:GO[TO]TOP|BOTTOM命令格式2:[GO[TO]]<數值表達式>USESB?RECNO()GOBOTTOM?RECNO()GO4?RECNO()2?RECNO()USE二、記錄移位命令命令格式:SKIP[<數值表達式>]USESB?RECNO(),BOF()SKIP-1
?BOF(),RECNO()SKIP6?RECNO(),EOF()SKIP?RECNO(),EOF()2.3.3記錄的插入與追加一、插入新記錄命令格式:INSERT[BLANK][BEFORE]功能:在表的任意位置加入一條新記錄或空白記錄,表數據以界面操作方式輸入。二、追加新記錄1.INSERT-SQL命令命令格式:INSERTINTO表名[(字段名1[,字段名2,…])]VALUES(表達式1[,表達式2,…])功能:在表尾追加一個新記錄,并直接饋入記錄數據。INSERTINTOSB(編號,名稱,啟用日期,價格,主要設備,備注);VALUES("110-1","打印機",{08/15/97},5000.00,.F.,"調撥")2.APPEND命令命令格式:APPEND[BLANK]3.APPENDFROM命令命令格式:APPENDFROM<文件名>[FIELDS<字段名表>][FOR<條件>][[TYPE]DELIMITED[WITH<定界符>|WITHBALANK|WITHTAB]|SDF|XLS]]功能:在當前表的末尾追加一批記錄,這些記錄來自另一文件。2.3.4表記錄的刪除和恢復一、記錄邏輯刪除命令命令格式:DELETE[<范圍>][FOR<條件>][WHILE<條件>]功能:對當前表在指定<范圍>內滿足<條件>的記錄加上刪除標記。二、記錄物理刪除命令命令格式:PACK功能:將已加上刪除標記的記錄從物理(磁盤)上刪除。三、記錄恢復命令命令格式:RECALL[<范圍>][FOR<條件>][WHILE<條件>]功能:對當前表在指定<范圍>內滿足<條件>的記錄去掉刪除標記。四、記錄清除命令命令格式:ZAP功能:物理刪除當前表中的所有記錄。執行ZAP相當于執行DELETEALL和PACK兩條命令。2.3.5表數據的替換一、成批修改數據命令格式:REPLACE<字段名1>WITH<表達式1>[ADDITIVE][,<字段名2>WITH<表達式2>[ADDITIVE]]…[<范圍>][FOR<條件>][WHILE<條件>]功能:在當前表的指定記錄中,將有關字段的值用相應的表達式值來替換。USEsbREPLACE價格WITH價格-1000,部門WITH“11”FOR主要設備APPENDBLANKREPLACE編號WITH“301-1”,名稱WITH“掃描儀”USEsbREPLACE備注WITH“,”+編號+名稱ADDITIVE二、單個記錄與數組間的數據傳送1.將記錄傳送到數組或內存變量命令格式:SCATTER[FIELDS<字段名表>|FIELDSLIKE<通配字段名>|FIELDSEXCEPT<通配字段名>][MEMO]TO<數組名>[BLANK]|MEMVAR[BLANK]功能:將當前記錄的字段值按<字段名表>順序依次送入數組元素中,或依次送入一組內存變量。USEsbSCATTERMEMVAR?m.編號,m.名稱,m.價格2.將數組或內存變量的數據傳送到記錄命令格式:GATHERFROM<數組名>|MEMVAR[FIELDS<字段名表>|FIELDSLIKE<通配字段名>|FIELDSEXCEPT<通配字段名>][MEMO]功能:將數組或內存變量的數據依次傳送到當前記錄,以替換相應字段值。USEsbSCATTERTOAMEMO?a(1),a(2),a(4),a(7)a(4)=6000GATHERFROMaDISPLAY注意:使用GATHER命令時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業生就業工作管理辦法
- 臨夏市業績考核管理辦法
- 銀行耗材領用管理辦法
- 民族成份登記管理辦法
- 化妝品抽檢機構管理辦法
- 宜昌市創新環境管理辦法
- 機關辦公樓供暖管理辦法
- 《渣土車運輸管理辦法》
- 小作坊管理管理辦法細則
- 《食品召回管理辦法》
- 2025年廣東省中考英語試題卷(含答案解析)
- 2025年吉林省中考物理試卷真題及答案詳解(精校打印版)
- 浙江省溫州市瑞安市2023-2024學年四年級下學期英語期末試卷6月(含答案)
- 2025至2030中國羅伊氏乳桿菌行業市場現狀分析及競爭格局與投資發展報告
- 標準的編寫講課件
- 學堂在線 護理研究方法 期末考試答案
- 2025年湖南省中考英語試卷真題(含答案解析)
- 重癥超聲在急性呼吸困難快速鑒別診斷中的應用
- 2025年天津市中考英語真題試卷及答案
- 鄉鎮會議制度管理制度
- 2025至2030年中國電子束曝光系統行業市場研究分析及發展前景研判報告
評論
0/150
提交評論