2008-02-11

常用VFP命令、函數及程序語句

一、主要命令:
1、CREATE
作用:建立一個新的表。
格式:CREATE [<文件>|?](注意,命令字符可取前面四個字符,後面可省略不寫,即CREA,下同;中括號表示其中的參數是可選的;|管道符號表示兩個參數隻能選擇一個,不能同時選擇,下同。)
說明:文件指建立以.dbf為擴展名的VFP數據庫文件,在命令後面加上一個問號表示系統會彈出
對話框,要求用戶輸入想要建立的表名。在命令中不加文件名或問號系統也會彈出對話框,要求用
戶輸入想要建立的表名。
2、MODIFY STRUCTURE
作用:顯示表文件結構,並允許修改此表的結構。
格式:MODIFY STRUCTURE
說明:只有在用USE命令打開表文件以後,才能顯示或修改表文件的結構。
3、APPEND
作用:在當前表的尾部(無論表中有無記錄)追加記錄(在當前表指當前正使用的表)。
格式:APPEND [BLANK]
說明:在APPEND命令後面加上BLANK參數表示在當前表的尾部添加一條空白記錄。無BLANK參數時,表示在當前表的尾部添加一條記錄並要求用戶輸入相應的字段內容。
4、INSERT
作用:在表文件中間插入一個新記錄。
格式:INSERT [BEFORE] [BLANK]
說明: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<條件>]

二、常用函數
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版本號的函數

三、主要程序語句
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]
[<命令語句組N+1>]
ENDCASE
說明:依次判斷條件,轉入條件為真的命令語句組中執行。當所有條件都不成立時,若有
OTHERWISE項,則執行命令語句組N+1,否則執行ENDCASE後面的語句。
2、循環語句
格式:(1)DO WHILE <條件>
<命令語句組>
[LOOP]
<命令語句組>
[EXIT]
<命令語句組>
ENDDO
說明:判斷條件是否為真,如為真就重複執行循環體中的命令語句組,直到條件為假,結束循
環。
(2)SCAN
<命令語句組>
ENDSCAN
說明:在一個表中建立一個執行命令語句組的循環,並執行對每一條記錄的操作,直到表文件
記錄完為止。

VFP常用函數使用說明

1、數值運算函數
函數 操作 例 結果
SQRT(x) 求平方根 SQRT(9) 3
INT(x) 取整數 INT(3.14) 3
ROUND(x) 四捨五入 ROUND(3.14159,4) 3.1416
MOD(x,y) 求X除以Y的餘數 MOD(25,4) 1
MAX(x,y) 求X,Y中的最大值 MAX(7,8) 8
MIN(x,y) 求X,Y中的最小值 MIN(1,2,3) 1

2、字符中操作函數
函數名 操作 例 結果
UPPER(S) 小寫字母 UPPER(abc) ABC
LOWER(S) 大寫字母 LOWER(ACD) acd
LEN(S) 求字符串的長度 LEN("中國1號") 7
AT(S1,S2) 在字符串S2,找字符串S1 AT("H","CHINA") 2
SUBSTR(S,I,N) 在S字符串中的第I個字符起取N個字符 SUBSTR('TECHNOLO',3,3) CHN
LEFT(S,N) 從字符串S左邊取N個字符 LEFT(「中國人」,4) 中國
RIGHT(S,N) 從字符串S右邊取N個字符 S=『12345』
RIGHT(S,3) 345
SPACE(N) 生成N個空格 "合計"+SPACE(2)+"123" 合計123
TRIM(S) 消除字符串尾部空格 TRIM("姓名 ") 姓名
ALLTRI(S) 消除字符串中所有空格 ALLTRIM("李 麗") 李麗
STUFF(S1,N1,N2,S2) 用字符串S2替換S1中第N1個字符起的N2個字符 STUFF("NOW",2,1,"E") NEW
& 宏替換 P=「G2」
USE &P USE G2

