VFP教材.ppt_第1頁
VFP教材.ppt_第2頁
VFP教材.ppt_第3頁
VFP教材.ppt_第4頁
VFP教材.ppt_第5頁
已閱讀5頁,還剩165頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、全國計算機等級考試二級教程Visual Foxpro 6.0 程序設計,編寫:教育部考試中心 講授:葉茂功,第一章 Visual FoxPro基礎,第三章 數據與數據運算,第五章 關系數據庫標準語言SQL,第七章 程序設計基礎,第九章 菜單設計與應用(略),第二章 VFP6.0 系統(tǒng)初步,第四章 數據庫及其操作,第六章 查詢與視圖,第八章 表單設計與應用,第十章 報表設計(略),返 回,目 錄,第十一章 開發(fā)應用程序(略),第十二章 上機指導(略),第一章 Visual FoxPro 基礎,Visual FoxPro(簡稱VFP或VF) 是一個采用可視的、面向對象的程序設計方法的關系型數據庫管

2、理系統(tǒng)。是唯一一個與歷史上的數據庫完全兼容的優(yōu)秀系統(tǒng)。它具有簡單易學、靈活方便、結構緊湊等優(yōu)點。是當今流行的數據庫管理系統(tǒng)之一。,1.1 數據庫基礎知識,1.1.1 計算機數據管理的發(fā)展,1、數據與數據處理 數據存儲在某媒體上能夠識別的物理符號。 數據的概念包括兩個方面:其一是數據內容;其二是數據形式。內容不變,形式可以多樣,如日期表示。數據的范圍在不斷拓展,現已包括數值、字串、圖、聲等。 數據處理將數據轉換成信息的過程。信息是數據處理的結果。數據、信息是相對的,例如年齡即可是數據,又可以是信息,因此有時有人把“處理數據得出信息”說成“信息處理”。,1/17,、計算機數據管理,2/17,1.1

3、.2 數據庫系統(tǒng) 1.有關數據庫的概念,數據庫 數據庫是存儲在計算機存儲設備上,結構化的相關數據集合。它包括數據和數據間的聯系,往往被多個用戶、多個應用程序所共享。 數據庫應用系統(tǒng) 數據庫應用系統(tǒng)是指系統(tǒng)開發(fā)人員利用數據庫系統(tǒng)資源開發(fā)出來的,面向某一類實際應用的應用軟件系統(tǒng)。 它是以數據庫為基礎和核心的計算機應用系統(tǒng)。 例如:財務管理系統(tǒng)、圖書管理系統(tǒng)、教學管理系統(tǒng)等等。,數據庫管理系統(tǒng),數據庫管理系統(tǒng)(DBMS)是對數據庫的建立、使用和維護進行專門管理的軟件系統(tǒng)。,數據庫系統(tǒng),數據庫系統(tǒng)是指引進數據庫技術后的計算機系統(tǒng)。它由五部分組成,各層次間的關系如右圖所示:,硬件系統(tǒng),操作系統(tǒng),數據庫管

4、理系統(tǒng),數據庫應用系統(tǒng),開發(fā)人員,最終用戶,數據庫管理員,3/17,2.數據庫系統(tǒng)的特點,實現數據共享,減少數據冗余 建立數據庫時,從全局出發(fā)確定數據庫結構,充分發(fā)揮數據共享的優(yōu)勢,最大限度地減少數據冗余。 采用特定的數據模型 庫管理系統(tǒng)不同,數據模型就不同,庫的結構也就不同。 具有較高的數據獨立性 系統(tǒng)實現了應用程序對總體邏輯結構、物理存儲結構之間較高的獨立性。用戶只用操作應用程序,無需考慮邏輯結構和數據存儲位置。 有統(tǒng)一的數據控制功能 系統(tǒng)提供必要的保護措施,有并發(fā)訪問控制功能、安全控制功能、和數據完整性控制功能。保證數據庫可以被多個用戶或應用程序共享,允許多個用戶同時使用同一個數據庫。,

5、4/17,1.1.3 數據模型,1.實體的描述 實體 客觀存在并且可以相互區(qū)別的事物稱為實體??梢允菍嶋H事物,如職工、圖書或抽象事件,如退休、借書等。 實體的屬性 描述實體的特性稱為屬性。例如職工屬性可有:職工號、姓名、性別、出生年月等。圖書屬性可有:總編號、分類號、書名、作者、單價、出版社等。借書屬性可有:圖書編號、借閱人、借閱時間、歸還時間等。,實體型和實體集,一個實體可用屬性值的集合表示,而屬性的集合則表示一種實體的類型,簡稱實體型。同類型實體的集合,稱為實體集。 例如:(姓名,性別,職稱,執(zhí)教科目)表示教師類型;(華羅庚,男,教授,數學)表示一個教師;多個教師的集合就是教師實體集。 實

6、體集的表示 在VFP中,用“表”來存放實體集,用“字段”表示實體的屬性。字段值的集合組成表的一條記錄,代表一個實體。所有記錄就是實體集。,5/17,2.實體間的聯系及聯系的種類,一對一聯系(one-to one relationship) 主表中的一條記錄只與從表中的一條記錄相關聯,并且主表的記錄不同,對應的從表中的記錄也不同。 例如,同一單位的人事表的記錄就與工資表的記錄存在一對一的聯系。這聯系是靠職工號相同為依據的。 一對多聯系(one-to-many relationship) 主表中的一條記錄與從表中的多條記錄相關聯,且從表中的每條記錄只能與主表中的一條記錄相對應。 是最普遍的聯系,如

