VisualFoxPro數(shù)據(jù)庫(kù)管理系統(tǒng)概述_第1頁(yè)
VisualFoxPro數(shù)據(jù)庫(kù)管理系統(tǒng)概述_第2頁(yè)
VisualFoxPro數(shù)據(jù)庫(kù)管理系統(tǒng)概述_第3頁(yè)
VisualFoxPro數(shù)據(jù)庫(kù)管理系統(tǒng)概述_第4頁(yè)
VisualFoxPro數(shù)據(jù)庫(kù)管理系統(tǒng)概述_第5頁(yè)
已閱讀5頁(yè),還剩97頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論