3、日期和時間函數
函數名 操作 例 結果
DATE() 求當前日期 DATE() 2001/11/12
DATETIME() 求當前日期和時間 DATETIME() 2001/11/12/0:22:33am
YEAR(D) 求年份 YEAR(DATE()) 2001
MONTH(D) 求月份(數值) MONTH(DATETIME()) 11
CMONTH(D) 求月份(字符) MONTH(DATETIME()) Novenber
DAY(D) 求日期 DAY(DATE()) 12
DOW(D) 求星期幾(數值) DOW(DATE()) 1
CDOW(D) 求星期幾(英文) CDOW(DATE()) sunday
TIME(D) 求當前時間 TIME(DATE()) 10:20:38am

4、數據類型轉換函數
函數名 操作 例 結果
ASC(S) 求第一個字符串的ASCII碼 ASC("what") 87
CHR(N) 求ASCII碼的字符 CHR(87) w
STR(R,L,D) 數值轉換成字符,L為長度,D為小數位數 X=3.1415
STR(X,6,2) 3.14
VAL(S) 字符串轉換為數值 VAL("123") 123.00
CTOD(S) 字符串轉日期 CTOD('11/01/2002') 11/01/2002
DTOC(D) 日期轉換成字符串 DTOC(DATE()) 11/01/2002
DTOS(D) 把日期轉成年月日式的字符串 DTOS(DATE()) 20021101
CTOT(C) 字符串轉成日期時間型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am
DTOT(D) 日期型轉為日期時間型 DTOT(DATE()) 11/25/2001 00:00:01am
TTOC(T) 日期時間型轉為字符型 TTOC(DATETIME()) 11/25/2001 00:00:01am
TTOD(T) 日期時間型轉為日期型 TTOD(DATETIME()) 11/25/2001
IIF(LE,E1,E2) 邏輯判斷 IIF(A>0,"YES","NO") YES


5、檢測函數
函數名 操作 例 結果
RECNO() 檢測當前記錄號 RECNO() 1
RECCOUNT() 檢測當前記錄數 RECCOUNT() 12
BOF() 開始記錄 BOF() 1
EOF() 最後記錄 EOF() 12
FOUND() 返回查找結果 FOUND() .T.
ROW() 返回當前行坐標 ROW() 1
COL() 返回當前列坐標 COL() 1
SYS(N) 返回系統狀態 SYS(13) 聯機狀態

VFP常用函數

VFP常用函數
一.字元及字串處理函數:字元及字串處理函數的處理物件均為字元型資料,但其返回數值型別各異.
1.取子串函數:
格式:substr(c,n1,n2)
功能:取字串C第n1個字元起的n2個字元.返回數值型別是字元型.
例:取姓名字串中的姓.
store "王小風" to xm
?substr(xm,1,2)
結果為:王
2.刪除空格函數:以下3個函數可以刪除字串中的多餘空格,3個函數的返回值均為字元型.
trim(字串):刪除字串的尾部空格
alltrim(字串):刪除字串的前後空格
ltrim(字串):刪除字串的前面的空格
例:去掉第一個字串的尾空格後與第二個字元串連接
store "abcd " to x
store "efg" to y
?trim(x)+y
abcdefg
3.空格函數:
格式:space(n)
說明:該函數的功能是產生指定個數的空格字串(n用於指定空格個數).
例:定義一個變數dh,其初值為8個空格
store space(8) to dh
4.取左子串函數:
格式:left(c,n)
功能:取字串C左邊n個字元.
5.取右子串函數:
格式:right(c,n)
功能:取字串c右邊的n個字元
例:a="我是中國人"
?right(a,4)
國人
?left(a,2)

6.empty(c):用於測試字串C是否為空格.
7.求子串位置函數:
格式:At(字串1,字串2)
功能:返回字串1在字串2的位置
例:?At("教授","副教授")
2
?AT("I","CHINA")
3