7、一部門有多個職工,每個職工只能屬于一個部門等。 多對多聯系(many-to-many relationship) 主表中的一條記錄與從表中的多條記錄相關聯,且從表中的每條記錄也與主表中的多條記錄相對應。 例如一個老師有多個學生,反之每一個學生也有多個老師。,6/17,學生名,教研室,3.數據模型簡介,層次數據模型 用樹形結構表示實體及實體間聯系的模型稱為層次模型。 用層次模型建立的數據庫是層次數據庫。它反映實體間的一對多聯系,不能直接表示多對多的聯系,不便于擴充和修改。,系名,地址,電話,教研室名電話,教師名住處,教師名住處,教研室名,電話,教師名,住處,學生名,成績,成績,網狀模型 用網狀結

8、構表示實體及實體間聯系的模型稱為網狀模型。 用這種模型建立的數據庫是網狀數據庫。網狀數據庫難以實現數據的修改和擴充。,專業(yè)系,課程,學生,教師,任課,選課,關系數據模型 用二維表結構來表示實體及實體間的聯系的模型稱為關系模型。 操作的對象和結果都是二維表。它描述一致、模型單一、理論完備、易學易用,因此應用廣泛。新推出的數據庫系統(tǒng)幾乎都是關系型的。,7/17,1.2關系數據庫1.2.1 關系模型 (1).關系術語,對關系的描述稱為關系模式,一個關系模式對應一個關系的結構。 其格式為: 關系名(屬性名1,屬性名2,屬性名n) 在VFP中表示為表結構: 表名(字段名1,字段名2,字段名n),一個關系

9、就是一張二維表,每個關系有一個關系名,在VFP中,一個關系存儲為一個文件,文件的擴展名為“.DBF”,稱為“表”。,關系模式,關系,元組,二維表中(水平方向)的一行是一個元組。 元組對應一個具體的記錄。一個表中若包含多條記錄,也可以說這個關系中包含多個元組。,屬性,二維表中垂直方向的列稱為屬性,列名即屬性名。在VFP中表示為“字段名” 。 用實體屬性描述實體,用字段名及其類型組成VFP表的結構。,8/17,域,域是屬性的取值范圍,即不同元組對同一個屬性的取值所限定的范圍。例如:性別只能從“男”、“女”中取其一。,關鍵字,能夠(唯一地)標識一個元組的屬性或屬性的組合。 在VFP中,關鍵字表示為字

10、段或字段的組合。,外部關鍵字,如果表中的一個字段不是本表的主關鍵字或候選關鍵字,而是另一個表的主關鍵字或候選關鍵字,則這個字段(屬性)就稱為外部關鍵字。,(2).關系的特點,關系必須規(guī)范化,表中不能再含表. 同一關系中不能出現相同屬性名. 關系中不允許有完全相同的元組. 一個關系中元組的次序無關緊要. 一個關系中屬性的次序無關緊要.,(3).實際關系模型,例1.1部門職工工資關系模型,9/17,1.2.2關系運算,R,R,S,S,S,R,11/17,1.傳統(tǒng)的集合運算 設有兩個相同結構的關系R、S,例如R是參加計算機小組的集合,S是參加橋牌小組的集合。 并 并是由屬于這兩個關系的元組組成的集合

11、. R 并 S就是參加計算機小組或參加橋牌小組的集合。 差 差是由屬于R但不屬于S的元組組成的集合,即是從R中去掉S中也有的元組。R 差 S就是參加計算機小組而又沒有參加橋牌小組的集合。 交 交是由既屬于R又屬于S的元組組成的集合。即交的結果是R和S的共同元組。R 交 S就是既參加計算機小組又參加橋牌小組的集合。,2.專門的關系運算,選擇 從關系中找出滿足給定條件的元組。 是從行中進行選擇的運算,其關系模式不變。選擇的元組是原關系的一個子集。,部門號=“d01”,投影,從關系模式中指定若干個屬性。 投影是從列中進行選擇的運算。提供了垂直調整關系的手段。,職工號、姓名,12/17,聯接,聯接是關

12、系的橫向結合。聯接運算將兩個關系模式拚接成一個更寬的關系模式,生成的新關系中包含滿足聯接條件的元組。 聯接是通過聯接條件來控制的,聯接條件中將出現兩個表中的公共屬性名,或具有相同語義可比的屬性。聯接結果是滿足條件的所有記錄。,自然聯接,在聯接運算中,按照字段值相等為條件進行的聯接操作稱為等值聯接。自然聯接是去掉重復屬性的等值聯接。,不投影,等值聯接,重復字段,13/17,1.3數據庫設計基礎 1.3.1數據庫設計步驟 1.設計原則,一個表描述一個實體或實體間的一種聯系。避免大而雜的表,首先分離需要作為單個主題而獨立保存的信息,將不同信息分散在不同表中。,盡量避免在表之間出現重復字段,除了保證表

13、中有反映與其它表之間存在聯系的外部關鍵字之外,盡量避免在表之間出現重復字段。例如在課程表中如有課程名字段,在選課表中就不應再有。,表中字段必須是原始數據或基本數據元素,表中不應包括通過計算可以得到的“二次數據”或多項數據的組合。 例如在職工表中,如果有了身份證號字段,就不應再有年齡和出生年月字段。,用外部關鍵字保證表間聯系,表間關聯依靠外部關鍵字維系,使得表具有合理結構,不僅存儲了所需要的實體信息,并且反映出實體之間客觀存在的聯系。,遵從概念單一化“一事一地”原則,14/17,15/17,1.3.2數據庫設計過程(1)需求分析,需求分析;確定表;定字段;定聯系;求精。,信息需求。數據、類型、域

