Visual-FoxPro程序設(shè)計(jì)完整版課件(全)_第1頁
Visual-FoxPro程序設(shè)計(jì)完整版課件(全)_第2頁
Visual-FoxPro程序設(shè)計(jì)完整版課件(全)_第3頁
Visual-FoxPro程序設(shè)計(jì)完整版課件(全)_第4頁
Visual-FoxPro程序設(shè)計(jì)完整版課件(全)_第5頁
已閱讀5頁,還剩319頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、高職高專院?!笆濉本肥痉断盗薪滩模ㄜ浖夹g(shù)專業(yè)群)Visual FoxPro程序設(shè)計(jì)第1章 數(shù)據(jù)庫基本概念1.1 數(shù)據(jù)模型1.2 數(shù)據(jù)庫系統(tǒng)1.3 關(guān)系數(shù)據(jù)庫1.1 數(shù)據(jù)模型1.1.1 現(xiàn)實(shí)世界的數(shù)據(jù)描述實(shí)體的描述實(shí)體:客觀存在并且相互區(qū)別的事物,或抽象的概念或聯(lián)系。如:一個(gè)人、一項(xiàng)設(shè)計(jì)、一次會(huì)議的召開等。屬性:實(shí)體的特征和性質(zhì),實(shí)體是通過屬性描述的。實(shí)體型:屬性的集合表示一種實(shí)體的類型,稱為實(shí)體型。如:學(xué)生(姓名、學(xué)號(hào)、性別、籍貫、班級(jí))實(shí)體集:同一類型的實(shí)體的集合。實(shí)體間聯(lián)系及聯(lián)系的種類實(shí)體集內(nèi)部的聯(lián)系和不同類型實(shí)體之間的聯(lián)系:一對(duì)一聯(lián)系:若兩個(gè)不同型實(shí)體集中,任一方的一個(gè)實(shí)體只與另

2、一方的一個(gè)實(shí)體相對(duì)應(yīng),稱這種聯(lián)系為一對(duì)一聯(lián)系。如班長與班級(jí)、座位與同學(xué)之間的聯(lián)系。一對(duì)多聯(lián)系:若兩個(gè)不同型實(shí)體集中,一方的一個(gè)實(shí)體對(duì)應(yīng)另一方若干個(gè)實(shí)體,而另一方的一個(gè)實(shí)體只對(duì)應(yīng)本方一個(gè)實(shí)體,稱這種聯(lián)系為一對(duì)多聯(lián)系。如班級(jí)與學(xué)生的聯(lián)系。多對(duì)多聯(lián)系:若兩個(gè)不同型實(shí)體集中,兩實(shí)體集中任一實(shí)體均與另一實(shí)體集中若干個(gè)實(shí)體對(duì)應(yīng),稱這種聯(lián)系為多對(duì)多聯(lián)系。如教師與學(xué)生的聯(lián)系、供應(yīng)商與商品之間的聯(lián)系。1.1.2數(shù)據(jù)模型層次模型是用樹型結(jié)構(gòu)來表示實(shí)體類型以及實(shí)體間聯(lián)系的模型。他只能表示1:n的聯(lián)系,不能表示多種以上的實(shí)體類型之間的復(fù)雜聯(lián)系和實(shí)體類型之間的多對(duì)多的聯(lián)系。網(wǎng)狀模型是用網(wǎng)狀結(jié)構(gòu)來表示實(shí)體類型以及實(shí)體間聯(lián)

3、系的模型。網(wǎng)中的每一個(gè)結(jié)點(diǎn)表示一個(gè)實(shí)體類型。它能夠表示實(shí)體間的多種復(fù)雜聯(lián)系和實(shí)體類型之間的對(duì)對(duì)多的聯(lián)系,這也是網(wǎng)狀模型的主要優(yōu)點(diǎn)。關(guān)系模型是用二維表格結(jié)構(gòu)來表示實(shí)體以及實(shí)體聯(lián)系間模型。關(guān)系是由若干個(gè)二維表組成的集合。每個(gè)二維表又稱為關(guān)系。Visual FoxPro是一種典型的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。 1.2 數(shù)據(jù)庫系統(tǒng)1.2.1 有關(guān)數(shù)據(jù)庫的基本概念數(shù)據(jù)庫(DataBase,簡稱DB)數(shù)據(jù)庫是存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上,結(jié)構(gòu)化的相關(guān)數(shù)據(jù)集合。 數(shù)據(jù)庫管理系統(tǒng)負(fù)責(zé)對(duì)數(shù)據(jù)庫的建立、使用和維護(hù)進(jìn)行管理的大型系統(tǒng)軟件,是數(shù)據(jù)庫系統(tǒng)的核心組成部分。它建立在操作系統(tǒng)的基礎(chǔ)上,是位于操作系統(tǒng)與用戶之間的一層數(shù)據(jù)管

4、理軟件,負(fù)責(zé)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制。1.2.2 數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBase System,簡稱DBS)數(shù)據(jù)庫系統(tǒng)是指引進(jìn)數(shù)據(jù)庫技術(shù)后的計(jì)算機(jī)系統(tǒng),實(shí)現(xiàn)有組織的、動(dòng)態(tài)的存儲(chǔ)大量相關(guān)數(shù)據(jù),提供數(shù)據(jù)處理和信息資源共享的便利手段。數(shù)據(jù)庫系統(tǒng)的特點(diǎn) (1)實(shí)現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余 (2)采用特定的數(shù)據(jù)模型 (3)具有較高的數(shù)據(jù)獨(dú)立性 (4)有統(tǒng)一的數(shù)據(jù)控制功能1.3 關(guān)系數(shù)據(jù)庫關(guān)系術(shù)語關(guān)系:一個(gè)關(guān)系就是一張二維表,關(guān)系模式表現(xiàn)為表的結(jié)構(gòu):表名(字段名,字段名n)元組:二維表中的每一行稱為一個(gè)元組,對(duì)應(yīng)一個(gè)實(shí)體記錄屬性:二維表中的每一列 字段域:屬性的取值范圍主關(guān)鍵字:關(guān)系中屬性或?qū)傩?/p>

5、的組合,其值能夠唯一地標(biāo)識(shí)一個(gè)元組字段或字段的組合外部關(guān)鍵字:用來聯(lián)系兩張有一定關(guān)系的表的字段關(guān)系模型:若干個(gè)有聯(lián)系的關(guān)系模式的集合,在VF中,把相互之間存在聯(lián)系的表放到一個(gè)數(shù)據(jù)庫中統(tǒng)一管理,數(shù)據(jù)庫文件的擴(kuò)展名為.dbc關(guān)系模型的特點(diǎn):關(guān)系中的每一項(xiàng)是最基本的數(shù)據(jù)項(xiàng),不可再分同一個(gè)關(guān)系中不允許出現(xiàn)相同的屬性名關(guān)系中不允許有完全相同的記錄一個(gè)關(guān)系中記錄的次序無關(guān)緊要一個(gè)關(guān)系中列的次序無關(guān)緊要關(guān)系數(shù)據(jù)庫:按照關(guān)系模型設(shè)計(jì)的若干關(guān)系的集合.不僅包含表,還包含表之間的關(guān)聯(lián)關(guān)系.1.3.2 表間關(guān)聯(lián)關(guān)系在同一個(gè)數(shù)據(jù)庫中,表間的關(guān)聯(lián)關(guān)系有一對(duì)一、一對(duì)多和多對(duì)多三種對(duì)于一對(duì)一聯(lián)系的表,首先考慮是否可以把兩個(gè)

6、表的字段合并到一個(gè)表中。一對(duì)多聯(lián)系是關(guān)系數(shù)據(jù)庫中最普遍的聯(lián)系。要建立一對(duì)多的聯(lián)系,可以把“一方”的主關(guān)鍵字字段添加到“多方”的表中,使二者具有公共字段, 多對(duì)多聯(lián)系,建立兩個(gè)表之間的多對(duì)多聯(lián)系,有效的方法是創(chuàng)建第三個(gè)表,即紐帶表。把多對(duì)多的聯(lián)系分解為兩個(gè)一對(duì)多的聯(lián)系 1.3.3 關(guān)系運(yùn)算(1)選擇選擇是指從關(guān)系中找出滿足條件的元組的操作。選擇的條件以邏輯表達(dá)式的形式給出,滿足條件的元組即被選取。 (2)投影投影是指從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系的操作。如,從“學(xué)生檔案”表中查詢學(xué)生的學(xué)號(hào)、姓名和籍貫,這類查詢操作即為投影運(yùn)算。(3)連接連接是指將兩個(gè)關(guān)系模式拼接成一個(gè)更寬的關(guān)系模式,生

