![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-10/21/23/29e537b1-9101-4a49-aa38-daa2114a5ac7/29e537b1-9101-4a49-aa38-daa2114a5ac7pic.jpg)
![第1章 visual foxpr6.0基礎(chǔ)_第1頁(yè)](https://static.zsdocx.com/FlexPaper/FileRoot/2019-10/21/23/29e537b1-9101-4a49-aa38-daa2114a5ac7/29e537b1-9101-4a49-aa38-daa2114a5ac71.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章 Visual FoxPro 6.0基礎(chǔ),第一章 Visual FoxPro 6.0基礎(chǔ),本章主要內(nèi)容1.1 數(shù)據(jù)庫(kù)系統(tǒng)概述1.2 Visual FoxPro 6.0 系統(tǒng)概述1.3 Visual FoxPro 6.0 的數(shù)據(jù)類型和數(shù)據(jù)存儲(chǔ)1.4 運(yùn)算符和表達(dá)式1.5 常用標(biāo)準(zhǔn)函數(shù),1.1.1 數(shù)據(jù)及數(shù)據(jù)處理,數(shù)據(jù)處理技術(shù)發(fā)展的三個(gè)階段:1.人工管理階段在20世紀(jì)50年代中期以前,由于當(dāng)時(shí)沒(méi)有必要的軟、硬件
2、環(huán)境的支持,用戶對(duì)數(shù)據(jù)的處理只能在裸機(jī)上采用批處理方式。在這一管理方式下,用戶的應(yīng)用程序和數(shù)據(jù)之間互不獨(dú)立,并且一一對(duì)應(yīng),也就是說(shuō),應(yīng)用程序完全依賴于數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)的改變、數(shù)據(jù)存取的物理地址或存儲(chǔ)設(shè)備的變化,都會(huì)要求修改相應(yīng)地應(yīng)用程序。2.文件系統(tǒng)管理階段3.?dāng)?shù)據(jù)庫(kù)系統(tǒng)管理階段,1.1.1 數(shù)據(jù)及數(shù)據(jù)處理,2.文件系統(tǒng)管理階段20世紀(jì)50年代后期至60年代后期,由于操作系統(tǒng)中有了專門用于管理數(shù)據(jù)的軟件,我們稱之為文件管理系統(tǒng)。在該
3、階段,把要處理的有關(guān)數(shù)據(jù)組織成文件,應(yīng)用程序通過(guò)文件管理系統(tǒng)對(duì)數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行加工處理,此時(shí)應(yīng)用程序和數(shù)據(jù)之間雖然具有了一定的獨(dú)立性,但是這種獨(dú)立性是相當(dāng)差的。 3.?dāng)?shù)據(jù)庫(kù)系統(tǒng)管理階段20世紀(jì)60年代后期,計(jì)算機(jī)要處理的數(shù)據(jù)急劇增加,文件管理方式顯示出不足,此時(shí)數(shù)據(jù)庫(kù)管理技術(shù)便應(yīng)運(yùn)而生。數(shù)據(jù)庫(kù)管理技術(shù)對(duì)海量數(shù)據(jù)實(shí)行統(tǒng)一管理,形成一個(gè)數(shù)據(jù)倉(cāng)庫(kù),庫(kù)中的所有數(shù)據(jù)供不同的用戶共享,即應(yīng)用程序和數(shù)據(jù)之間實(shí)現(xiàn)了完全獨(dú)立。這樣不僅使應(yīng)用程序?qū)?/p>
4、數(shù)據(jù)的訪問(wèn)和管理方便靈活,而且使數(shù)據(jù)冗余大大減少。,1.1.2 數(shù)據(jù)庫(kù)系統(tǒng)的基本概念,⒈數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(DB──DataBase)是以一定方式組織在一起的結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合,存放在外存儲(chǔ)器上,能夠被多個(gè)用戶所共享,通常把這樣一個(gè)數(shù)據(jù)集合形象地稱為數(shù)據(jù)庫(kù)。⒉數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS──DataBase Management System)是對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理和控制的軟件系統(tǒng),是數(shù)據(jù)庫(kù)系統(tǒng)的中心樞紐。用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行的各
5、種操作--數(shù)據(jù)庫(kù)的建立、使用和維護(hù),都是在DBMS的統(tǒng)一管理和控制下進(jìn)行的。Visual FoxPro 6.0就是一個(gè)常用的數(shù)據(jù)庫(kù)管理系統(tǒng)。,1.1.2 數(shù)據(jù)庫(kù)系統(tǒng)的基本概念,⒊數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)(DBS──DataBase System)是指計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)之后組成的系統(tǒng),用來(lái)組織和存取大量數(shù)據(jù)的管理系統(tǒng)。它由計(jì)算機(jī)系統(tǒng)(硬件和基本軟件)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)和有關(guān)人員(數(shù)據(jù)庫(kù)管理員、應(yīng)用設(shè)計(jì)人員、最終用戶)組成的具有高度
6、組織性的總體。,1.1.3 數(shù)據(jù)模型,⒈數(shù)據(jù)模型中的基本概念⑴實(shí)體:客觀存在并且可以相互區(qū)別的事物稱為實(shí)體。⑵屬性:實(shí)體所具有的某一特性稱為屬性。一個(gè)實(shí)體可以由若干個(gè)屬性來(lái)描述。⑶碼:唯一標(biāo)識(shí)實(shí)體的屬性或?qū)傩缘慕M合稱為碼。在Visual FoxPro中對(duì)應(yīng)的概念是關(guān)鍵字。⑷域:屬性的取值范圍稱為域。不同的屬性有不同的取值范圍,即不同的域。⑸聯(lián)系:實(shí)體之間的對(duì)應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實(shí)世界中事物之間的相互關(guān)系。實(shí)體之間的聯(lián)系可以
7、歸納為三類,即一對(duì)一的聯(lián)系,一對(duì)多的聯(lián)系,多對(duì)多的聯(lián)系。,1.1.3 數(shù)據(jù)模型,⑴層次模型用樹(shù)形結(jié)構(gòu)表示實(shí)體及其之間聯(lián)系的模型稱為層次模型。在層次模型中,數(shù)據(jù)被組成從“根”開(kāi)始的倒掛的“樹(shù)”,每個(gè)實(shí)體被當(dāng)成一個(gè)結(jié)點(diǎn),由“根”開(kāi)始沿不同的分支放到不同的層次上。如果某個(gè)實(shí)體不再向下分支,則該實(shí)體所對(duì)應(yīng)的結(jié)點(diǎn)稱為“樹(shù)葉”。上級(jí)結(jié)點(diǎn)與下級(jí)結(jié)點(diǎn)之間為一對(duì)多的聯(lián)系。,1.1.3 數(shù)據(jù)模型,采用層次模型設(shè)計(jì)的數(shù)據(jù)庫(kù)管理系統(tǒng)稱為層次數(shù)據(jù)庫(kù)管理系統(tǒng),在
8、其中建立的數(shù)據(jù)庫(kù)稱為層次數(shù)據(jù)庫(kù)。層次模型的數(shù)據(jù)庫(kù)管理系統(tǒng)也是最早出現(xiàn)的數(shù)據(jù)庫(kù)管理系統(tǒng)。,1.1.3 數(shù)據(jù)模型,⑵網(wǎng)狀模型網(wǎng)狀數(shù)據(jù)模型用以實(shí)體為結(jié)點(diǎn)的有向圖來(lái)表示實(shí)體之間的聯(lián)系。在網(wǎng)狀數(shù)據(jù)模型中,至少有一個(gè)結(jié)點(diǎn)有多余一個(gè)的父結(jié)點(diǎn),也可以有一個(gè)以上的結(jié)點(diǎn)無(wú)父結(jié)點(diǎn)。例如下圖所示的某計(jì)算機(jī)系的網(wǎng)狀模型。,1.1.3 數(shù)據(jù)模型,⑶關(guān)系模型20世紀(jì)70年代初,IBM的研究員E.F.Codd博士首先提出了關(guān)系的概念,一個(gè)關(guān)系的邏輯結(jié)構(gòu)就是一個(gè)二維
9、表。這種用二維表的形式表示實(shí)體和實(shí)體之間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。雖然關(guān)系模型出現(xiàn)的比較晚,但是因?yàn)樗墙⒃趪?yán)格的數(shù)學(xué)理論的基礎(chǔ)上,所以關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)也是當(dāng)前最流行的數(shù)據(jù)庫(kù)管理系統(tǒng)。例如微機(jī)上流行的VisualFoxPro、Paradox等都是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。在此,就以Visual FoxPro 6.0為例來(lái)介紹關(guān)系模型中的相關(guān)術(shù)語(yǔ)。,雖然關(guān)系模型出現(xiàn)的比較晚,但是因?yàn)樗墙⒃趪?yán)格的數(shù)學(xué)理論的基礎(chǔ)上,所以關(guān)系數(shù)據(jù)庫(kù)管理
10、系統(tǒng)也是當(dāng)前最流行的數(shù)據(jù)庫(kù)管理系統(tǒng)。例如微機(jī)上流行的VisualFoxPro、Paradox等都是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。在此,就以Visual FoxPro 6.0為例來(lái)介紹關(guān)系模型中的相關(guān)術(shù)語(yǔ)。,①關(guān)系:關(guān)系就是一個(gè)二維表,每個(gè)關(guān)系都有一個(gè)關(guān)系名。在VFP6中一個(gè)關(guān)系就是一個(gè)數(shù)據(jù)表(二維表),每個(gè)數(shù)據(jù)表都存儲(chǔ)為一個(gè)文件,擴(kuò)展名為.dbf,簡(jiǎn)稱為表,如表1-1所示。②元組:在一個(gè)關(guān)系中,水平方向上的每一行稱為一個(gè)元組。在VFP6的數(shù)據(jù)
11、表中,每一行中稱為記錄,同一個(gè)數(shù)據(jù)表中的若干個(gè)記錄的性質(zhì)是相同的,格式、長(zhǎng)度是相等的。③屬性:在一個(gè)關(guān)系中,垂直方向上的列稱為屬性,屬性是不可再分的數(shù)據(jù)單位,每一列有一個(gè)屬性名。在VFP6的數(shù)據(jù)表中,每一列稱為一個(gè)字段,每個(gè)字段都有一個(gè)字段名,④域:是屬性的取值范圍,即同一個(gè)關(guān)系中不同的元組對(duì)同一個(gè)屬性的取值所限定的范圍。⑤主關(guān)鍵字:是屬性或?qū)傩缘慕M合,其值能夠唯一的標(biāo)識(shí)一個(gè)元組。,⑷關(guān)系的完整性約束關(guān)系的完整性約束是為了保證數(shù)
12、據(jù)庫(kù)中數(shù)據(jù)的正確性和兼容性對(duì)關(guān)系模型提出的某種約束條件或規(guī)則。完整性約束只有在創(chuàng)建數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新操作時(shí)才需進(jìn)行檢查。關(guān)系的完整性約束大致可以分為以下幾類:①域完整性約束域完整性約束也稱為用戶自定義完整性約束,主要約束一個(gè)屬性(字段)的取值范圍,取值類型及有效性規(guī)則等。②實(shí)體完整性約束為了確保實(shí)體完整性,每個(gè)關(guān)系中應(yīng)有一個(gè)主關(guān)鍵字段,每個(gè)記錄的主關(guān)鍵字段的值是惟一的,而且不能為空值。③參照完整性約束,1.2 Visual
13、 FoxPro 6.0 系統(tǒng)概述1.2.1 VFP6的安裝、啟動(dòng)和退出,VFP6可在Windows95/98(中文版)或Windows NT 4.0(中文版)或更高版本中運(yùn)行。在Windows操作系統(tǒng)中運(yùn)行Visual FoxPro的要求很低,現(xiàn)在流行和使用的計(jì)算機(jī)都能夠滿足這些要求。1.VFP6的安裝VFP6的安裝和其他Windows平臺(tái)下的軟件安裝方法基本一樣,可根據(jù)安裝向?qū)У奶崾疽徊揭徊竭M(jìn)行安裝即可。在這個(gè)過(guò)程中,只需要輸入
14、極少量的信息和作出一些必要的選擇。安裝完成后,需要對(duì)系統(tǒng)進(jìn)行必要的配置,以方便將來(lái)使用。在此,不再詳細(xì)介紹。,2.VFP6的啟動(dòng)VFP6的安裝好以后,VFP6的啟動(dòng)方法與Windows下的應(yīng)用程序相同,在此不再詳述。使用VFP6完成數(shù)據(jù)處理以后,需要退出VFP環(huán)境,以避免數(shù)據(jù)的丟失。3.VFP6的退出以下幾種操作方法均可退出VFP6環(huán)境。方法一:從“文件”下拉菜單中選擇“退出”選項(xiàng)。方法二:用鼠標(biāo)單擊VFP系統(tǒng)窗口右上角的“
15、×”關(guān)閉窗口圖標(biāo)。方法三:在VFP的命令窗口中鍵入Quit命令,再按Enter鍵。方法四:?jiǎn)螕鬡FP主窗口左上方的狐貍圖標(biāo),從彈出的下拉菜單中選擇“關(guān)閉”或按Alt+F4組合鍵。,1.2.2中文VFP6開(kāi)發(fā)環(huán)境簡(jiǎn)介,1.中文VFP的用戶界面VFP6啟動(dòng)后,即可進(jìn)入VFP6主窗口,它和其他的Windows窗口類似,VFP6主窗口主要由標(biāo)題欄、菜單欄、工具欄、狀態(tài)欄、命令窗口和工作區(qū)域等組成,如圖1-3所示。在此只簡(jiǎn)單介紹一
16、下命令窗口和工作區(qū)。,⑴命令窗口對(duì)于新用戶來(lái)說(shuō),通過(guò)菜單和對(duì)話框可以很容易地使用VFP的功能而不需記憶各種命令。當(dāng)然也可以通過(guò)使用命令窗口輸入相應(yīng)的命令來(lái)完成數(shù)據(jù)處理的操作,通常使用命令窗口的操作方法更為簡(jiǎn)潔。使用命令操作時(shí),在命令窗口中鍵入VFP命令后,然后按Enter鍵即可立即執(zhí)行相應(yīng)的操作。在“窗口”菜單下,選擇“隱藏”菜單項(xiàng)可以關(guān)閉命令窗口;再選擇“命令窗口”可以重新顯示命令窗口。⑵工作區(qū)域在工作區(qū)域可以展開(kāi)系統(tǒng)中的各種
17、窗口,使用各種向?qū)?,也可以直接在工作區(qū)域中輸出結(jié)果。,2.VFP運(yùn)行環(huán)境的配置在正確安裝了VFP之后,通常需要對(duì)其運(yùn)行環(huán)境進(jìn)行配置,讓戶使用起來(lái)更加符合個(gè)人的習(xí)慣。對(duì)VFP6進(jìn)行配置的方法可以有很多,可以利用系統(tǒng)菜單中“選項(xiàng)”對(duì)話框進(jìn)行交互式設(shè)置,也可以采用編程或直接修改注冊(cè)表文件的方法來(lái)訂制自己的配置文件。下面以菜單方式的環(huán)境配置為例來(lái)介紹VFP6運(yùn)行環(huán)境的配置方法。啟動(dòng)VFP6之后,選擇“工具”菜單中的“選項(xiàng)”命令,即可以打開(kāi)
18、“選項(xiàng)”對(duì)話框,如圖1-4所示。通過(guò)該對(duì)話框中相應(yīng)的選項(xiàng)卡,可以方地查看、更改VFP 6.0系統(tǒng)設(shè)置。,,VFP6設(shè)置既可以臨時(shí)修改,也可以是永久修改。臨時(shí)的設(shè)置信息在退出VFP6時(shí)從內(nèi)存中釋放,而永久設(shè)置在退出VFP6時(shí)不失效,一直作為系統(tǒng)默認(rèn)值,直到再次進(jìn)行設(shè)置修改為止。在“選項(xiàng)”對(duì)話框中配置完畢后,直接單擊“確定”按鈕,則是臨時(shí)配置,若先單擊“設(shè)置為默認(rèn)值”,再單擊“確定”,則是永久配置。注意:在未弄清各項(xiàng)意義之前應(yīng)該取其默認(rèn)值
19、,不要隨便更改,以免系統(tǒng)出錯(cuò)。,3.VFP的三種工作方式⑴菜單操作方式用戶通過(guò)選擇菜單,進(jìn)入窗口或?qū)υ捒騺?lái)完成工作的工作方式稱為VFP的菜單操作工作方式。每一次執(zhí)行菜單命令,在命令窗口中一般都會(huì)顯示出與菜單操作對(duì)應(yīng)的命令內(nèi)容。⑵命令交互方式根據(jù)需要,采用人機(jī)交互方式在命令窗口中輸入命令,VFP通過(guò)執(zhí)行這些命令來(lái)完成操作和數(shù)據(jù)處理。命令交互方式簡(jiǎn)捷迅速,大多數(shù)的菜單操作都是與某個(gè)命令操作相對(duì)應(yīng)。,,⑶程序執(zhí)行方式對(duì)于復(fù)雜的問(wèn)題或
20、較長(zhǎng)的處理過(guò)程,利用菜單方式或命令方式進(jìn)行操作時(shí),就需要多次選擇菜單或在命令窗口鍵入大量命令才能完成,使用起來(lái)不但欠靈活而且效率也低,這時(shí)最佳選擇就是采用程序方式。即先在程序編輯窗口編寫好程序,然后再利用菜單或命令窗口執(zhí)行該程序,就能方便地進(jìn)行各種數(shù)據(jù)處理和操作。,4.VFP的基本操作命令在VFP中,有很多的操作命令,通過(guò)執(zhí)行操作命令可以完成相關(guān)操作和數(shù)據(jù)處理。本章主要介紹基本操作命令的一般格式、語(yǔ)法規(guī)則等,具體的操作命令在后面的章節(jié)
21、中將逐步介紹。⑴命令的一般格式格式: [] [] [for] [while]說(shuō)明:①命令關(guān)鍵字是一個(gè)英文單詞,每一個(gè)命令行必須以命令關(guān)鍵字開(kāi)頭,字母大小寫等效。對(duì)于較長(zhǎng)的命令關(guān)鍵字可用其前四個(gè)或四個(gè)以上字母的縮寫表示,如append、APPE、Appen是等效的。②命令行中子句的個(gè)數(shù)可以是一個(gè)或多個(gè),并且各個(gè)子句的排列順序是任意的。,③在命令窗口中,一行只能寫一條命令,每條命令的結(jié)束標(biāo)志是回車鍵。如果一個(gè)命令太長(zhǎng),一行寫不下,可
22、以使用續(xù)行符“;”,然后再回車鍵,并在下一行接著書寫該命令。但總長(zhǎng)不能超過(guò)254個(gè)字符。④命令中的所有字符(除漢字外)一律在英文狀態(tài)下輸入。⑵命令格式中的符號(hào)約定①:表示必選項(xiàng)。該項(xiàng)必須根據(jù)具體問(wèn)題選擇一個(gè)確定的參數(shù)。②[ ]:表示可選項(xiàng)。若選,根據(jù)具體問(wèn)題選擇一個(gè)參數(shù);不選,則取系統(tǒng)的缺省值。③ | :表示任選一項(xiàng)。在以該符號(hào)作分隔符的多個(gè)選項(xiàng)中任選一項(xiàng)(只能是一項(xiàng))。④…:表示重復(fù)出現(xiàn)項(xiàng)。在一個(gè)命令或函數(shù)表達(dá)式中,某一部
23、分可以按同一方式重復(fù)。注意:在實(shí)際輸入命令時(shí),上述符號(hào)都不要輸入。,⑶命令中的表達(dá)式列表子句表達(dá)式列表是一個(gè)或多個(gè)由逗號(hào)隔開(kāi)的表達(dá)式。表達(dá)式除了可以是字段名外,還可以是算數(shù)表達(dá)式、日期表達(dá)式等各種表達(dá)式。⑷命令中的范圍子句在VFP命令中,常用子句來(lái)指定可以操作的有效記錄的范圍,一般有四種選擇:①ALL:對(duì)當(dāng)前表中所有記錄進(jìn)行操作。②NEXT:指從當(dāng)前記錄開(kāi)始的連續(xù)n條記錄。③RECORD:只對(duì)記錄號(hào)為n的記錄進(jìn)行操作。④
24、REST:對(duì)從當(dāng)前記錄開(kāi)始到表末尾的所有記錄進(jìn)行操作。,⑸命令中的條件子句①FOR:對(duì)滿足條件的記錄進(jìn)行操作。使用FOR子句,系統(tǒng)將記錄指針重新指向表文件頂部(不選擇[范圍]短語(yǔ),默認(rèn)范圍是ALL時(shí))或?qū)⒂涗浿羔樦赶蚍秶鷥?nèi)的第一條記錄(選定[范圍]子句時(shí))。②WHILE:從當(dāng)前記錄開(kāi)始(不選擇短語(yǔ),默認(rèn)范圍是REST時(shí)),對(duì)滿足條件的記錄進(jìn)行操作,一旦遇到不滿足條件的記錄就停止,若選擇范圍,則從范圍內(nèi)第一條記錄開(kāi)始檢查是否滿足條件,
25、遇到不滿足條件的記錄就停止。,1.2.3 VFP 項(xiàng)目管理器,項(xiàng)目是一種文件,用于跟蹤創(chuàng)建應(yīng)用系統(tǒng)所需要的所有文件。項(xiàng)目文件的擴(kuò)展名是.pjx,項(xiàng)目說(shuō)明文件的擴(kuò)展名是.pjt。項(xiàng)目管理器是開(kāi)發(fā)VFP應(yīng)用系統(tǒng)的一個(gè)工具,在VFP應(yīng)用程序系統(tǒng)開(kāi)發(fā)的過(guò)程中,各種格式的文件通過(guò)項(xiàng)目管理器捆綁在一起,開(kāi)發(fā)人員通過(guò)項(xiàng)目管理器可以方便地建立應(yīng)用程序的各個(gè)部分,集成管理所有與開(kāi)發(fā)應(yīng)用系統(tǒng)有關(guān)的各種類型的文件,免去設(shè)計(jì)者在應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程中繁雜的管理工
26、作。,,1.項(xiàng)目管理器窗口的組成和操作項(xiàng)目管理器窗口主要由選項(xiàng)卡和命令按鈕組成,如圖1-5所示。,,⑴選項(xiàng)卡①“全部”選項(xiàng)卡:顯示和管理項(xiàng)目中的所有類型的文件。②“數(shù)據(jù)”選項(xiàng)卡:顯示和管理項(xiàng)目中的所有數(shù)據(jù),如數(shù)據(jù)庫(kù)、數(shù)據(jù)表、查詢和視圖。③“文檔”選項(xiàng)卡:顯示和管理項(xiàng)目中的所有文檔,如表單、報(bào)表和標(biāo)簽。④“類”選項(xiàng)卡:顯示和管理由類設(shè)計(jì)器建立的類庫(kù)文件。⑤“代碼”選項(xiàng)卡:顯示和管理程序文件、API庫(kù)文件和應(yīng)用程序等。⑥“其他
27、”選項(xiàng)卡:顯示和管理菜單文件、文本文件以及由OLE等工具建立的其他文件。,⑵命令按鈕命令按鈕用于對(duì)選定的文件進(jìn)行操作,選定的文件不同,所進(jìn)行的操作也就不同。常見(jiàn)的命令按鈕有:①“新建”按鈕:用于建立新的文件或?qū)ο?,類型為?dāng)前所選定的類型。②“添加”按鈕:用于把已有的文件添加到項(xiàng)目中。③“修改”按鈕:用于打開(kāi)選定的文件或?qū)ο?,并在相?yīng)地設(shè)計(jì)器中進(jìn)行修改。④“運(yùn)行”按鈕:用于運(yùn)行選定的查詢、程序及表單等。⑤“瀏覽”按鈕:用于在“
28、瀏覽”窗口中打開(kāi)一個(gè)數(shù)據(jù)表,以便查看其內(nèi)容。⑥“移去”按鈕:把選定的文件或?qū)ο髲捻?xiàng)目中移去。⑦“連編”按鈕:重新構(gòu)造一個(gè)項(xiàng)目或應(yīng)用程序,還可重新構(gòu)造一個(gè)可執(zhí)行文件。,⑶窗口的操作在項(xiàng)目管理器窗口中,各個(gè)組成部分都是以圖形的方式來(lái)組織和管理的,可以根據(jù)需要對(duì)窗口位置、工具欄位置等進(jìn)行設(shè)置。①移動(dòng)和縮放:拖動(dòng)窗口標(biāo)題可移動(dòng)窗口位置,拖拽窗口邊框可調(diào)整窗口大小。②設(shè)置窗口位置:拖動(dòng)項(xiàng)目管理器標(biāo)題欄到系統(tǒng)工具欄下方,可以將項(xiàng)目管理器窗
29、口放到工具欄上,若想還原,右擊選項(xiàng)卡空白處,選擇快捷菜單中的“拖走”命令即可。③設(shè)置折疊模式:?jiǎn)螕繇?xiàng)目管理器窗口右上方的折疊按鈕(向上箭頭),此窗口將折疊,向上箭頭變成向下箭頭,若要還原單擊向下箭頭即可。④拆分項(xiàng)目管理器:當(dāng)項(xiàng)目管理器是折疊方式或位于工具欄時(shí),可利用鼠標(biāo)拖拽任一選項(xiàng)卡讓它離開(kāi)項(xiàng)目管理器。,2.項(xiàng)目的建立建立一個(gè)新項(xiàng)目可以采用菜單方式、項(xiàng)目向?qū)Ш晚?xiàng)目創(chuàng)建命令三種途徑實(shí)現(xiàn)。⑴利用菜單建立一個(gè)新項(xiàng)目①?gòu)摹拔募辈藛沃?/p>
30、選擇“新建”命令,啟動(dòng)“新建”對(duì)話框,或單擊工具欄中的“新建”圖標(biāo),系統(tǒng)將彈出“新建”對(duì)話框,如圖1-6所示。②在“新建”對(duì)話框中選擇“項(xiàng)目”選項(xiàng),然后單擊“新建文件”按鈕,將出現(xiàn)“創(chuàng)建”對(duì)話框,如圖1-7所示。③在“創(chuàng)建”對(duì)話框中,確定存放項(xiàng)目文件的路徑,輸入項(xiàng)目名稱(默認(rèn)名稱為“項(xiàng)目1”),單擊“保存”按鈕,就可以建立一個(gè)新項(xiàng)目,如圖1-5所示。,⑵利用向?qū)Ы⑿马?xiàng)目在圖1-6所示的“新建”對(duì)話框中選擇“項(xiàng)目”選項(xiàng),單擊“向?qū)?/p>
31、”按鈕,然后根據(jù)向?qū)У奶崾具M(jìn)行操作就可以建立一個(gè)新項(xiàng)目。⑶利用命令建立新項(xiàng)目在命令窗口中直接輸入命令“CREATE PROJECT”,也可以建立一個(gè)新項(xiàng)目。3.打開(kāi)一個(gè)已經(jīng)存在的項(xiàng)目在“文件”菜單中選取“打開(kāi)”命令,彈出“打開(kāi)”對(duì)話框,從中選擇要打開(kāi)的項(xiàng)目,或者直接輸入項(xiàng)目文件名和路徑,按“確定”按鈕,即可打開(kāi)項(xiàng)目。,1.2.4 VFP的輔助工具,為了減輕用戶的程序設(shè)計(jì)工作量,加快應(yīng)用系統(tǒng)的開(kāi)發(fā),VFP提供了三類可視化的輔助工具
32、。1.設(shè)計(jì)器VFP提供了一系列設(shè)計(jì)器,如表設(shè)計(jì)器、查詢?cè)O(shè)計(jì)器等,為用戶提供而來(lái)一個(gè)良好的操作環(huán)境。用戶利用這些設(shè)計(jì)器能夠輕松、高效地創(chuàng)建表、表單、數(shù)據(jù)庫(kù)、查詢、視圖和報(bào)表等,還可以把上述各項(xiàng)加入應(yīng)用程序中。,2.向?qū)驅(qū)且环N交互式的快捷設(shè)計(jì)工具,通過(guò)一組對(duì)話框,逐步幫助用戶快速完成日常任務(wù),如創(chuàng)建新表、表單以及建立查詢等。對(duì)用向?qū)?chuàng)建的文件,用戶可在合適的設(shè)計(jì)器中打開(kāi)它們以便進(jìn)一步的修改。3.生成器VFP的生成器也叫構(gòu)造器,
33、是一個(gè)方便易用的工具。它的主要功能是在VFP的應(yīng)用程序的構(gòu)件中生成并加入某類控件。每一個(gè)生成器都由一系列選項(xiàng)卡組成,它們?cè)试S用戶訪問(wèn)并設(shè)置所選對(duì)象的屬性。生成器根據(jù)用戶對(duì)其問(wèn)題的回答,自動(dòng)地設(shè)置控件屬性、生成表達(dá)式等。如同VFP向?qū)б粯樱善饕彩呛?jiǎn)便、快捷、有效的。,1.3 VFP6的數(shù)據(jù)類型和數(shù)據(jù)存儲(chǔ)1.3.1 VFP的數(shù)據(jù)類型,數(shù)據(jù)類型也稱為數(shù)據(jù)形式,即數(shù)據(jù)的存儲(chǔ)形式和操作使用方式。和其他程序設(shè)計(jì)語(yǔ)言一樣,VFP也提供了多種數(shù)據(jù)
34、類型,這些數(shù)據(jù)類型可分為兩大類:一類只適用于數(shù)據(jù)表中的字段,另一類則不僅適用于字段,還適用于內(nèi)存變量和數(shù)組等。,,1.字符型(Character)字符型(C型)數(shù)據(jù)可以包含任何可顯示的字符、漢字和符號(hào),每個(gè)字符占用一個(gè)字節(jié),每個(gè)漢字占用兩個(gè)字節(jié)。字符型字段或變量的數(shù)據(jù)長(zhǎng)度不能超過(guò)254個(gè)字節(jié)。2.?dāng)?shù)值型數(shù)值型數(shù)據(jù)通常分為以下四種類型:⑴數(shù)值型(Numeric)數(shù)值型(N型)用于表示數(shù)量,由數(shù)字0~9以及小數(shù)點(diǎn)和正負(fù)號(hào)及E組成。
35、數(shù)值型的長(zhǎng)度不能超過(guò)20個(gè)字節(jié),其中負(fù)號(hào)、小數(shù)點(diǎn)各占一位。除了十進(jìn)制數(shù)外,VFP6還支持十六進(jìn)制數(shù)。,⑵整型(Integer)整型(N型)是不包含小數(shù)點(diǎn)部分的數(shù)值型數(shù)據(jù),僅適用于數(shù)據(jù)表中字段的定義。整型數(shù)據(jù)占用4個(gè)字節(jié),而且是用二進(jìn)制形式表示的,因此比數(shù)值型數(shù)據(jù)占用的空間要少得多。⑶浮點(diǎn)型(Float)浮點(diǎn)型(N型)與數(shù)值型是完全等價(jià)的。它的設(shè)置主要考慮到FoxPro各版本的兼容處理。⑷雙精度型(Double)雙精度型(N型)
36、能夠提供更高的數(shù)值精度。Double型只適用于數(shù)據(jù)表中字段的定義,固定占用8個(gè)字節(jié)(固定存儲(chǔ)長(zhǎng)度的浮點(diǎn)數(shù)表示)。,3.貨幣型(Currency)在VFP6中,一般不使用數(shù)值型表示貨幣,使用貨幣型(Y型)表示。數(shù)據(jù)系統(tǒng)默認(rèn)的貨幣符號(hào)是“$”。貨幣型數(shù)據(jù)的取值范圍介于922337203685477.5808到922337203685477.5807之間,用8個(gè)字節(jié)存儲(chǔ)。4.日期型(Date)日期型(D型)數(shù)據(jù)用于表示日期值,系統(tǒng)默認(rèn)存
37、儲(chǔ)格式為{mm/dd/yyyy},其中mm表示月,dd表示日,yyyy表示年,固定占用8個(gè)字節(jié)。,,5.日期時(shí)間型(DateTime)日期時(shí)間型(T型)數(shù)據(jù)是用于表示日期和時(shí)間值,系統(tǒng)默認(rèn)格式為{mm/dd/yyyy hh:mm:ss},其中前兩個(gè)mm表示月,dd表示日,yyyy表示年,hh表示小時(shí),后兩個(gè)mm表示分鐘,ss表示秒。該類型的數(shù)據(jù)可以既包含時(shí)間又包含日期據(jù),也可以只包含日期或只包含時(shí)間,同日期型一樣,日期時(shí)間型固定占用8
38、個(gè)字節(jié)。6.邏輯型(Logical)邏輯型(L型)用于表示邏輯判斷結(jié)果,存入的值為真(.T.)或假(.F.)兩種狀態(tài)。固定占用1個(gè)字節(jié)。,,7.備注型(Memo)備注型(M型)長(zhǎng)度固定為4個(gè)字節(jié),用來(lái)存放一個(gè)指向存儲(chǔ)備注文件的指針。而實(shí)際的備注文件內(nèi)容的多少取決于可用存儲(chǔ)空間。備注型只適用于數(shù)據(jù)表中的字段的定義。8.通用型(General)通用型(G型)固定存儲(chǔ)空間為4個(gè)字節(jié),用來(lái)存放一個(gè)指向存儲(chǔ)OLE對(duì)象文件的指針。實(shí)際OL
39、E對(duì)象文件的大小取決于可用存儲(chǔ)空間。通用型只適用于數(shù)據(jù)表中的字段的定義。,1.3.2 VFP的數(shù)據(jù)存儲(chǔ),通常數(shù)據(jù)的輸入、輸出是通過(guò)數(shù)據(jù)的存儲(chǔ)設(shè)備完成的。在VFP系統(tǒng)環(huán)境下,不僅能把數(shù)據(jù)存儲(chǔ)到常量、變量和數(shù)組中,還可以存入到字段、記錄和對(duì)象中。通常把這些能夠存儲(chǔ)數(shù)據(jù)的常量、變量、數(shù)組以及字段、記錄和對(duì)象統(tǒng)稱為數(shù)據(jù)存儲(chǔ)容器。1.常量在操作過(guò)程中保持不變的數(shù)據(jù)稱為常量。VFP的常量主要包括字符型常量、數(shù)值型常量、邏輯型常量和日期(時(shí)間)型
40、常量。,⑴字符型常量字符型常量是由雙引號(hào)、單引號(hào)或方括號(hào)括起的一串字符。如,"AbC"、'345'、[張三]等。這里的雙引號(hào)、單引號(hào)或方括號(hào)稱為定界符。字符型常量的定界符必須成對(duì)出現(xiàn),字符串兩側(cè)的定界符必須相同。⑵數(shù)值型常量數(shù)值型常量又稱常數(shù),是由數(shù)字0~9、小數(shù)點(diǎn)和E組成的。如28、-123.34、1.5E+7等都是數(shù)值型常量。其中1.5E+7是1.5×107在VFP中的表示方法。,
41、,⑶邏輯型常量邏輯型常量只有真和假兩個(gè)值,通常用.T.、.t.、.y.、.Y.表示真,用.F.、.f.、.N.、.n.表示假,字母兩側(cè)的小圓點(diǎn)(用小數(shù)點(diǎn)表示)不能省略。⑷貨幣型常量在數(shù)值型常量的前面加上貨幣符號(hào)“$”就成為貨幣型常量,如$12.35、$1234.5678。,⑸日期型常量日期型常量是用“{ }”括起的符合日期規(guī)定的常量,傳統(tǒng)的日期格式是{^YYYY-MM-DD},其第一個(gè)字符“^”稱為脫字符,必須嚴(yán)格按照這個(gè)年月日
42、次序和年份四位的格式;而傳統(tǒng)的日期格式不用脫字符開(kāi)頭,而且年月日的次序不固定,表示年份的位數(shù)不固定為4,可以為兩位。如{^2012-8-28},{8-28-1012}常用的分隔符有斜線(/)、連字符(-)、句點(diǎn)(.)和空格。{}、{ }、{/}表示值為空的日期型常量。⑹日期時(shí)間型常量日期時(shí)間型常量也是用“{ }”定義,由日期和時(shí)間兩部分組成,如{^2012-11-28 5:12:00P}。日期和時(shí)間之間的分隔符可以是逗號(hào)或空格??梢?/p>
43、用“{/:}”符號(hào)表示值為空的日期時(shí)間型常量,,2.變量在操作過(guò)程中可以改變其取值或數(shù)據(jù)類型的數(shù)據(jù)稱為變量。在VFP中,變量可以分為字段變量、內(nèi)存變量、系統(tǒng)變量和數(shù)組變量。變量通常具有變量名、數(shù)據(jù)類型及值三個(gè)要素。變量名的命名規(guī)則是:由字母、漢字開(kāi)頭(系統(tǒng)變量除外),后跟字母、數(shù)字或下劃線等,但總長(zhǎng)度不超過(guò)254個(gè)字符。在變量名中字母不區(qū)分大小寫。,⑴內(nèi)存變量?jī)?nèi)存變量是內(nèi)存中的一些臨時(shí)工作單元,用于存放程序或命令執(zhí)行過(guò)程中的輸入數(shù)
44、據(jù)、輸出數(shù)據(jù)和中間數(shù)據(jù)。內(nèi)存變量的類型取決于存放在其中數(shù)據(jù)的類型,一旦退出系統(tǒng)或關(guān)機(jī),內(nèi)存變量就會(huì)消失。①內(nèi)存變量的賦值內(nèi)存變量必須先定義,后使用。在程序或命令窗口中第一次給一個(gè)內(nèi)存變量名賦值時(shí),就定義了該變量,賦值時(shí)被賦予的數(shù)據(jù)類型就是變量的數(shù)據(jù)類型。,,格式一:STORETO格式二:=功能:格式一可以將表達(dá)式的值分別賦給若干個(gè)內(nèi)存變量,各內(nèi)存變量之間用逗號(hào)分開(kāi)。格式二只能將表達(dá)式的值賦給一個(gè)內(nèi)存變量。說(shuō)明:內(nèi)存變量的值一經(jīng)
45、定義即可使用,只要不去改變它,便一直保持已賦的值和類型。若給同一變量重新賦值,新值將代替原來(lái)的值,數(shù)據(jù)類型與新值的類型相同?!?”為賦值號(hào),與等號(hào)的意義不同。,②內(nèi)存變量的顯示格式:LIST|DISPLAY MEMORY [LIKE ][TO PRINTER|TO FILE ]功能:顯示當(dāng)前已定義的內(nèi)存變量名、作用范圍、類型和值。說(shuō)明:LIKE子句表示將選出與通配符相匹配的內(nèi)存變量。有“?”和“*”兩種,前者代表單個(gè)字符,后者代表
46、一個(gè)或多個(gè)字符;選項(xiàng)TO PRINTER 將屏幕顯示內(nèi)容輸出到打印機(jī);選項(xiàng)TO FILE將顯示內(nèi)容存入文本文件。LIST和DISPLAY的不同之處在于:當(dāng)變量較多,一屏顯示不下時(shí),前者將滾屏顯示;后者則可以分屏顯示,按任意鍵后才能顯示下一屏。,③內(nèi)存變量的清除格式一:CLEAR MEMORY功能:清除所有內(nèi)存變量。格式二:RELEASE ALL [EXTENDED]功能:在交互狀態(tài)下的作用與格式一相同,若出現(xiàn)在程序中,則應(yīng)該加
47、上短語(yǔ)EXTENDED,否則不能清除公共內(nèi)存變量。格式三:RELEASE ALL [LIKE|EXCEPT]功能:LIKE短語(yǔ)用于清除與通配符相匹配的內(nèi)存變量,EXCEPT短語(yǔ)用于清除與通配符不相匹配的內(nèi)存變量。,④內(nèi)存變量的輸出格式:?[[,]…]功能:先計(jì)算表達(dá)式的值,再把結(jié)果顯示在屏幕上。如,a1=23a2=25a3="計(jì)算機(jī)公共課"? a1,a2,a3? "a1+a2="
48、,a1+a2輸出結(jié)果為:23,25,計(jì)算機(jī)公共課a1+a2=48,⑵數(shù)組變量數(shù)組是一組有序數(shù)據(jù)的集合,集合中的每一個(gè)元素都是一個(gè)內(nèi)存變量,每一個(gè)元素都用數(shù)組名和該元素在數(shù)組中排列的序號(hào)(下標(biāo))來(lái)表示,因此數(shù)組變量就是一組數(shù)組名相同、下標(biāo)值不同的內(nèi)存變量的集合。數(shù)組下標(biāo)的個(gè)數(shù)稱為維數(shù),只有一個(gè)下標(biāo)的數(shù)組叫一維數(shù)組,有兩個(gè)下標(biāo)的叫二維數(shù)組。,①數(shù)組變量的定義格式:DECLARE|DIMENSION([,])[,([,])]…功能
49、:定義一個(gè)或多個(gè)一維或二維數(shù)組變量。說(shuō)明:數(shù)組變量要先定義后使用;命令動(dòng)詞DECLARE和DIMENSION的功能完全相同;數(shù)組的維數(shù)要用圓括號(hào)方括號(hào)括起來(lái);VFP系統(tǒng)只允許使用一維數(shù)組和二維數(shù)組。如:定義一個(gè)一維數(shù)組ab,有9個(gè)元素;定義一個(gè)二維數(shù)組ac,有12個(gè)元素(2行6列)。DECLARE ab(9),ac(2,6),②數(shù)組元素的賦值定義了數(shù)組之后,系統(tǒng)自動(dòng)為每一個(gè)數(shù)組元素賦邏輯初值.F.。若要改變數(shù)組元素的值,可以和內(nèi)
50、存變量一樣,通過(guò)STORE命令或賦值號(hào)”=”來(lái)給數(shù)組元素賦值。在賦值時(shí),可以給整個(gè)數(shù)組的各個(gè)元素賦同一個(gè)值(必須對(duì)數(shù)組名賦值),也可以給每一個(gè)元素賦不同的值(但必須指定該元素的下標(biāo))。對(duì)數(shù)組的不同元素,可以賦予不同類型的數(shù)據(jù)。,,如:將數(shù)組ad的各元素都初始化為10,將數(shù)組ae的兩個(gè)元素分別賦’abc’和64。DECLARE ad(3,3),ae(2)STORE 10 TO ad &&或ad=10ae(1)
51、="abc" &&注意一行只能有一個(gè)賦值語(yǔ)句ae(2)=64 &&數(shù)組各個(gè)元素的數(shù)據(jù)類型可以不同,⑶字段變量字段變量(又稱字段名變量)是隨數(shù)據(jù)表的建立而存在的一類變量,它的具體值是當(dāng)前記錄中該字段存放的數(shù)據(jù)。數(shù)據(jù)庫(kù)表中字段變量名長(zhǎng)度不能超過(guò)128個(gè)字符,而自由表中字段變量長(zhǎng)度不能超過(guò)10個(gè)字符。需要注意的是,內(nèi)存變量名盡量不要與當(dāng)前區(qū)當(dāng)前打
52、開(kāi)的數(shù)據(jù)表中的字段變量同名。如果同名,系統(tǒng)將默認(rèn)是字段變量。若特指內(nèi)存變量,需要加前綴“M->”或“M.”。,⑷系統(tǒng)變量系統(tǒng)變量是VFP系統(tǒng)所特有的變量,系統(tǒng)變量名均以下劃線“-”開(kāi)始,所以在定義非系統(tǒng)變量時(shí)不要以下劃線開(kāi)始,以避免與系統(tǒng)沖突。系統(tǒng)利用系統(tǒng)變量設(shè)置、保留了大量的系統(tǒng)狀態(tài)和特性,因此,了解、熟悉系統(tǒng)變量會(huì)給數(shù)據(jù)庫(kù)系統(tǒng)的操作和管理帶來(lái)很多方便。,1.4 運(yùn)算符與表達(dá)式,運(yùn)算符是表示數(shù)據(jù)之間運(yùn)算方式的符號(hào),根據(jù)參加運(yùn)算
53、的數(shù)據(jù)類型的不同,運(yùn)算符可以分為算術(shù)運(yùn)算符、邏輯運(yùn)算符、比較運(yùn)算符、字符串運(yùn)算符及日期時(shí)間運(yùn)算符。通過(guò)運(yùn)算符把常量、變量和函數(shù)組合起來(lái)而形成的式子,稱為表達(dá)式。,1.4.1 基本運(yùn)算符與表達(dá)式,1.算術(shù)運(yùn)算符與表達(dá)式算術(shù)表達(dá)式又稱為數(shù)值表達(dá)式,是由數(shù)值型的常量、變量、函數(shù)及算術(shù)運(yùn)算符連接起來(lái)所形成的,其運(yùn)算結(jié)果是數(shù)值型數(shù)據(jù)。算術(shù)運(yùn)算符及其含義如表1-2所示。,2.字符串運(yùn)算符與表達(dá)式字符表達(dá)式是由字符型的常量、變量、函數(shù)及字符串運(yùn)算
54、符連接起來(lái)所形成的,其運(yùn)算結(jié)果為字符型數(shù)據(jù)。字符串運(yùn)算符及其含義如表1-3所示。,3.日期時(shí)間運(yùn)算符及表達(dá)式日期時(shí)間運(yùn)算符有兩個(gè):“+”和“-”,利用該種運(yùn)算符把日期時(shí)間型數(shù)據(jù)、數(shù)值型數(shù)據(jù)及函數(shù)相連接組成的式子稱為日期時(shí)間表達(dá)式,如表1-4所示。,4.關(guān)系運(yùn)算符及表達(dá)式關(guān)系表達(dá)式也稱為簡(jiǎn)單邏輯表達(dá)式,是由關(guān)系運(yùn)算符將兩個(gè)運(yùn)算數(shù)據(jù)連接起來(lái)形成的表達(dá)式,其運(yùn)算結(jié)果為邏輯型數(shù)據(jù),其含義如表1-5所示。,說(shuō)明:①“==”和“$”運(yùn)算符只適用
55、于字符型數(shù)據(jù)?!?=”表示當(dāng)兩側(cè)的字符串必須完全相同時(shí)結(jié)果才為.T.,否則為.F.?!?”表示當(dāng)左字符串是右字符串的一個(gè)子字符串時(shí),結(jié)果才為.T.,否則為.F.。②大小比較規(guī)則。對(duì)日期/日期時(shí)間型數(shù)據(jù)的比較,越晚的日期/日期時(shí)間越大;對(duì)邏輯型數(shù)據(jù)的比較,.T.大于.F.;對(duì)字符型數(shù)據(jù)的比較,是自左向右逐個(gè)對(duì)比相同位置上字符的ASCII碼,由這兩個(gè)字符的ASCII碼的大小決定這兩個(gè)字符型數(shù)據(jù)的大小。,5.邏輯運(yùn)算符及表達(dá)式邏輯表達(dá)式由
56、邏輯運(yùn)算符將邏輯型數(shù)據(jù)連接起來(lái)形成的表達(dá)式,其運(yùn)算結(jié)果為邏輯型數(shù)據(jù)。如表1-6所示。邏輯表達(dá)的運(yùn)算規(guī)則如表1-7所示。,表1-7 邏輯表達(dá)式運(yùn)算規(guī)則,這五種類型運(yùn)算符同時(shí)出現(xiàn)在同一表達(dá)式中時(shí),其優(yōu)先級(jí)順序由高到低為:算術(shù)運(yùn)算符、字符串運(yùn)算符、日期時(shí)間運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符。括號(hào)運(yùn)算符“()”是所有運(yùn)算符中優(yōu)先級(jí)最高的,因?yàn)閳A括號(hào)能改變表達(dá)式的運(yùn)算順序,即有括號(hào)的先算括號(hào)里面的運(yùn)算。如表達(dá)式:100/(2+3)>6*3
57、AND "ABC"<"AB"+"EFG" OR NOT"Pro"$"FoxPro",該表達(dá)式的運(yùn)算順序如下:,①先運(yùn)算括號(hào)內(nèi)的2+3,運(yùn)算后值為:100/5>6*3 AND "ABC"18 AND "ABC"18 AND "ABC"、<、$,運(yùn)算后值為:.T
58、. AND .F. OR NOT .T.⑤ 最后進(jìn)行NOT、AND、OR運(yùn)算,得到該表達(dá)式的結(jié)果為:.F.,1.4.2 宏替換,在VFP系統(tǒng)中,除了上述常用的基本運(yùn)算符外,還有一個(gè)宏替換運(yùn)算符,它可以處理存入內(nèi)存變量或數(shù)組元素中的數(shù)據(jù)。可以把一些頻繁重復(fù)使用的表達(dá)式或命令行先存到一個(gè)內(nèi)存變量中,然后在需要該表達(dá)式或命令行的位置上進(jìn)行宏替換。宏替換的形式是:&.。其中代表字符型內(nèi)存變量,圓點(diǎn)字符(.)指示宏替換的結(jié)束。當(dāng)VFP
59、進(jìn)行宏替換處理時(shí),將使用要替換的變量中的內(nèi)容來(lái)代換“&”及這個(gè)變量名和圓點(diǎn)符。,如執(zhí)行下面的命令:a="程序"? "Visual FoxPro &a.設(shè)計(jì)" && 用"程序"代替&a.最后顯示的結(jié)果是字符串"Visual FoxPro程序設(shè)計(jì)"除了上述應(yīng)用之外,宏替換還可以在任何能接受字符串的命令或
60、函數(shù)中使用。如在命令窗口中依次輸入下列命令:a1=20b1=36k="a1+b1"? &k. &&結(jié)果為56,1.5 常用標(biāo)準(zhǔn)函數(shù),函數(shù)是系統(tǒng)內(nèi)部編制好的能夠?qū)崿F(xiàn)特殊運(yùn)算的一段程序,函數(shù)使用時(shí),不用寫出具體的操作步驟,只要直接進(jìn)行調(diào)用就可以了。函數(shù)的一般調(diào)用形式為:([,,…])調(diào)用函數(shù)時(shí),函數(shù)名起標(biāo)識(shí)作用。參數(shù)是函數(shù)計(jì)算時(shí)的自變量,一般是表達(dá)式,寫在括號(hào)
61、內(nèi),有的函數(shù)沒(méi)有參數(shù);函數(shù)運(yùn)算后會(huì)返回一個(gè)值,稱為函數(shù)值。函數(shù)值的數(shù)據(jù)類型就是函數(shù)的數(shù)據(jù)類型。,1.5.1 數(shù)值函數(shù),1.絕對(duì)值函數(shù)格式:ABS()功能:返回的絕對(duì)值。如:? ABS(-126.71)運(yùn)算結(jié)果是:126.71,2.平方根函數(shù)格式:SQRT()功能:返回的平方根,數(shù)值表達(dá)式的值不能為負(fù)。如:? SQRT(256)運(yùn)算結(jié)果是:16,3.圓周率函數(shù)格式:PI()功能:返回圓周率的值,該函數(shù)沒(méi)有自變量。4.
62、取整函數(shù)格式:INT()功能:返回的整數(shù)部分。如:? INT(5.68)運(yùn)算結(jié)果是:5,5.求余數(shù)函數(shù)格式:MOD(,)功能:取兩數(shù)相除后的余數(shù)。說(shuō)明:的小數(shù)位數(shù)決定了結(jié)果的小數(shù)位數(shù);的符號(hào)決定了返回值的正負(fù)。如:? MOD(11,3), MOD(-11,-3)運(yùn)算結(jié)果是:2,-2? MOD(-11,3), MOD(11,-3)運(yùn)算結(jié)果是:1,-1,1.5.2 字符函數(shù),1.測(cè)試子字符串位置函數(shù)格式:AT(,[,
63、])功能:返回在中第次出現(xiàn)的位置,函數(shù)值為數(shù)值型。說(shuō)明:如果未找到,AT()將返回?cái)?shù)值0。若省略,則默認(rèn)值為1。注意:AT()函數(shù)區(qū)分字母的大小寫,如果不區(qū)分字母的大小寫,應(yīng)使用ATC()函數(shù),其格式與AT()相同。如:? AT("is","she is my sister")運(yùn)算結(jié)果是:5,2.求字符串長(zhǎng)度函數(shù)格式:LEN()功能:測(cè)定的字節(jié)長(zhǎng)度,函數(shù)值為數(shù)值型??梢允亲侄位騼?nèi)存變
64、量,但必須是字符型。如:? LEN("hjkajdh")運(yùn)算結(jié)果是:7,3.截取子字符串函數(shù)格式:SUBSTR(,[,])功能:此函數(shù)將從中的第個(gè)字符開(kāi)始,截取并返回個(gè)字符。說(shuō)明:若省略,則截取的子串結(jié)束于的最后一個(gè)字符。可以是備注型字段。如:b="jhsakakiw"? SUBSTR(b,3,4)運(yùn)算結(jié)果是:saka,4.產(chǎn)生空格的函數(shù)格式:SPACE()功能:產(chǎn)生與的值相同
65、的空格數(shù)。如:?"空格"+SPACE(6)+"函數(shù)"運(yùn)算結(jié)果是:空格 函數(shù) &&在?“空格”和“函數(shù)”之間產(chǎn)生了6個(gè)空格符。,1.5.3 日期和時(shí)間函數(shù),日期和時(shí)間函數(shù)的自變量一般是日期型數(shù)據(jù)和時(shí)間型數(shù)據(jù)。1.日期函數(shù)格式:DATE()功能:返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期型。如:假定當(dāng)前系統(tǒng)日期為2013年1月11日,則:? DATE( )運(yùn)算結(jié)果是:
66、2013-1-11,2.時(shí)間函數(shù)格式:TIME( )功能:返回當(dāng)前系統(tǒng)時(shí)間,函數(shù)值為字符型。如:假定當(dāng)前系統(tǒng)時(shí)間為22:23:11,則:? TIME ( )運(yùn)算結(jié)果是:22:23:113.日期時(shí)間函數(shù)格式:DATETIME()功能:返回當(dāng)前的日期和時(shí)間,函數(shù)值為日期時(shí)間型。如:假定當(dāng)前系統(tǒng)日期和時(shí)間為2013-1-11 22:23:11? DATETIME()運(yùn)算結(jié)果是:2013-1-11 22:23:11,4.年號(hào)
67、函數(shù)格式:YEAR(|)功能:返回表達(dá)式中的年份,函數(shù)值為數(shù)值型。如:? YEAR({^2012-11-12})運(yùn)算結(jié)果是:2012另:函數(shù)MONTH(| )和DAY(| )分別返回表達(dá)式中的月和日。,5.小時(shí)函數(shù)格式:HOUR()功能:返回日期時(shí)間表達(dá)式中的小時(shí)數(shù),函數(shù)值為數(shù)值型。如:? HOUR({^2012-10-15,11:04:50a})運(yùn)算結(jié)果是:11另:函數(shù)MINUTE()和SEC()分別返回日期時(shí)間表
68、達(dá)式中的分鐘和秒,函數(shù)值為數(shù)值型。,1.5.4 數(shù)據(jù)類型轉(zhuǎn)換函數(shù),數(shù)據(jù)轉(zhuǎn)換函數(shù)能將某一種類型的數(shù)據(jù)轉(zhuǎn)換成另一種類型的數(shù)據(jù)。1.?dāng)?shù)值轉(zhuǎn)換為字符串的函數(shù)格式:STR([,[,]])功能:把的值轉(zhuǎn)換成由指定長(zhǎng)度的字符串,表示轉(zhuǎn)換時(shí)要保留的的小數(shù)部分的位數(shù)。說(shuō)明:①在返回的字符串中,負(fù)號(hào)和小數(shù)點(diǎn)各占一位。,②若缺少則系統(tǒng)默認(rèn)為10;若大于數(shù)值的實(shí)際長(zhǎng)度,則在字符串左邊補(bǔ)充空格;若小于的實(shí)際長(zhǎng)度,但大于等于的整數(shù)部分(包括負(fù)號(hào))的長(zhǎng)度,則
69、優(yōu)先滿足整數(shù)部分而自動(dòng)調(diào)整小數(shù)部分(四舍五入);若小于的整數(shù)部分長(zhǎng)度,則輸出星號(hào)。③若缺少,則系統(tǒng)默認(rèn)為0,若的值大于實(shí)際的小數(shù)位數(shù),則在返回的字符串后用0補(bǔ)充,若的值小于實(shí)際的小數(shù)位數(shù),系統(tǒng)自動(dòng)按四舍五入處理。,如:a=1234.56789? STR(a,15,5) && 顯示1234.56789,前面有5個(gè)空格? STR(a,5) && 不顯示小數(shù)位數(shù),最終顯示1235,前面
70、有1個(gè)空格? STR(a,2,5) && 顯示**? STR(a,12,7) && 顯示1234.5678900,2.字符串轉(zhuǎn)換為數(shù)值的函數(shù)格式:VAL()功能:將數(shù)字字符串轉(zhuǎn)換為數(shù)值。說(shuō)明:①該函數(shù)按從左到右的順序處理字符串,直到遇到一個(gè)非數(shù)字字符(不包括科學(xué)計(jì)數(shù)指示符“E”)。②如果字符表達(dá)式的第一個(gè)字符不是數(shù)字,VAL()將返回?cái)?shù)值0;在處理過(guò)程中頭部空格被忽略。
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- visual c++ 6.0實(shí)例教程電子教案-第3章
- visual_c++_6.0調(diào)試功能_圖解教程(1)--快速
- 《數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)-visual foxpro6.0》綜合習(xí)題四
- 第1章翻譯基礎(chǔ)
- 第1章 路由基礎(chǔ)
- 第1章windowsxp基礎(chǔ)
- 第1章 核物理基礎(chǔ)
- 第1章 會(huì)計(jì)基礎(chǔ)總論
- 第三章 visual foxpro數(shù)據(jù)基礎(chǔ)
- visual_c++_6.0調(diào)試功能_圖解教程(3)--實(shí)例
- visual_c++_6.0調(diào)試功能_圖解教程(4)--實(shí)例
- 第1章excel基礎(chǔ)知識(shí)
- 第1章 coreldraw基礎(chǔ)知識(shí)
- 第1章數(shù)控加工實(shí)用基礎(chǔ)
- 第1章 autocad 2009入門基礎(chǔ)
- visual_c++_6.0調(diào)試功能_圖解教程(2)--實(shí)例
- 第1章 c基礎(chǔ)知識(shí)
- 第1章 coreldraw基礎(chǔ)知識(shí)
- 第1章 數(shù)控加工實(shí)用基礎(chǔ)
- 外文翻譯--準(zhǔn)備將 visual basic 6.0 應(yīng)用程序升級(jí)到 visual basic.net
評(píng)論
0/150
提交評(píng)論