14、 處理需求。功能、方式、場合 安全性和完整性要求。 多交流、多收集、耐心、細致,弄清業(yè)務流程、瓶頸問題,收集報表、合同、檔案、單據、計劃等等,2.設計步驟,(2)確定需要的表,是數據庫設計中技巧性最強的一步,因為用戶的需求往往不能直接成為設計數據庫的線索,還需要認真分析、抽象、挖出本質特性,才能確定需要的表。,(3)確定所需字段,(4)確定聯系,一對多聯系 。 “一方”的主關鍵字段應在“多方”的表中。 多對多聯系。創(chuàng)建含有兩個表的主關鍵字的“紐帶表”,改多對多聯系為兩個一對多聯系。 參見圖書讀者關系 一對一聯系。考慮合并。,(5)設計求精,根據用戶意見反復修改和調整,每字段直接和實體相關。 以

15、最小邏輯單位存儲信息。 表中字段必須是原始數據。 確定主關鍵字字段。,例1.2 圖書讀者借閱關系模型,10/17,1993,1994 Ms FoxPro 2.5b,2.6 Windows 16位微機,1992 Fox-MS FoxPro 2.0,2.5 Dos 16位微機,1987 Ashton-tate dbase Dos 16位微機,1984,1985 Ashton-tate dbase,+ Dos 16位微機,1998 Ms VFP 6.0 Windows 32位微機,1995.12 Ms VFP 5.0 Windows 32位微機,1995.6 Ms VFP 3.0 Windows 3

16、2位微機,1.4Visual FoxPro系統(tǒng)概述,Visual FoxPro 6.0(中文版)是Microsoft公司1998年發(fā)布的可視化編程語言集成包Visual Stadio中的一員。是可運行于Windows 95/98/2000、Windows NT平臺的32位功能強大的面向對象的微機數據庫開發(fā)系統(tǒng)。,1.4.1歷史沿革,Dbase,70年代末 Ashton-tate dbase Dos 8位微機,1987 Fox Foxbase+1.0 2.1 Dos 16位微機,1989 Fox FoxPro 1.0 Dos 16位微機,Foxbase,FoxPro,VFP,16/17,1.4.

17、2VFP 6.0的特點 1.增強的項目及數據庫管理,借助項目管理器可創(chuàng)建和集中管理應用程序中的任何元素;可訪問所有向導、生成器、工具。使用快速選取記錄集的技術。允許多個用戶同時創(chuàng)建或修改。,2. 開發(fā)的生產率高,注重歷史延續(xù)性,使過去用DBASE、Foxbase、FoxPro編寫的程序不加或稍加修改即可使用。 提供了各種工具、向導和技術,許多功能不用編程即可自動生成。,3.互操作性和支持Internet,支持具有對象的鏈接與嵌入(OLE)拖放,可以在VF 6.0 和其他應用程序之間以及在VF內部移動數據。容易創(chuàng)建與Internet或其它基于Windows應用程序一起使用的應用程序。,4.充分利

18、用已有數據,提供了轉換器工具,可將VFP 3.0 、VFP 5.0的各種文件轉換為VFP 6.0文件。xBASE、FoxPro、VB、Excel 、Word、文本數據等都可共享。,17/17,第二章 VFP系統(tǒng)初步2.1 VFP 6.0的安裝與啟動2.1.1 基本配置要求:,處理器:486DX/66 MHz以上;內存:16MB以上;硬盤空間:典型85, 最大90MB;有鼠標、光驅、VGA以上彩顯;操作系統(tǒng):Windows 95/98以上。,將VFP系統(tǒng)光盤插入光驅。 打開光盤,雙擊setup.exe文件。 按向導提示,單擊“下一步”。 選擇“接受協議”,單擊“下一步”。 鍵入產品ID和用戶信息

19、,擊“下一步”。 選擇公用文件夾位置,按“典型安裝”或“自定義安裝”,直至安裝結束。,2.1.2 安裝VFP 6.0 1.安裝VFP系統(tǒng)的步驟:,1/17,安裝示例 VF系統(tǒng)安裝后,自動啟動MSDN安裝向導,只需插入MSDN光盤,擊“下一步”,選“自定義”,選“VFP產品示例”,直至安裝完畢。 MSDN是一種訂閱形式的一年四期的光盤資料庫,分開發(fā)版、專業(yè)版、宇宙版三個級別。Visual Studio企業(yè)版包括:VB、VC+、VJ+、VID、VFP及VSS。 安裝聯機文檔 Visual FoxPro 6.0聯機文檔也需要使用“MSDN安裝向導”進行安裝。先選取“自定義”選項,然后選擇“Visua

20、l FoxPro 6.0文檔”復選框,按提示操作即可。,2.安裝示例和聯機文檔,3.安裝后自定義系統(tǒng),打開“控制面板”,雙擊“添加/刪除程序”圖標,出現屬性對話框;選中“Visual FoxPro6.0”,單擊“添加/刪除”鈕,出現安裝維護對話框;單擊“添加/刪除”鈕,出現“VFP自定義安裝”對話框;根據需要選擇或清除對話框組件前的復選框,單擊“繼續(xù)”,直至結束。,2/17,2.1.3 啟動與退出VFP 6.0,擊“開始”,選“程序” MS Visual FoxPro 6.0MS Visual FoxPro 6.0單擊。 第一次啟動時,將彈出“歡迎使用”屏,單擊“關閉此屏” ,則進入主界面。