8.大小寫轉換函數:
格式:
lower(字串)
upper(字串)
功能:lower()將字串中的字母一律變小寫;upper()將字串中的字母一律變大寫
例:
bl="FoxBASE"
?lower(bl)+space(2)+upper(bl)
foxbase FOXBASE
9.求字串長度函數:
格式:len(字串)
功能:求指定字串的長度
例:a="中國人"
?len(a)
6
二.數學運算函數:
1.取整函數:
格式:int(數值)
功能:取指定數值的整數部分.
例:取整並顯示結果
?int(25.69)
25
2.四捨五入函數:
格式:round(數值運算式,小數位數)
功能:根據給出的四捨五入小數位數,對數值運算式的計算結果做四捨五入處理
例:對下面給出的數四捨五入並顯示其結果
?round(3.14159,4),round(2048.9962,0),round(2048.9962,-3)
3.1416 2049 2000
3.求平方根函數:
格式:sqrt(數值)
功能:求指定數值的算術平方根
例:?sqrt(100)
10
4.最大值、最小值函數:
格式:
Max(數值運算式1,數值運算式2)
Min(數值運算式1,數值運算式2)
功能:返回兩個數值運算式中的最大值和最小值
例:
x1=123.456
x2=234.567
?max(x1,x2)
234.567
?min(x1,x2)
123.456
5.求餘數函數:
格式:mod(運算式1,運算式2)
功能:求運算式1對運算式2的餘數
例:
?mod(10,3)
1
6.求指數、對數函數:
格式:
exp(數值運算式)
log(數值運算式)
功能:
(1).exp()計算自然數e為底,運算式的值為指數的冪
(2).log()計算運算式值的自然對數,返回lnx的值.
例:
x=1
y=exp(x)
?exp(x),log(x)
2.72 1
三.轉換函數:
1.數值轉數位字串函數:
格式:str(n,n1,n2)
功能:將數值n轉換為字串,n1為總長度,n2為小數位
例:?str(321.56)
322 &&隱含四捨五入取整轉換為字元型資料
?str(321.56,6,2)
321.56
2.字元轉數值函數:
格式:val(s)
功能:將數位字串s轉換為數值
例:x="23"
y="76"
?val(x)+val(y)
100
3.字元轉日期函數:
格式:ctod(c)
功能:將日期字串c轉換為日期
例:set date ansi &&日期格式設為美國標準化協會格式
?ctod("^2005.11.14")
2005.11.14
4.日期轉字元函數:
格式:dtoc(d)
功能:將日期d轉化為日期字串
例:將日期型資料轉化為字元型日期資料並顯示漢字日期.
set century on &&開啟世紀首碼,即日期中年份用4位表示
set date ansi
rq={^2005.11.14}
rq=dtoc(rq)
?substr(rq,1,4)+"年"+substr(rq,6,2)+"月"+substr(rq,9,2)+"日"
2005年11月14日
5.時間轉字元函數:
格式:ttoc(時間)
功能:將時間轉為時間字串
6.字元轉時間函數:
格式:ctot(c)
功能:將時間字串轉化為時間
7.字串替換函數:
格式:stuff(<字元運算式1>,<起始位置>,<字元個數>,<字元運算式2>)
功能:從指定位置開始,用<運算式2>的值去替換<運算式1>中指定個數字元.若<字元個數>為零,直接插入;若<運算式2>為空字串,則刪除<運算式1>中指定個數的字元.
例:X="祝大家新年好!"
?stuff(X,7,4,"春節")
祝大家春節好
?stuff(X,11,0,"春節")
祝大家新年春節好
?stuff(x,7,4," ")
祝大家好
8.字元轉ASCⅡ碼函數:
格式:Asc(<字元運算式>)
功能:把<字元運算式>左邊第一個字元轉成相應的ASCⅡ碼值
例:x="Foxpro"
?Asc(x),Asc(lower(x))
70 102
9.ASCⅡ碼值轉字元函數:
格式:chr(數值運算式)
功能:把數值轉成相應的ASCⅡ碼字元,返回值為字元型
例:?chr(70)+chr(111)+chr(111+9)
Fox
四.日期函數:
1.系統日期函數:
格式:date()
功能:給出系統的當前日期,返回值是日期型資料.
例:顯示系統日期
?date()
11/14/05
set date ansi
set century on
?date()
2005.11.14
2.年、月、日函數:
格式:(1).year(日期運算式):從日期運算式中返回一個由四位元數字表示的年份.
(2).month(日期運算式):從日期運算式中返回一個用數字表示的月份.
(3).day(日期運算式):從日期運算式中返回一個用數字表示的日數.
例:測試系統日期
rq=date()
?year(rq),month(rq),day(rq)
2005 11 14
3.系統時間函數:
格式:time()
功能:得到當前時間字串
例:?time()
20:32:26
4.系統日期時間函數:
格式:datetime()
功能:得到當前日期時間
例:?datetime()
2005.11.14 08:35:12 PM
5.星期函數:
格式:dow(日期運算式)
cdow(日期運算式)
功能:dow用數字表示星期,1表示星期日,7為星期六;cdow用英文表示星期
例:?date()
2005.11.15
?dow(date()),cdow(date())
3 Tuesday
五.測試函數:
1.測試檔案結尾函數:
格式:eof([n])
說明:
(1).n指定被測工作區號,其範圍為1~32767
(2).該函數用於測試指定工作區中的表的記錄指標是否指向檔案結尾,是則返回真值;否則返回假值;省略可選項指當前工作區.
例:測試檔記錄指標是否指向檔案結尾
use 職工檔案
go bottom
?eof()
.F.
skip
?eof()
.T.
2.測試檔頭函數:
格式:bof([n])
說明:
(1).n指定被測工作區號,其範圍為1~32767
(2).用於測試指定工作區中的表的記錄指標是否指向檔頭,是則返回真值;否則返回假值;省略可選項指當前工作區.
例:測試記錄指標是否指向檔頭
use 職工檔案
go top
?bof()
.f.
skip -1
?bof()
.t.
3.測試目前記錄號函數:
格式:recno()
功能:得到當前的記錄號
例:
use 職工檔案
?recno()
1
skip
?recno()
2
4.測試表檔記錄數函數:
格式:reccount()
功能:得到表的記錄數
例:測試"職工檔案"表的記錄數
use 職工檔案
?reccount()
5
5.測試表字段數函數:
格式:fcount()
功能:得到當前的欄位數
例:測試"職工檔案"表共有多少個欄位
use 職工檔案
?fcount()
9
6.測試查找記錄是否成功函數:
格式:found()
功能:測試find、seek和locate命令查找記錄是否成功.如成功則返回真值,否則為假值.
例:在"職工檔案"表中查找"小剛"的文化程度
use 職工檔案
locate for 姓名="小剛"
?found()
.t.
display
7.檔測試函數:
格式:file(字元運算式)
功能:測試字元運算式指定的檔是否存在
例:?file("e:\myvfp\職工檔案.dbf")
.t.
8.資料類型測試函數:
格式:type(字元運算式)
功能:測試運算式的資料類型,返回大寫字母:N(數值)、C(字元)、L(邏輯)、D(日期)、M(備註)
例:
x=1236
y="hello"
?type("x")
N
?type("y")
C
9.測試工作區函數:
格式:select()
功能:返回當前工作區的區號
10.測試別名函數:
格式:alias()
功能:測試當前工作區的別名
例:
select 1
use 職工檔案 alias zgda
select 2
use 工資情況
?alias()
工資情況 &&打開表時,不指定別名,表名即為別名
select zgda &&通過別名選擇工作區
?select()
1
11.表檔案名函數:
格式:dbf()
功能:返回當前工作區打開的表名
例:
use 工資情況
?dbf()
e:\myvfp\工資情況
六.其它函數:
1.巨集替換函數:
格式:&變數名
說明:vfp中只有巨集替換函數沒有括弧.功能是返回指定字元型變數中所存放的字串.
例:為"工資情況"表中每個人加100元工資
gz="工資"
use 工資情況
replace all &gz with &gz+100
2.條件函數:
格式:iif(運算式,運算式1,運算式2)
功能:若運算式值為真,則返回運算式1的值;否則返回運算式2的值;函數返回數值型別與運算式1或運算式2類型一致
a=3
b=5
?iif(a>b,"高興","開心")
開心
3.訊息方塊函數:
格式:messagebox(提示文本[,對話方塊類型[,對話方塊標題文本]])
功能:顯示提示對話方塊
說明:
(1)對話方塊類型見表1:
對話方塊類型 功能
0 僅"確定"按鈕
1 "確定"和"取消"按鈕
2 "終止","重試"和"忽略"按鈕
3 "是","否"和"取消"按鈕
4 "是"和"否"按鈕
5 "重試"和"取消"按鈕
16 stop圖示
32 ?圖示
48 !圖示
64 i圖示
0 預設第1個按鈕
256 預設第2個按鈕
512 預設第3個按鈕