7、成的新關(guān)系中包含滿足連接條件的元組。連接是關(guān)系的橫向結(jié)合。1.3.4 關(guān)系完整性關(guān)系模型中有三種完整性約束:實(shí)體完整性、域完整性和參照完整性。1實(shí)體完整性:實(shí)體完整性是指關(guān)系中的某個(gè)主關(guān)鍵字值不能為空,也不能具有相同值。 2域完整性:域完整性是對(duì)數(shù)據(jù)表中字段屬性的約束,它包括對(duì)字段的值域、字段的類型及字段的有效性規(guī)則等的約束,它是由確定關(guān)系結(jié)構(gòu)時(shí)所定義的字段屬性決定的。3參照完整性:參照完整性是指對(duì)外部關(guān)鍵字的參照引用,具體說就是指關(guān)系中外部關(guān)鍵字必須是另一個(gè)關(guān)系的主關(guān)鍵字的有效值或空值。本章小結(jié)有關(guān)數(shù)據(jù)庫的基本概念:(1)實(shí)體(2)數(shù)據(jù)模型(3)數(shù)據(jù)庫(4)數(shù)據(jù)庫管理系統(tǒng)(5)數(shù)據(jù)庫系統(tǒng)(6

8、)關(guān)系關(guān)系數(shù)據(jù)庫是按關(guān)系模型建立的數(shù)據(jù)庫,它包含若干個(gè)數(shù)據(jù)表及表間的關(guān)聯(lián)關(guān)系,這種關(guān)聯(lián)關(guān)系有三種:一對(duì)一、一對(duì)多和多對(duì)多。一個(gè)良好的數(shù)據(jù)庫應(yīng)盡量減少數(shù)據(jù)冗余,避免插入異常和刪除異常。設(shè)計(jì)關(guān)系數(shù)據(jù)庫最基本的要求是每個(gè)關(guān)系的字段值必須是不可再分解的數(shù)據(jù)項(xiàng)。關(guān)系完整性規(guī)則是對(duì)關(guān)系的某種約束條件,用于保證數(shù)據(jù)的正確性、有效性和相容性。關(guān)系完整性包括實(shí)體完整性、域完整性和參照完整性。 高職高專院?!笆濉本肥痉断盗薪滩模ㄜ浖夹g(shù)專業(yè)群)Visual FoxPro程序設(shè)計(jì)第2章 Visual FoxPro 6.0概述2.1 Fox系列數(shù)據(jù)庫的發(fā)展2.2 VFP 6.0用戶界面2.3 VFP 6.0系統(tǒng)

9、環(huán)境設(shè)置2.4 VFP 6.0向?qū)?、生成器和設(shè)計(jì)器2.1 Fox系列數(shù)據(jù)庫的發(fā)展 Fox系列數(shù)據(jù)庫的前身是dBASE微機(jī)系列數(shù)據(jù)庫。1981年Ashton-Tate公司推出了dBASE微機(jī)數(shù)據(jù)庫,運(yùn)行于CMP微機(jī)上。1982年該公司又推出了dBASE的升級(jí)版本dBASE2.41,該版本在原來的基礎(chǔ)上有了一系列的改進(jìn)和提高。 1984年Ashton-Tate公司又推出了dBase III,緊接著又對(duì)dBASE III進(jìn)行了改進(jìn),推出了dBASE III plus,在那個(gè)年代,dBASE數(shù)據(jù)庫獲得了極大的成功。 同在1984年,美國的另一家關(guān)系數(shù)據(jù)庫產(chǎn)品公司Fox Software公司推出了它的第

10、一個(gè)數(shù)據(jù)庫產(chǎn)品FoxBASE。2.1.1 從FoxBASE到FoxPro FoxBASE完全兼容dBASE產(chǎn)品,運(yùn)行速度遠(yuǎn)遠(yuǎn)超過dBASE III,并且引進(jìn)了編譯器。由于FoxBASE比dBASE優(yōu)越,因此Fox Software公司逐步搶去了Ashton-Tate公司占領(lǐng)的市場(chǎng)份額。1986年Fox Software公司推出了FoxBASE的升級(jí)版本FoxBASE +,1987又推出了FoxBASE +2.0和FoxBASE系列產(chǎn)品的最高版本FoxBASE +2.1。 1989年推出了FoxBASE的升級(jí)換代產(chǎn)品FoxPro 1.0。該產(chǎn)品極大地?cái)U(kuò)充了xBASE語言的命令,并且完全兼容dBA

11、SE和FoxBASE。在該產(chǎn)品中引進(jìn)了DOS操作系統(tǒng)下的彩色文本窗口界面,支持鼠標(biāo)操作,給用戶提供了一個(gè)非常友好的操作界面。 1991年Fox Software公司又推出了FoxPro 1.0的升級(jí)版本FoxPro 2.0。在該版本中引進(jìn)了Rushmore查詢優(yōu)化技術(shù)、結(jié)構(gòu)化查詢語言SQL、自動(dòng)生成報(bào)表技術(shù)、自動(dòng)生成程序代碼技術(shù)等一系列非常先進(jìn)的技術(shù),使FoxPro的功能發(fā)生了質(zhì)的飛躍,達(dá)到了前所未有的高度。 1992年Microsoft公司兼并了Fox Software公司,從此在FoxPro的前面加上了Microsoft的字樣,F(xiàn)oxPro的命運(yùn)被Microsoft公司牢牢控制。 1993

12、年Microsoft公司推出了FoxPro 2.5,該產(chǎn)品是一個(gè)跨平臺(tái)產(chǎn)品,能夠運(yùn)行在DOS、Windows等多種操作系統(tǒng)下。用該產(chǎn)品開發(fā)的應(yīng)用程序具有很好的移植性。并且該版本比以前的版本具有更成熟的Rushmore技術(shù)、更快的運(yùn)行速度、更友好的用戶界面和更穩(wěn)定的性能。 1994年Microsoft公司又陸續(xù)推出了FoxPro 2.5B和FoxPro 2.6版本,但是改動(dòng)很小。 2.1.2 Visual FoxPro的推出 1995年Microsoft公司推出了面向?qū)ο蟮年P(guān)系數(shù)據(jù)庫Visual FoxPro 3.0,該產(chǎn)品是一個(gè)可以運(yùn)行在Windows 環(huán)境中的32位數(shù)據(jù)庫開發(fā)系統(tǒng)。在該產(chǎn)品中

13、引進(jìn)了面向?qū)ο蟮木幊碳夹g(shù)和數(shù)據(jù)庫設(shè)計(jì)技術(shù),采用了可視化的概念,明確地提出了客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。 1998年Microsoft公司又推出了FoxPro的最新產(chǎn)品Visual FoxPro 6.0中文版,也稱為Visual FoxPro 98中文版。該版本同Microsoft 公司的其他產(chǎn)品一樣,全面支持Internet和Intranet,并且增強(qiáng)了同其他產(chǎn)品之間的協(xié)作工作能力。2.1.3 Visual FoxPro 6.0中文版的技術(shù)要點(diǎn) VFP 6.0是一個(gè)完全的面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)與傳統(tǒng)的過程化程序設(shè)計(jì)模式相結(jié)合的開發(fā)環(huán)境,它建立在事件驅(qū)動(dòng)模型的基礎(chǔ)之上,給程序的開發(fā)提供了極大的靈活性。

14、其技術(shù)要點(diǎn)主要表現(xiàn)在以下幾個(gè)方面。(1)完全的32位開發(fā)環(huán)境;(2)可以更好地利用ActiveX控件,進(jìn)一步加強(qiáng)了OLE和ActiveX的集成,充分體現(xiàn)了ActiveX無處不在的思想;(3)對(duì)SQL的支持和完整的數(shù)據(jù)庫前臺(tái)開發(fā)能力,使得Visual FoxPro 6.0更適用于Internet和Intranet,并為已有的應(yīng)用向Client/Server過渡提供了很好的支持;(4)真正的面向?qū)ο蟪绦蜷_發(fā)環(huán)境,同時(shí)支持標(biāo)準(zhǔn)的面向過程程序設(shè)計(jì)模式;(5)完全的事件驅(qū)動(dòng)模型;(6)增加了很多新的語言元素,包括對(duì)象、對(duì)象屬性、命令、函數(shù)和一些系統(tǒng)變量等;(7)更優(yōu)秀的調(diào)試工具,在VFP 6.0中文版中

