數(shù)據(jù)庫程序設(shè)計541頁完整版教學課件匯總?cè)珪娮咏贪竉第1頁
數(shù)據(jù)庫程序設(shè)計541頁完整版教學課件匯總?cè)珪娮咏贪竉第2頁
數(shù)據(jù)庫程序設(shè)計541頁完整版教學課件匯總?cè)珪娮咏贪竉第3頁
數(shù)據(jù)庫程序設(shè)計541頁完整版教學課件匯總?cè)珪娮咏贪竉第4頁
數(shù)據(jù)庫程序設(shè)計541頁完整版教學課件匯總?cè)珪娮咏贪竉第5頁
已閱讀5頁,還剩536頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Visual FoxPro8.0 數(shù)據(jù)庫程序設(shè)計學習要求1.課前預(yù)習、課后復(fù)習、上課認真聽講,做筆記。2.實習前預(yù)習實驗內(nèi)容,上機時不做與實習 無關(guān)的事,按實驗要求認真完成實習任務(wù),并將每次結(jié)果存在自備的軟盤上。3.上課、上機不準遲到和缺席。4.上機時遵守機房規(guī)定,不準玩游戲或喧嘩打鬧成績記載1.本課程為必修課,期末統(tǒng)考。2.統(tǒng)考成績占30% 平時成績占20%(包括上機練習、作業(yè)、出勤、提問等) 實訓(xùn)(綜合作業(yè))占50% 第一章 基本概念和VFP 8.0開發(fā)環(huán)境本章主要內(nèi)容:了解數(shù)據(jù)庫系統(tǒng)基本知識、關(guān)系數(shù)據(jù)庫及其特征了解數(shù)據(jù)庫的數(shù)據(jù)模型、數(shù)據(jù)庫系統(tǒng)的組成熟悉Visual FoxPro的開發(fā)環(huán)境

2、掌握系統(tǒng)啟動及退出的方法了解數(shù)據(jù)庫應(yīng)用背景1.1 基本概念1.1.1 數(shù)據(jù)與信息1數(shù)據(jù)(1)數(shù)據(jù)的定義數(shù)據(jù)是用來描述客觀事物的可識別的符號。 (2)數(shù)據(jù)的表現(xiàn)形式狹義:數(shù)據(jù)在大多數(shù)人們頭腦中的第一個反應(yīng)就是由09十個數(shù)碼組成的數(shù)據(jù)。廣義:描述事物的符號可以是數(shù)字,也可以是文字、聲音、圖形、圖像等。數(shù)據(jù)可以有多種表現(xiàn)形式,它們都可以經(jīng)過數(shù)字化后存入計算機。1.1 基本概念2信息(1)信息的定義數(shù)據(jù)的表現(xiàn)形式還不能完全表達其內(nèi)容,需要通過解釋和處理。只有給數(shù)據(jù)賦予確切的含義后,它對人們才是有用的。 (2)信息的特征 信息源于物質(zhì)和能量。 信息是可以感知的。 信息是可存儲、傳遞、加工和再生的。 信息

3、是有用的。3數(shù)據(jù)與信息的關(guān)系信息和數(shù)據(jù)是兩個既有聯(lián)系,又有區(qū)別的概念。 1.1.2 數(shù)據(jù)處理數(shù)據(jù)處理是對各種類型的數(shù)據(jù)進行收集、整理、存儲、加工、檢索和傳輸,使之變?yōu)橛杏眯畔⒌囊幌盗谢顒拥目偡Q。就是從某些已知的數(shù)據(jù)出發(fā),推導(dǎo)加工出一些新的數(shù)據(jù),這些新的數(shù)據(jù)又表示了新的信息。所以,數(shù)據(jù)處理也稱為信息處理。信息處理的真正含義應(yīng)該是為了產(chǎn)生信息而處理數(shù)據(jù)。1.1.3 數(shù)據(jù)管理技術(shù)的發(fā)展到目前為止,數(shù)據(jù)管理大致經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)三個階段 :1人工管理階段 這個時期數(shù)據(jù)管理的特點是: (1)數(shù)據(jù)不保存。 (2)沒有專用的軟件對數(shù)據(jù)進行管理。 (3)數(shù)據(jù)不具有獨立性。 (4)數(shù)據(jù)是面向程

4、序的。 圖1-1 人工管理階段數(shù)據(jù)與程序的關(guān)系2文件系統(tǒng)階段文件系統(tǒng)管理階段有以下幾個特點: (1)數(shù)據(jù)以“文件”形式可長期保存在外部存儲器的磁盤上。 (2)文件組織已多樣化。 (3)數(shù)據(jù)與程序間有一定的獨立性。 (4)對數(shù)據(jù)的操作以記錄為單位。 在文件系統(tǒng)階段,用戶雖有了一定的方便,但仍有很多缺點。主要表現(xiàn)在:(1)數(shù)據(jù)冗余度大。 (2)數(shù)據(jù)獨立性低。 (3)數(shù)據(jù)一致性差。 圖1-2 文件系統(tǒng)階段數(shù)據(jù)與程序的關(guān)系3數(shù)據(jù)庫階段數(shù)據(jù)庫的特點有以下幾方面: 數(shù)據(jù)共享性高、冗余度低。 數(shù)據(jù)結(jié)構(gòu)化。 數(shù)據(jù)獨立性高。 有統(tǒng)一的數(shù)據(jù)控制功能。 數(shù)據(jù)庫系統(tǒng)階段,程序與數(shù)據(jù)之間的關(guān)系可用圖1-3表示。 1.1

5、.4 數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)DBS(DataBase System)是指引進數(shù)據(jù)庫技術(shù)后的計算機系統(tǒng),主要包括數(shù)據(jù)庫、計算機軟件系統(tǒng)、計算機硬件系統(tǒng)和用戶四個部分。(1) 數(shù)據(jù)庫 數(shù)據(jù)庫DB(DataBase)的定義,一般認為數(shù)據(jù)庫是長期存儲在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)集合。(2) 計算機軟件系統(tǒng)數(shù)據(jù)庫系統(tǒng)的核心軟件是數(shù)據(jù)庫管理系統(tǒng)DBMS和數(shù)據(jù)庫應(yīng)用系統(tǒng)DBAS(DataBase Application System)。1數(shù)據(jù)庫管理系統(tǒng) 目前,市場上的數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System, DBMS)絕大多數(shù)是關(guān)系型的。DBMS的基本功能: 數(shù)據(jù)定義功能。

6、 數(shù)據(jù)操縱功能。 數(shù)據(jù)庫的運行管理。 數(shù)據(jù)庫的建立和維護功能。 數(shù)據(jù)通信。 2數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DBAS)是指利用數(shù)據(jù)庫系統(tǒng)資源開發(fā)的面向?qū)嶋H應(yīng)用的軟件系統(tǒng)。 (3) 計算機硬件系統(tǒng)硬件系統(tǒng)是指運行數(shù)據(jù)庫系統(tǒng)所需要的硬件設(shè)備,包括主機、顯示器等。(4) 用戶用戶是指使用和管理數(shù)據(jù)庫的人,他們可以對數(shù)據(jù)庫進行存儲、維護和檢索等操作。數(shù)據(jù)庫系統(tǒng)中用戶可分為三類。 終端用戶 應(yīng)用程序員 數(shù)據(jù)庫管理員 數(shù)據(jù)庫系統(tǒng)組成結(jié)構(gòu)圖圖1-5 數(shù)據(jù)庫系統(tǒng)組成結(jié)構(gòu)圖1.1.5 數(shù)據(jù)庫系統(tǒng)的新技術(shù)1分布式數(shù)據(jù)庫系統(tǒng)圖1-4 分布式數(shù)據(jù)庫系統(tǒng)分布式數(shù)據(jù)庫系統(tǒng)主要有如下幾個特點: 數(shù)據(jù)的物理分布性。 數(shù)據(jù)的邏

