版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章VisualFoxPro
數(shù)據(jù)庫(kù)管理系統(tǒng)概述9/25/202412.1VisualFoxPro的操作環(huán)境2.2VisualFoxPro文件類型2.3VisualFoxPro的項(xiàng)目管理及其操作2.4VisualFoxPro語(yǔ)言基礎(chǔ)9/25/20242VFP的特點(diǎn)數(shù)據(jù)庫(kù)方面區(qū)分了數(shù)據(jù)庫(kù)與數(shù)據(jù)表的概念
Rushmore技術(shù)(速度快,多索引)
SQL命令(高效檢索)數(shù)據(jù)操作方面簡(jiǎn)單、靈活、多樣的數(shù)據(jù)交換手段
VisualFoxPro(簡(jiǎn)稱VFP)是基于
Windows平臺(tái)和服務(wù)器上的可視化數(shù)據(jù)庫(kù)管理系統(tǒng)。9/25/20243程序設(shè)計(jì)方面(可視化應(yīng)用程序)可視化、少量程序代碼可靠性高調(diào)試簡(jiǎn)單 項(xiàng)目編譯面向?qū)ο?/25/20244操作使用方面完善的IDE(菜單、工具條或快捷鍵)豐富的開(kāi)發(fā)工具向?qū)В罕韱蜗驅(qū)гO(shè)計(jì)器:表設(shè)計(jì)器生成器:表達(dá)式生成器管理器:項(xiàng)目管理器9/25/202452.1VisualFoxPro的操作環(huán)境
2.1.1VisualFoxPro操作界面命令窗口主窗口:用于輸出結(jié)果菜單欄工具欄狀態(tài)欄9/25/20246命令窗口是用來(lái)直接輸入VisualFoxPro命令的用戶接口,在命令窗口輸入命令后,按回車鍵,立即執(zhí)行輸入命令。命令窗口命令執(zhí)行結(jié)果顯示關(guān)閉命令窗口方法:按命令窗口右上角的“關(guān)閉”按鈕可關(guān)閉命令窗口顯示命令窗口方法:1.可選“窗口”菜單中“命令窗口”項(xiàng)2.使用常用工具欄上的命令窗口按鈕3.使用快捷鍵Ctrl+F2。命令窗口介紹9/25/20247選擇命令項(xiàng)右邊的組合鍵,例如,Ctrl+N、Ctrl+O、Ctrl+P等,是執(zhí)行命令項(xiàng)的鍵盤操作快捷鍵選擇命令項(xiàng)右邊有“…”符號(hào)的,表示選中此命令項(xiàng)時(shí),會(huì)彈出相應(yīng)對(duì)話框。選擇命令項(xiàng)右邊有“?”符號(hào),的,表示選中此命令項(xiàng)時(shí),會(huì)彈出相應(yīng)級(jí)聯(lián)菜單。菜單項(xiàng)介紹9/25/20248單擊主菜單的“顯示”菜單,在下拉菜單中選擇“工具欄”菜單項(xiàng),彈出“工具欄”對(duì)話框。工具欄介紹9/25/202492.1.2命令說(shuō)明
命令的語(yǔ)法格式說(shuō)明刪除文件的命令,其格式為:
DELETEFILE
[fileName
|?]
[RECYCLE]
在命令窗口和程序中都使用分號(hào)“;”實(shí)現(xiàn)換行輸入,絕大多數(shù)命令中的關(guān)鍵字和函數(shù)名均可用前4個(gè)字符代替。9/25/202410說(shuō)明filename表示要?jiǎng)h除文件的路徑及文件名[]
:可選表示符號(hào),方括號(hào)中的內(nèi)容是可選項(xiàng)例如:DELETEFILEDELETEFILE
RECYCLE|:二選一表示符號(hào),要求用戶從本符號(hào)的左右兩項(xiàng)中選擇一項(xiàng)例如:DELETEFILED:\aaa.txtDELETEFILE?…
:省略符號(hào),它表示在一個(gè)命令或函數(shù)表達(dá)式中,某一部分可以按同一方式重復(fù)DELETEFILE
[fileName
|?]
[RECYCLE]9/25/202411右邊命令輸出的結(jié)果2.幾個(gè)常用命令*與&&命令——均引導(dǎo)注釋內(nèi)容?與??命令——均顯示內(nèi)容,二者區(qū)別CLEAR命令——清空主窗口屏幕內(nèi)容,問(wèn)命令窗口如何清空QUIT命令——關(guān)閉VFP窗口注釋區(qū)別:*必須為命令行的第1個(gè)字符;&&可以在命令之后區(qū)別:?命令換行顯示??命令接著顯示數(shù)改變命令窗口中的字體:格式->字體;改變主窗口的字體大?。篲screen.fontsize=309/25/2024122.幾個(gè)常用命令DIR命令——在VFP主窗口處顯示文件的目錄例如:DIRd:\*.txt&&顯示d盤中所有的txt文件MD/RD/CD命令——MD創(chuàng)建文件夾,RD刪除文件夾,CD指定當(dāng)前工作目錄例如:MD
d:\vfp&&在d盤創(chuàng)建名為vfp的文件夾
RD
d:\vfp&&刪除d盤上的名為vfp的文件夾9/25/202413COPYFILE/RENAME/DELETEFILE命令——拷貝、更名、刪除文件例如:COPYFILEd:\*.txttoF:&&拷貝d盤txt文件到F盤RENAMEd:\*.txttod:\*.doc&&將d盤txt文件改名為docDELETEFILE*.txt&&刪除所有txt文件RUN命令——調(diào)用DOS命令或Windows應(yīng)用程序例如:RUN/Ncalc&&打開(kāi)Windows計(jì)算器程序9/25/2024143.補(bǔ)充:命令的輸入和編輯輸入命令,按下回車鍵(Enter鍵),命令被執(zhí)行,得到結(jié)果(特別注意:請(qǐng)使用英文標(biāo)點(diǎn)符號(hào))若命令太長(zhǎng),長(zhǎng)命令可用分號(hào)(;)續(xù)行,多行的長(zhǎng)命令插入新行可用【Ctrl+Enter】若想重復(fù)執(zhí)行命令,則將光標(biāo)移到以前命令行的任意位置,按Enter鍵重新執(zhí)行此命令?1+2+3+4+5
按下Enter鍵
15
?1+2+3+4+5+6+7+8+9+10+11+12+13+;
按下Ctrl+Enter鍵
14
按下Enter鍵
105光標(biāo)放在末尾按下Enter鍵,此命令被重新執(zhí)行
15
9/25/202415
2.1.3配置VisualFoxPro操作環(huán)境VisualFoxPro的配置決定了VisualFoxPro系統(tǒng)運(yùn)行時(shí)的外觀和行為。VisualFoxPro啟動(dòng)以后,還可以使用“選項(xiàng)”對(duì)話框”或SET命令進(jìn)行附加的配置設(shè)定。9/25/202416
2.1.3配置VisualFoxPro操作環(huán)境——選項(xiàng)對(duì)話框先選擇“設(shè)置為默認(rèn)值”,再選擇“確定”,所有設(shè)置在下次啟動(dòng)VFP時(shí)仍然有效。只選擇“確定”,所有設(shè)置在下次啟動(dòng)VFP時(shí)不起作用。按住shift鍵,再選擇“確定”,則所有設(shè)置以命令方式顯示在主窗口中。9/25/2024172.1.3配置VisualFoxPro操作環(huán)境——Set命令例如:SetdefaulttoF:\&&設(shè)置默認(rèn)路徑為F盤常用的Set命令如表2-1所示(書P34頁(yè))2.2VisualFoxPro文件類型如表2-2所示(書P35頁(yè))??夹枰煊浉鱾€(gè)類型,例如:創(chuàng)建項(xiàng)目文件,生成.pjx與.pjt文件9/25/2024182.3VisualFoxPro的項(xiàng)目管理及操作選項(xiàng)卡1.VisualFoxPro的項(xiàng)目是一個(gè)系統(tǒng)中文件、數(shù)據(jù)、文檔等的集合。2.項(xiàng)目管理器是VisualFoxPro中處理數(shù)據(jù)和對(duì)象的主要組織工具,是系統(tǒng)“控制中心”。 按鈕9/25/202419創(chuàng)建項(xiàng)目方法一:CREATEPROJECT命令方法二:使用“文件”菜單的“新建”按鈕方法三:使用常用工具欄上的“新建”按鈕9/25/202420打開(kāi)項(xiàng)目(考試中用到)使用“文件”菜單的“打開(kāi)”按鈕——默認(rèn)目錄是vfp98立即利用cd命令修改默認(rèn)目錄——改頭去尾按回車此時(shí),再使用“文件”菜單的“打開(kāi)”按鈕——默認(rèn)目錄是9/25/2024212.3VisualFoxPro的項(xiàng)目管理及操作2.3.1頁(yè)面全部數(shù)據(jù):一個(gè)項(xiàng)目中的所有數(shù)據(jù)(數(shù)據(jù)庫(kù)、自由表、查詢、視圖)文檔:處理數(shù)據(jù)時(shí)所用的全部文檔(表單、報(bào)表和標(biāo)簽)類:表單和程序中所用的類庫(kù)和類代碼:程序、API庫(kù)和應(yīng)用程序其他:菜單、文本文件和其他文件(如位圖、圖標(biāo)等)2.3.2定制項(xiàng)目管理器演示圖2-4演示圖2-5演示圖2-6+號(hào):展開(kāi)-號(hào):折疊9/25/2024222.3VisualFoxPro的項(xiàng)目管理及操作
2.3.3項(xiàng)目管理器的操作(演示)1.命令按鈕——首先選定對(duì)象新建:創(chuàng)建一個(gè)新文件或?qū)ο筇砑樱喊熏F(xiàn)有文件添加到項(xiàng)目中修改:相應(yīng)設(shè)計(jì)器移去:從項(xiàng)目中移去選定的文件或?qū)ο螅◤捻?xiàng)目中還是存儲(chǔ)器上?)連編:連編一個(gè)項(xiàng)目或應(yīng)用程序(可執(zhí)行程序)運(yùn)行:執(zhí)行選定的查詢、表單或程序?yàn)g覽:在‘瀏覽’窗口中打開(kāi)選定的表或視圖,當(dāng)且僅當(dāng)選定一張表或視圖時(shí)可用關(guān)閉:關(guān)閉數(shù)據(jù)庫(kù),當(dāng)且僅當(dāng)選定一個(gè)數(shù)據(jù)庫(kù)時(shí)可用打開(kāi):打開(kāi)數(shù)據(jù)庫(kù),當(dāng)且僅當(dāng)選定一個(gè)數(shù)據(jù)庫(kù)時(shí)可用預(yù)覽:在打印預(yù)覽方式下顯示選定的報(bào)表或標(biāo)簽9/25/2024232.3VisualFoxPro的項(xiàng)目管理及操作2.3.3項(xiàng)目管理器的操作2.快捷菜單命令——右鍵選擇包含與排除:帶斜線的圓圈表示連編時(shí)將被排除,所有的包含文件在運(yùn)行時(shí)都是只讀的設(shè)置主文件:把選定的程序、表單、查詢或菜單指定為主文件,該主文件在已編譯的應(yīng)用程序中作為主執(zhí)行程序執(zhí)行,即應(yīng)用程序的入口程序。主程序文件用粗體表示。重命名編輯說(shuō)明項(xiàng)目信息3.項(xiàng)目間共享文件一個(gè)文件可同時(shí)屬于不同的項(xiàng)目方法:打開(kāi)兩項(xiàng)目,在包含該文件的‘項(xiàng)目管理器’中選擇該文件,然后拖動(dòng)該文件到另一個(gè)項(xiàng)目容器中即可9/25/2024242.4VisualFoxPro語(yǔ)言基礎(chǔ)2.4.1數(shù)據(jù)類型(P39-40)*僅有于表的字段數(shù)據(jù)類型中文名稱說(shuō)明大?。ㄗ止?jié))Character字符型
C各種字符組成的串254Currency貨幣型Y貨幣單位8Numeric數(shù)值型
N整數(shù)或小數(shù)20Float浮點(diǎn)型*
F單精度數(shù)值型20Date日期型
D年月日8Datetime日期時(shí)間型
T年月日時(shí)分秒8Double雙精度型*
B
雙精度數(shù)值型8Integer整型*
I整數(shù)4Logical邏輯型
L真或假1Memo備注型*
M
超過(guò)254的不定長(zhǎng)字符串4General通用型*
G
OLE圖象、多媒體對(duì)象4數(shù)據(jù)類型是指數(shù)據(jù)對(duì)象的取值集合,以及對(duì)之可施行的運(yùn)算集合(相同類型才可以運(yùn)算)。9/25/2024252.4.2常量與變量大多數(shù)程序設(shè)計(jì)語(yǔ)言允許使用常量、變量和數(shù)組來(lái)存儲(chǔ)數(shù)據(jù),VFP還可以使用記錄和對(duì)象。
1.名稱命名規(guī)則(P41)名稱中只能包含字母、下劃線“_”、數(shù)字和漢字名稱開(kāi)頭只能是字母、下劃線或漢字,不能是數(shù)字表的字段名、索引標(biāo)識(shí)名最多只能是10個(gè)字符,其余名稱長(zhǎng)度可以是1~128個(gè)字符避免使用系統(tǒng)保留字(如Use、Set、Date)例如:判斷下列名稱的合法性cVar2xccnVar2sum_of_score2_xd_aver_gznum-of-renshu
nSum&re_avg#sdset9/25/2024262.常量:在整個(gè)操作過(guò)程中值保持不變。
數(shù)值型常量:由數(shù)字、小數(shù)點(diǎn)和正負(fù)號(hào)構(gòu)成如-3.15、38、3.12E+28、3.12E-28如$100.35、$2104貨幣型常量:數(shù)字前加美元符號(hào)($)邏輯型常量:邏輯真和邏輯假如真:.T..t..Y..y.
假:.F..f..N..n.9/25/202427字符型常量:由字符串“定界符”括起來(lái)的一串字符定界符可以是單引號(hào)、雙引號(hào)或方括號(hào)。不能用中文標(biāo)點(diǎn)的單引號(hào)或雙引號(hào)作為字符串的定界符定界符必須成對(duì)出現(xiàn),不能出現(xiàn)“一頭為單引號(hào)而另一頭為雙引號(hào)”等情況9/25/202428如果某種定界符本身也是字符串的內(nèi)容,則需要用另一種定界符表示字符串不包含任何字符的字符串(“”)稱為“空串”,它與包含空格的字符串(“”)不同字符串中的字母,其大小寫不等價(jià)如:‘蘇-001’”51109876”[vfp]’abcd”ef”g’[哈哈“笑”]‘ABCDE’與‘a(chǎn)bcde’是不同的字符串9/25/202429時(shí)間型和日期時(shí)間型常量:定界符是一對(duì)花括號(hào),年月日之間用/或—或.或空格分隔,時(shí)分秒之間用:分隔,傳統(tǒng)的日期格式的語(yǔ)法形式:{mm/dd/yy[hh:[mm[:ss]][am|pm]]}嚴(yán)格的日期格式的語(yǔ)法形式:(系統(tǒng)默認(rèn))
{^yyyy/mm/dd[hh:[mm[:ss]][am|pm]]}
如:{^2013-03-01} {^2013-03-018:12A}9/25/2024303.內(nèi)存變量:在任何時(shí)候都可以發(fā)生變化。
(1)變量的創(chuàng)建
內(nèi)存變量不需要特別申明,在使用時(shí)可以使用STORE命令或“=”賦值運(yùn)算符直接進(jìn)行賦值。在賦值的同時(shí),也完成了變量的創(chuàng)建,并且確定了該變量的數(shù)據(jù)類型以及目前變量的值。9/25/202431變量的創(chuàng)建y=2&&=只能給一個(gè)變量賦值store“123”tox,y,z
&&store將同一個(gè)值賦值給多個(gè)變量使用格式1:STORE數(shù)據(jù)值
TO變量名格式2:
變量名
=數(shù)據(jù)值賦值號(hào)9/25/202432例:cVar='VFP'Store1tonVar1,nVar2nVar1=cVar
cVar=nVar2?cVar
&&值為1?nVar1&&值為vfp?nVar2&&值為19/25/202433(2)、控制變量訪問(wèn) 內(nèi)存變量用于程序中,可以使用相應(yīng)的命令指定變量的作用域。用LOCAL指定局部變量 局部變量只能在當(dāng)前程序中使用,當(dāng)它們所屬的程序運(yùn)行結(jié)束后,局部變量被釋放。例如:LOCALCX19/25/202434用PRIVATE指定私有(隱藏)變量
PRIVATE可以把上層變量(調(diào)用程序中定義的變量)的值在當(dāng)前程序中隱藏起來(lái),用戶在當(dāng)前程序中可以正常使用和這些變量同名的變量。例如:PRIVATECX2,CX39/25/202435用PUBLIC指定全局變量
全局變量在程序運(yùn)行的全過(guò)程中,其值均不會(huì)丟失。
在命令窗口中創(chuàng)建的任何變量被自動(dòng)賦予全局變量。例如:PUBLICCX4,CX5,CX69/25/202436(3)訪問(wèn)變量字段變量和內(nèi)存變量
CNO=100結(jié)論:如果表的字段變量和內(nèi)存變量同名,則字段具有更高的優(yōu)先權(quán),可以在變量名前加m.前綴或m->來(lái)引用內(nèi)存變量。CNO=100?CNO&&顯示CC112,字段變量的值?m.CNO&&顯示100,內(nèi)存變量的值?m->CNO&&顯示100,內(nèi)存變量的值9/25/202437
(4)、內(nèi)存變量的保存與恢復(fù) 內(nèi)存變量是系統(tǒng)在內(nèi)存中設(shè)置的臨時(shí)存儲(chǔ)單元,當(dāng)退出VFP時(shí)其數(shù)據(jù)自動(dòng)丟失。若要保存其值,可用SAVETO命令將變量保存到文件中,命令格式如下:SAVETO
內(nèi)存變量文件名[ALLLIKE
變量名通配符|ALLEXCEPT
變量名通配符]其中:
ALLLIKE
子句指定需保存的變量,
ALLEXCEPT子句指定不需保存的變量。缺省ALLLIKE或ALLEXCEPT子句時(shí),表示保存當(dāng)前所有的內(nèi)存變量。9/25/202438
內(nèi)存變量文件的擴(kuò)展名為.mem例:
SAVETO
Mvar
ALLLIKE?Yan*
&&第2~4個(gè)字符為“yan”的所有變量保存到mvar內(nèi)存變量文件中
RESTOREFROM命令可將保存到文件中的變量恢復(fù)到內(nèi)存:RESTOREFROM
內(nèi)存變量文件名[ADDITIVE]其中:ADDITIVE子句將文件中的內(nèi)存變量追加到當(dāng)前內(nèi)存中來(lái),否則,當(dāng)前內(nèi)存變量被清除。9/25/202439
4.數(shù)組 數(shù)組是變量的有序集合,占用連續(xù)的存儲(chǔ)單元,(按行存放),組成數(shù)組的變量稱為數(shù)組元素,也叫做下標(biāo)變量。數(shù)組可以是一維數(shù)組,也可以是二維數(shù)組,一個(gè)數(shù)組中的數(shù)組元素可以是不同的數(shù)據(jù)類型。
(1)數(shù)組的聲明數(shù)組在使用前須預(yù)先聲明(定義)DIMENSION|DECLARE|PUBLIC|LOCAL數(shù)組名(行數(shù),[列數(shù)])私有數(shù)組全局?jǐn)?shù)組局部數(shù)組9/25/202440注意:
1.數(shù)組在聲明之后,每個(gè)數(shù)組元素的默認(rèn)值均為邏輯值.F.,數(shù)據(jù)類型為
L。
2.用一個(gè)語(yǔ)句可為所有的數(shù)組元素賦相同的值。9/25/202441例2:dimeY(3)&&表示定義了一個(gè)一維的數(shù)組Y,包含3個(gè)元素分別為:Y(1)、Y(2)、Y(3)Y(1)=123Y(2)=“電腦”?Y(3)Z=Y?Z&&Y(3)沒(méi)有賦值,則值為.F.&&將Y(1)的值給變量Z&&123.F..F..F.123電腦9/25/202442例3:請(qǐng)寫出下列命令輸出的結(jié)果dimey(2,3)y(1,1)=“12”y(1,2)=y(1)+“3”store0toy(1,3),y(2,1),y(2,2)?y(1,2)?y(6)&&123&&.F.二維數(shù)組可用一維形式使用12123000.F.Y(2,3)9/25/2024434.數(shù)組
為數(shù)組元素賦值:可以使用SCATTER、GATHER、COPYTOARRAY、APPENDFROMARRAY等命令在數(shù)組元素與表記錄之間傳遞值。5.字段變量——第3章介紹9/25/2024446.對(duì)象:類的實(shí)例
類:對(duì)于擁有數(shù)據(jù)和一定行為特征的對(duì)象集合的描述
VisualFoxPro對(duì)象可以是表單、表單集或控件
7.不同數(shù)據(jù)存儲(chǔ)容器的作用域——如表2-4所示(書P46)9/25/202445存儲(chǔ)數(shù)據(jù)的作用域(P46)9/25/202446練習(xí)1、字符型常量也稱為字符串,它是由字符串“定界符”括起來(lái)的一串字符。字符串定界符可以是單引號(hào)、雙引號(hào)或
。2、以下符號(hào)中,屬于VFP常量的是
。
A、.T. B、DATE C、EOF D、#VFP6.0#3、VFP中可以用
命令給多個(gè)變量賦同一個(gè)值。
方括號(hào)ASTORE9/25/202447練習(xí)4、下列字符型常量的表示中,錯(cuò)誤的是
。
A)[[品牌]] B) '5+3' C)'[x=y]' D)["計(jì)算機(jī)"]5、以下正確的賦值語(yǔ)句是
。
A)A1,A2,A3=10 B)SET10TOA1,A2,A3 C)LOCAL10TOA1,A2,A3 D)STORE10TOA1,A2,A39/25/2024482.4.3VisualFoxPro系統(tǒng)函數(shù)函數(shù):是一種預(yù)先編制好的程序代碼,可供用戶或程序調(diào)用。函數(shù)包含一對(duì)圓括號(hào)以便與命令相區(qū)別。函數(shù)分為2大類:系統(tǒng)函數(shù)和用戶自定義的函數(shù)語(yǔ)法規(guī)則:函數(shù)([參數(shù)1,[參數(shù)2[,…]]])函數(shù)的三要素:
功能與名稱;
自變量的類型,個(gè)數(shù),位置;
函數(shù)的值及值的類型。注意每個(gè)函數(shù)的作用,返回值9/25/2024491.數(shù)值函數(shù):用于處理數(shù)值型數(shù)據(jù),其返回值也為數(shù)值型數(shù)據(jù)(1)求絕對(duì)值:ABS(數(shù)值表達(dá)式)例:?ABS(-5.6+5)Store40tonum1Store2tonum2?ABS(num2-num1)&&顯示0.60&&顯示389/25/202450(2)求最大值:MAX(表達(dá)式1,表達(dá)式2,…)
例:?MAX(-45,2,22,-22)?MAX(‘a(chǎn)’,’b’)?MAX({^2003-11-11},{^2002-5-6})?MAX(.T.,.F.)&&顯示22&&顯示b&&顯示11/11/03&&顯示.T.(3)求最小值:MIN(表達(dá)式1,表達(dá)式2,…)
例:?MIN(-45,2,22,-22)Store40tonum1Store2tonum2?MIN(num2-num1,39)&&顯示-45&&顯示-389/25/202451(4)取整:INT(數(shù)值表達(dá)式)
例:?INT(12.5)?INT(-6.8)?INT(9.6-0.5)&&顯示12&&顯示-6&&顯示99/25/202452(5)模運(yùn)算求余數(shù)(%):Mod(a1,a2)函數(shù)功能:用a1的值去除a2的值,返回余數(shù)。函數(shù)值(余數(shù))的符號(hào)與A2相同;當(dāng)a1與a2符號(hào)相同時(shí),函數(shù)值為二者的余數(shù);當(dāng)a1與a2符號(hào)不相同時(shí),函數(shù)值為二者相除的余數(shù)再加上除數(shù)a2的值。被除數(shù)A1的小數(shù)位數(shù)決定了函數(shù)值的小數(shù)位數(shù)。例:?mod(36,10)
&&顯示6
?mod((4*9),90/9)
&&顯示6 ?mod(25.250,5.0) &&顯示0.250 ?mod(23,-5)
&&顯示-2
?mod(-23,-5)
&&顯示-3
?MOD(-23,5)
&&顯示29/25/202453(6)四舍五入:ROUND(數(shù)值表達(dá)式,小數(shù)位數(shù))例:Setdecimalsto4&&小數(shù)位為4位Setfixedon&&小數(shù)位是否固定,默認(rèn)是不固定?ROUND(1234.1962,3)&&1234.1960?ROUND(1234.1962,2) &&1234.2000?ROUND(1546.1962,-3)&&2000.00009/25/202454(7)求平方根:SQRT(數(shù)值表達(dá)式)例:Setdecimalsto2?SQRT(2)9/25/202455(8)隨機(jī)函數(shù):RAND()
&&產(chǎn)生0~1之間的隨機(jī)數(shù)例:?RAND()&&顯示一個(gè)0~1的隨機(jī)數(shù)如何產(chǎn)生1~100之間的隨機(jī)整數(shù)??捎靡韵鹿剑河涀〈斯?/p>
Int((上限-下限+1)*Rand())+下限?INT(100*rand())+1*產(chǎn)生一個(gè)a~b之間的隨機(jī)整數(shù)為:?INT((b-a+1)*rand())+a9/25/202456(1)去前后空格:ALLTRIM(字符串表達(dá)式)
去后綴空格:TRIM(字符串表達(dá)式)
RTRIM(字符串表達(dá)式)
去前綴空格:LTRIM(字符串表達(dá)式)例:cVar=”VFP”?ALLTRIM(cVar)cVar=”VFP”?TRIM(cVar)2.字符函數(shù)9/25/202457(2)求
表達(dá)式1在
表達(dá)式2中首次出現(xiàn)的位置:AT(<表達(dá)式1),<表達(dá)式2>[,出現(xiàn)次數(shù)])
注:出現(xiàn)次數(shù)默認(rèn)為1,AT區(qū)分大小寫,ATC功能同上,但不區(qū)分字母大小寫例:Store‘Nowisthetimeforallgoodmen’toaStore‘isthe’tob?AT(b,a)Store‘IS’tob?AT(b,a)?ATC(b,a)9/25/202458(3)求字符串長(zhǎng)度:LEN(字符串表達(dá)式)例:cVar=”VFP”?LEN(cVar)?LEN(“VFP是簡(jiǎn)寫”)?LEN(ALLTRIM(“VFPhelp”))9/25/202459(4)求子串:SUBSTR(字符串表達(dá)式,位置[,長(zhǎng)度])注:長(zhǎng)度缺省時(shí)指返回結(jié)束前的全部字符例:Store‘a(chǎn)bcdefghijklm’tomystring
?SUBSTR(mystring,6,2)?SUBSTR(mystring,6)aa=”河海大學(xué)”?SUBSTR(aa,5,4)9/25/202460(5)求左子串:LEFT(字符串表達(dá)式,長(zhǎng)度)
求右子串:RIGHT(字符串表達(dá)式,長(zhǎng)度)例:?LEFT(‘Redmond,WA’,7)?RIGHT(‘Redmond,WA’,7)(6)SPACE(算術(shù)表達(dá)式)例:?Space(3+6)&&產(chǎn)生9個(gè)空格9/25/2024613.日期和時(shí)間函數(shù)(1)DATE()、TIME()與DATETIME()例:setcenturyoff?date()setcenturyon?date()?time()?datetime()setdatetolong?date()setdatetoansi?date()sr={^2008/08/08}?date()-sr
&&顯示今天距2008-08-08多少天
9/25/202462(2)YEAR(日期/時(shí)間表達(dá)式)、MONTH(日期/時(shí)間表達(dá)式)與DAY(日期/時(shí)間表達(dá)式)例:?Year(date())?Month(date())storemonth(gdBuy+31)togdMonth?gdMonth9/25/202463(3)DOW(日期/時(shí)間表達(dá)式)注:得到該日期是一周的第幾天(第一天為星期日)例:?DOW(date())?DOW({^2008-08-08})9/25/2024644.數(shù)據(jù)類型轉(zhuǎn)換函數(shù)(1)ASC(字符串表達(dá)式)
&&返回最左邊的ASCII值例:?ASC(‘ABCD’)?ASC(‘8’)(2)CHR(數(shù)值表達(dá)式)
&&ASCII值轉(zhuǎn)成字符注:CHR(13)為換行符例:?CHR(65)&&顯示A?CHR(57)&&顯示99/25/202465(3)VAL(字符串表達(dá)式)
&&從左到右返回字符表達(dá)式中的數(shù)字?jǐn)?shù)值,直至遇到非數(shù)值型字符時(shí)為止(字符串轉(zhuǎn)成數(shù)值)。若表達(dá)式的第一個(gè)字符不是數(shù)字,也不是加、減號(hào),則函數(shù)返回0
例:a='12‘b='14'?a+b?val(a)+val(b)?val(‘234aaaa’)Store‘1.25E3’toc?2*val(c)9/25/202466(5)STR(數(shù)值表達(dá)式[,寬度[,小數(shù)位數(shù)]])&&數(shù)值型轉(zhuǎn)字符型注:缺省時(shí)默認(rèn)寬度為10,小數(shù)位數(shù)為0,若寬度大于整個(gè)數(shù)值的寬度,則用前導(dǎo)空格填充
例:?STR(314.15)&&顯示314
?STR(314.15,5)&&顯示314
?STR(314.15,5,2)&&顯示314.2?STR(314.15,2)&&顯示**?STR(1234567890123)&&顯示1.234E+12X=123Y=321?str(X)+str(Y)&&顯示1233219/25/202467(4)DTOC(日期/時(shí)間表達(dá)式[,1])&&日期型轉(zhuǎn)字符型
TTOC(時(shí)間表達(dá)式[,1/2])&&時(shí)間型轉(zhuǎn)字符型
參數(shù):1用于指定以年月日順序且無(wú)分隔符的形式返回字符型日期,參數(shù)2僅返回時(shí)間部分
CTOD(字符串表達(dá)式)&&字符型轉(zhuǎn)日期型
CTOT(字符串表達(dá)式)&&字符型轉(zhuǎn)時(shí)間型9/25/202468例:Store{^1995/10/3110:34}togdThisDate?DTOC(gdThisDate)?DTOC(gdThisDate,1)?TTOC(gdThisDate)?TTOC(gdThisDate,1)?TTOC(gdThisDate,2)setdatetolong?DTOC(date())StoreCTOD(‘^2101/12/15’)togdStoreCTOT(‘^2001-10-1222:22’)togd?gd
9/25/2024695.其他常用函數(shù)(1)BETWEEN(表達(dá)式,下界,上界)例:?Between(3,14,15)&&.F.?Between(date(),{^2001/12/15},{^2101/12/15})&&.T.(2)INKEY(時(shí)間表達(dá)式)例:?INKEY(20)&&等待20s返回按鍵的ascii值?INKEY()&&一直等待鍵擊9/25/202470(3)TYPE(
“表達(dá)式”
)
例:?TYPE("date()") &&D?TYPE("(12*3)+4") &&N(4)IIF(邏輯表達(dá)式,返回值1,返回值2)例:?IIF(dow(date())=1ORdow(date())=7,'今天休息','今天上班')9/25/202471(5)DISKSPACE()例:setdefaulttoC:?diskspace()?diskspace()/1024/1024(6)FILE(‘文件名’)例:?FILE(‘c:\config.sys’)&&顯示.T.9/25/202472(7)MESSAGEBOX(字符表達(dá)式[,數(shù)值表達(dá)式[,標(biāo)題]])注意:
MESSAGEBOX()的縮寫不能寫成MESS(),只能寫成MESSAGEB()例:?MessageBox("這是一個(gè)例子?。?,3+16+256,"我的應(yīng)用程序")?MessageBox("請(qǐng)你換行"+CHR(13)+"顯示",1+64+0,"小例子")9/25/202473(8)GETFILE(“文件擴(kuò)展名”[,“文件名”])
例:gc=GETFILE(‘dbf’,‘表文件名’)?gc9/25/202474練習(xí)1、下列函數(shù)中,返回值為字符型的是
。
A、AT() B、STR() D、VAL() D、CTOD()2、函數(shù)Round(123.148,-2)的返回值是___。
A、123.148 B、100 C.、123.00 D、123.0003、函數(shù)LEN(DTOC(DATE(),1))的返回值是
。BB89/25/2024752.4.4運(yùn)算符與表達(dá)式表達(dá)式:
由常量、變量、函數(shù)及運(yùn)算符組成的式子。1.數(shù)值運(yùn)算符與表達(dá)式(),**或^
(乘方),*
,
/
,
%(模),
+
,—例:?(8-3)*(18/3)-5?4**3-5^2?35%6&&顯示25&&顯示39&&顯示5,等同于MOD(35,6)9/25/2024762.4.4運(yùn)算符與表達(dá)式表達(dá)式:
由常量、變量、函數(shù)及運(yùn)算符組成的式子。1.數(shù)值運(yùn)算符與表達(dá)式(x^3+Sqrt(y-10))/(2*x*y)(A-B)/(A*(A+B))9/25/202477(1)字符串連接符:+例:?“1+2”+“1”2)字符串連接符-例:?“12”-“3”+“4”(3)字符串匹配符:$例:?“ab”$“abc”
?“王”$“王一平”&&顯示1+21&&顯示1234
&&顯示.T.&&顯示.T.
2.字符運(yùn)算符與表達(dá)式9/25/2024783.日期(和日期時(shí)間)運(yùn)算符與表達(dá)式有兩種運(yùn)算符“+”、“-”(1)一個(gè)日期可以減去或者加上一個(gè)整數(shù),結(jié)果為一個(gè)新的日期:
?{^2009/11/07}-2
?{^2009/11/07}+20?{^2009/11/0710:10:10p}+50&&顯示11/05/09&&顯示11/27/09&&顯示11/07/0910:11:00pm9/25/2024793.日期(和日期時(shí)間)運(yùn)算符與表達(dá)式(2)兩個(gè)日期(日期時(shí)間)相減:結(jié)果為兩個(gè)日期相差的天數(shù)(秒數(shù)),可以是負(fù)數(shù)。
?{^2009/11/07}-{^2009/11/02}?{^2009/11/02}-{^2009/11/07}?{^2009/11/0710:10:10p}-{^2009/11/0610:10:10p}
注意:不可以對(duì)兩個(gè)日期型數(shù)據(jù)或日期時(shí)間型數(shù)據(jù)進(jìn)行相加運(yùn)算&&顯示5&&顯示-5&&顯示864009/25/202480用于任意數(shù)據(jù)類型的數(shù)據(jù)比較,要求符號(hào)兩邊的數(shù)據(jù)類型相同,運(yùn)算結(jié)果為邏輯值。主要有<、>、=、<>或#或!=、<=、>=、==?“10”>“9”?“11”>=“11”?“ABCD”=“ABC”*注:默認(rèn)的字符序列是PinYin(P60)字符串精確比較:==&&顯示.F.&&顯示.T.&&顯示.T.4.關(guān)系運(yùn)算符與表達(dá)式9/25/202481當(dāng)SETEXACTON
?‘ABCDE’=‘ABC’ &&.F.?‘ABCX’=‘ABCX’&&.T.
當(dāng)SETEXACTOFF
?‘ABCDE’=‘ABC’&&.T.?‘ABC’=‘ABCDE’&&.F.
SETEXACTON
為精確比較,即參加比較的兩個(gè)字符串必須完全相同,才返回邏輯真值;SETEXACTOFF(默認(rèn)值)為不精確比較,即右端字符串是左邊字符串的左子串時(shí),其值為邏輯真值9/25/202482用于操作邏輯類型的數(shù)據(jù),并返回一個(gè)邏輯值。
()、NOT或!、AND、OR例:*判斷今天是9月4號(hào)嗎??day(date())=4andmonth(date())=9*判斷今天是不是周末??dow(date())=1ordow(date())=75.邏輯運(yùn)算符與表達(dá)式9/25/202483各種運(yùn)算符之間的優(yōu)先級(jí)為:
算術(shù)運(yùn)算符—>關(guān)系運(yùn)算符—>邏輯運(yùn)算符,括號(hào)可以改變運(yùn)算順序。特別注意:運(yùn)算的數(shù)據(jù)類型的匹配!例如,設(shè)X=2,Y=6,Z=8,則表達(dá)式:
X+Y>=ZANDX*Y<2*Z
的值為.T.表達(dá)式:
(Y+Z)%3<=XORX**2+3>=Z
的值為.T.9/25/2024846、名稱表達(dá)式 名稱表達(dá)式是由圓括號(hào)()括起來(lái)的字符表達(dá)式,它可用來(lái)替換命令和函數(shù)中的名稱。名稱表達(dá)式的作用詳見(jiàn)以下例子:9/25/202485
N=100M=‘N’&&注意不要用中文的引號(hào)
STORE123.45TO(M)
用名稱表達(dá)式替換變量名N
&&注意不能用賦值號(hào)=?N&&結(jié)果為123.45
實(shí)際上對(duì)變量N兩次賦值。(1)用名稱表達(dá)式替換變量名9/25/202486
DNAME=‘XS.DBF’USE(DNAME)(2)用名稱表達(dá)式替換文件名9/25/202487
string1="VISUALFOXPRO6.0" str_var=(string1) &&書上P62有錯(cuò)
?SUBSTR((str_var),1,6)
&&等價(jià)于SUBSTR(string1,1,6)&&結(jié)果為VISUAL(3)用名稱表達(dá)式作為函數(shù)的參數(shù)9/25/202488
DBN=‘JXSJ’DBFN=‘XS’USE(DBN+’!’+DBFN)
&&打開(kāi)JXSJ!XS(4)用字符表達(dá)式構(gòu)成一個(gè)名稱表達(dá)式9/25/2024897、宏替換 宏替換與名稱表達(dá)式具有相似的作用,可使用宏替換的方法用內(nèi)存變量替換名稱。在使用宏替換時(shí),將連字符(&)放在變量前,告訴VFP將此變量值當(dāng)作名稱使用,并使用一個(gè)句號(hào)(.)來(lái)結(jié)束這個(gè)宏替換表達(dá)式。9/25/202490(1)宏替換可以替換整個(gè)命令,名稱表達(dá)式不行
AA=“DIR”
&AA&&執(zhí)行DIR命令
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國(guó)工程監(jiān)理行業(yè)發(fā)展環(huán)境分析及投資戰(zhàn)略建議報(bào)告
- 2024-2030年中國(guó)山藥產(chǎn)品產(chǎn)業(yè)未來(lái)發(fā)展趨勢(shì)及投資策略分析報(bào)告
- 2024至2030年護(hù)膚膏霜項(xiàng)目投資價(jià)值分析報(bào)告
- 2024-2030年中國(guó)實(shí)時(shí)數(shù)據(jù)庫(kù)行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- Java內(nèi)存模型優(yōu)化策略
- 2024至2030年沖天除塵器項(xiàng)目投資價(jià)值分析報(bào)告
- 2024年高鋁耐火磚項(xiàng)目可行性研究報(bào)告
- 2024至2030年中國(guó)不干膠商標(biāo)標(biāo)識(shí)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年中國(guó)??蓾裥苑蹌┦袌?chǎng)調(diào)查研究報(bào)告
- 2024年對(duì)羥基二苯胺項(xiàng)目可行性研究報(bào)告
- 新時(shí)代外語(yǔ)教育課程思政建設(shè)的幾點(diǎn)思考
- 大象版五年級(jí)科學(xué)上冊(cè)第四單元《地殼》全部課件(共5課時(shí))
- 石材保溫一體板計(jì)算書分解
- 企業(yè)經(jīng)營(yíng)狀況問(wèn)卷調(diào)查表
- Unit+7+Careers+Lesson+1+EQ:IQ+課件+-2023-2024學(xué)年高中英語(yǔ)北師大版2019+選擇性必修第三冊(cè)
- 沙眼衣原體感染
- 搶救車藥物說(shuō)明書匯編
- 《C語(yǔ)言程序設(shè)計(jì)》課程思政教學(xué)案例(一等獎(jiǎng))
- 2023年大學(xué)試題(法學(xué))-著作權(quán)法考試參考題庫(kù)(含答案)
- 綠博園站初步設(shè)計(jì)說(shuō)明
- 武漢理工大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)試題及答案
評(píng)論
0/150
提交評(píng)論