15、,可以更容易地調(diào)試或監(jiān)控應(yīng)用程序構(gòu)件;(8)更輕松的表設(shè)計(jì)方式;(9)查詢和可視化設(shè)計(jì)功能更強(qiáng)大;(10)提供更多的和功能更強(qiáng)大的向?qū)А?.2 Visual FoxPro 6.0用戶界面 啟動(dòng)VFP6.0后,屏幕顯示如圖所示的系統(tǒng)主窗口,它主要由標(biāo)題欄、主菜單欄、工具欄、命令窗口、工作區(qū)和狀態(tài)欄組成。2.3 VFP 6.0系統(tǒng)環(huán)境設(shè)置 VFP 6.0被安裝和啟動(dòng)之后,系統(tǒng)中所有的配置都采用默認(rèn)配置,用戶可以根據(jù)自己的需要,在安裝完后,對(duì)這些系統(tǒng)的默認(rèn)配置進(jìn)行調(diào)整。2.3.1 使用“選項(xiàng)”對(duì)話框 選擇“工具”菜單中的“選項(xiàng)”命令,打開“選項(xiàng)”對(duì)話框,如圖所示,通過選項(xiàng)對(duì)話框可以對(duì)系統(tǒng)的很多參數(shù)進(jìn)

16、行查看和設(shè)置。在更改了設(shè)置后,如果僅僅單擊“確定”按鈕關(guān)閉對(duì)話框,則改變的設(shè)置僅在本次系統(tǒng)運(yùn)行期間有效,退出系統(tǒng)后,所做的修改將丟失。如果希望所做的更改在以后的系統(tǒng)運(yùn)行時(shí)繼續(xù)有效,需先單擊“設(shè)置為默認(rèn)值”按鈕,然后再單擊“確定”按鈕?!斑x項(xiàng)”對(duì)話框中共有12個(gè)選項(xiàng)卡,其功能和作用如下。(1)顯示:用戶界面選項(xiàng)設(shè)置,如是否在Visual FoxPro的主窗口中顯示狀態(tài)欄、時(shí)鐘、命令結(jié)果和系統(tǒng)信息等內(nèi)容。(2)常規(guī):數(shù)據(jù)輸入與編程選項(xiàng)設(shè)置,如設(shè)置警告聲音,是否記錄編譯錯(cuò)誤,是否自動(dòng)填充新記錄,使用什么調(diào)色板以及改寫文件之前是否警告等。(3)數(shù)據(jù):設(shè)置表選項(xiàng),如是否使用Rushmore優(yōu)化查詢、內(nèi)存

17、塊大小及搜索時(shí)的記錄計(jì)數(shù)器間隔等。(4)遠(yuǎn)程數(shù)據(jù):遠(yuǎn)程數(shù)據(jù)訪問選項(xiàng),如連接時(shí)延、一次取出記錄數(shù)及如何使用SQL更新等。(5)文件位置:設(shè)置Visual FoxPro默認(rèn)目錄位置,幫助文件安裝的位置以及各種輔助文件安裝的位置等。(6)表單:表單設(shè)計(jì)器選項(xiàng),如確定網(wǎng)格面積、所用刻度單位、最大設(shè)計(jì)區(qū)域以及使用何種類模板等。(7)項(xiàng)目:項(xiàng)目管理器選項(xiàng),確定是否提示使用向?qū)?,雙擊時(shí)是否運(yùn)行或修改文件以及源代碼管理等。(8)控件:設(shè)置在表單控件欄上有哪些可視類庫和ActiveX控件有效。(9)區(qū)域:確定日期、時(shí)間、貨幣及數(shù)字的格式。(10)調(diào)試:定制調(diào)試器窗口的顯示形式,包括字體、顏色、是否顯示行號(hào)等。(

18、11)語法著色:編輯器選項(xiàng),包括能否選擇空白、注釋字符串、字體選項(xiàng)等。(12)字段映象:確定當(dāng)從“數(shù)據(jù)環(huán)境設(shè)計(jì)器”、“數(shù)據(jù)庫設(shè)計(jì)器”或者“項(xiàng)目管理器”中向表單拖動(dòng)表或字段時(shí),允許創(chuàng)建的控件類型等。 VFP安裝后默認(rèn)的工作目錄為其安裝目錄,應(yīng)用中產(chǎn)生的所有文件將存在此目錄下。由于它與系統(tǒng)文件混在一起,不便于管理,因此用戶一定要先建立自己的工作目錄。工作目錄的建立步驟如下:(1)在打開的“選項(xiàng)”對(duì)話框中,選擇“文件位置”選項(xiàng)卡中的“默認(rèn)目錄”選項(xiàng),單擊“修改”按鈕,將出現(xiàn)圖2-4所示的“更改文件位置”對(duì)話框。(2)選中“使用(U)默認(rèn)目錄”復(fù)選框,在“定位(L)默認(rèn)目錄”的文本框中,通過旁邊的“”

19、按鈕選取默認(rèn)目錄的位置(目錄必須存在,否則需要先建目錄,再選?。瑔螕簟按_定”按鈕回到圖2-3所示的界面,單擊“設(shè)置為默認(rèn)值”按鈕,就把該目錄設(shè)定為默認(rèn)的工作目錄。2.3.2 使用SET命令配置Visual FoxPro 大多數(shù)顯示在“選項(xiàng)”對(duì)話框選項(xiàng)卡上的選項(xiàng),都可以通過編程方式的SET命令或給系統(tǒng)內(nèi)存變量指定值來進(jìn)行修改。比如,在命令窗口輸入如下命令: SETDATETOansi 則將日期顯示格式設(shè)為“年月日”。如果使用SET命令配置環(huán)境,設(shè)置僅在本次Visual FoxPro運(yùn)行期間有效,當(dāng)退出Visual FoxPro時(shí)將放棄這些設(shè)置。 2.4 VFP6.0向?qū)А⑸善骱驮O(shè)計(jì)器 向?qū)В?/p>

20、Wizard)是一種交互式的程序,能引導(dǎo)用戶方便、快速地完成建立表、報(bào)表、查詢等任務(wù)。使用向?qū)У姆椒ㄓ袃煞N:一是使用“文件”菜單下的“新建”命令。 每個(gè)向?qū)Ф加梢幌盗械膶?duì)話框組成,用戶只要根據(jù)需要回答一連串的問題,向?qū)Ь蜁?huì)幫助用戶生成相應(yīng)的文件或完成一項(xiàng)任務(wù)。如果向?qū)谱鞯慕Y(jié)果不能完全滿足要求,用戶還可以在此基礎(chǔ)上進(jìn)行修改,使之更符合要求。VFP向?qū)е饕校罕硐驅(qū)?、查詢向?qū)А?bào)表向?qū)У鹊取?.4.2 生成器 生成器(Builder)是帶有若干選項(xiàng)卡的對(duì)話框,用于簡化對(duì)表單、復(fù)雜控件和參照完整性代碼的創(chuàng)建和修改過程。 每個(gè)生成器都顯示一系列選項(xiàng)卡,用于設(shè)置選中對(duì)象的屬性,它也是VFP提供給用戶

21、的一種工具,它使用戶能夠很容易地設(shè)置對(duì)象屬性。如命令組生成器、編輯框生成器、表達(dá)式生成器、組合框生成器等。2.4.3 設(shè)計(jì)器 設(shè)計(jì)器(Designer)是VFP以圖形界面提供給用戶的設(shè)計(jì)工具,通過它可以創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)、數(shù)據(jù)庫結(jié)構(gòu)、表單、報(bào)表和應(yīng)用程序組件等。設(shè)計(jì)器主要包括表設(shè)計(jì)器、數(shù)據(jù)庫設(shè)計(jì)器、表單設(shè)計(jì)器、菜單設(shè)計(jì)器、查詢?cè)O(shè)計(jì)器和視圖設(shè)計(jì)器等。 例如,打開表單設(shè)計(jì)器的方法是:單擊“文件”菜單中的“新建”命令,在彈出的“打開”對(duì)話框中選擇“表單”選項(xiàng),單擊“新建文件”按鈕,即可打開表單設(shè)計(jì)器。高職高專院?!笆濉本肥痉断盗薪滩模ㄜ浖夹g(shù)專業(yè)群)Visual FoxPro程序設(shè)計(jì)第3章 Vis