7、輯整體性。 結(jié)點的自主性。 2對象數(shù)據(jù)庫系統(tǒng) 20世紀90年代,許多從事數(shù)據(jù)庫研究的學者把數(shù)據(jù)庫技術(shù)和面向?qū)ο蠹夹g(shù)相結(jié)合,研究出一種新的數(shù)據(jù)庫系統(tǒng)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)OODBS(Object Oriented DataBase System),以滿足新的應(yīng)用需要。面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的研究有兩種觀點,一種是在面向?qū)ο蟪绦蛟O(shè)計語言中引入數(shù)據(jù)庫技術(shù),另一種是從關(guān)系數(shù)據(jù)庫系統(tǒng)自然地引入面向?qū)ο蠹夹g(shù)而進化到具有新功能的結(jié)果。現(xiàn)在一般把前一類數(shù)據(jù)庫系統(tǒng)稱為面向?qū)ο髷?shù)據(jù)庫系統(tǒng)(OODBS),后一類稱為對象關(guān)系數(shù)據(jù)庫系統(tǒng)ORDBS(Object Relation DataBase System),這兩類統(tǒng)稱為對

8、象數(shù)據(jù)庫系統(tǒng)。基于對象關(guān)系模型的數(shù)據(jù)庫系統(tǒng)稱為對象關(guān)系數(shù)據(jù)庫系統(tǒng)。所以對象關(guān)系數(shù)據(jù)庫系統(tǒng)除了具有原來關(guān)系數(shù)據(jù)庫的各種特點外,還具有以下特點: 擴充數(shù)據(jù)類型。 支持復(fù)雜對象。 提供通用的規(guī)則系統(tǒng)。面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的功能要求:在數(shù)據(jù)模型方面,引入面向?qū)ο蟮母拍睿▽ο?、類、對象標識、封裝、繼承、多態(tài)性、類層次結(jié)構(gòu)等。除此之外,還要求兼顧對傳統(tǒng)的關(guān)系數(shù)據(jù)的管理能力。 3網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng) 隨著客戶機/服務(wù)器結(jié)構(gòu)的出現(xiàn),使得人們可以最有效地利用計算機資源。在客戶機/服務(wù)器結(jié)構(gòu)中的服務(wù)器又稱為數(shù)據(jù)庫服務(wù)器,主要用于放置數(shù)據(jù)庫管理系統(tǒng)以及存儲數(shù)據(jù),而客戶機則負責應(yīng)用邏輯與用戶界面。 但是在網(wǎng)絡(luò)環(huán)境中,為了

9、使一個應(yīng)用程序能訪問不同的數(shù)據(jù)庫系統(tǒng),需要在應(yīng)用系統(tǒng)和不同的數(shù)據(jù)庫管理系統(tǒng)之間加一層中間件。所謂中間件是網(wǎng)絡(luò)環(huán)境中保證不同的操作系統(tǒng)、通信協(xié)議和數(shù)據(jù)庫管理系統(tǒng)之間進行對話、互操作的軟件系統(tǒng)。其中涉及數(shù)據(jù)訪問的中間件,就是20世紀90年代提出的開放的數(shù)據(jù)庫連接ODBC(Open DataBase Connectivity)技術(shù)和Java數(shù)據(jù)庫連接JDBC(Java DataBase Connectivity)技術(shù)。 1.1.6 學生成績管理系統(tǒng) 開發(fā)一個管理系統(tǒng)可稱之為開發(fā)一個項目。例如,開發(fā)學生成績管理系統(tǒng)就是開發(fā)學生成績管理項目。這里,涉及的問題包含3個方面。(1)成績管理系統(tǒng)涉及哪些數(shù)據(jù)對

10、象? 對象之間的關(guān)系如何?如何保存各數(shù)據(jù)對象的相關(guān)數(shù)據(jù)? (2)成績管理系統(tǒng)應(yīng)具有哪些功能?(3)采用什么開發(fā)本系統(tǒng)?1.1.7 數(shù)據(jù)模型數(shù)據(jù)庫管理系統(tǒng)采用的數(shù)據(jù)模型主要有:關(guān)系模型、層次模型和網(wǎng)狀模型。(1)關(guān)系模型以二維表格(關(guān)系表)的形式組織數(shù)據(jù)庫中的數(shù)據(jù)。例如:下表描述了學生成績管理系統(tǒng)中的部分數(shù)據(jù)。 學 號姓 名性別出生時間專 業(yè)專業(yè)編號畢業(yè)學校照片200201002余暉女1986-10-12計算機科學與技術(shù)40北京市七中200201018馬小寧男1986-03-09計算機科學與技術(shù)42長沙市三中200302005李進程男1988-11-12計算機科學與技術(shù)40株洲市一中200302

11、011張一天男1987-04-05計算機科學與技術(shù)40瀏陽縣五中200303014李紅敏女1986-09-15計算機科學與技術(shù)40株洲市三中表格中的一行稱為一個記錄,一列稱為一個字段,每列的標題稱為字段名。如果給每個關(guān)系表取一個名字,則有n個字段的關(guān)系表的結(jié)構(gòu)可表示為:關(guān)系表名(字段名1,字段名n),通常把關(guān)系表的結(jié)構(gòu)稱為關(guān)系模式。在關(guān)系表中,如果一個字段或幾個字段組合的值可惟一標識其對應(yīng)記錄,則該字段或字段組合稱為碼。有時一個表可能有多個碼,比如前表中,姓名不允許重名,則“學號”、“姓名”均是碼。 (2)層次模型以樹型層次結(jié)構(gòu)組織數(shù)據(jù)。圖1.1為某學校按層次模型組織的數(shù)據(jù)示例。 圖1.1 按

12、層次模型組織的數(shù)據(jù)示例(3)網(wǎng)狀模型每一個數(shù)據(jù)用一個節(jié)點表示,每個節(jié)點與其他節(jié)點都有聯(lián)系,這樣數(shù)據(jù)庫中的所有數(shù)據(jù)節(jié)點就構(gòu)成了一個復(fù)雜的網(wǎng)絡(luò)。圖1.2為按網(wǎng)狀模型組織的數(shù)據(jù)示例。圖1.2 按網(wǎng)狀模型組織的數(shù)據(jù)示例1.1.8 E-R模型幾個基本概念:通常,把每一類數(shù)據(jù)對象的個體稱為“實體”,而每一類對象個體的集合稱為“實體集”,因此在學生成績管理系統(tǒng)中主要涉及“學生”和“課程”兩個實體集。實體集中的實體彼此是可區(qū)別的,如果實體集中的屬性或最小屬性組合的值能惟一標識其對應(yīng)實體,則將該屬性或?qū)傩越M合稱為碼。 可以用圖1.3描述學生成績管理系統(tǒng)中的實體集及每個實體集涉及的屬性 實體集A和實體集之間存在各