(2).返回值見表2:
返回值 按鈕
1 確定
2 取消
3 終止
4 重試
5 忽略
6 是
7 否
例:分析messagebox("您確實要退出系統嗎?",4+64,"提示資訊")會彈出什麼樣的視窗.
分析:回頭觀察此函數的格式,彈出的對話方塊中的提示文本是"您確實要退出系統嗎",對話方塊標題是"提示資訊",
函數中間有"4+64",其中4指定對話方塊中出現"是"和"否"兩個按鈕(見表1),64指定對話方塊中出現i圖示(見表2)
ok,我們在命令視窗依次執行下列命令:
tui=messagebox("您確實要退出系統嗎?",4+64,"提示資訊")
&&變數tui用於接收messagebox函數的返回值,彈出的窗口如圖1
?tui
&&變數tui值取決於運行時使用者點了哪個按鈕,如果點了"是",返回6,如果點了"否",返回7,見表2
說明:實際應用中,我們常在系統功能表或在表單的"退出"按鈕中添加如下代碼:
tui=messagebox("您確實要退出系統嗎?",4+64,"提示資訊")
if tui=6 &&如果此條件成立,說明用戶點了"是"按鈕,執行quit命令,安全退出
quit
endif

VFP常用命令小結
1、CREATE
作用:建立一個新的表。
格式:CREATE [<文件>|?](注意,命令字符可取前面四個字元,後面可省略不寫,即CREA,下同;中括弧表示其中的參數是可選的;|管道符號表示兩個參數只能選擇一個,不能同時選擇,下同。)如:ceate d:\rsb
說明:文件指建立以.dbf為副檔名的VFP資料庫檔,在命令後面加上一個問號表示系統會彈出對話方塊,要求用戶輸入想要建立的表名。在命令中不加檔案名或問號系統也會彈出對話方塊,要求用戶輸入想要建立的表名。
2、MODIFY STRUCTURE
作用:顯示表檔結構,並允許修改此表的結構。
格式:MODIFY STRUCTURE
說明:只有在用USE命令打開表檔以後,才能顯示或修改表檔的結構。
3、APPEND
作用:在當前表的尾部(無論表中有無記錄)追加記錄(在當前表指當前正使用的表)。
格式:APPEND [BLANK]
說明:在APPEND命令後面加上BLANK參數表示在當前表的尾部添加一條空白記錄。無BLANK參數時,表示在當前表的尾部添加一條記錄並要求使用者輸入相應的欄位內容。
4、INSERT
作用:在表檔中間插入一個新記錄。
格式:INSERT [BEFORE] [BLANK]
說明:INSERT 在目前記錄後插入一記錄;
INSERT BEFORE 在目前記錄前插入一記錄;
INSERT BEFORE BLANK 在目前記錄前插入一空記錄。
5、BROWSE
作用:主要用於打開流覽視窗,查閱表檔並同時進行修改。
格式:BROWSE [FIELDS <欄位名表>]
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、REPLACE
作用:用運算式的值代替命令中與之相對應的欄位的內容。
格式:REPLACE [<範圍>] <欄位1> WITH <運算式1>[,<欄位2> WITH <運算式2>] [FOR <條件>
] [WHILE<條件>]
11、DELETE、PACK、ZAP和RECALL
作用:分別是給要刪除的記錄作刪除標記、徹底刪除、刪除所有記錄和取消被選中的表記錄的
刪除標誌。
格式:DELETE [<範圍>] [WHILE<條件>] [FOR <條件>] (特例:DELETE FILE FILENAME.DBF,
該命令刪除指定的表檔)
PACK
ZAP
RECALL [<範圍>] [FOR <條件>] [WHILE<條件>]
12、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)。
13、USE <表檔案名> INDEX <索引檔案名表>、SET INDEX TO和SET ORDER TO
作用:分別是打開表檔的同時打開索引檔、打開索引檔和改變主索引。
格式:USE <表檔案名> INDEX <索引檔案名表>
SET INDEX TO [<索引檔案名表>]
SET ORDER TO [<索引檔案名>](特例:重新索引命令:REINDEX)
14、FIND、SEEK和LOCATE及CONTINUE
作用:前兩個命令FIND和SEEK是在一個已經建立了索引檔的表中,定位到關鍵字中的內容與命
令行中字串相同的第一個記錄。後一個命令在用USE打開表檔以後,直接查詢表中欄位內容。
格式:FIND <“字串”>|<字串>
SEEK <運算式>
LOCATE [<範圍>] [FOR <條件>] [WHILE<條件>]
CONTINUE
說明:FIND命令與SEEK命令的區別是前者後跟字串,而後者後跟運算式。在用LOCATE命令找到
一個匹配記錄後,可用CONTINUE命令搜索表的剩餘部分來尋找其他匹配的記錄。
15、COUNT
作用:統計當前表檔中符合條件的記錄數。
格式:COUNT [<範圍>] [FOR <條件>] [WHILE<條件>] [TO <記憶體變數名>]
說明:記憶體變數名可用除參數外的任意字元。
16、SUM
作用:對當前表中選中記錄的全部或指定的數值欄位或由指定欄位組成的數值運算式累加求和。
格式:SUM [<範圍>] [數值<運算式>] [TO <記憶體變數名表>] [FOR <條件>] [WHILE<條件>]
17、AVERAGE
作用:對當前表中選中記錄的全部或部分數值型欄位及其組成的運算式求平均值並顯示。
格式:AVERAGE [<範圍>] [數值<運算式>] [TO <記憶體變數名表>] [FOR <條件>] [WHILE<條件>]

