2.1 程序設計概述
1. 程序設計方法簡介
設計方法 |
主要概念 |
設計過程 |
程序執行方式 |
結構化程序設計 | 功能模塊(即過程、自定義函數) | 編制各個功能模塊,再用主程序將它們串起來 | 將應用程序分解成若干功能模塊,通過各模塊的相互調用來完成整個執行過程,是過程驅動的。 |
面向對象程序設計 | 類、對象、屬性、事件、方法 | 設計類、子類、對象(設計外觀、設置屬性、為事件編寫方法程序) | 將應用程序分解成具有特定屬性的對象,通過調用各對象的不同方法來完成相關事件,是事件驅動的。 |
2.數據類型
VFP 包含下列數據類型:
通用的數據類型 |
字符型
Character |
貨幣型
Currency |
日期型
Date |
日期時間型
DateTime |
邏輯型
Logical |
數值型
Numeric |
僅用于字段的數據類型 |
雙精度型
Double |
浮點型
Float |
整型
Integer |
通用型
General |
備注型
Memo |
|
3. 數據容器
VFP中用來存儲數據的容器有:常量、變量、數組、記錄和對象。
(1) 常量(constants):
一個在操作過程中保持不變的數值或字符串。
常用的常量類型
常量類型 |
數值型常量 |
字符型常量 |
邏輯型常量 |
日期型常量 |
表示方式 |
-25.36 |
"abc","123","中國" |
.T. .F. |
{^2005/07/10} |
(2)變量(variables):
是內存中的一個存儲單元的位置,其中的內容可以變化,但標識該存儲位置的名稱(即變量名)不變。
變量的命名習慣: 類型變量代號
如:cStud 、nCj 、dCsrq ——
分別代表一個字符型、數值型、日期型的變量名
變量的賦值方式: 1) 用 STORE 命令 如:STORE "王蘭" TO cStud
2) 用賦值操作符 = 如:cStud = "王蘭"
變量的作用域: 即變量起使用的有效范圍。
變量作用域 |
定義作用域的關鍵字 |
特點 |
局部變量 local variable(本地變量) |
LOCAL | 只能在一個函數或過程中被訪問,其他過程或函數不能訪問此變量的數據。當其所屬程序停止運行時,局部變量將被釋放。 |
私有變量
private variable |
PRIVATE | 私有變量在 VFP 中是默認的,不需要特殊的關鍵字定義。但是,如果在更高一級例程(routine)中已經有同名變量,可以用PRIVATE 關鍵字予以聲明,以限定其范圍。當定義此變量的例程結束時,此變量也被相應釋放?墒褂盟接凶兞吭诒徽{用的函數中共享數據。 |
公共變量
public variable |
PUBLIC | 可用于所有過程和函數,而不限于定義該變量的過程和函數。可使用全局變量在多個過程或函數之間共享數據,在命令窗口中創建的任何變量自動具有全局屬性。 |
變量的訪問:
當變量和字段同名時,字段有優先被訪問權。要在變量名前加 m. 或 m -> 以示區別,如 m.cStud
(3)數組(array):
是存儲在一個變量中由單個變量名引用的有序數據集合。在 VFP中,一個數組中的數據不必是同一種數據類型。常用的有一維數組,二維數組。
數組元素的標識:通過一個數值下標來引用,如 AA[2],AA[2,3]
數組類型的聲明:
私有數組 ——用DECLARE 或 DIMENSION定義
全局數組 ——用PUBLIC命定義
局部數組 ——用LOCAL定義
數組元素的賦值:
用賦值語句: 如 AA=45
用SCATTER從當前記錄中取特定字段的值賦給數組:
如: scatter fields xh, xm, xb to aa
(數組長度、類型自動與所給字段相同)
用 COPY TO ARRAY從當前記錄中取所有字段的值賦給數組:
如: copy to array aa
(數組長度、類型自動與表中全部字段相同)
把數組中的數據傳給當前表中的當前記錄:
gather from 數組名 [fields 字段名表]
用數組向當前表添加記錄:
append from array 數組名 [for 條件] [[fields 字段名表]
(用二維數組可以同時添加多條記錄)
數組處理的常用函數:
排序SORT(),搜索ASCAN(),刪除ADEL(),插入AINS()
(4) 記錄:
表中的一行,由字段組成。
(5) 對象:
對象是類的一個實例,類是對擁有數據和一定行為特征的對象集合的描述。VFP對象可以是表單、表單集、控件。