21、選中“以后不再顯示此屏”后,再單擊“關閉此屏”,則以后就直接進入主界面。,單擊標題欄的“關閉窗”。 從“文件” 菜單中選“退出” 擊左上方狐貍圖標,從下拉菜單中選“關閉”或按Alt+F4。 在命令窗口中鍵入quit,回車,2.退出系統(tǒng),1.啟動系統(tǒng),2.2 VFP的用戶界面2.2.1 VFP的主界面,在命令窗中鍵入各命令,回車。已執(zhí)行命令在窗口中保留,需再執(zhí)行時,將光標移至該行,回車即可。 開閉命令窗口方法:擊“窗口”“命令窗口”打開;擊關閉窗關閉。擊工具按鈕 按下打開;彈起關閉。按Ctrl+F2打開;按Ctrl+F4關閉。,1. VFP的三種工作方式,利用菜單或工具欄按鈕。 在命令窗口中輸入

22、命令。 用生成器產生或自編程序。 前兩種屬于交互式,后一種為自動化工作方式。,2.菜單操作,鼠標操作:單擊菜單項,從下拉菜單中選擇。 鍵盤操作:Alt+熱鍵(帶下劃線的字母鍵)。 光標操作:選子菜單時,按光標(箭頭)鍵移動光帶到所需菜單選項,回車。,3. 命令操作,4. 項目管理器窗口,項目管理器是各種數據和對象的主要組織工具。采用分類管理,是同一項目各文件的集合,是系統(tǒng)的控制中心。 其文件以.pjx和.pjt保存。,4/17,2.2.2 工具欄的使用,默認界面僅包括“常用”和“表單設計器”工具欄,顯示在菜單欄下面,用戶可以將其拖放到任意位置。此外,還提供了其他9個工具欄,它們是:報表控件、報

23、表設計器、表單控件、布局、查詢設計器、打印預覽、調色板、視圖設計器、數據庫設計器。,1. 顯示或隱藏工具欄,工具欄會隨文件的開關而自動開關,也可在任何時候開關任何工具欄。方法是,擊“顯示”菜單,從下拉菜單中選“工具欄”,在彈出的對話框中選擇后,擊“確定”鈕即可。 也可在任何一個工具欄的空白處右擊,打開工具欄快捷菜單,從中選擇開閉項或打開工具欄對話框。,5/17,2. 定制工具欄,用戶創(chuàng)建自己的工具欄或修改現有的工具欄統(tǒng)稱為定制工具欄。創(chuàng)建步驟是: 擊“顯示”菜單,選“工具欄” 。 單擊“新建”按鈕,彈出“新工具欄”對話框。 鍵入工具欄名稱,例如“new”,擊“確定” 。 選“定制工具欄”對話框

24、左側“分類”中之一。 根據需要選右側按鈕,拖到“new”工具欄中。 單擊“定制工具欄”對話框上的“關閉”按鈕。 修改:擊“顯示” , “工具欄” ,選擇后擊“定制”,增刪后單擊“定制工具欄”對話框上的“關閉”按鈕。,6/17,2.2.3 VFP的配置,VFP的配置決定其外觀和行為的默認值。可使用“選項”對話框設置:單擊“工具”菜單下的“選項”,打開其對話框,選擇選項卡。選項共12個,分別是:顯示、常規(guī)、數據、遠程數據、文件位置、表單、項目、控件、區(qū)域、調試、語法著色和字段映像。均用交互方式查看和設置。也可以用set命令設置。,3. 修改現有工具欄,擊“顯示”菜單,選“工具欄”,彈出其對話框。

25、單擊“定制”按鈕,彈出“定制工具欄”對話框。 向要修改的工具欄上拖放新圖標按鈕可增加新工具。 把某圖標拖到工具欄外可刪除該工具。 單擊“定制工具欄”對話框上的“關閉”按鈕。,7/17,1.使用“選項”對話框,在區(qū)域選項卡中設置日期時間顯示方式。,設置默認目錄,選“文件位置”卡,選“默認目錄”,按“修改”,出現“更改文件位置”對話框,選中“使用默認目錄”激活“定位默認目錄”,鍵入或選好路徑后按“確定”。,在“文件位置” 卡中,選 “幫助文件”,擊“修改” 。通過“更改文件位置”對話框指定文件。擊“確定”。 如果已安裝MSDN,則幫助的默認行為是調用Msdnvs98.col。如果該文件不存在,則將

26、默認使用Foxhelp.chm。,設置默認幫助文件,設置日期和時間顯示格式,8/17,2. 保存設置,VFP配置修改既可以是臨時的,也可以是永久的。臨時設置保存在內存中,本次有效,退出時釋放。永久設置保存在Windows注冊表中,作為以后再啟動的默認設置。,保存為本次有效,在“選項”對話框中選擇各項設置后,單擊“確定”按鈕,關閉“選項”對話框。,保存為默認設置 設置更改后,“設置為默認值”按鈕被激活,單擊之,再單擊“確定”按鈕,關閉“選項”對話框。,9/17,2.3 項目管理器,處理數據和對象的組織工具,提供了便利的工作平臺。 一可用簡便的、可視化的方法來組織和處理一切文件。 二可將應用系統(tǒng)編

27、譯成一個應用文件或可執(zhí)行文件。,2.3.1 創(chuàng)建項目,1.創(chuàng)建項目 擊“文件”菜單,選“新建” 。 選“項目”,擊“新建文件”圖標。 輸入項目名稱,選擇文件夾。 單擊“保存”按鈕。,打開: 擊“文件”,選“打開”或擊工具欄的“打開”鈕。 在“文件類型”中選“項目” 。 雙擊項目名或選后按“確定”。 關閉:單擊項目管理器右上方的“關閉”按鈕。,2.打開和關閉項目,10/17,3.各類文件選項卡,“數據”選項卡,包含數據庫、自由表、查詢和視圖。,”文檔”選項卡,包含表單、報表和標簽。,“類”選項卡,顯改自己創(chuàng)建的要修改的類,“代碼”選項卡,三大類程序.prg文件、函數API Libries和.ap