13、種關(guān)系,通常把這些關(guān)系稱為“聯(lián)系”。 通常將實體集及實體集聯(lián)系的圖表示稱為實體聯(lián)系(entity-relationship)模型;從分析用戶項目涉及的數(shù)據(jù)對象及數(shù)據(jù)對象之間的聯(lián)系出發(fā),到獲取E-R圖的這一過程稱為概念結(jié)構(gòu)設(shè)計。 聯(lián)系用菱形表示,通過直線與實體相連。 E-R圖就是E-R模型的描述方法。兩個實體集A和B之間的聯(lián)系可能是以下3種情況之一。 (1)一對一的聯(lián)系(11)A中的一個實體至多與B中的一個實體相聯(lián)系,B中的一個實體也至多與A中的一個實體相聯(lián)系。 例如:“班級”與“正班長”這兩個實體集之間的聯(lián)系是一對一的聯(lián)系,因為一個班只有一個正班長,反過來,一個正班長只屬于一個班?!鞍嗉墶迸c“

14、正班長”兩個實體集的E-R模型如圖1.4所示。 (2)一對多的聯(lián)系(1n)A中的一個實體可以與B中的多個實體相聯(lián)系,而B中的一個實體至多與A中的一個實體相聯(lián)系。例如:“班級”與“學生”這兩個實體集之間的聯(lián)系是一對多的聯(lián)系,因為一個班可有若干學生,反過來,一個學生只能屬于一個班。“班級”與“學生”兩個實體集的E-R模型如圖1.5所示。(3)多對多的聯(lián)系(mn)A中的一個實體可以與B中的多個實體相聯(lián)系,而B中的一個實體也可與A中的多個實體相聯(lián)系。例如:“學生”與“課程”這兩個實體集之間的聯(lián)系是多對多的聯(lián)系,因為一個學生可選多門課程;反過來,一門課程可被多個學生選修?!皩W生”與“課程”兩個實體集的E

15、-R模型如圖1.6所示。1.1.9 邏輯結(jié)構(gòu)設(shè)計前面用E-R圖描述了學生成績管理系統(tǒng)中實體集與實體集之間的聯(lián)系,但這不是目標,我們的目的是以E-R圖為工具,設(shè)計關(guān)系型的數(shù)據(jù)庫,即確定應(yīng)用系統(tǒng)所使用的數(shù)據(jù)庫應(yīng)包含哪些表?每個表的結(jié)構(gòu)是怎樣的?我們知道實體集之間的聯(lián)系,可能是(11)、(1n)和(mn)3種聯(lián)系之一,下面將根據(jù)3種聯(lián)系介紹從E-R圖獲得關(guān)系模式的方法。 1(11)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對于(11)的聯(lián)系既可單獨對應(yīng)一個關(guān)系模式,也可以不單獨對應(yīng)一個關(guān)系模式。 (1)聯(lián)系單獨對應(yīng)一個關(guān)系模式,則由聯(lián)系屬性、參與聯(lián)系的各實體集的主碼屬性構(gòu)成關(guān)系模式,其主碼可選參與聯(lián)系的實體集的

16、任一方的主碼。 (2)聯(lián)系不單獨對應(yīng)一個關(guān)系模式,聯(lián)系的屬性及一方的主碼加入另一方實體集對應(yīng)的關(guān)系模式中。 2(1n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對于(1n)的聯(lián)系既可單獨對應(yīng)一個關(guān)系模式,也可以不單獨對應(yīng)一個關(guān)系模式。(1)聯(lián)系單獨對應(yīng)一個關(guān)系模式,則由聯(lián)系的屬性、參與聯(lián)系的各實體集的主碼屬性構(gòu)成關(guān)系模式,n端的主碼作為該關(guān)系模式的主碼。 (2)聯(lián)系不單獨對應(yīng)一個關(guān)系模式,則將聯(lián)系的屬性及1端的主碼加入n端實體集對應(yīng)的關(guān)系模式中,主碼仍為n端的主碼。 3(mn)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對于(mn)的聯(lián)系,單獨對應(yīng)一個關(guān)系模式,該關(guān)系模式包括聯(lián)系的屬性、參與聯(lián)系的各實體集的主碼屬性,該

17、關(guān)系模式的主碼由各實體集的主碼屬性共同組成。 至此,已介紹了根據(jù)E-R圖設(shè)計關(guān)系模式的方法,通常這一設(shè)計過程稱為邏輯結(jié)構(gòu)設(shè)計。在設(shè)計好一個項目的關(guān)系模式后,下一步的任務(wù)是選擇合適的數(shù)據(jù)庫管理系統(tǒng),利用其提供的命令語句創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫的關(guān)系表以及輸入相應(yīng)數(shù)據(jù),并根據(jù)需要對數(shù)據(jù)庫中的數(shù)據(jù)進行各種操作。1.2 VFP 8.0集成開發(fā)環(huán)境啟動Visual FoxPro 8.0(簡稱VFP)后,系統(tǒng)顯示Visual FoxPro 8.0的集成環(huán)境, 如圖1.7所示。Visual FoxPro 8.0的集成環(huán)境就是一個特殊的系統(tǒng)窗口,包含主菜單欄、工具欄、主窗口、命令窗口和狀態(tài)欄,另外,還有系統(tǒng)窗口最大

18、化按鈕、最小化按鈕和關(guān)閉按鈕。(1)主菜單欄 (2)工具欄 (3)主窗口(4)命令窗口本章小結(jié) 數(shù)據(jù)庫系統(tǒng)是一個應(yīng)用系統(tǒng),它是在計算機軟、硬件系統(tǒng)的支持下,由用戶、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用程序構(gòu)成的數(shù)據(jù)處理系統(tǒng)。本章簡要介紹了數(shù)據(jù)庫系統(tǒng)的有關(guān)基礎(chǔ)知識。并通過一個實際例子介紹數(shù)據(jù)庫系統(tǒng)的有關(guān)基本概念。 Visual FoxPro8.0 數(shù)據(jù)庫程序設(shè)計學習要求1.課前預(yù)習、課后復(fù)習、上課認真聽講,做筆記。2.實習前預(yù)習實驗內(nèi)容,上機時不做與實習 無關(guān)的事,按實驗要求認真完成實習任務(wù),并將每次結(jié)果存在自備的軟盤上。3.上課、上機不準遲到和缺席。4.上機時遵守機房規(guī)定,不準玩游戲或喧嘩打鬧成績記載1.本課

19、程為必修課,期末統(tǒng)考。2.統(tǒng)考成績占30% 平時成績占20%(包括上機練習、作業(yè)、出勤、提問等) 實訓(xùn)(綜合作業(yè))占50% 第二章 VFP語言元素本章主要內(nèi)容:了解Visual FoxPro的工作方式熟悉Visual FoxPro的基本命令集成環(huán)境、菜單項、命令格式了解Visual FoxPro的數(shù)據(jù)類型與文件類型、常量、變量、表達式及主要函數(shù)了解對象的屬性、事件與方法2.1 VFP基本知識2.1.1 Visual FoxPro主界面 當正常啟動VFP系統(tǒng)后,首先進入系統(tǒng)主界面,如圖2l所示。 2.1.2 操作方式 在VFP中,系統(tǒng)提供以下兩種操作方式。1交互方式 交互方式又可分為可視化操作和

20、命令方式。 (1)菜單操作方式 系統(tǒng)將若干命令做成菜單接口,用戶可以通過菜單的選擇來操作。 (2)工具操作方式 在VFP系統(tǒng)中提供了許多工具,分為設(shè)計器、向?qū)А⑸善鞯?種交互式的可視化開發(fā)工具。 (3)命令操作方式 命令操作是指在命令窗口中輸入命令就可以進行操作。 2程序操作方式 程序操作是指將多條命令編寫成一個程序,通過運行這個程序達到操作數(shù)據(jù)庫的目的。 2.1.3 萊單系統(tǒng) 1系統(tǒng)菜單組成結(jié)構(gòu)及工具欄簡介(1)系統(tǒng)菜單VFP的菜單由一個條形菜單控制,初始狀態(tài)下由“文件”、“編輯”、“格式”、“工具”、“程序”和“窗口”等菜單組成。(2)動態(tài)菜單項VFP在程序運行過程中,當用到某些功能時,