22、ual FoxPro 基本知識(shí)3.1 Visual FoxPro數(shù)據(jù)類型 3.2 常量和變量3.3 運(yùn)算符和表達(dá)式3.4 函數(shù)3.1 Visual FoxPro數(shù)據(jù)類型每種計(jì)算機(jī)語言的基本成分都是相同的,只是它們的表示方法有所不同。計(jì)算機(jī)語言的基本成分包括常量、變量、表達(dá)式、函數(shù)以及所使用的數(shù)據(jù)類型。數(shù)據(jù)類型是簡單數(shù)據(jù)的基本屬性,只有相同類型的數(shù)據(jù)之間才能直接運(yùn)算,否則就會(huì)發(fā)生數(shù)據(jù)類型不匹配的錯(cuò)誤。3.1.1 字符型(Character,類型代號(hào)C) 字符型數(shù)據(jù)的定界符可以是雙引號(hào)、單引號(hào)或方括號(hào),用定界符括起來的任何字符都是字符型數(shù)據(jù),其最大長度為254字節(jié)。例如:工程師李娟123通常姓名、

23、住址等不參加計(jì)算的數(shù)據(jù)可被設(shè)置為字符型數(shù)據(jù),學(xué)號(hào)、電話、編號(hào)等由數(shù)字符號(hào)組成但不參加數(shù)學(xué)運(yùn)算的數(shù)據(jù)也是字符型數(shù)據(jù)。3.1.2 數(shù)值型(Numeric,類型代號(hào)N)任何由正負(fù)號(hào)、0至9的數(shù)字和小數(shù)點(diǎn)組成的實(shí)數(shù)都是數(shù)值型數(shù)據(jù),它的最大長度為20字節(jié),其中包括正負(fù)號(hào)和小數(shù)點(diǎn)。數(shù)值型數(shù)據(jù)不僅可以用十進(jìn)制表示,而且也可以用十六進(jìn)制表示,還可以用科學(xué)記數(shù)法表示。比如,整數(shù)128可以有以下三種表示法:十進(jìn)制表示法:128十六進(jìn)制表示法:0 x80科學(xué)記數(shù)法:1.28E+23.1.3 邏輯型(Logic,類型代號(hào)L)用來表示邏輯判斷的結(jié)果。邏輯值只有兩個(gè):“True”和“False”,分別用.T.(.t.)和

24、.F.(.f.)或.Y.(.y.)和.N.(.n.)表示,長度固定為1字節(jié)。3.1.4 日期型(Date,類型代號(hào)D)用于表示日期,以一對(duì)花括號(hào)()作為定界符,它的長度固定為8字節(jié)。 1日期格式的分類(1)通常日期格式表示方式為:mm/dd/yy,其默認(rèn)日期格式為美國日期格式 (2)嚴(yán)格日期格式表示方法為:yyyy/mm/dd 2. 與日期格式有關(guān)的命令(1)SETSTRICTDATETO命令格式:SETSTRICTDATETO1 | 0功能:實(shí)現(xiàn)嚴(yán)格日期格式與通常日期格式的轉(zhuǎn)換。默認(rèn)值為1,表示必須使用嚴(yán)格日期格式,0表示可以使用通常日期格式。(2)SETCENTURY命令格式:SETCEN

25、TURYoff | on功能:設(shè)置年份用2位還是4位表示 (3)SETDATETO命令格式:SETDATETOamerican | ansi | britishlong功能:設(shè)置日期的顯示格式。其中:american表示mm/dd/yy格式,此為默認(rèn)值; ansi表示yy.mm.dd格式; british表示dd/mm/yy格式;long表示yyyy年mm月dd格式。3.1.5 日期時(shí)間型(Date Time,類型代號(hào)T)如果要存儲(chǔ)的數(shù)據(jù)包含日期和時(shí)間或僅包含時(shí)間,則要采用日期時(shí)間類型,如員工上下班的打卡時(shí)間,就適合采用日期時(shí)間型數(shù)據(jù)。日期時(shí)間型數(shù)據(jù)的長度固定為8字節(jié),默認(rèn)的日期時(shí)間型數(shù)據(jù)的表

26、示格式為: yyyy/ mm/dd hh:mm:ss am | pm。時(shí)間有兩種表示方法:12小時(shí)制和24小時(shí)制,默認(rèn)為12小時(shí)制,用下面的設(shè)置命令可以在兩者間切換:SETHOURSTO12 | 243.1.6 貨幣型(Currency,類型代號(hào)Y)貨幣型是數(shù)值型的一種變型,用來表示貨幣值,長度固定為8字節(jié)。在使用貨幣型數(shù)據(jù)時(shí),要在數(shù)字前面加上一個(gè)貨幣符號(hào)“$”。貨幣型數(shù)據(jù)最多只能保留到小數(shù)點(diǎn)后4位,超過4位時(shí)會(huì)四舍五入,少于4位時(shí)系統(tǒng)自動(dòng)在后面補(bǔ)0。3.1.7 備注型(Memo,類型代號(hào)M)用于存儲(chǔ)指向一個(gè)數(shù)據(jù)塊的指針,長度固定為4字節(jié)。備注型只能用于字段變量,它用于存放超過字符型字段254

27、個(gè)字符長度限制的文本,備注型字段能接受一切字符型數(shù)據(jù),而且比字符型字段更靈活。一般來說,像“簡歷”、“備注”這樣的需要保存大段文字的變量可將其定義為備注型字段,每個(gè)人的“簡歷”數(shù)據(jù)保存在與數(shù)據(jù)表文件同名的擴(kuò)展名為.FPT的文件的一個(gè)數(shù)據(jù)區(qū)域,在這個(gè)區(qū)域中可以保存大量的字符數(shù)據(jù),保存數(shù)據(jù)量的大小僅受內(nèi)存空間的限制?!昂啔v”字段4字節(jié)長度保存的指針就指向.FPT文件中相應(yīng)的區(qū)域。如果表中沒有備注型字段,則.FPT文件不存在。3.1.8 通用型(General,類型代號(hào)G)用于存儲(chǔ)指向一個(gè)OLE對(duì)象的指針,長度固定為4字節(jié)。它可用來存放圖形、圖像、電子表格、聲音等多媒體數(shù)據(jù)。通用型數(shù)據(jù)也存儲(chǔ)于擴(kuò)展名

28、為.FPT的文件中,存儲(chǔ)量僅受內(nèi)存空間限制。所謂的OLE就是“對(duì)象鏈接與嵌入(Object Linking&Embedding)”,它是Windows中一種數(shù)據(jù)交換方式。利用OLE的“復(fù)制”與“粘貼”方式,或是“插入對(duì)象”的功能,可直接輕易將各種OLE對(duì)象存入表中。3.2 常量和變量3.2.1 常量常量分為一般常量和符號(hào)常量。1一般常量一般常量是指直接使用的常量。比如:字符型常量是由漢字和ASCII字符集中可打印字符組成,如:工程師、2000;數(shù)值型常量是由0到9的數(shù)字、小數(shù)點(diǎn)和正負(fù)號(hào)組成,如:128、10.5;邏輯型常量是由表示邏輯判斷結(jié)果的“.T.”或“.F.”符號(hào)組成,如:.T. 、.F

29、. 、.f.、.t.;貨幣型是由貨幣符號(hào)$和一個(gè)數(shù)值型數(shù)據(jù)組成,如:$12.5;日期型常量是由按照其嚴(yán)格輸入格式y(tǒng)yyy/mm/dd表示的符號(hào)組成,如:2010/09/10;日期時(shí)間型常量是由按照其嚴(yán)格輸入格式y(tǒng)yyy/mm/dd hh:mm:ss表示的符號(hào)組成,如:2010/09/10 11:50:00。2符號(hào)常量符號(hào)常量是將一般常量定義為一個(gè)符號(hào)。符號(hào)常量的定義方法是:#DEFINE 例如:#DEFINEpi3.14使用符號(hào)常量的好處是當(dāng)常量值需要改變時(shí)只需改變符號(hào)常量定義的值即可,否則將必須修改程序中所有用到該常量的地方。3.2 變量1字段變量字段變量是存儲(chǔ)在數(shù)據(jù)表中的用于表示表中數(shù)據(jù)的