28、p文件。,“其他”選項卡,包括文本文件、菜單文件和其他文件,如位圖文件.bmp、圖標文件.ico等。,11/17,共有6個選軟項卡,其中“數據”、“文檔”、“類”、“代碼”、“其他”5個選項卡,用于分類顯示各種文件,“全部”選項卡用于集中顯示該項目中的所有文件。 選項卡為數據提供了一個組織良好的分層結構視圖,如果某類型數據項有一個或多個數據項,則其標志前有個加號。單擊加號可查看列表,單擊減號可折疊列表。,2.3.2 使用項目管理器,在項目管理器中,用戶可以通過可視化的直觀操作在項目中創(chuàng)建、添加、修改、移去和運行指定的文件。,1.創(chuàng)建文件,定類型,擊“新建”命令,打開相應設計器創(chuàng)建新文件。,2.

29、添加文件,選類型,擊“添加”按鈕,在“打開”對話框中選擇要添加的文件,擊“打開”對話框的“確定”。,4.移去文件,選文件,擊“移去”按鈕或從“項目” 菜單中選擇“移去文件”命令,系統(tǒng)將出現提示框。擊“移去” 則從項目中移去,該文件仍存在;擊“刪除” 則移去且刪除文件。,5.其他按鈕,“瀏覽” :僅當選定表時用。 “關閉”與“打開” :選定庫時用。 “預覽” :打印預覽用。 “運行” :選查詢,表單,程序時用。 “連編” :連編一項目或應用程序,3.修改文件,選文件,擊修改或選擇項目菜單的“修改文件”命令,打開相應的設計器,修改文件。,12/17,2.3.3 定制項目管理器,移動和縮放,將鼠標指

30、針放置在窗口的標題欄上拖拽鼠標即可移動項目管理器窗口的位置。 將鼠標放置在窗口頂端、低端、兩邊或角上,拖動鼠標便可以擴大或縮小窗口的尺寸。,折疊項目管理器,單擊右上角的 按鈕項目管理器窗口變?yōu)檎郫B狀態(tài),窗口僅顯一個選項卡,不顯命令按鈕,同時 變成 ,稱為“還原”按鈕。單擊之,則窗口展開還原為正常界面。,拆分項目管理器,若要還原拆分,可單擊選項卡上的“關閉”按鈕,也可用鼠標將其拖回。 單擊 折疊項目管理器,選定一個選項卡,將其拖離。此時選項卡上出現圖釘圖標,單擊之,則顯示在頂層。再單擊,取消頂層顯示。,停放項目管理器,將項目管理器拖到VFP主窗口頂部。停放后變成了窗口工具欄的一部分,不能將其整個

31、展開,但是可以單擊每個選項卡來進行相應的操作。可以從中拖開選項卡。,13/17,2.4VFP向導、設計器、生成器簡介,Vvisual FoxPro 6.0提供了許多真正面向對象的程序設計工具,主要是各種向導、設計器和生成器,本節(jié)將簡要介紹這些工具的功能、使用原則及相關知識, 具體的使用方法則在以后各章節(jié)中再予以詳述。,2.4.1VFP 的向導,向導是一種交互式程序,通過用戶在一系列向導屏幕上回答問題或選擇選項,幫助用戶快速完成一般性的 任務,自動生成執(zhí)行任務的程序。 VFP提供向導20多個,常用的有創(chuàng)建表單、編排報表、建立查詢、制作圖表、生成透視表、生成交叉表以及在Web上按HTML格式發(fā)布等

32、。,14/17,1.啟動向導,項目管理器-類型 “新建” “新建XX” “XX向導” 。 “文件” “新建” “新建”對話框 “新建”按鈕類型向導 新建工具鈕 在“工具”菜單中選擇“向導”子菜單。 單擊“工具欄”上的“向導”圖標按鈕。,2.使用向導,依次回答問題,單擊“下一步”。 操作中出現錯誤或想法變化,擊“上一步”修改。中止操作擊“取消”。遇困難按F1。 最后提供標題,滿意擊“完成”。 如某步擊“完成”,則用默認值。,3.修改用向導創(chuàng)建的項,用相應的設計器打開修改,不能用向導打開用向導建立的文件。但是可以在退出向導之前預覽向導結果并做適當的修改。,15/17,2.4.2VFP的設計器,VF

33、P的設計器是創(chuàng)建和修改應用系統(tǒng)各種組件的可視化工具。利用各種設計器使得管理數據變得輕而易舉,縮短開發(fā)周期、提高開發(fā)效率。,1.各種設計器,包括表、數據庫、報表、查詢、視圖、表單、菜單、數據環(huán)境、連接設計器。,2.打開設計器,有三種方法: 在“項目管理器”下,選相應選項卡,選類型,擊“新建”,再擊“新建XX”對話框中的新建按鈕。 從“文件”菜單中選“新建”或擊工具上的“新建”鈕,選類型,擊“新建文件”鈕。 從“顯示”菜單中打開。,16/17,2.4.3VFP的生成器,生成器是帶有選項卡的對話框,用于簡化對表單、復雜控件和參照完整性代碼的創(chuàng)建和修改。 一般在如下5種情況下啟動生成器: 用表單生成器