21、系統(tǒng)將會動態(tài)地增加或修改一些菜單項,這類菜單項叫動態(tài)菜單項。(3)工具條工具條實際上也是一種窗口,只是這種窗口只能改變其形狀而不能改變其大小。2.1.4 對話框 VFP下拉菜單中的某些選項帶有省略號(),當選擇這樣的選項時,屏幕上就會出現(xiàn)對話框。對話框按其功能來分主要有:1設(shè)計器(Designer)設(shè)計器對話框主要包括表設(shè)計器、數(shù)據(jù)庫設(shè)計器、查詢設(shè)計器、視圖設(shè)計器、表單設(shè)計器和菜單設(shè)計器等。2生成器(Builder)生成器對話框主要包括表達式生成器、列表生成器、編輯框生成器、網(wǎng)格生成器、列表框生成器等。 3向?qū)В╓izard)通常情況下,向?qū)Ш驮O(shè)計器是對應(yīng)的。它可根據(jù)已有的一些實例引導(dǎo)用戶一步

22、步創(chuàng)建表、報表、標準表單等。4窗口(Window)VFP提供了眾多的窗口,如命令(Command)窗口、項目管理器(Project)窗口、瀏覽(Browse)窗口、代碼(Code)窗口、調(diào)試(Debug)窗口、跟蹤(Trace)窗口、編輯(Edit)窗口、屬性(Properties)窗口等,這些窗口大多可直接通過菜單打開,但編輯窗口和屬性窗口除外。5其它對話框如創(chuàng)建對話框、打開對話框、記錄刪除對話框等。2.1.5 常用控件 1表單利用表單可以更多地顯示信息。2標簽標簽是一組內(nèi)容(一個頁面)的標志。3文本框從文本框中獲取變量的值,也可以輸入。4列表框單擊列表框右邊的“”按鈕,就可以列出所有的選項

23、,然后單擊其中一項,就可以選中。 5單選按鈕單選按鈕是多個選擇中只能選一的控件。6復(fù)選框復(fù)選框中打上“ ”標記表示選中,去掉“ ”標記表示沒有選中。 7微調(diào)按鈕微調(diào)按鈕實際上是一個加減器,單擊“”圖標表示加1,單擊“”圖標表示減1。 8命令按鈕命令按鈕(即按壓式按鈕)顯示為帶陰影的立體矩形按鈕,如圖中的“取消”按鈕。 9組合框組合框中既可以輸入信息,又可以選擇相應(yīng)的項。輸入進去的內(nèi)容就可以作為一個選項存在,下次再輸入時直接選擇即可。10編輯框編輯框?qū)嶋H上是文本框的擴展,可編輯多行信息。11頁框(選項卡)頁框是包容控件,以上所有的控件都可放置在頁框之中。頁框內(nèi)可以設(shè)置許多頁面,如“顯示”、“文件

24、位置”等。每個頁面有一個標題(標簽),單擊標簽就可進入該頁面。2.1.6 命令語法規(guī)則通過命令方式操作,需要有固定的格式和語法。1命令結(jié)構(gòu)VFP有許多命令和函數(shù),每條命令都有確定的格式(函數(shù)和命令格式是一樣的).一般格式: 命令動詞 子句例1 DISPLAY MEMORY命令格式格式:DISPLAY MEMORYLIKE通配符TO PRINTERPROMPTTO FILE 文件功能:顯示內(nèi)存變量的當前內(nèi)容。命令都是由命令動詞和子句(選擇項)構(gòu)成的。該命令的動詞是DISPLAY MEMORY(注意這是一個固定關(guān)鍵字,不可省略,可簡寫),尖括號和方括號內(nèi)的內(nèi)容都是子句(選擇項)。(1)命令動詞命令

25、動詞一般為一個英文動詞,表示要執(zhí)行的功能。當一個動詞的字母超過4個時,從第5個字母開始都可以省略。從程序可讀性考慮,不提倡省略命令動詞的寫法。(2)范圍子句在一些命令中有范圍子句,表示記錄的范圍,具體說明如下: RECORD N 表示指定第N個記錄; NEXT N 表示從當前記錄開始的N個記錄; ALL 表示數(shù)據(jù)庫的所有記錄; REST 表示從當前記錄開始到文件結(jié)束的所有記錄。(3)FIELDS子句 該子句說明數(shù)據(jù)庫的字段名稱,一般后面跟一個字段名列表(簡稱字段表,它由一個或多個由逗號隔開的字段名組成)。在字段表中,每個字段名之間必須用逗號隔開。如果不選擇這個子句,則表示選擇所有的字段。(4)

26、FORWHILE子句 這兩條子句后面一般跟一個邏輯表達式 expL,即其結(jié)果值必須為真(.T.)或假(.F.)。這個條件短語表示篩選出滿足條件表達式(即表達式的結(jié)果為T)的記錄,以實施命令操作。 2命令書寫規(guī)則書寫VFP命令時應(yīng)遵循如下規(guī)則: 任何命令必須以命令動詞開頭,后面的多個子句通常與順序無關(guān),但必須符合命令格式的規(guī)定; 用空格分隔各子句; 一條命令的最大長度為254個字符,一行寫不下時,用分行符“;”(英文分號)在行尾分行,并在下行繼續(xù)書寫; 命令動詞一般不要縮寫,以保持程序的可讀性; 命令中的字符大小寫可以混合使用,不區(qū)分大小寫。為了美觀,可以將命令關(guān)鍵字大寫,而其它內(nèi)容小寫; VF

27、P中沒有規(guī)定的系統(tǒng)保留字,但用戶在選擇變量名、字段名和文件名時應(yīng)盡可能不使用系統(tǒng)中的命令動詞和其它系統(tǒng)已經(jīng)使用過的名字,以免程序在運行時發(fā)生混亂。 2.2 Visual FoxPro編輯窗口在應(yīng)用中經(jīng)常需要編寫文本(如寫程序),可以使用命令方式打開編輯器,格式如下。MODIFY COMMAND|?使用該命令,所編輯的文本文件名的默認擴展名為“PRG”。 2.2.1 編輯萊單 “編輯”萊單中包含很多功能選項,如圖22所示的下拉式菜單。其各菜單項的含義如下所示。 1.撤消 恢復(fù)上次命令操作執(zhí)行的結(jié)果。2.重做 對剛做的操作再做一遍。3.剪切 將當前選取的文本送至剪貼板上,原處的文本被刪除。4.復(fù)制

28、 將當前選取的文本送至剪貼板上,原處的文本不刪除。5.粘貼 將剪貼板上的內(nèi)容粘貼到當前位置上。6.選擇性粘貼 選擇性地將文本粘貼到當前位置。7.清除 刪除選取的文本。8.全部選定 選擇當前窗口下所有的文本。9.查找 自動在文本中查找要查找的字符串。10.再次查找 再執(zhí)行一次查找操作。11.替換 替換并繼續(xù)檢索。12.定位行 跳到指定行。輸入一個數(shù)字,將光標移到指定行。13.插入對象 插入一個對象,可能是圖像、聲音等。14.對象 編輯對象。15.鏈接 編輯超文本鏈接。16.屬性 設(shè)置編輯狀態(tài)下的各種參數(shù)。在編輯菜單項的右邊,顯示了可以使用的熱鍵。即單擊菜單項和直接按熱鍵操作的功能是一樣的。該編輯