30、變量。它隨表的存在而存在,隨表的消失而消失。(1)變量的命名規(guī)則字段變量名由字母、數(shù)字、漢字和下劃線構(gòu)成,第一個(gè)字符必須是字母或漢字,最多不超過10個(gè)字符。(2)變量的類型字段變量的類型有字符型、數(shù)值型、浮點(diǎn)型、雙精度型、整型、邏輯型、日期型、日期時(shí)間型、備注型、通用型等,即包括所有的數(shù)據(jù)類型。2內(nèi)存變量內(nèi)存變量存儲(chǔ)在內(nèi)存的存儲(chǔ)單元中,是用來保存程序運(yùn)行的中間結(jié)果的臨時(shí)工作單元。它可以隨時(shí)定義,隨時(shí)釋放。(1)變量的命名規(guī)則由字母、漢字、數(shù)字和下劃線組成,以字母、漢字或下劃線開頭,最多不超過128個(gè)字符,其中一個(gè)漢字占兩個(gè)字節(jié)。(2)變量的類型內(nèi)存變量的類型由它所存放的數(shù)據(jù)類型所決定。當(dāng)內(nèi)存中

31、存放的數(shù)據(jù)類型改變時(shí),內(nèi)存變量的類型也隨之改變。內(nèi)存變量僅能擁有部分類型的數(shù)據(jù),它們是:字符型、數(shù)值型、貨幣型、日期型、日期時(shí)間型、邏輯型。(3)變量的作用域內(nèi)存變量根據(jù)它所定義的方式不同,其作用范圍也不同。PUBLIC LOCALPRIVATE(4)內(nèi)存變量的賦值內(nèi)存變量必須先定義后使用,給內(nèi)存變量賦值的同時(shí)也就定義了它,在Visual FoxPro中,有兩個(gè)命令用于給內(nèi)存變量賦值。格式1:=格式2:STORE TO 說明: 內(nèi)存變量的類型由所賦值的類型決定。 可包含一個(gè)或多個(gè)內(nèi)存變量,若有多個(gè)內(nèi)存變量,變量間以逗號(hào)間隔。(5)內(nèi)存變量值的輸出使用?或?命令可以在屏幕上顯示內(nèi)存變量的值。格式

32、1:? 格式2:? 功能:在屏幕上顯示表達(dá)式的值。說明: 輸出項(xiàng)可以是一個(gè)或多個(gè)表達(dá)式,若有多個(gè)表達(dá)式,表達(dá)式間以逗號(hào)間隔。 ?與?的區(qū)別是:?命令在輸出表達(dá)式值之前先執(zhí)行一次回車換行;而?命令則是在當(dāng)前光標(biāo)處輸出。 若省略,則?命令表示換行。3數(shù)組(1)數(shù)組的概念數(shù)組是按一定順序排列的一組內(nèi)存變量,數(shù)組中的各變量稱為數(shù)組元素,每個(gè)數(shù)組元素具有相同的變量名但帶有不同的下標(biāo),帶有一個(gè)下標(biāo)的數(shù)組稱為一維數(shù)組,帶有兩個(gè)下標(biāo)的數(shù)組稱為二維數(shù)組。使用數(shù)組的好處是方便編程、可以提高效率。例如:a(1)、a(2)、a(3) 稱為一維a數(shù)組。 b(1,1)、b(1,2)、b(2,1)、b(2,2) 稱為二維b

33、數(shù)組。(2)數(shù)組的定義數(shù)組在使用之前首先必須定義它。 命令格式:DIMENSION (,),(,)DECLARE (,),(,)(3)數(shù)組賦值給數(shù)組賦值,就是分別給每個(gè)數(shù)組元素賦值,與給內(nèi)存變量賦值操作完全相同。(4)數(shù)組特性在Visual FoxPro數(shù)據(jù)庫管理系統(tǒng)環(huán)境下,對(duì)數(shù)據(jù)庫進(jìn)行操作時(shí)引用數(shù)組,會(huì)使數(shù)據(jù)操作更方便。數(shù)組和數(shù)據(jù)表相比有如下優(yōu)點(diǎn): 數(shù)組可以不像數(shù)據(jù)表一樣有一個(gè)固定的結(jié)構(gòu)。 因?yàn)閿?shù)組中的數(shù)據(jù)存放在內(nèi)存中,數(shù)據(jù)表中的數(shù)據(jù)存放在磁盤上,所以對(duì)數(shù)組中數(shù)據(jù)的訪問比對(duì)數(shù)據(jù)表中的數(shù)據(jù)訪問速度要快。 數(shù)據(jù)可以在原有的內(nèi)存空間進(jìn)行數(shù)據(jù)排序,不需要額外的內(nèi)存和磁盤空間。3.3 運(yùn)算符和表達(dá)式V

34、isual FoxPro提供了5類運(yùn)算符和表達(dá)式:(1)算術(shù)運(yùn)算符和算術(shù)表達(dá)式(2)字符串運(yùn)算符和字符串表達(dá)式(3)日期運(yùn)算符和日期表達(dá)式(4)關(guān)系運(yùn)算符和關(guān)系表達(dá)式(5)邏輯運(yùn)算符和邏輯表達(dá)式3.3.1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式1算術(shù)運(yùn)算符: * * / + - %()模運(yùn)算%的運(yùn)算規(guī)則是:(1)如果被除數(shù)和除數(shù)同號(hào),則求余就是兩數(shù)相除的余數(shù)。(2)如果被除數(shù)和除數(shù)異號(hào),則運(yùn)算結(jié)果是兩數(shù)相除的余數(shù)再加上除數(shù)的值。余數(shù)的符號(hào)和除數(shù)相同。2表達(dá)式的書寫規(guī)則(1)每個(gè)符號(hào)占1格,所有符號(hào)都必須并排寫在一行上,不能在右上角或右下角寫方次或下標(biāo)。(2)乘號(hào)不能省略,也不能用“”代替。(3)括號(hào)不論有多少

35、級(jí)一律使用小括號(hào)(),不準(zhǔn)使用方括號(hào) 和大括號(hào) 3.3.2 關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符 : = = != # $ =(1)“$”(包含于):如果a和b都是字符串,而且a與b相同或a是b的子串,則a$b結(jié)果為真。(2)“= =”(精確比較):只有當(dāng)比較符兩邊的字符串完全相等時(shí),返回的結(jié)果才為真值。(3)“=” :運(yùn)算符兩邊的字符串均以左邊第一個(gè)位置為起點(diǎn),逐個(gè)字符向右比較,運(yùn)算符右邊字符串只要與左邊字符串的前部相同,則認(rèn)為兩個(gè)字符串相等?!?”運(yùn)算的結(jié)果與以下設(shè)置有關(guān):SETEXACToff | on3.3.3 邏輯運(yùn)算符與邏輯表達(dá)式邏輯“與”如果有邏輯表達(dá)式a.AND.b,只有當(dāng)a和b的

36、值均為.T.時(shí),表達(dá)式的值才為.T.,否則為.F.。邏輯“或”如果有邏輯表達(dá)式a.OR.b,只要a和b中有一個(gè)為.T.,表達(dá)式的值就為.T.。邏輯“非”是原邏輯的否定。3.3.4 字符串運(yùn)算符與字符串表達(dá)式 (1)“”運(yùn)算:兩個(gè)字符串連接。(2)“”運(yùn)算:兩個(gè)字符串連接時(shí),前一字符串的尾部空格將移到連接后的字符串的后面。3.3.5 日期運(yùn)算符與日期表達(dá)式(1)兩個(gè)日期型數(shù)據(jù)相減,結(jié)果是一個(gè)數(shù)值型數(shù)據(jù),它的值為兩個(gè)日期相差的天數(shù)。(2)一個(gè)日期型數(shù)據(jù)加上一個(gè)數(shù)值型數(shù)據(jù)n,結(jié)果是一個(gè)日期型數(shù)據(jù),它的日期值是在原日期的基礎(chǔ)上增加了n天。一個(gè)日期時(shí)間型數(shù)據(jù)加一個(gè)數(shù)值型數(shù)據(jù)n,結(jié)果是一個(gè)日期時(shí)間型數(shù)據(jù),