34、來創(chuàng)建修改表單。 對表單的控件使用相應生成器。 用自動格式生成器設置控件格式。 使用參照完整性生成器。 使用應用程序生成器生成應用程序。,1.各種生成器,包括表單、表格、編輯框、列表框、文本框、組合框、命令按鈕、選項按鈕、自動格式、參照完整性、應用程序生成器,2.啟動生成器,以后相應章節(jié)介紹。,17/17,第三章數據與數據運算,返 回,3.1 常量與變量,3.2 表達式,3.3 常用函數,第三章 數據與數據運算,我們處理的數據,有存在表中的數據,還有存在內存中的數據。本章我們只談存在內存中的數據。根據計算機處理數據的形式來劃分,可分為:常量、變量、表達式和函數四種。 常量和變量是數據處理和數據

35、運算的基本對象,而表達式和函數則體現了語言對數據進行運算和處理的能力及功能。,3.1常量與變量,每個數據都有一定的類型,數據的類型決定了數據的存儲方式和運算方式,所以在定義常量和變量時也必須指明其類型。 他們的類型包括字符型、數值型、貨幣型、邏輯型、日期型和日期時間型6種。,1/11,3.1.1常量,常量用以表示一個具體的、不變的值。 不同類型的常量有不同的書寫格式和不同的取值范圍。,1.數據型常量,數據型常量即常數,用來表示數量的大小,由數字09、小數點和正負號構成。若整數部分不為0,則首位不可為0??梢允褂每茖W記數法書寫。取值范圍為:-1019 1020 。 例如:12、3.45、-6.4

36、7、5.87E12(5.871012)、 1.6E-13(1.610-13)。,2.貨幣型常量,用來表示貨幣值,其書寫格式與數值型常量類似,但要加上一個前置的“$”。在存儲和計算時,采用4位小數,多余小數位自動四舍五入。不能用科學記數法,在內存中占8個字節(jié)。取值范圍: 922337203685477.5807 922337203685477.5807,2/11,3.字符型常量,字符型常量也稱為字符串,其表示方法是用兩個成對出現的半角的單引號、雙引號或方括號把字符串夾起來。這里的單引號、雙引號和方括號不作為常量本身的內容,只規(guī)定常量的起止界限,所以叫做“定界符”。不包含任何字符的字符串叫“空串”

37、(“”),它和包含空格的字符串(“ ”)是不同的。,4.日期型常量,基本知識 定界符是一 對花括號,內含年月日,用“/”、“-”、“.”和空格分隔,“/”為默認分隔符。 傳統(tǒng)格式 mm/dd/yy和嚴格格式 yyyy-mm-dd 占8字節(jié)。取值范圍:0001-01-019999-12-31。 嚴格格式可在任何情況下使用,傳統(tǒng)格式只在set strictdate to 0狀態(tài)下使用。,3/11,4.影響日期格式的設置命令,Set mark to 分隔符 設置分隔符(-/.空格 ),默認“/” Set date to 短語 設置日期格式,默認AMERICAN 短語設置 日期格式 短語設置 日期格式

38、 AMERICAN mm/dd/yy ANSI yy.mm.dd BRITISH/FRENCH dd/mm/yy GERMAN dd.mm.yy ITALIAN dd-mm-yy JAPAN yy/mm/dd USA mm-dd-yy MDY mm/dd/yy DMY dd/mm/yy YMD yy/mm/dd,SET CENTURY ON|OFF|TO 世紀值 ROLLOVER 年份參照值 用于確定世紀的顯示與否 ON:指定在10位日期格式中,用四位數字表示年。 OFF:指定在8位日期格式中,用兩位數字表示年。 在進行日期計算時假定它表示的是二十世紀。 To選項確定用量數字表示的年份所處的世

39、紀。 Set strictdate to 0|1|2 用于設置是否檢查日期格式 0:不檢查 1:檢查,默認值 2:檢查且影響TOD()/CTOT()格式,4/11,5.日期時間型常量,包括日期和時間兩部分內容: , 。日期部分也分嚴格和傳統(tǒng)兩種;時間部分格式為:hh:mm:ssa|p 分別表示時、分、秒、上午、下午。上/下午也可用默認的AM/PM表示。若無A/P,則為24時制該型用8字節(jié)存儲。,6.邏輯型常量,邏輯型數據只有邏輯真和邏輯假兩個值。邏輯真的常量表示形式有:.T.、.t.、.Y.、.y.。邏輯假的常量表示形式有:.F.、.f.、.N.、.n.。 前后的半角英文句號是必不可少的,要注

40、意。邏輯性數據只占用一個字節(jié)。,日期型常量舉例,Set cent on Set mark to Set date ymd ? 2003-08-21 2003/08/21,set cent off set mark to “.” set date mdy ? 2003-08-21 08.21.03,Set strict to 0 ?2003-08-21,08.21.03 08.21.03 08.21.03,Set mark to “;” ?2003-08-21,08.21.03 08;21;03 08;21;03,5/11,3.1.2變量,變量是能夠隨時更改的量。VFP的變量分為字段變量和內存變

41、量兩大類。字段變量就是表中的字段名;內存變量是內存中的一個存儲區(qū)域,變量值就是存放在這個區(qū)域中的數值。變量的類型取決于變量值的類型。內存變量的類型包括字符型(C)、數值型(N)、貨幣型(Y)、邏輯型(L)、日期型(D)和日期時間型(T)。,1.簡單內存變量,每一個變量都有一個名字,可以通過變量名訪問變量。命名規(guī)則是:以字母(漢字)或下劃線開頭,由字母、數字、下劃線組成,不超過128個字符,不為系統(tǒng)保留字。如果當前表中存在一個同名的字段變量,則在訪問內存變量時,必須在內存變量名前加前綴M.(或M-),否則訪問同名字段變量。,2.數組,數組是內存中連續(xù)的一片存儲區(qū)域,由一系列元素組成,每個數組元素