29、菜單的功能與Microsoft軟件的其它“編輯”菜單功能基本相同。2.2.2 格式萊單在系統(tǒng)菜單中,“格式”菜單的菜單項是用來輔助進行文本編輯的。單擊“格式”菜單項,得到如圖23所示的下拉式菜單,其各菜單項的含義如下所示。 1.字體 提供文字的各種字體、字號等設(shè)置。2.放大字體 將選定的文字進行放大。3.縮小字體 將選定的文字進行縮小。4.一倍行距 設(shè)置當前文本的行距為默認設(shè)置的1倍。5.1.5倍行距 設(shè)置當前文本的行距為默認設(shè)置的15倍。6.兩倍行距 設(shè)置當前文本的行距為默認設(shè)置的2倍。7.縮進 將當前書寫的命令縮進一個 TAB位置(如 4個空格)。8.撤消縮進 恢復(fù)不縮進狀態(tài)。9.注釋 將

30、當前行的命令改為注釋形式。10.撤消注釋 恢復(fù)不注釋狀態(tài)2.2.3 文本編輯 下面通過實例說明文本操作方法。 例1將文中的程序改為文本。選擇“編輯”菜單中的“替換”菜單項,得到相應(yīng)對話框,在查找文本框中輸入程序,在“替換為”文本框中輸入文本(結(jié)果如圖 211所示),然后單擊“全部替換”按鈕即可。2.2.4 命令窗口VFP中所有任務(wù)都可以通過在命令窗口中輸入相應(yīng)的命令來完成。當選擇執(zhí)行某個菜單中的選項,或通過系統(tǒng)提供的工具完成某些任務(wù)時,實際上也是調(diào)用了VFP的命令,只不過這時的命令由系統(tǒng)自動生成,一些命令還會自動顯示在命令窗口中。 與其它窗口不同的是,系統(tǒng)啟動后命令窗口即出現(xiàn)在屏幕上,且不能通

31、過按ESC鍵關(guān)閉,只能通過“窗口|隱藏”操作將其隱藏;如果命令窗口沒有顯示在屏幕上,可以選擇“窗口|命令窗口”項,或按 CtrlF2鍵將其激活。 2.3 數(shù)據(jù)和數(shù)據(jù)類型2.3.1 數(shù)據(jù)的分類數(shù)據(jù)是計算機程序處理的對象,也是運算產(chǎn)生的結(jié)果。按數(shù)據(jù)的類型分類有:數(shù)值型數(shù)據(jù)、字符型數(shù)據(jù)、邏輯型數(shù)據(jù)等。按數(shù)據(jù)的處理層次分類有:常量、變量、函數(shù)和表達式。 2.3.2 數(shù)據(jù)的類型 (1) 字符型(Character):由字母(漢字)、數(shù)字、空格等任意ASCII碼字符組成。字符數(shù)據(jù)的長度為0254,每個字符占1個字節(jié)。(2) 貨幣型(Currency):在使用貨幣值時,可以使用貨幣型來代替數(shù)值型。貨幣型數(shù)據(jù)

32、取值的范圍是: -922337203685477.5807922337203685477.5807小數(shù)位數(shù)超過4位時,系統(tǒng)將進行四舍五入的處理。每個貨幣型數(shù)據(jù)占8個字節(jié)。(3) 日期型(Date):用以保存不帶時間的日期值。日期型數(shù)據(jù)的存儲格式為“yyyymmdd”其中yyyy為年,占4位,mm為月,占2位,dd為日,占2位。日期型數(shù)據(jù)的表示有多種格式,最常用的格式為mm/ddyyyy。日期型數(shù)據(jù)取值的范圍是:公元0001年1月1日一公元9999年12月31日。 (4) 日期時間型(DateTime):用以保存日期和時間值。日期時間型數(shù)據(jù)的存儲格式為 “yyyymmddhhmmss”其中yyy

33、y為年,占4位,mm為月,占2位,dd為日,占2位,hh為時間中的小時,占2位,mm為時間中的分鐘,占2位,ss為時間中的秒,占2位。日期時間型數(shù)據(jù)中可以只包含一個日期或者只包含一個時間值,缺省日期值時,系統(tǒng)自動加上1999年12月31日,省略時間值時,則自動加上午夜零點。(5) 邏輯型(Logical):用于存儲只有兩個值的數(shù)據(jù)。存入的值只有真(.T.)和假(.F.)兩種狀態(tài),占1個字節(jié)。(6) 數(shù)值型(Numeric):用來表示數(shù)量,它由數(shù)字09、一個符號(或)和一個小數(shù)點(.)組成。數(shù)值型數(shù)據(jù)的長度為120,每個數(shù)據(jù)占8個字節(jié)。數(shù)值型數(shù)據(jù)取值的范圍是:-0.9999999999E+190

34、.9999999999E+20以下數(shù)據(jù)類型只能被用于數(shù)據(jù)表中的字段:(7) 雙精度型(Double):用于取代數(shù)值型,以便能提供更高的數(shù)值精度。雙精度型只能用于數(shù)據(jù)表中字段的定義,它采用固定存儲長度的浮點數(shù)形式。與數(shù)值型不同,雙精度型數(shù)據(jù)的小數(shù)點的位置是由輸入的數(shù)據(jù)值來決定的。每個雙精度型數(shù)據(jù)占8個字節(jié)。(8) 浮點型(Float):只能用于數(shù)據(jù)表中字段的定義,包含此類型是為了提供兼容性,浮點型在功能上與數(shù)值型等價。(9) 通用型(General):用于存儲OLE對象,只能用于數(shù)據(jù)表中字段的定義。該字段包含了對OLE對象的引用,而OLE對象的具體內(nèi)容可以是一個電子表格、一個字處理器的文本、圖片

35、等,是由其他應(yīng)用軟件建立的。(10) 整型(Integer):用于存儲無小數(shù)部分的數(shù)值,只能用于數(shù)據(jù)表中字段的定義。在數(shù)據(jù)表中,整型字段占用4個字節(jié),取值范圍是:-21474836472147483647整型以二進制形式存儲,不像數(shù)值型那樣需要轉(zhuǎn)換成ASCII字符存儲。(11) 備注型(Memo);備注型用于字符型數(shù)據(jù)塊的存儲,只能用于數(shù)據(jù)表中字段的定義。在數(shù)據(jù)表中,備注型字段占用10個字節(jié),并用這10個字節(jié)來引用備注的實際內(nèi)容。實際備注內(nèi)容的多少只受內(nèi)存可用空間的限制。 備注型字段的實際內(nèi)容變化很大,不能直接將備注內(nèi)容存在數(shù)據(jù)表(.DBF)文件中。 系統(tǒng)將備注內(nèi)容存放在一個相對獨立的文件中,

36、該文件的擴展名為.DBT。 由于沒有備注型的變量,所以對備注型字段的處理,需轉(zhuǎn)換成字符型變量,然后使用字符型函數(shù)進行處理。2.4 常量與變量2.4.1 常量常量是一個命名的數(shù)據(jù)項,在整個操作過程中其值保持不變。如PI值,即31415926535是數(shù)值型常量。 VFP定義了如下類型的常量:數(shù)值型常量,如:20,16,100,1 字符型常量,用單引號或雙引號括起來的字符串,如:ABCD 邏輯型常量,只有兩種:.T.和.F 日期型常量和日期時間型常量,如:1999-04-22,1999-04-24 10:00am 2.4.2 變量VFP有3種形式的變量:內(nèi)存變量存放單個數(shù)據(jù)的內(nèi)存單元 數(shù)組變量存放多

