① 關於VF的一些命令
VF命令一覽表:
一、命令
1.use 表名 打開表
2.List 顯示表記錄,但不能修改
3.browse 瀏覽表記錄,可以修改
4.display 顯示記錄指針指向的記錄
5.append 追加記錄
6.append blank 追加空白記錄
7.insert blank 插入空白記錄
8.delete 邏輯刪除記錄,記錄前出現星號
9.pack 物理刪除,將邏輯刪除的記錄徹底刪除
10.recall 記錄恢復
11.zap 刪除表裡的所有記錄
12.go n 指向第n條記錄
13.go top 指向第一條記錄
14.go bottom 指向最後一條記錄
15.skip n 往下跳n條記錄
16.skip -n 往上跳n條記錄
17.? 從屏幕的下一行的第一列起顯示結果
18.? ? 從當前行當前列起顯示結果
19.use sb to sb() 復制sb表給sb()表
20.recno() 記錄號函數
21.bof() 上溢出
22.eof() 下溢出
23.dimension x(4) 定義數組x,裡面有四個元素,其中每個元素的默認值為.F. declare和dimension 相同
24.replace 替換
25.add 表示增加欄位
26.distinct 不重復記錄
27.error 錯誤
28.continue
繼續
29.else if 否則
30.column 列
31.input 顯示數值
32.accept 顯示字元串
33.wait 是彈出的一個信息框
34.drop 刪除欄位或刪除表
35.otherwise 其它情況
36.check 規則
37.cursor 臨時表
38.build 連編
二、VF里文件類型
1.項目 .pjx project 2.資料庫 .dbc database
3.表 .dbf table 4.菜單 .mnx .mpr menu
5.程序 .prg 6.表單 .scx form
7.報表 .frx report 8.查詢 .qpr query
9.視圖 .vue view 10.文件 .txt
11.備注型文件 .fpt
三、例題
1.creat table student(學號 c(6),姓名c(8),性別c(2),年齡n(2)) 創建學生表
2.insert into student values("001","張三","男",20) 插入一條學生記錄
3.alter table student alter 學號 c(8) 將學號欄位的寬度改為8
4.alter table student rename 學號 to 學生編號 將學號欄位重命名為學生編號
5.alter table student drop 年齡 將年齡欄位刪除
6.alter table student add 所在院系c(10) 為student表增加一個欄位
7.select *from student into table xusheng 將表student復制給表xuesheng
8.update student set 成績=成績+10 where 性別="男" 將男生的成績提高10分
9.delete from student where 性別"女" 冊除所有女生的記錄
10.alter table student alter 學號 set check left(學號,2="00")
四、創建、運行與修改
1.create database 123 創建資料庫123
modify database 123 修改資料庫123 (注意:alter在SQL中修改表結構)
2.modify command 123 修改程序123
do 123 運行程序123
3.create form 123 創建表單123
modify form 123 修改表單123
do form123 運行表單123
4.create menu 123 創建菜單123
modify menu 123 修改菜單123
do 123.mpr 運得菜單123
5.modify query 123 修改查詢123
do 123.qpr 運得查詢123
6.modify report 123 修改報表123
report form 123 運行報表123
7.drop view 123 刪除視圖123
create view 123 創建視圖123 (打開視圖用use)
五、排序
1.sort to nl on 年齡 按年齡升序排列,產生一個新表nl
2.sort to cj on 成績/d 按成績降序排列,產生一個新表cj
六、索引
1.index on 姓名 tag xm //按姓名升序建立普通索引,索引標識為xm//
2.index on 性別 tag xb //按性別升序建立普通索引,索引標識為xb//
3.index on 成績 tag cj descending //按成績降序建立普通索引,索引標識為cj//
4.index on 性別 tag xb1 unique(唯一索引) //按性別升序建立唯一索引,索引標識為xb1//
5.index on 年齡 tag nl candidate //按年齡升序建立候選索引,索引標識為nl//
6.index on 性別+str(成績) tag xbcj //按性別升序,如性別相同按成績升序建立普通索引,索引標識為xbcj//
7.index on 性別+str(成績) tag xbcj1 descending //按性別降序,如性別相同按成績降序建立普通索引,索引標識為xbcj1//
8.index on 年齡-成績/1000000 tag nlcj //按年齡升序,如年齡相同按成績降序建立普通索引,索引標識為nlcj//
9.index on 年齡-成績/1000000 tag nlcj1 descending //按年齡降序,如年齡相同按成績升序建立普通索引,索引標識為xbcj1//
七. 命令
set index to 打開當前的一個或多個索引文件並確定主控索引文件(to後加東西是打開,不加是關閉)
set order to 確定主控索引
locate 順序查找滿足條件的記錄,並且指向它
seek 索引查找
count 記數命令
sum 求和命令
average 求平均值命令
total 匯總命令
max 求最大值
min 求最小值
八.SQL查詢結構
1.select 欄位列表 要顯示的欄位
2.from 表名列表 查詢涉及到的所有表
3.where 條件 條件
4.into 目標 查詢結果輸出到哪去
5.group by 條件表達式 對記錄進行分組
6.having 篩選條件 選擇符合條件的分組
7.order by 關鍵字 對查詢結果按某幾個欄位進行排序
8.top 數值表達式 對顯示表的前幾個記錄
九.程序結構
1.順序結構
2.選擇結構:(1)if 條件表達式 (2)if 條件表達式 (3)do case
語名序列 語名序列1 case 條件表達式1
endif else 語句序列1
語句序列1 case 條件表達式2
endif 語句序列2
case 條件表達式3
語句序列3
3.循環結構:(1)for (2)do while 條件表達式 (3)scan(掃描)
循環體 循環體 循環體
endfor enddo endscan
Loop 重新回到循環的最開始 input to x 從鍵盤輸入一個數給變數x
exit 結束循環跳出循環 accept to y 從鍵盤輸入一個字元串給變數y
set sysmenu to default 退出菜單
thisform.release 退出表單
thisform.refresh 刷新表單
十.函數
數值型函數
函數名 功能 例子 結果
1.abs() 求絕對值 ?abs(-4) 4
2.sqrt() 求平方根 ?sqrt(4) 2
3.int() 取整數 ?int(7.5) 7
4.max() 求最大值 ?max(3,4,5) 5
5.min() 求最小值 ?min(3,4,5) 3
6.mod() 取余 ?mod(11,3) 2
7.round() 四捨五入 ?round(3.1415,3) 3.142
8.ceiling() 返回不小於某值 ?ceiling(3.3) 4
的最小整數
9.floor() 返回不大於指定數
的最大整數 ?floor(3.3) 3
十一.字元處理函數
1.substr() 求子串 ?substr("abcd",2,2) "bc"
2.left() 取左串 ?left("abcd",2) "ab"
3.right() 取右串 ?right("abcd",2) "cd"
4.len() 求串長 ?len("abcd") 4
5.at() 求一個串在另一個
串中出現的位置 ?at("bc","abcd",1) 2
6.space() 輸出空格 ?space(4) " "
7.upper() 將小寫字母轉換成
大寫字母 ?upper("aBc") "ABC"
8.lower() 將大寫字母轉換成
小寫字母 ?lower("aBc") "abc"
9.val() 將字元串轉換為數值 ?val("3.14") 3.14
10.str() 將數值轉換為字元串 ?str(3.14,5,1) "3.1"
11.alltrim() 去掉字元串前面和後面的空格去掉 ?alltrim("abcd") "abcd"
12.stuff 修改字元串 ?stuff("good boy",5.3) "goodgirl&
② 在VF中打開索引文件後,設置主控索引的命令是什麼
set order to tag <索引標識>
或
set order to <索引序號>
比如你已經按順序建立索引標識為「學號」、「姓名」、「入學鄭嫌成績」三個索引,要想將入仔褲學成績設置為當前索引,可寫為:喊戚手
set order to tag 入學成績
或set order to 入學成績
或set order to 3
③ VF中如何建立索引,用命令。從建表到用命令建立索引
建表命令:CREAT 表名建立索引步驟及命令:USE 要建立索引的表名INDEX ON 索引關鍵字 TO 索引文件名索引關鍵字:是表中的一個欄位,也就是你要以哪個欄位為關鍵字進行索引索引文件名:建立的索引文件的文件名,可以和表的文件名相同,也可以不同。
④ VF索引排序命令 求
1 .
index on 10000-入學成績 to sy1
go top
list next 5
2.
index on dtoc(出生日期,1) to sy2 for year(出生日期)>=1983 tag sy3
(這題答案是按出生日期升序排列的。按出生日期降序我不會)
3.
index on 籍貫 tag sy3 unique
4.
index on 性別+str(10000-入學成績)+dtoc(出生日期,1) tag sy4
5.
index on 性別+學號 tag abc of sy5 &&生成sy5.cdx非結構復合索引文件
⑤ vfp中用命令建立主索引
alter table 商品信息.dbf add primary key 商品編號 tag 編號
對已經存在的表建立主索引的方法:
這是將「商品信息」表,按「商品編號」欄位值創建升序主索引,索引名為「編號」
⑥ vf 索引命令
index on 出生日期 to birthday.idx
list
index on 1000-高考成績 to jbgz.idx
list
⑦ VF程序設計命令
VFP命令、函數及程序語句大全
一、主要命令:
1、CREATE
作用:建立一個新的表。
格式:CREATE [<文件>|?](注意,命令字元可取前面四個字元,後面可省略不寫,即CREA,下
同;中括弧表示其中的參數是可選的;|管道符號表示兩個參數只能選擇一個,不能同時選擇,下
同。)
說明:文件指建立以.dbf為擴展名的VFP資料庫文件,在命令後面加上一個問號表示系統會彈出
對話框,要求用戶輸入想要建立的表名。在命令中不加文件名或問號系統也會彈出對話框,要求用
戶輸入想要建立的表名。
2、MODIFY STRUCTURE
作用:顯示表文件結構,並允許修改此表的結構。
格式:MODIFY STRUCTURE
說明:只有在用USE命令打開表文件以後,才能顯示或修改表文件的結構。
3、APPEND
作用:在當前表的尾部(無論表中有無記錄)追加記錄(在當前表指當前正使用的表)。
格式:APPEND
說明:在APPEND命令後面加上BLANK參數表示在當前表的尾部添加一條空白記錄。無BLANK參數
時,表示在當前表的尾部添加一條記錄並要求用戶輸入相應的欄位內容。
4、INSERT
作用:在表文件中間插入一個新記錄。
格式:INSERT [BEFORE]
說明:INSERT 在當前記錄後插入一記錄;
INSERT BEFORE 在當前記錄前插入一記錄;
INSERT BEFORE BLANK 在當前記錄前插入一空記錄。
5、BROWSE
作用:主要用於打開瀏覽窗口,查閱表文件並同時進行修改。
格式:BROWSE
6、USE
作用:打開和關閉表文件。
格式:USE [<文件名
USE
說明:前一個命令用來打開<文件名>指定的表文件,該表如有備注型欄位,則同時打開相應的
備注文件(.fpt文件);後一個命令關閉當前打開的表文件。
7、LIST和DISPLAY
作用:顯示表(.dbf)的內容、結構或狀態。
格式: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參數表示不顯示記錄號,范圍指定對哪些記錄進行操作,范圍包括:RECORD n
第幾號記錄、NEXT n 當前記錄開始的幾個記錄、REST 自當前記錄開始至文件末尾的所有記錄、ALL
所有的記錄。不選范圍則隱含范圍為ALL;FIELDS後跟欄位名,欄位名與欄位名之間用逗號分
隔。WHILE後跟條件,FOR後面也跟條件,區別是,WHILE後的條件如果滿足,便停止查找;FOR後的
條件查找所有滿足條件的記錄。TO PRINT和TO FILE <文件>分別表示將顯示結果在列印機上列印出
來和將顯示結果輸出到文件。DISPLAY命令在顯示記錄滿屏後,要求用戶按任意鍵繼續顯示,並且在
該命令中,如果省略范圍僅顯示當前記錄。格式中,下面兩個命令分別為顯示表結構(STRUCTURE)
和工作狀態(STATUS)。
8、記錄的定位
作用:用記錄指針(POINTER)定位記錄。
格式:GO[TO] RECORD n|TOP|BOTTOM
n
SKIP [+|-]
說明:第一個命令又叫絕對定位,其中,RECORD n定位到n號記錄,TOP定位到第1個記錄,
BOTTOM定位到最後一個記錄。第二個命令定位到第n個記錄,n是一個數值。第三個命令又叫相對定
位,它以當前記錄為基準前移(-)或後移(+)n個記錄,不選任選項,則默認記錄指針後移一個記
錄。
9、CHANGE和EDIT
作用:顯示要編輯或修改的欄位。
格式:CHANGE|EDIT [<范圍>] [FIELDS <欄位名表>] [WHILE <條件>] [FOR <條件
10、BROWSE
作用:打開一個「瀏覽」窗口,供用戶瀏覽或修改記錄。
格式:BROWSE [FIELDS <欄位名表
11、REPLACE
作用:用表達式的值代替命令中與之相對應的欄位的內容。
格式:REPLACE [<范圍>] <欄位1> WITH <表達式1>[,<欄位2> WITH <表達式2>] [FOR <條件>
] [WHILE<條件
12、DELETE、PACK、ZAP和RECALL
作用:分別是給要刪除的記錄作刪除標記、徹底刪除、刪除所有記錄和取消被選中的表記錄的
刪除標志。
格式:DELETE [<范圍>] [WHILE<條件>] [FOR <條件>] (特例:DELETE FILE FILENAME.DBF,
該命令刪除指定的表文件)
PACK
ZAP
RECALL [<范圍>] [FOR <條件>] [WHILE<條件
13、SORT和INDEX
作用:分別是建立一個其記錄以新的物理順序排列的新表文件和對當前表根據關鍵字表達式的值
從小到大排列,並存入TO後指定的索引文件名的文件或復合索引文件的一個標識中。
格式:SORT TO <文件名> ON <欄位名1> [/A] [/C] [/D][,<欄位名2> [/A] [/C] [/D]]...
[ASCENDING|DESCENDING] [<范圍>] [FOR <條件>] [WHILE<條件>] [FIELDS<欄位表
INDEX ON <關鍵字表達式> TO <文件名>
INDEX ON <關鍵字表達式> TAG <標識名> [OF <文件名>] [FOR <條件
說明:第1個命令中,/A按欄位名升序排序,/D按欄位名降序排序,/C忽略大小寫,針對字元型
關鍵字而言,ASCENDING和DESCENDING分別表示升序和降序。第1個命令建立.dbf表文件,第2個命令
建立.idx單一索引文件,第3個命令建立.cdx復合索引文件(Compound Index)。
14、USE <表文件名> INDEX <索引文件名表>、SET INDEX TO和SET ORDER TO
作用:分別是打開表文件的同時打開索引文件、打開索引文件和改變主索引。
格式:USE <表文件名> INDEX <索引文件名表>
SET INDEX TO [<索引文件名表
SET ORDER TO [<索引文件名>](特例:重新索引命令:REINDEX)
15、FIND、SEEK和LOCATE及CONTINUE
作用:前兩個命令FIND和SEEK是在一個已經建立了索引文件的表中,定位到關鍵字中的內容與命
令行中字元串相同的第一個記錄。後一個命令在用USE打開表文件以後,直接查詢表中欄位內容。
格式:FIND <「字元串」>|<字元串>
SEEK <表達式>
LOCATE [<范圍>] [FOR <條件>] [WHILE<條件
CONTINUE
說明:FIND命令與SEEK命令的區別是前者後跟字元串,而後者後跟表達式。在用LOCATE命令找到
一個匹配記錄後,可用CONTINUE命令搜索表的剩餘部分來尋找其他匹配的記錄。
16、COUNT
作用:統計當前表文件中符合條件的記錄數。
格式:COUNT [<范圍>] [FOR <條件>] [WHILE<條件>] [TO <內存變數名
說明:內存變數名可用除參數外的任意字元。
17、SUM
作用:對當前表中選中記錄的全部或指定的數值欄位或由指定欄位組成的數值表達式累加求和。
格式:SUM [<范圍>] [數值<表達式>] [TO <內存變數名表>] [FOR <條件>] [WHILE<條件
18、AVERAGE
作用:對當前表中選中記錄的全部或部分數值型欄位及其組成的表達式求平均值並顯示。
格式:AVERAGE [<范圍>] [數值<表達式>] [TO <內存變數名表>] [FOR <條件>] [WHILE<條件
未完
VFP命令、函數及程序語句大全(2)
2003年7月24日
二、常用函數
1、數學函數
函數 用途
ABS(<數值表達式>) 絕對值,|x|
CEILING(<數值表達式>) >=自變數的最小整數
EXP(<數值表達式>) 對基E的冪,e=2.71828
FLOOR(<數值表達式>) <=自變數的最大整數
INT(<數值表達式>) 取整(舍尾)自變數
LOG(<數值表達式>) 自變數的自然對數,ln x
LOG10(<數值表達式>) 自變數的普通對數,lg x
MAX(<表達式1>,<表達式2>) 兩個值的最大值
MIN(<表達式1>,<表達式2>) 兩個值的最小值
MOD(<數值表達式1>,<數值表達式2>) 求余數
RAND([<數值表達式1>]) 返回偽隨機數
ROUND(<數值表達式1>,<數值表達式2>) 四捨五入第一個自變數
SIGN(<數值表達式>) 自變數的符號
SQRT(<數值表達式>) 平方根(正根)
2、字元串操作函數
函數 用途
&<內存變數> 用於代替內存變數內容
LEN(<字元串表達式>) 返回字元串表達式的字元個數
SPACE(<數值表達式>) 生成空格
SUBSTR(<字元串表達式>,<數值表達式n>[,<數值表達式L>]) 求子字元串,從指定的字元串表達式第n個開始,總長為L的字元串
LOWER(<字元串表達式>) 將字元串字母轉換成小寫字母
UPPER(<字元串表達式>) 將字元串字母轉換成大寫字母
TRIM(<字元串表達式>) 刪除字元串尾空格
ASC(<字元串表達式>) 返回字元串表達式最左邊的第一個字元的ASCII碼
CHR(<數值表達式>) 將數值表達式轉換成字元
AT(<字元串表達式1>,<字元串表達式2>[,<數值表達式n>]) 確定字元串表達式1在字元串表達式2中的位置,n為字元串表達式第幾次出現
STR(<數值表達式>[,<數值表達式L>][,<數值表達式n>) 將數值轉換為字元串,L為數值表達式總長,n為小數位數
VAL(<字元串表達式>) 將數字字元串轉換為數字
TYPE(<表達式>) 檢測表達式值的數據類型
LTRIM(<字元串表達式>) 刪除字元串左部空格
RTRIM(<字元串表達式>) 刪除字元串右部空格
LEFT(<字元串表達式>,<數值表達式n>) 取字元串左邊部分字元,n為返回的字元個數
RIGHT(<字元串表達式>,<數值表達式n>) 取字元串右邊部分字元,n從右邊截取字元個數
3、表(.dbf)操作函數
函數 用途
BOF([<工作區號或別名>]) 查表文件開始函數
EOF([<工作區號或別名>]) 表文件結尾測試函數
RECNO([<工作區號或別名>])測試當前或指定工作區表的當前記錄號
DELETED([<工作區號或別名>])記錄刪除測試函數
FILE(<"字元串">)測試文件是否存在函數
DBF([<工作區號或別名>]) 檢測表的文件名函數
4、日期、時間函數
函數 用途
DATE() 查系統當前日期函數
TIME([<數值表達式>]) 查系統當前時間函數
YEAR(<日期型表達式>|<日期時間型表達式>) 由日期查年函數
MONTH(<日期型表達式>|<日期時間型表達式>) 從日期查月份函數
CMONTH(<日期型表達式>|<日期時間型表達式>) 由日期查月份名函數
DAY(<日期型表達式>|<日期時間型表達式>) 從日期查當月的日函數
DOW(<日期型表達式>|<日期時間型表達式>[,<數值表達式>])由日期查星期函數
CDOW(<日期型表達式>|<日期時間型表達式>) 從日期查星期名函數
DTOC(<日期型表達式>|<日期時間型表達式>) 日期轉換為字元函數
CTOD(<字元串表達式>) 字元串轉換為日期函數
CTOT(<字元串表達式>) 返回日期時間值函數
TTOC(<日期時間型表達式>) 返回字元值
5、顯示、列印位置函數
函數 用途
ROW() 判斷游標行位置函數
COL() 判斷游標列位置函數
INKEY([<數值表達式>]) 檢測用戶所擊鍵對應的ASCII碼函數,數值表達式以秒為單位等待擊鍵的時間
6、其他函數
函數 用途
DISKSPACE() 返回默認磁碟驅動器中可用位元組數函數
OS() 檢測操作系統名稱的函數
VERSION() 返回VFP版本號的函數
VFP命令、函數及程序語句大全(3)
三、主要程序語句
1、條件判斷語句
格式:(1)IF <條件>
<命令語句組>
ENDIF
說明:如果條件為真,則執行命令語句組中的各語句,否則跳過這些命令語句不執行,
而執行ENDIF後的語句。
(2)IF <條件>
<命令語句組1>
ELSE
<命令語句組2>
ENDIF
說明:如果條件為真,執行命令語句組1,否則執行命令語句組2。
(3)IF <條件1>
IF <條件2>
<命令語句組1>
ELSE
<命令語句組2>
ENDIF
...
ELSE
<命令語句組N>
ENDIF
說明:進行多重條件的嵌套選擇。
(4)DO CASE
CASE <條件1>
<命令語句組1>
CASE <條件2>
<命令語句組2>
CASE <條件3>
<命令語句組3>
...
...
CASE <條件N>
<命令語句組N>
[OTHERWISE]
[<命令語句組
ENDCASE
說明:依次判斷條件,轉入條件為真的命令語句組中執行。當所有條件都不成立時,若有
OTHERWISE項,則執行命令語句組N+1,否則執行ENDCASE後面的語句。
2、循環語句
格式:(1)DO WHILE <條件>
<命令語句組>
[LOOP]
<命令語句組>
[EXIT]
<命令語句組>
ENDDO
說明:判斷條件是否為真,如為真就重復執行循環體中的命令語句組,直到條件為假,結束循
環。
(2)SCAN
<命令語句組>
ENDSCAN
說明:在一個表中建立一個執行命令語句組的循環,並執行對每一條記錄的操作,直到表文件
記錄完為止。
⑧ 如何建立VFP的主索引和普通索引
首先點擊vf的標題欄的「顯示」,再選中「表設計器」。選中「索引慎悄燃」,在「索引名」一欄輸入關鍵字,再在「類型」中選「主寬虛索引」就ok了。至於普通索引,可通過命令方式建立。命令格式為:index
on<索引關鍵字>to<索引文件名>/tag
(索引標識)[of<復合索引件名>][for(條件)]。如建立學生運則.cdx,索引關鍵字為學號,其索引標識為「學號」。1,use
學生
2,index
on
學號
tag
學號定甫翅晃儼浩愁彤傳廓3,list(記錄按學號升序排列)。