37、它的時(shí)間值是在原時(shí)間的基礎(chǔ)上增加了n秒。(3)一個(gè)日期型數(shù)據(jù)減去一個(gè)數(shù)值型數(shù)據(jù)n,結(jié)果是一個(gè)日期型數(shù)據(jù),它的日期值是在原日期的基礎(chǔ)上減少了n天。一個(gè)日期時(shí)間型數(shù)據(jù)減去一個(gè)數(shù)值型數(shù)據(jù)n,結(jié)果是一個(gè)日期時(shí)間型數(shù)據(jù),它的時(shí)間值是在原時(shí)間的基礎(chǔ)上減少了n秒。3.4 函數(shù)Visual FoxPro提供的函數(shù)分為兩種:系統(tǒng)函數(shù)和自定義函數(shù)。系統(tǒng)函數(shù)由Visual FoxPro提供,也被稱為標(biāo)準(zhǔn)函數(shù),用戶可以直接調(diào)用。若系統(tǒng)提供的函數(shù)不能滿足用戶的要求,用戶可以自行編寫函數(shù),這樣的函數(shù)稱為自定義函數(shù)。3.4.1 算術(shù)運(yùn)算函數(shù)1絕對(duì)值函數(shù)格式:ABS()功能:求的絕對(duì)值。例如:? ABS(-5) 2取整函數(shù)格

38、式:INT()功能:取的整數(shù)部分。例如:? INT(-10.6),INT(12.8) 3四舍五入函數(shù)格式:ROUND(,)功能:對(duì)進(jìn)行四舍五入,決定四舍五入的位數(shù)。當(dāng)?shù)闹禐檎龜?shù)時(shí),其值是小數(shù)部分保留的位數(shù),并進(jìn)行四舍五入;當(dāng)?shù)闹禐樨?fù)數(shù)時(shí),其值是整數(shù)部分四舍五入的位數(shù)。4求最大值函數(shù)格式:MAX ()功能:返回中的最大值??梢允窍嗤愋偷臄?shù)字型表達(dá)式、字符型表達(dá)式或日期型表達(dá)式。5求最小值函數(shù)格式:MIN ()功能:返回中的最小值??梢允窍嗤愋偷臄?shù)字型表達(dá)式、字符型表達(dá)式或日期型表達(dá)式。6求余函數(shù)格式:MOD (,)功能:求除以所得到的余數(shù)。7平方根函數(shù)格式:SQRT ()功能:求的平方根,要

39、求大于等于0。8指數(shù)函數(shù)格式:EXP ()功能:求以e=2.718為底的指數(shù)函數(shù)值,即:ex。自然對(duì)數(shù)函數(shù)格式:LOG ()功能:求以e=2.718為底的對(duì)數(shù)函數(shù)值,即:ln(x)。10常用對(duì)數(shù)函數(shù)格式:LOG10 ()功能:求以10為底的對(duì)數(shù)函數(shù)值,即:lg(x)。11正弦函數(shù)格式:SIN ()功能:求sin(x)的值,的單位為弧度。1角度=/180弧度。例如:? SIN(30*3.14/180)12余弦函數(shù)格式:COS ()功能:求cos(x)的值,的單位為弧度。例如:? COS(30*3.14/180)13隨機(jī)函數(shù)格式:RAND()功能:產(chǎn)生一個(gè)在(0,1)范圍內(nèi)取值的隨機(jī)數(shù)。參數(shù)為指定

40、的種子數(shù),它指定RAND()函數(shù)返回的數(shù)值序列。 3.4.2 日期和時(shí)間函數(shù) 1日期函數(shù)格式:DATE( )功能:返回系統(tǒng)當(dāng)前日期。例如:? DATE( )2時(shí)間函數(shù)格式:TIME( )功能:返回系統(tǒng)當(dāng)前時(shí)間,其返回值的數(shù)據(jù)類型為字符型。例如:? TIME( ) 3年函數(shù)格式:YEAR()功能:以一個(gè)4位數(shù)給出的年份。4月函數(shù)格式:MONTH()功能:返回的月份。5英文月份函數(shù)格式:CMONTH()功能:以英文的形式給出的月份。6日函數(shù)格式:DAY()功能:返回的日期號(hào)。3.4.3 字符串函數(shù) 1左子串函數(shù)格式:LEFT(,)功能:從的左邊開始取n個(gè)字符。例如:? LEFT(abcd,2)2右

41、子串函數(shù)格式:RIGHT(,)功能:從的右邊開始取n個(gè)字符。例如:? RIGHT(abcd,2)3取子串函數(shù)格式:SUBSTR(,)功能:對(duì)從第m個(gè)字符開始取n個(gè)字符。例如:a=She is a teacher ? SUBSTR(a,10,7) 4去首部空格函數(shù)格式:LTRIM()功能:去掉的首部空格。例如:? LTRIM( abcd)5去尾部空格函數(shù)格式:RTRIM()功能:去掉的尾部空格。RTRIM與TRIM等價(jià)。例如:? RTRIM(abcd ) 6去首尾空格函數(shù)格式:ALLTRIM()功能:同時(shí)去掉的首尾空格 7求字符串長度函數(shù)格式:LEN()功能:返回的長度。得 148宏代換函數(shù)格式

42、:& .功能:代換出內(nèi)存變量所表示的值?!?”是內(nèi)存變量結(jié)束符。9.空格生成函數(shù)格式:SPACE(數(shù)字表達(dá)式)功能:生成指定數(shù)目空格的字符串,其空格個(gè)數(shù)由數(shù)字表達(dá)式的值確定。例如:? SPACE(5) 10.子字符串檢索函數(shù)格式1:AT(,)功能:返回第一個(gè)字符串表達(dá)式在第二個(gè)字符串表達(dá)式中第n次出現(xiàn)的位置,從最左邊開始計(jì)數(shù)。其中n由命令中的確定。若不指明n,則返回第一次出現(xiàn)的起始位置。若第二個(gè)字符串表達(dá)式中不包含有第一個(gè)字符串表達(dá)式,或出現(xiàn)的次數(shù)少于n,則函數(shù)返回值為0。該函數(shù)區(qū)分搜索字符的大小寫。格式2:ATC(,)功能:除了不區(qū)分字符大小寫外,其他功能同格式1。例如:? AT(AB,AB

43、CDEFABCAB,3)& 得10? AT(Ab,ABCDEFABCAB,3)& 得 0? ATC(Ab,ABCDEFABCAB,2)& 得 711.反向字符串檢索函數(shù)格式1:RAT(,)功能:與AT()函數(shù)功能類似,它是從字符串最右邊開始檢索字符串表達(dá)式1在字符串表達(dá)式2中出現(xiàn)的位置。檢索字符區(qū)分大小寫。格式2:RATC(,)功能:除了不區(qū)分字符大小寫外,其他功能同格式1。 3.4.4 轉(zhuǎn)換函數(shù) 1數(shù)值型轉(zhuǎn)換為字符型格式:STR(,)功能:將轉(zhuǎn)換為字符型表達(dá)式。默認(rèn)長度為10,若不指定小數(shù)位數(shù),則保留到整數(shù)位。如果長度小于數(shù)值表達(dá)式值的整數(shù)位數(shù),則返回一串*號(hào)。例如:? 面積是:+STR(1

44、23.456)& 面積是: 123 ? 面積是:+STR(123.456,6,2) & 面積是:123.46 ? 面積是:+STR(123.456,5,2)& 面積是:123.5? 面積是:+STR(123.456,2) & 面積是:*2字符型轉(zhuǎn)換為日期型格式:CTOD()功能:將轉(zhuǎn)換為日期型表達(dá)式,但必須是日期形式的字符表達(dá)式。3日期型轉(zhuǎn)換為字符型格式:DTOC(,1)功能:將轉(zhuǎn)換為字符串型數(shù)據(jù)。可選項(xiàng)1的作用是,轉(zhuǎn)換后的字符串格式為yyyy/mm/dd。4求ASCII碼值格式:ASC()功能:求中最左邊一個(gè)字符的ASCII碼值。例如:? ASC(A)& 得 65 ? ASC(ABC)& 得