37、個數(shù)據(jù)的內(nèi)存單元組 字段變量存放在數(shù)據(jù)表中的數(shù)據(jù)項 每個變量都有一個名稱,叫做變量名,VFP通過相應(yīng)的變量名來使用變量。變量名的命名規(guī)則是:(1) 以字母、數(shù)字及下劃線組成,中文VFP可以使用漢字作變量名。(2) 以字母或下劃線開始,中文VFP可以漢字開始。(3) 長度為1128個字符,每個漢字占2個字符。(4) 不能使用VFP的保留字。 變量的作用域包括定義它的過程以及該過程所調(diào)用的子過程范圍。2.5 運算符與表達式 運算是對數(shù)據(jù)進行加工的過程,描述各種不同運算的符號稱為運算符,而參與運算的數(shù)據(jù)稱為操作數(shù)。表達式用來表示某個求值規(guī)則,它由運算符和配對的圓括號將常量、變量、函數(shù)、對象等操作數(shù)以

38、合理的形式組合而成。 表達式可用來執(zhí)行運算、操作字符或測試數(shù)據(jù),每個表達式都產(chǎn)生唯一的值。表達式的類型由運算符的類型決定。在VFP中有5類運算符和表達式:算術(shù)運算符和算術(shù)表達式 字符串運算符和字符串表達式 日期運算符和日期表達式 關(guān)系運算符和關(guān)系表達式 邏輯運算符和邏輯表達式 2.5.1 算術(shù)運算符與算術(shù)表達式 算術(shù)表達式也稱數(shù)值型表達式,由算術(shù)運算符、數(shù)值型常量、變量、函數(shù)和圓括號組成,其運算結(jié)果為一數(shù)值。例如:50*2+(706)8的運算結(jié)果為10800。算術(shù)表達式的格式為:(1)算術(shù)運算符。VFP提供的算術(shù)運算符如表1所示。在這6個算術(shù)運算符中,除取負“-”是單目運算符外,其他均為雙目運

39、算符。它們運算的含義與數(shù)學中基本相同。運算符名稱說 明+加同數(shù)學中的加法-減同數(shù)學中的減法*乘同數(shù)學中的乘法/除同數(shù)學中的除法或*乘方同數(shù)學中的乘方,如43表示43 求余125表示12除以5所得的余數(shù)(2)表達式的書寫規(guī)則。算術(shù)表達式與數(shù)學中的表達式寫法有所區(qū)別,在書寫表達式時應(yīng)當特別注意:每個符號占1格,所有符號都必須一個一個并排寫在同一橫線上,不能在右上角或右下角寫方次或下標。例如:23要寫成23,Xl十X2要寫成X1+X2。 原來在數(shù)學表達式中省略的內(nèi)容必須重新寫上。例如:2X要寫成2*X。 所有括號都用小括號(),且括號必須配對。例如:3x+2(y+z)必須寫成3*(x+2*(y+z)

40、。 要把數(shù)學表達式中的有些符號,改成VFP中可以表示的符號。例如:要把2r改為2*pi*r。 2.5.2 字符串運算符與字符串表達式一個字符串表達式由字符串常量、字符串變量、字符串函數(shù)和字符串運算符組成。它可以是一個簡單的字符串常量,也可以是若干個字符串常量或字符串變量的組合。VFP提供的字符運算符有兩個(其運算級別相同),如表2所示。 符串表達式的格式為運算符名稱說明連接將字符型數(shù)據(jù)進行連接空格移位連接將前一數(shù)據(jù)尾部的空格移到后面數(shù)據(jù)的尾部2.5.3日期時間運算符與日期時間表達式 日期型表達式由算術(shù)運算符“、”、算術(shù)表達式、日期型常量、日期型變量和函數(shù)組成。日期型數(shù)據(jù)是一種特殊的數(shù)值型數(shù)據(jù),

41、它們之間只能進行加“”、減“”運算。有下面3種情況:兩個日期型數(shù)據(jù)可以相減,結(jié)果是一個數(shù)值型數(shù)據(jù)(兩個日期相差的天數(shù))。例如:20051219-20051116結(jié)果為數(shù)值型數(shù)據(jù):33 一個表示天數(shù)的數(shù)值型數(shù)據(jù)可加到日期型數(shù)據(jù)中,其結(jié)果仍然為一日期型數(shù)據(jù)(向后推算的日期)。例如:20051116+33結(jié)果為日期型數(shù)據(jù):20051219 一個表示天數(shù)的數(shù)值型數(shù)據(jù)可從日期型數(shù)據(jù)中減掉它,其結(jié)果仍然為一日期型數(shù)據(jù)(向前推算的日期)。例如:20051219-33 ,結(jié)果為日期型數(shù)據(jù):20051116 VFP將無效的日期處理成空日期。2.5.4 類與對象運算符 類與對象運算符專門用于實現(xiàn)面向?qū)ο蟮某绦蛟O(shè)計

42、。有以下兩種:點運算符,確定對象與類的關(guān)系,以及屬性、事件和方法與其對象的從屬關(guān)系。:作用域運算符,用于在子類中調(diào)用父類的方法。2.5.5 名表達式 在VFP中,許多命令和函數(shù)需要提供一個名??稍赩FP中使用的名有:表/.DBF文件名 、 表/.DBF別名 、 表/.DBF字段名 、 索引文件名、文件名、 內(nèi)存變量和數(shù)組名、窗口名、 菜單名、表單名、 對象名、 屬性名、 在VFP中定義一個名時,需要遵循以下原則:名中只能使用字母或下劃線開始。 名中只能使用字母、數(shù)字和下劃線字符。 不能使用VFP的保留字。 名的長度可以為1128個字符,但自由表中的字段名、索引標記名最多為10個字符。文件名按操

43、作系統(tǒng)的規(guī)定。 名不是變量或字段,但是可以定義一個名表達式,以代替同名的變量或字段的值。2.6 函數(shù)2.6.1函數(shù)的分類VFP的函數(shù)有兩種,一種是用戶自定義的函數(shù),一種是系統(tǒng)函數(shù)。自定義函數(shù)由用戶根據(jù)需要自行編寫,系統(tǒng)函數(shù)則是由VFP提供的內(nèi)部函數(shù),用戶可以隨時調(diào)用。 VFP提供的系統(tǒng)函數(shù)大約有380多個,主要分為:數(shù)值函數(shù)、字符處理函數(shù)、表和數(shù)據(jù)庫函數(shù)、日期時間函數(shù)、類型轉(zhuǎn)換函數(shù)、測試函數(shù)、菜單函數(shù)、窗口函數(shù)、數(shù)組函數(shù)、SQL查詢函數(shù)、位運算函數(shù)、對象特征函數(shù)、文件管理函數(shù)以及系統(tǒng)調(diào)用函數(shù)等14類。 2.6.2 常用函數(shù)VFP提供了大量的系統(tǒng)函數(shù)供編程人員使用,下面列出常用的一些函數(shù)。下面重