VFP主要程式語句
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]
[<命令語句組N+1>]
ENDCASE
說明:依次判斷條件,轉入條件為真的命令語句組中執行。當所有條件都不成立時,若有
OTHERWISE項,則執行命令語句組N+1,否則執行ENDCASE後面的語句。
2、迴圈語句
格式:(1)DO WHILE <條件>
<命令語句組>
[LOOP]
<命令語句組>
[EXIT]
<命令語句組>
ENDDO
說明:判斷條件是否為真,如為真就重複執行循環體中的命令語句組,直到條件為假,結束循
環。
(2)SCAN
<命令語句組>
ENDSCAN
說明:在一個表中建立一個執行命令語句組的迴圈,並執行對每一條記錄的操作,直到表檔記錄完為止。

2008-02-04

Windows Server 2003 R2

Windows Server 2003 R2 是獲獎的 Windows Server 2003 作業系統的更新發行。Windows Server 2003 R2 建立在 Windows Server 2003 含 Service Pack 1 (SP1) 上,它充分運用了受肯定程式碼基礎的穩定性及安全性,同時將連線能力及控制能力擴充至新的領域。Windows Server 2003 R2 提供所有 Windows Server 2003 SP1 的優點,同時大幅改進了分公司伺服器解決方案、身份識別及存取管理、儲存設定及管理,以及您組織傳統界限內外的應用程式開發。Windows Server 2003 R2 非常容易整合至現有的 Windows Server 2003 環境,因為它具有與現有含 SP1 伺服器相同的應用程式相容性、可管理性及適用性。
Windows Server 2003 R2 能更容易且更具成本效益地擴充對於您組織內外的身份識別、位置、資料及應用程式的連線能力和控制能力。
Windows Server 2003 R2 啟用新的方案,包括簡化分公司伺服器管理、簡化與夥伴的合作,以及有效的儲存管理 - 這些都是由 Windows Server 2003 with Service Pack 1 所提供,並且更安全、更可靠與更有效。
R2 除了繼承 Windows Server 2003 SP1 安全、穩定的優點之外,在分支機構伺服器管理 (Branch Office)、身份識別與存取管理 (Identify & Access Management)、資料儲存儲存管理 (Storage Management),以及 Web 平台應用開發等領域都提供了最新的技術與改良。此外,Windows Server 2003 R2 也提供 x64 版本,協助企業順勢採用日益普及的 64 位元處理架構,享受高速計算帶來的效益。
Windows Server 2003 R2 的好處
增加效率。
您的 IT 組織可從三個關鍵領域擴充連線能力及控制能力而獲益:
‧ 分公司伺服器解決方案
‧ 身分識別及存取管理
‧ 儲存裝置設定及管理
新功能可讓組織降低組織內外設定及後續的資訊共用成本。
‧ 擴展及效能。
所有 R2 版本皆以 x64 版本提供。x64 讓您可以輕易同時執行 32-bit 和 64-bit 應用程式,並以您自己的腳步逐漸轉移至 64-bit 電腦運算,同時保留目前在 32-bit 應用程式的投資。
‧ 最高品質的 Windows Server。
獲得 Microsoft 所供應過最快速、最可靠、最安全的 Windows Server 作業系統。Windows Server 2003 R2 乃是建立在 Windows Server 2003 SP1 上,以獲得改進的安全性、增加的可靠性及簡化的系統管理,以協助跨越所有產業的企業客戶。
‧ 牢靠的應用程式平台。
與 Microsoft .NET 的深度整合可透過 XML Web Services 的使用,達成空前的軟體整合層級。XML Web Services 建構出分散式、建構區塊的應用程式,透過網際網路彼此互相連接,並透過網際網路連接其他的、較大的應用程式。這也提供了建立可察知身份識別的應用程式及 UNIX 應用程式可攜性的能力。
‧ 改進的資訊工作者產能。
有了 Microsoft Windows SharePoint Services,您可以立即獲得整合的資訊工作者共同作業解決方案。
Windows Server 2003 R2 已提供下列三個版本:
‧ Windows Server 2003 R2 標準版
‧ Windows Server 2003 R2 企業版
‧ Windows Server 2003 R2, Datacenter Edition
台灣微軟Windows 2003網頁


http://www.microsoft.com/taiwan/windowsserver2003/default.mspx

VOL版 不需要啟動 , 只要有 Key 安裝就可以
enterprise
MDGJK-PF6YQ-PD8DJ-RFQVM-7WKWG
QV9XT-CV22K-D8MGR-4MD86-8MYR6
VB96B-VFG8F-74XWJ-W67Q7-8X82B
M6F6D-VFQWH-CGWRB-RC7JR-VCV4W
standard
MHFT3-YGHV4-G86P4-KQXJ3-GYH4W
C4PMV-P3C44-Y9383-68HGT-RVJ2G
XDCTK-FJX33-FX3QX-RC8QR-WC68M
TD34T-HJKBK-XRG39-M8P2C-68BR3