45、 655ASCII碼值轉(zhuǎn)換為字符格式:CHR()功能:返回以值為ASCII碼的字符。例如:? CHR(87)& 得 W? CHR(13) & 得 回車6小寫字母轉(zhuǎn)換為大寫字母格式:UPPER()功能:將中的小寫字母轉(zhuǎn)換為大寫字母。例如:? UPPER(Visual FoxPro)& 得 VISUAL FOXPRO7大寫字母轉(zhuǎn)換為小寫字母格式:LOWER()功能:將中的大寫字母轉(zhuǎn)換為小寫字母。例如:? LOWER(Visual FoxPro)& 得 visual foxpro3.4.5 測(cè)試函數(shù) 1文件起始測(cè)試函數(shù)格式:BOF( )功能:當(dāng)按反向順序?qū)煳募涗涍M(jìn)行操作時(shí),操作完第一個(gè)記錄,此函

46、數(shù)返回值為真(.T.),否則為假(.F.)。當(dāng)BOF( )為真時(shí),指針指向首記錄;但是,當(dāng)指針指向首記錄時(shí),BOF( )不一定為真。2文件結(jié)束測(cè)試函數(shù)格式:EOF( )功能:當(dāng)按正向順序?qū)煳募涗洸僮鲿r(shí),操作完最后一個(gè)記錄,此函數(shù)的返回值為真(.T.),否則為假(.F.)。為真時(shí),記錄指針值為最大記錄號(hào)加1。3求當(dāng)前記錄號(hào)格式:RECNO( )功能:返回當(dāng)前記錄號(hào)。4查找成功測(cè)試函數(shù)格式:FOUND( )功能:檢測(cè)查找的記錄是否找到,若找到了,該函數(shù)返回值為真(.T.),否則返回值為假(.F.)。本章小結(jié) Visual FoxPro的數(shù)據(jù)類型常量、變量和數(shù)組包括算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算、

47、字符串運(yùn)算和日期運(yùn)算在內(nèi)的5類運(yùn)算符和表達(dá)式。 部分常用函數(shù)高職高專院?!笆濉本肥痉断盗薪滩模ㄜ浖夹g(shù)專業(yè)群)Visual FoxPro程序設(shè)計(jì) 4.1 創(chuàng)建表 4.2 表的基本操作 4.3 索引的建立和使用 4.4 數(shù)據(jù)庫第4章 數(shù)據(jù)庫和表4.1 創(chuàng)建表4.1.1 表的創(chuàng)建 每一個(gè)表都是由表結(jié)構(gòu)和表中數(shù)據(jù)兩部分構(gòu)成,創(chuàng)建表結(jié)構(gòu)就是對(duì)表中所需字段進(jìn)行設(shè)計(jì)。表中數(shù)據(jù)是在創(chuàng)建好表結(jié)構(gòu)的基礎(chǔ)上,進(jìn)行數(shù)據(jù)的錄入。 1. 常用創(chuàng)建表的方法有三種 (1)利用表設(shè)計(jì)器創(chuàng)建(菜單方式) 選擇“文件”“新建”命令,打開“新建”對(duì)話框,選擇“表”單選鈕,單擊“新建文件”,依次進(jìn)行設(shè)計(jì)。 (2)使用表向?qū)?chuàng)建

48、(菜單方式 ) (3)命令方式 命令格式:CREATE 說明:輸入和不輸入,打開的窗口不一樣。 例如:在命令窗口中創(chuàng)建名為xs的自由表。 CREATE xs &該命令直接進(jìn)入表設(shè)計(jì)器。 CREATE &該命令打開“創(chuàng)建”對(duì)話框,輸入表名XS后,打開表設(shè)計(jì)器。2.表結(jié)構(gòu)的編輯 編輯表結(jié)構(gòu)常用的有兩種方法: (1)菜單方式 步驟: 1)打開表。 “文件”“打開”,選擇要打開的表。 2)打開表設(shè)計(jì)器。選擇“顯示” “表設(shè)計(jì)器”命令,打開“表設(shè)計(jì)器”對(duì)話框。 3)進(jìn)行各種表結(jié)構(gòu)的修改。 包括增、刪字段,字段屬性修改等 (2)命令方式 命令格式:MODIFY STRUCTURE 功能:打開表設(shè)計(jì)器進(jìn)行表

49、結(jié)構(gòu)修改。(3)說明 1)菜單方式和命令方式可配合使用。 2)修改字段類型時(shí),不改變字段內(nèi)容。 3)表結(jié)構(gòu)修改前,系統(tǒng)自動(dòng)備份當(dāng)前表,修改完成后,將備份表中數(shù)據(jù)追加到新修改的表結(jié)構(gòu)中。 4)備份表時(shí),若表中存在備注字段,將創(chuàng)建一個(gè)備注備份文件。表備份文件擴(kuò)展名為.BAK,備注備份文件的擴(kuò)展名為.TBK。4.1.2 輸入表記錄 1. 建立表結(jié)構(gòu)之后立即輸入 2. 在表中追加記錄 瀏覽界面追加 編輯界面追加 說明: 邏輯型字段只能接受單個(gè)字母T(Y)或F(N),不區(qū)分大小寫。 日期型數(shù)據(jù)必須與系統(tǒng)給定的日期格式相符。 備注型字段顯示為“memo” 通用型字段存放的是多媒體數(shù)據(jù),如圖形、圖像、聲音等

50、 。4.2 表的基本操作4.2.1 表的打開和關(guān)閉 1、表的打開 (1)菜單方式:“文件” “打開” ,在“打開”對(duì)話框的“文件類型”中選擇“表”,雙擊要打開的表名即可。 (2)命令方式 命令格式:USE 例如:打開保存在U盤中第4章目錄下的表文件XSDA use U:/第4章/xsda 說明:1)打開表文件后,VF窗口無顯示信息,如果要顯示表內(nèi)容,需要打開瀏覽窗口查看表內(nèi)容,或是使用顯示命令顯示表內(nèi)容,才可以看到信息。 2)在打開對(duì)話框中有“以只讀方式打開”和“獨(dú)占”復(fù)選框可以選擇,這里“以只讀方式打開”指表打開后不能進(jìn)行修改;而“獨(dú)占”指不允許其他用戶在同一時(shí)刻使用該表,但可以修改表結(jié)構(gòu)和

51、表數(shù)據(jù)。 3)在一個(gè)工作區(qū)中打開另一個(gè)表時(shí),先前打開的表文件自動(dòng)關(guān)閉。 4)如果表中包括備注字段,就自動(dòng)打開相關(guān)的備注文件(.FPT)2、表的關(guān)閉 (1)菜單方式 選擇“窗口”“數(shù)據(jù)工作期” 命令,在“數(shù)據(jù)工作期”對(duì)話框中,選擇表的別名后,單擊“關(guān)閉”按鈕。 (2)命令方式 格式1:USE 格式2:CLOSE TABLESALL 說明:1)關(guān)閉表的瀏覽窗口并非關(guān)閉表文件2)USE為關(guān)閉當(dāng)前打開的表文件3)CLOSE ALL為關(guān)閉所有打開的文件,包括表文件4)CLOSE TABLES為關(guān)閉所有打開的自由表4.2.2 瀏覽表 瀏覽表即打開表的瀏覽窗口,顯示表文件中的數(shù)據(jù)記錄。打開表文件后,需打開瀏

52、覽窗口才能進(jìn)行記錄的瀏覽和編輯。 1. 打開瀏覽窗口 (1)選擇“顯示” “瀏覽”命令。 (2)在命令窗口輸入命令:BROWSE或BROWSE LAST命令 2. 在瀏覽窗口中瀏覽或編輯記錄 (1)瀏覽記錄:選擇“顯示”“瀏覽”命令。 (2)編輯記錄:選擇“顯示” “編輯”命令。4.2.3 顯示表 顯示表包含顯示表記錄和顯示表結(jié)構(gòu)兩種。 1. 顯示表記錄 (1)菜單方式 第一步:打開所要選擇的表(例:學(xué)生檔案表)。 第二步:選擇“顯示” “瀏覽”命令,顯示表中記錄。 同前 瀏覽表操作。 (2)命令方式 格式:DISPLAYLIST 功能:在工作區(qū)窗口顯示表中記錄。 DISPLAY和LIST的區(qū)