44、點介紹一些VFP中常用的函數(shù): 數(shù)值轉(zhuǎn)換字符函數(shù) str()功能:返回與指定數(shù)值表達式對應(yīng)的字符。格式:str(數(shù)值表達式,長度,小數(shù)位數(shù))返回值的類型:字符型參數(shù)意義: 數(shù)值表達式:要被轉(zhuǎn)換為字符的數(shù)值表達式。 長度:轉(zhuǎn)換后字符的長度。該長度等于小數(shù)點和小數(shù)點右邊第個數(shù)字所占字符的數(shù)目總和。如果指定長度大于所需長度,自動在前面加空格補齊。如果指定長度小于所需長度,返回一串星(*)號,表示數(shù)值溢出。如省略長度,則默認長度為10。小數(shù)位數(shù):指定返回字符串中的小數(shù)位數(shù)。如指定位數(shù)小于實際位數(shù),則返回值四舍五入。如指定位數(shù)大于實際位數(shù),則加0補齊。如省略小數(shù)位數(shù),默認為0。在指定了小數(shù)位數(shù)的情況下,

45、如指定長度(第二個參數(shù))小于總長度,但大于整數(shù)長度,則返回對小數(shù)部分做了四舍五入的字符。備注:返回后的值看起來還是數(shù)的形式,但它的數(shù)據(jù)類型已經(jīng)變了,不再是一個數(shù)值,也就是不能再用來做加、減、乘、除的算術(shù)運算,但可以和字符進行加減。 字符轉(zhuǎn)換數(shù)值函數(shù) val()功能:將數(shù)字組成的字符表達式轉(zhuǎn)換成數(shù)字值。格式:val(字符表達式)返回值的類型:數(shù)值型參數(shù)意義:字符表達式:要被轉(zhuǎn)換為數(shù)值的字符表達式。該表達式由最多16位的數(shù)字組成,若超過16位,則對其圓整。備注:val()函數(shù)從左到右返回字符表達式中的數(shù)字,直到遇到非數(shù)值型字符(忽略前面的空格)時為止。若字符表達式的第一個字符不是數(shù)字,也不是正、負

46、號,則返回0。 取系統(tǒng)日期函數(shù) date()功能:返回由操作系統(tǒng)控制的當前系統(tǒng)日期。格式:date()返回值的類型:日期型 取年份函數(shù) year()功能:從指定的日期表達式中返回年份。格式:year(日期表達式)返回值的類型:數(shù)值型參數(shù)意義:日期表達式:指定的日期表達式,該函數(shù)即是返回其年份值。 取月份函數(shù) month()功能:從指定的日期表達式中返回月份。格式:month(日期表達式)返回值的類型:數(shù)值型參數(shù)意義:日期表達式:指定的日期表達式,該函數(shù)即是返回其月份值。 取天日函數(shù) day()功能:以數(shù)值型返回日期表達式是當月的第幾天。格式:day(日期表達式)返回值的類型:數(shù)值型參數(shù)意義:日

47、期表達式:指定的日期表達式,該函數(shù)返回該日期是當月的第幾天。 取整函數(shù) int()功能:返回數(shù)值表達式值的整數(shù)部分。格式:int(數(shù)值表達式)返回值的類型:數(shù)值型參數(shù)意義:數(shù)值表達式:指定的數(shù)值表達式,該函數(shù)返回其整數(shù)部分。 四舍五入函數(shù) round()功能:對指定表達式進行四舍五入運算,并把結(jié)果返回。格式:round(數(shù)值表達式,小數(shù)位數(shù))返回值的類型:數(shù)值型參數(shù)意義:數(shù)值表達式:指定的數(shù)值表達式,該函數(shù)返回其四舍五入后的值。小數(shù)位數(shù):保留的小數(shù)位數(shù)。 刪除標記函數(shù) delete()功能:確定當前記錄是否已做刪除標記,若已做刪除標記,返回真(.t.),否則返回假(.f.)。格式:delete

48、(表別名|工作區(qū))返回值的類型:邏輯型參數(shù)意義:表別名|工作區(qū):該參數(shù)指定所要確定的表的別名或所在工作區(qū),即您可以在一個工作區(qū)去檢測另一工作區(qū)的表的記錄是否做了刪除標記,而另一工作區(qū)的表可用其別名或工作區(qū)號來指定。該參數(shù)如省略,隱含為當前工作區(qū),如有該參數(shù)的話,別名或工作區(qū)只選一個。 記錄號函數(shù) recno()功能:返回當前表或指定表中的當前記錄號。格式:recno(表別名|工作區(qū))返回值的類型:數(shù)值型參數(shù)意義:表別名|工作區(qū):該參數(shù)指定所要確定的表的別名或所在工作區(qū),即您可以在一個工作區(qū)去得到另一工作區(qū)的表的當前記錄號,而另一工作區(qū)的表可用其別名或工作區(qū)號來指定。該參數(shù)如省略,隱含為當前工作

49、區(qū),如有該參數(shù)的話,別名或工作區(qū)只選一個。記錄數(shù)函數(shù) reccount()功能:返回當前表或指定表中的記錄數(shù)目。格式:reccount(表別名|工作區(qū))返回值的類型:數(shù)值型參數(shù)意義:表別名|工作區(qū):該參數(shù)指定所要確定的表的別名或所在工作區(qū),即您可以在一個工作區(qū)去得到另一工作區(qū)的表的記錄數(shù),而另一工作區(qū)的表可用其別名或工作區(qū)號來指定。該參數(shù)如省略,隱含為當前工作區(qū),如有該參數(shù)的話,別名或工作區(qū)只選一個。 找到記錄函數(shù) found()功能:如果locate、continue、seek等查找記錄的命令成功(即找到了記錄),該函數(shù)返回“真”(.t.),否則返回“假”(.f.)。格式:found(表別名

50、|工作區(qū))返回值的類型:邏輯型參數(shù)意義:表別名|工作區(qū):該參數(shù)指定所要確定的表的別名或所在工作區(qū),即您可以在一個工作區(qū)知道另一個工作區(qū)上次查找記錄是否找到,而另一工作區(qū)的表可用其別名或工作區(qū)號來指定。該參數(shù)如省略,隱含為當前工作區(qū),如有該參數(shù)的話,別名或工作區(qū)只選一個。 表結(jié)尾函數(shù) eof()功能:確定記錄指針是否在表的結(jié)尾處。格式:eof(表別名|工作區(qū))返回值的類型:邏輯型參數(shù)意義:表別名|工作區(qū):該參數(shù)指定所要確定的表的別名或所在工作區(qū),即您可以在一個工作區(qū)知道另一個工作區(qū)表的指針是否在尾部,而另一工作區(qū)的表可用其別名或工作區(qū)號來指定。該參數(shù)如省略,隱含為當前工作區(qū),如有該參數(shù)的話,別名

51、或工作區(qū)只選一個。備注:這里所說的結(jié)尾處,并非是指最后一個記錄,而是最后一個記錄的后面,即沒有記錄。 表開頭函數(shù) bof()功能:確定記錄指針是否在表的開頭。格式:bof(表別名|工作區(qū))返回值的類型:邏輯型參數(shù)意義:表別名|工作區(qū):該參數(shù)指定所要確定的表的別名或所在工作區(qū),即您可以在一個工作區(qū)知道另一個工作區(qū)表的指針是否在開頭,而另一工作區(qū)的表可用其別名或工作區(qū)號來指定。該參數(shù)如省略,隱含為當前工作區(qū),如有該參數(shù)的話,別名或工作區(qū)只選一個。備注:這里所說的開頭,并非是指第一個記錄,而是第一個記錄的前面。 消除后續(xù)空格函數(shù) trim()功能:將字符表達式的后續(xù)空格全部刪除,并將結(jié)果返回。格式:

52、trim(字符表達式)返回值的類型:字符型參數(shù)意義:字符表達式:指定的字符表達式,該函數(shù)將刪除其后續(xù)空格。備注:trim()函數(shù)等同于rtrim()函數(shù)。 消除前導(dǎo)空格函數(shù) ltrim()功能:將字符表達式前面的空格全部刪除,并將結(jié)果返回。格式:ltrim(字符表達式)返回值的類型:字符型參數(shù)意義:字符表達式:指定的字符表達式,該函數(shù)將刪除其前面空格。2.7 對象的屬性、事件與方法對象(object)在現(xiàn)實生活中是很常見的,如:一個人是一個對象,一臺PC機是一個對象。 2.7.1 對象的屬性屬性(Propeny)是指對象的一項描述內(nèi)容,用來描述對象的一個特性,不同的對象有不同的屬性,而每個對象

53、又都由若干屬性來描述。 屬性值的設(shè)置或修改可以通過屬性窗口來進行,也可以通過編程的方法在程序運行的時候來改變對象的屬性。在程序中設(shè)置屬性的一般格式是:表單名.對象名.屬性名屬性值2.7.2 對象的事件 事件(Event)就是可能會發(fā)生在對象上的事情,是由VFP預(yù)先定義好的、能夠被對象識別的動作,也可以說是我們對對象所做的操作(或者系統(tǒng)對某個對象的操作),如按鈕被單擊、對象被拖動、被改變大小、被鼠標左鍵雙擊等等。 事件過程(Event Procudure)是為處理特定事件而編寫的一段程序。 2.7.3 對象的方法方法(Method)是指對象所固有完成某種任務(wù)的功能,可由我們在需要的時候調(diào)用。“方

54、法”與“事件”有相似之處,都是為了完成某個任務(wù),但同一個事件可完成不同任務(wù),取決于您所編的代碼是怎樣的,而方法則是固定的,任何時候調(diào)用都是完成同一個任務(wù),即其中的代碼已經(jīng)由FOXPRO系統(tǒng)編寫完成了,只需在必要的時候調(diào)用即可。 2.7.4 事件與方法的程序調(diào)用事件可以由事件的激發(fā)而調(diào)用其代碼,也可以在運行中由程序調(diào)用,而方法只能在運行中由程序調(diào)用。在程序中調(diào)用事件代碼的格式是:表單名.對象名.事件名在程序中調(diào)用對象方法的格式是表單名.對象名.方法名2.8 控件與對象 2.8.1 常用控件和內(nèi)部對象 常用控件由VFP的基類提供,共21個,每個控件用“表單控件”按鈕表示。 2.8.2 表單對象 表

55、單(Form)是應(yīng)用程序的用戶界面,也是進行程序設(shè)計的基礎(chǔ)。各種圖形、圖像、數(shù)據(jù)等都是通過表單或表單中的對象顯示出來,因此表單是一個容器對象。 在FoxPro的早期版本中表單被稱為屏幕(Screen),在Visual Basic中則稱為窗體。(1)表單的結(jié)構(gòu)。 VFP的表單具有和Windows應(yīng)用程序的窗口界面相同的結(jié)構(gòu)特征。一個典型的表單有圖標、標題、極小化按鈕、極大化按鈕、關(guān)閉按鈕、移動欄、表單體及其周圍的邊框。其中除了表單體之外的所有特征都可以部分或全部從表單中被刪除。(2)表單屬性 在VFP中,表單的屬性就是表單的結(jié)構(gòu)特征。通過修改表單的屬性可以改變表單的內(nèi)常用的表單屬性如后表所示。屬

56、性名作 用AutoCenter用于控制表單初始化時是否總是位于VFP窗口或其父表單的中央BackColor用于確定表單的背景顏色BorderStyle用于控制表單是否有邊框:系統(tǒng)(可調(diào))、單線、雙線Caption表單的標題Closable用于控制表單的標題欄中的關(guān)閉按鈕是否能用ControlBox用于控制表單的標題欄中是否有控制按鈕MaxButton用于控制表單的標題欄中是否有極大化按鈕MinButton用于控制表單的標題欄中是否有極小化按鈕Movable用于控制表單是否可移動TitleBar用于控制表單是否有標題欄WindowState用于控制表單是極小化、極大化還是正常狀態(tài)WindowTy

57、pe若表單是模式表單,則用戶在訪問windows屏幕中其他任何對象前必須關(guān)閉該表單(3)表單的事件與方法。 就像屬性那樣,只有部分的表單事件與方法經(jīng)常被使用,很多事件與方法很少被使用,除非你在編寫一個非常復(fù)雜的應(yīng)用程序??梢栽诖a窗口的“過程”下拉列表框中看到所有表單事件與方法的列表,也可以在“屬性”窗口的“方法程序”選項卡中看到所有表單事件與方法的列表。2.8.3 對象的引用(1)對象的包容層次。VFP中的對象根據(jù)它們所基于的類的性質(zhì)可分為兩類:容器類對象和控件類對象。容器類對象可以包含其他對象,并且允許訪問這些對象,例如表單集、表單、表格等控件類對象只能包含在容器對象之中,而不能夠包含其他

58、對象,例如命令按鈕、復(fù)選框等。(2)對象的引用。作為應(yīng)用程序的用戶界面,表單上可以包含許多對象,而這些對象又有可能具有互相包含的層次關(guān)系。若要引用一個對象,需要知道它相對于容器層次的關(guān)系。例如,如果要在表單集中處理一個表單的控件,則需要引用表單集、表單和控件。 絕對引用:通過提供對象的完整容器層次來引用對象。若要使表列中的控件無效,需要提供以下地址:Formset.Form.PageFrame.Page.Grid.Column.Control.Enabled=.F. 相對引用:在容器層次中引用對象時,可以通過快捷方式指明所要處理的對象。 本章小結(jié)本章主要介紹了如下內(nèi)容:VFP的性能指標、文件類

59、型及VFP運行環(huán)境等;VFP的用戶操作界面及其4種操作方式;編輯窗口及命令窗口的編輯技巧;VFP語言的基本要素,包括數(shù)據(jù)類型、常量、變量、函數(shù)和表達式。第3章 表與數(shù)據(jù)庫本章主要內(nèi)容數(shù)據(jù)表的建立與基本操作數(shù)據(jù)庫的建立與基本操作表的索引與排序表間關(guān)系與參照完整性數(shù)據(jù)共享重點表與數(shù)據(jù)庫的建立表的基本操作表的索引難點表的索引數(shù)據(jù)庫表的多表間的關(guān)系課時安排:課時(理論課時,講授課時)3.1 數(shù)據(jù)表的建立VFP8.0中要處理的數(shù)據(jù)都是以二維表格的形式存放的 ,表文件的擴展名為.DBF。表分為自由表和數(shù)據(jù)庫表兩種。表由行和列組成,表中的每一行在VFP8.0中稱為一條記錄,每一列稱為一個字段。 每個表包括表

60、名、表結(jié)構(gòu)和表記錄三部分,如下表所示。3.1.1 表的基本概念學生信息表學號姓名性別出生日期班級照片備注0301022王大偉男87/04/11計3班照片簡歷0301005李明亮男86/11/01計3班照片簡歷0302011趙 紅女86/03/13計1班照片簡歷0203005張一敏男87/10/14計1班照片簡歷0203023李小萌女87/05/06計2班照片簡歷0302018歐陽偉強男85/09/22計1班照片簡歷3.1.2 設(shè)計表結(jié)構(gòu)1.字段名 字段名可以由字母、數(shù)字、下劃線及漢字組成,但必須以字母或漢字開頭,字段名中不允許有空格。自由表中的字段名長度不能超過10個字符,數(shù)據(jù)庫表允許使用長字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論