42、可通過數組名和相應的下標來訪問。每個元素都相當于一個簡單變量,可分別賦值。 賦值、使用前必須先說明,格式是: dimension (, ) ,或declare (, ) , 。,6/11,3.1.3內存變量常用命令,有關內存變量的命令很多,例如定義、賦值、顯示、清除、保存至文件、從文件中還原、作用域選擇和變更隱藏、與字段變量的交換等?,F在只介紹最常用的命令。,1.內存變量的賦值,給簡單內存變量賦值不必事先定義,給數組元素賦值必需先定義。賦值命令格式是: = Store to 格式1一次只能給一個變量賦值,格式2一次能給幾個變量賦值.可通過重新賦值來改變內容和類型,2.表達式值的顯示,格式1:?

43、 格式2:? 格式1表明在下一行起始處開始輸出,若表達式為空,則輸出一空行。 格式2表明在當前光標處開始輸出。,7/11,3.內存變量的顯示,list memory liketo printer|to file display memory liketo printer|to file 格式1連續(xù)顯示,格式2分屏顯示符合條件的所有變量名、作用域、類型和取值。 通配符包括*和?,*表示任意多個字符,?表示任意一個字符。Like 短語表示只顯示與含通配符的名稱骨架(以后簡稱骨架)匹配的內存變量。 to printer 和to file 子句用于在顯示的同時送往打印機,和存入給定文件名的文本文件中,

44、文件的擴展名是.txt。,4.內存變量的清除,Clear memory 清除所有內存變量。 Release 清除表內的。 release all extended在人機對話時同,在程序中需加extended,否則不能清除公共內存變量。 release all like |except選like短語清除匹配的,選except短語清除不匹配的內存變量。,Release rili:s 釋放 extend ikstend 延伸 except iksept 除之外,8/11,3.2表達式3.2.1數值、字符與日期時間表達式,1.數值表達式 由算術運算符將數值型數據連接起來形成,結果仍是數值型數據。,2.

45、字符表達式,由字符串運算符將字符型數據連接起來形成,結果仍是字符型數據。 運算符有“+”、“-”,優(yōu)先級相同。 +:前后兩字符串首尾連接為新串。 -:前后連接后并將前字符串尾部空格移到合并后的新字符串尾部。 例如:a=“abc “,b=“def” ? a+b,a-b abc def abcdef,3.日期時間表達式,運算符也有“+”、“-”兩個。不能任意組合,合法的表達式格式如下表:,是由常量、變量和 函數通過運算符連接起來的式子。,9/11,3.2.2關系表達式,也稱為簡單邏輯表達式,它由關系運算符將兩個對象連接起來形成。即其格式為: 關系運算符包括:、=、=、=、#、!=和$。含義為小于、

46、小于等于、大于、大于等于、等于、精確等于、不等于和含于。其優(yōu)先級相同,運算結果都是邏輯型數據。=、$只用于字符型數據。,2.設置字符的排序次序,自左向右逐個比較,一旦發(fā)現兩個對應字符不同,就根據這兩個字符確定排序先后。通常是按ASCII碼值,即按Machine(機器)排序。次序依次是:空格數字大寫字母小寫字母漢字,一 級漢字的順序與拼音同。也可選擇PinYin(拼音)序列,西文次序是:空格數字小寫字母大寫字母。還可選擇 Stroke(筆畫)序列。 設置方法分對話方式和命令方式兩種:,(1)對話方式,在“工具”菜單下選“選項”,打開選項對話框。 單擊“數據”選項卡。 從右上方的“排序序列”中選擇

47、“machine”、“pinyin”或“Stroke”。 單擊“確定”。,(2)命令方式,格式: set collate to 次序名 次序名: Machine:ASCII 碼 Pinyin:按拼音排序。 Stroke:按筆畫排序。,1.關系表達式,10/11,3.2.3邏輯表達式,邏輯表達式由邏輯運算符將邏輯型數據連接起來而形成,其運算結果仍然是邏輯型數據。邏輯運算符以優(yōu)先級排列依次:.not.(邏輯非), .and.(邏輯與),.or.(邏輯或)。 兩端圓點可省略,非可寫做!運算如右 運算優(yōu)先級: 圓括號算術字串日期關系邏輯,3.字符串精確比較與EXACT設置,用雙等號運算符=比較字符串時

48、,只有當二者完全相同時,結果才為真。 用單等號運算符=比較字符串時,結果與EXACT設置有關。設為off(默認),以右邊字符為準,右邊字符結束,比較即終止。設為on時,先在較短字串后添空格使二者長短一致,再行比較。,11/11,3.3常用函數,函數是用程序來實現的一種數據運算或轉換。它往往需要若干個自變量(運算對象),但只能有一個運算結果(函數值或返回值)。 可以通過函數名加一對圓括號調用,自變量放在圓括號內。函數調用可以出現在表達式或命令中。 根據函數值和功能不同,可分為數值函數、字符處理函數、日期類函數、數據類型轉換函數和測試函數5類。 VFP提供了200多種函數,功能強大。,1/7,3.

49、3.1數值函數,指函數值為數值的一類函數,Asc() 返回首字符的ascii碼 ?asc(A) ,asc(0) 65 48,3.3.2字符函數(指自變量是字符型數據的函數),3.3.3日期和時間函數(自變量一般是日期時間型),4/7,3.3.4數據類型轉換函數,將某一種類型的數據轉換成另一種類型的數據。,宏代換知識,其功能是先替換,再執(zhí)行。如果該函數與其后的字符無明確分界,則要用“.”作函數結束標識。作用很大,比如:A=“123” B=“456” ? where cj.id=gkcj.id and gkcj.km=kcm.km,5/10,VF命令實現: Use cj Set order to