53、別:1、DISPLAY僅顯示當(dāng)前記錄;而LIST則顯示所有記錄。 LIST等價(jià)于DISPLAY ALL。2、當(dāng)一次顯示的記錄多于一個(gè)屏幕時(shí),DISPLAY ALL命令能分頁顯示,每顯示完一頁時(shí)暫停;而LIST 命令則連續(xù)顯示。例:顯示“學(xué)生檔案”表中記錄。 USE D:學(xué)生成績管理學(xué)生檔案.DBF DISPLAY LIST GO 5 DISPLAY DISPLAY ALL 2.顯示表結(jié)構(gòu) (1)菜單方式 第一步:打開所要選擇的表(例:學(xué)生檔案表)。 第二步:選擇“顯示” “表設(shè)計(jì)器”命令,打開表結(jié)構(gòu)。 (2)命令方式 格式:DISPLAYLIST STRUCTURE 功能:在工作區(qū)窗口顯示當(dāng)前

54、表文件的結(jié)構(gòu)。 說明:DISPLAY STRUCTURE 分頁顯示,而LIST STRUCTURE連續(xù)滾動(dòng)顯示。 最后一行為總計(jì)行,數(shù)據(jù)等于各個(gè)字段寬度之和再加1,多加的1個(gè)字節(jié)用來存放記錄的刪除標(biāo)志。 4.2.4 編輯表中數(shù)據(jù) 編輯表中的數(shù)據(jù)信息包括對(duì)記錄的查詢、增加、刪除和修改操作。 1.查詢記錄 對(duì)記錄的查詢可以通過命令方式設(shè)置條件,對(duì)滿足條件的記錄予以顯示。 命令格式:DISPLAYLIST OFF FOR條件 FIELDS 功能:顯示當(dāng)前表文件中全部或滿足某條件的記錄。 說明:命令格式:DISPLAYLIST OFF FOR條件 FIELDSOFF子句:使用該項(xiàng)表示不顯示記錄號(hào),反之

55、,則顯示記錄號(hào)。 表示表文件記錄的范圍,可選值包括: RECORD n:第n號(hào)記錄。N為數(shù)字,表示記錄號(hào)。 NEXT n:表示從當(dāng)前記錄起以下的n個(gè)記錄,包括當(dāng)前記錄。n數(shù)字,表示記錄個(gè)數(shù)。 REST:表示從當(dāng)前記錄開始到文件末尾的所有記錄。 ALL:表示全部記錄。不選擇范圍,則默認(rèn)范圍為ALL。 FOR條件 表示對(duì)篩選出滿足條件的記錄進(jìn)行操作,為邏輯表達(dá)式。 FIELDS 若省略該項(xiàng),則顯示當(dāng)前表中所有字段,否則顯示指定的字段。例:顯示“學(xué)生檔案”表中所有男學(xué)生的記錄。 操作命令為: use 學(xué)生檔案 list for 性別=“男”例:顯示“學(xué)生檔案”表中各位同學(xué)的姓名、性別、班級(jí)等字段的內(nèi)

56、容。 操作命令為: use 學(xué)生檔案 list fields 姓名,性別,班級(jí)例:教材57頁 2、添加記錄 在創(chuàng)建表時(shí),可根據(jù)系統(tǒng)提示直接輸入記錄,也可以在后期操作中隨時(shí)向表中添加記錄。添加記錄的方法有: (1)菜單方式 步驟1:打開表及表的瀏覽窗口。 步驟2:選擇“表” “追加新記錄”命令或“顯示” “追加方式”命令,瀏覽窗口中最后一條記錄后會(huì)增加一條空記錄,可以輸入新的記錄值。 (2)命令方式 格式1:APPEND BLANK 功能:在表的末尾增加一條或多條記錄。 說明: 說明:APPEND BLANK 命令只是在當(dāng)前表的末尾添加一條空記錄,不打開編輯窗口。需要查看時(shí),可以在“顯示”菜單中

57、選擇“瀏覽”選項(xiàng)。加入的空記錄的每個(gè)字段被賦予空值。 格式2:INSERT BEFORE BLANK 功能:在當(dāng)前表的當(dāng)前記錄的前面或后面插入記錄。 說明:INSERT 表示在當(dāng)前記錄之后插入一條記錄。 INSERT BEFORE 表示在當(dāng)前記錄之前插入一條記錄。 INSERT BLANK或INSERT BEFORE BLANK 分別表示在當(dāng)前記錄之后或之前插入一條空記錄。 插入記錄后,其后所有記錄的記錄號(hào)加1,空記錄只有記錄號(hào)而無內(nèi)容。 3. 修改記錄 (1)菜單方式 打開需要修改記錄的表的編輯窗口或?yàn)g覽窗口,將光標(biāo)定位到所要修改的數(shù)據(jù)上,便可直接編輯該數(shù)據(jù)。修改結(jié)束后,直接關(guān)閉瀏覽窗口的同

58、時(shí)保存修改結(jié)果;按ESC鍵則放棄最近一次修改結(jié)果。 (2)命令方式 格式:REPLACE 范圍 字段名1 with 表達(dá)式1 ,字段名2 with 表達(dá)式2 for 條件 功能:在當(dāng)前表文件中,對(duì)指定范圍內(nèi)滿足條件的記錄進(jìn)行批量修改。 說明: 格式:REPLACE 范圍 字段名1 with 表達(dá)式1 ,字段名2 with 表達(dá)式2 for 條件 說明:若無范圍項(xiàng),則缺省值為當(dāng)前記錄。 的值替換中的數(shù)據(jù), 的值替換中的數(shù)據(jù),依次類推。 若無for 條件項(xiàng),則對(duì)范圍指定的記錄進(jìn)行替代;若同時(shí)無范圍項(xiàng),則對(duì)當(dāng)前記錄進(jìn)行替代;若有FOR條件項(xiàng),但無范圍項(xiàng)時(shí),是指在整個(gè)數(shù)據(jù)范圍內(nèi)對(duì)符合條件的記錄進(jìn)行替換

59、。 例:USE 學(xué)生檔案.DBF GO 5 DISPLAY REPLACE 姓名 WITH 王虹,性別 WITH 女 DISPLAY 4. 刪除記錄 在VF中,刪除表中記錄通常分為兩個(gè)步驟: 第一步:邏輯刪除。給要?jiǎng)h除的記錄添加刪除標(biāo)記,并未真正刪除,還可以恢復(fù)。 第二步:物理刪除。對(duì)已做刪除標(biāo)記的記錄徹底刪除,從表中真正刪除,無法恢復(fù)。 (1)菜單方式 邏輯刪除。指添加刪除標(biāo)記 、在表的瀏覽窗口刪除標(biāo)記條區(qū)域單擊左鍵。 、選擇“表” “刪除記錄”命令進(jìn)行操作 物理刪除。指從表中徹底刪除記錄 選擇“表” “徹底刪除”命令。 (2)命令方式 命令格式1:DELETE 范圍 FOR 條件 功能:D

60、ELETE命令是邏輯刪除,給記錄加上刪除標(biāo)記。 說明:用LIST 或DISPLAY命令可顯示帶刪除標(biāo)記的記錄,需要時(shí)可用RECALL命令去掉刪除標(biāo)記。 RECALL 范圍 FOR 條件 功能:恢復(fù)所選表中帶刪除標(biāo)記的記錄。 說明:范圍的缺省值為當(dāng)前記錄。 若無范圍、 FOR 條件選項(xiàng),則只給當(dāng)前記錄加刪除標(biāo)記。 執(zhí)行SET DELETE OFFON 命令時(shí),OFF(默認(rèn)值)表示處理記錄時(shí)可訪問標(biāo)有刪除標(biāo)記的記錄。ON表示處理記錄時(shí)忽略有刪除標(biāo)記的記錄。 例:對(duì)“學(xué)生檔案”表中第2條記錄進(jìn)行邏輯刪除,并恢復(fù)。命令為: use 學(xué)生檔案.dbf go 2 delete list go 2 reca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論