50、id Sele 2 Use kcm in 0 Set order to km Sele 3,Set gkcj Set order to id Set rela to id into cj Set order to km Set rela to km into kcm addi List cj.bj,cj.xm,kcm.kmm,cj Clos data all,5.2.3嵌套查詢,相關條件涉及多個查詢的查詢。 例如查王垣的同班同學詳細情況 select * from cj where bj in(select bj from cj where xm=王垣) 例如查王垣(洋艷)的同班同學的 基本情

51、況 select cj.id ,xm ,p1 from cj where bj in(select bj from xs where xm=王垣) 例5.8 那些城市至少有一個倉庫的職工工資為1250元? Select 城市 from 倉庫 where 倉庫號 in; (select 倉庫號 from 職工 where 工資=1250),6/10,5.2.4幾個特殊運算符,Between,like, not 查詢95-100分的學生成績 select * from cj where p1 between 95 and 100 查詢王姓同學的成績(%代表任意多個字符所組成的串) select *

52、 from cj where xm like 王% 查詢王X同學的成績(_代表任意一個字符或漢字) select * from cj where xm like 王_ 查詢第1次作業(yè)成績不在75-95分的學生成績 select * from cj where p1 not between 75 and 95 例5.11 檢索出工資在1220元到1240元范圍內的職工信息。 Select * from 職工 where 工資 between 1220 and 1240 例5.13 找出不在北京的全部供應商信息。 Select * from 供應商 where 地址 != “北京,7/10,5.2

53、.5排序,格式:order by 項1ASC|DESC,項2ASC|DESC 按班號升序,分數降序依次顯示: select xm,bj,p1 from cj order by bj asc, p1 desc,5.2.6簡單計算查詢,用于計算檢索的函數: COUNT計數 SUM求和 AVG計算平均值 MAX求最大值 MIN求最小值 求4班人數、第一次作業(yè)總分、平均分、最高分和最低分: select bj,count(id),sum(p1),avg(p1),max(p1),min(p1) from cj where bj=4,8/10,5.2.7分組與計算查詢,用GROUP BY子句,格式為: G

54、ROUP BY 分組列,分組列HAVING 過濾條件 例如,求各班第一次交作業(yè)人數、總分、平均分、最高分和最低分,且安班級號升序排列: select bj,count(id),sum(p1),avg(p1),max(p1),min(p1) from cj group by bj,5.2.8利用空值查詢,給出沒交第一次作業(yè)的名單 sele bj,xm from cj where p1 is null 給出已交第一次作業(yè)的名單 sele bj,xm from cj,xs where xs.id=cj.id and p1 is not null 注意:查詢空值時,必須使用 is null,而不能使用

55、=null,因為空值不是一個確定的值。,9/10,5.2.9別名與自聯接查詢,在from短語中為關系定義別名,格式為: ,以后可用別名代替表名。用別名也可實現同一關系與自身的聯接,稱之為自聯接即遞歸聯接。例如:,select s.kmm,先于,x.kmm from kcm s,kcm x where s.km=x.xxk,S,X,10/10,5.2.10內外層互相關嵌套查詢,列出每個同學的具有最高分數的課程號和分數: select o.id,o.km,o.cj from gkcj o where o.cj =(select max(cj) from gkcj i where o.id=i.id

56、 ) 內外層采用同一個關系,分別指定別名o、i。外層提供id號給內層查詢使用;內層查詢利用這個id號值確定最高分數,隨后外層查詢再根據分數與最高分數比較以確定該元組是否選取。,5.2.11使用量詞和謂詞的查詢,量值有any、all和some,其中any和some是同義詞,在進行比較運算時,只要子查詢中有一行能使結果為真,結果就為真;all要求子查詢中的所有行都使結果為真,結果才為真。形式: any|all|some(子查詢) 謂詞有Exists , 用來檢查在子查詢中是否有結果返回,即是否存在元組。形式:notexists(子查詢) 還有已用過的 in和not in, 用來檢查是否在結果中。,

57、1/8,舉例,顯示尚未錄入情況的班級情況: sele * from bj where not exists (select *from cj where bj=bj.bj) 等價于: sele * from bj where bj not in (select bj from cj ) 顯示至少有一個成績的班級情況: sele * from bj where exists (select *from cj where bj=bj.bj) 等價于: sele * from bj where bj in (select bj from cj ) 4班的比所有9班的第1次作業(yè)分數都不低的人員 sel

58、ect xm,p1 from cj where bj=4 and p1= all(sele p1 from cj where bj=9) 4班的至少比1班的1個第1次作業(yè)分數低的人員 select xm,p1 from cj where bj=4 and p1 any(sele p1 from cj where bj=“1),2/8,5.2.12超聯接查詢,格式:select from 表名1 inner|left|right|full join 表名2 on 聯接條件 where Inner:普通聯接或內部聯接,滿足條件的紀錄才出現在結果中 Left:左聯接。第一個表中不滿足條件的也出現在查

59、詢結果中。 right:右聯接。第二個表中不滿足條件的也出現在查詢結果中。 full:全聯接。不論是否滿足條件,兩表記錄都在結果中出現。 以上不滿足條件的對應部分為null。 SELECT xm, mc,js from cj inner join bj on cj.bj=bj.bj SELECT xm, mc,js from cj join bj on cj.bj=bj.bj SELECT xm, mc,js from cj, bj where cj.bj=bj.bj SELECT xm, mc,js from cj left join bj on cj.bj=bj.bj SELECT xm, mc,js from cj right join bj on cj.bj=bj.bj SELECT xm, mc,js from

溫馨提示

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

評論

0/150

提交評論