全國計算機等級考試二級Visual Foxpro 教案_第1頁
全國計算機等級考試二級Visual Foxpro 教案_第2頁
全國計算機等級考試二級Visual Foxpro 教案_第3頁
全國計算機等級考試二級Visual Foxpro 教案_第4頁
全國計算機等級考試二級Visual Foxpro 教案_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

全國計算機等級考試二級

VisualFoxpro教案

NationalComputerRankExamination

VisualFoxproTeachingPlanning

興龍計算機教育中心

內(nèi)部教材

作者:鄒莫泊

全國計算機等級考試二級

VisualFoxpro教案

第一章VisualFoxPro數(shù)據(jù)庫基礎(chǔ)

第1課

知識點一

計算機數(shù)據(jù)管理階段

1人工管理階段

2文件系統(tǒng)階段

3數(shù)據(jù)庫系統(tǒng)階段

知識點二

數(shù)據(jù)庫系統(tǒng)構(gòu)成

1數(shù)據(jù)庫(DATABASE)

2數(shù)據(jù)庫管理系統(tǒng)(DBMS)

3數(shù)據(jù)庫應(yīng)用系統(tǒng)(DBAS)

4數(shù)據(jù)庫管理員(DBA)

知識點三

數(shù)據(jù)庫系統(tǒng)主要特點

1實現(xiàn)數(shù)據(jù)共享、減少數(shù)據(jù)冗余

2采用特定的數(shù)據(jù)模型

3具有較高的數(shù)據(jù)獨立性

4有統(tǒng)一的數(shù)據(jù)控制功能

知識點四

實體和實體間聯(lián)系

1實體(對客觀事物的描述)

例如:教師、計算機、汽車等都是實體

2實體的屬性(指實體的一些特性)

例如:學(xué)生的相關(guān)屬性(學(xué)號、姓名、性別等)

3實體間的聯(lián)系

一對一聯(lián)系/一對多聯(lián)系/多對多聯(lián)系

例如:部門和職工之間的聯(lián)系屬于一對多聯(lián)系。

練習(xí)題

1班級和班長之間的聯(lián)系屬于()聯(lián)系。

2顧客和商品之間的聯(lián)系屬于()聯(lián)系。

知識點五

數(shù)據(jù)庫模型

1層次數(shù)據(jù)模型

用樹型結(jié)構(gòu)表示實體間的聯(lián)系

2網(wǎng)狀數(shù)據(jù)模型

主要優(yōu)點:表達多對多聯(lián)系很靈活

3關(guān)系數(shù)據(jù)模型

用二維表來表示實體和實體間的聯(lián)系

知識點六

關(guān)系數(shù)據(jù)模型

1關(guān)系(指一張二維表格)

VisualFoxPro中關(guān)系為一個表文件,擴展名為.DBF。

例如:學(xué)生表就是一個關(guān)系,VF表示為學(xué)生表.DBF。

2元組(指二維表的一行)

例如:學(xué)生表中學(xué)號為“1103”的記錄即為一個元組

因為學(xué)號唯一,所以這樣的元組只有一個。

3屬性(指二維表垂直方向的列)

例如:學(xué)生表的學(xué)號、姓名、性別等都是屬性

屬性在VF中又稱為字段名

4域(指屬性的取值范圍)

例如:月份取值范圍是1至12

5關(guān)鍵字(指能夠唯一標(biāo)識一個元組的屬性)

例如:學(xué)號是關(guān)鍵字,而姓名不是。

通常在VF中稱這種關(guān)鍵字為主關(guān)鍵字

知識點七

專門的關(guān)系運算

1選擇(指水平方向的運算)

從關(guān)系中找出滿足條件的元組稱為選擇

例如:從學(xué)生表找出所有男生的記錄(條件:性別="男")

2投影(指垂直方向的運算)

從關(guān)系中指定若干個屬性組成新的關(guān)系稱為投影

例如:從學(xué)生表中列舉所有學(xué)生的姓名和家庭住址

3連接(指兩個表進行連接)

4自然連接(指去掉重復(fù)屬性的等值連接)

練習(xí)題

3從學(xué)生表中找出所有學(xué)生的身份證號屬于()運算。

4從學(xué)生表中找出所有姓王的女生屬于()運算。

第2課

知識點一

VisualFoxPro系統(tǒng)概述

1VisualFoxPro6.0是一個32位數(shù)據(jù)庫管理系統(tǒng)

2熟悉VisualFoxPro6.0工作界面

知識點二

VisualFoxPro6.0上機主要考點

1項目管理器

2向?qū)?設(shè)計器/生成器/命令窗口

3數(shù)據(jù)庫設(shè)計

4查詢和視圖

5程序設(shè)計

6表單設(shè)計

7菜單設(shè)計

8報表設(shè)計

9連編應(yīng)用程序

第二章VisualFoxPro程序設(shè)計基礎(chǔ)

第1課

知識點一

常量的類型

1數(shù)值型常量

例如:3、-6.78、1.6E-12(表示1.6x10」2)

2字符型常量

用單引號/雙引號/方括號將字符串包含

例如:“計算機"、‘123'、[ABC]

注意:“"稱為空串,而”“稱為空格字符串。

3日期型常量

嚴格日期格式:{Ayyyy-mm-dd}

例如:{—2008-08-08}表示2008年8月8日

4日期時間型常量

完整格式:{〈日期〉,〈時間〉}

時間部分格式:hh:mm:ssAM|PM

例如:卜2001-03-22,03:25:30PM}

表示2001年3月22日下午3點25分30秒

5邏輯型常量

只有邏輯真和邏輯假兩個值。

VF中用.T.表示邏輯真,用.F.表示邏輯假。

例如:學(xué)生表中〈是否黨員〉字段類型為邏輯型

知識點二

變量的定義和使用

1變量必須以字母、漢字或下劃線開頭

例如:A、姓名、S_NO等都是合法的變量

而3AB、A+B則是非法變量

2變量的賦值

格式一:變量名=表達式

例如:A=3和A=B+C*D都是合法的語句

而A+B=C則是非法的,左邊A+B并不是變量。

格式二:STORE表達式TO變量列表

例如:STORE5TOX1,X2,X3

表示同時給X1,X2,X3賦值5

知識點三

數(shù)組的定義和使用

格式:DIMENSION數(shù)組名

或DECLARE數(shù)組名

例如:DIMENSIONX(3)

上述數(shù)組包含3個元素X(1),X(2),X(3)

DECLAREY(2,3)

上述數(shù)組是一個二維數(shù)組,共包含

Y(1,1),Y(1,2),Y(1,3),Y(2,1),Y(2,2),Y(2,3)6個元素。

知識點四

表達式值的顯示

格式一:?〈表達式,

例如:?3+4*5將顯示結(jié)果23

格式二:??〈表達式,

例如:??[計算機]將顯示結(jié)果計算機

上述兩種格式的區(qū)別:

?每輸出一個結(jié)果就自動換行,而??不會換行。

第2課

知識點一

常規(guī)表達式

1數(shù)值表達式

例如:3+5*63+5A23+20/3

3+15%23+MOD(100,3)(%和MOD均表示求余數(shù))

2字符表達式

字符串運算符:

+前后兩個字符串首尾連接

-連接前后兩個字符串,前字符串尾部空格移至最后。

例如:a="Hello“尾部有一個空格

b=,,everyone!"

a+b="Helloeveryone!"

a-b="Helloeveryone!"尾部有一個空格

3日期時間表達式

運算符有兩個:+和-

例如:卜2001-03-19}+10結(jié)果為{人2001-03-29}

{A2001-03-19}-{A2000-03-19}結(jié)果為365

知識點二

關(guān)系表達式

例如:a>ba<=3aoba#ba!=b

(<>#!=均表示不等于)

“計算機"$"計算機等級考試”($表示子串包含測試)

標(biāo)準(zhǔn)信息交換碼(ASCII碼)

大寫字母A65B66…依此類推

小寫字母a97b98…依此類推

數(shù)字0-9048149…依此類推

空格32

常見的比較規(guī)則:

1)越早的日期越小,越晚的日期越大。

例如:卜2002-01-10}>{A2001-12-28}

2)邏輯型數(shù)據(jù)比較

規(guī)則是.T.大于.F.

3)字符串的比較(默認按拼音方式比較)

例如:“bcd”>“abcd”“計算機"〉“電腦”

知識點三

邏輯表達式

邏輯運算符:NOT徘)AND(與)OR(或)

優(yōu)先級NOT>AND>OR

運算規(guī)則表

NOT

操作數(shù)結(jié)果

.T..F.

.F..T.

AND

操作數(shù)1操作數(shù)2結(jié)果

.T..T..T.

.T..F..F.

.F..T..F.

.F..F..F.

OR

操作數(shù)1操作數(shù)2結(jié)果

.T..T..T.

.T..F..T.

.F..T..T.

.F..F..F.

例如:6>5OR5<>5AND10<=10最終結(jié)果為.T.

例如:用邏輯表達式表示年齡大于18的男同學(xué)

年齡>18AND性別="男”

練習(xí)題

1將A和B的平方和賦給C,請寫出兩種表達式。

2定義一個3行4列的矩陣XY乙請寫出表達式。

,,),

3判斷表達式'A'>'5'AND6>=6ORNOT[A]=AO

4用邏輯表達式表示年齡在[18,20]的學(xué)生或計算機

專業(yè)的女生。

第3課

知識點一

數(shù)學(xué)函數(shù)

1絕對值函數(shù)ABS(表達式)

例如:ABS(-6)=6

2符號函數(shù)SIGN(表達式)

當(dāng)表達式為正時,結(jié)果為1

當(dāng)表達式為負時,結(jié)果為-1

當(dāng)表達式為0時,結(jié)果為0

例如:SIGN(5*5)=1SIGN(-4)=-1

3平方根函數(shù)SQRT(表達式)

例如:SQRT(SQRT(81))=3

4求余函數(shù)MOD

例如:MOD(10,3)=1

而MOD(3,10)=3

5最大值MAX和最小值MIN

例如:MAX(15*15,224,226)=226

MIN(“汽車",“飛機“,“輪船")="飛機”

知識點二

字符函數(shù)

1字符串長度函數(shù)LEN(表達式)

例如:LEN("STUDENT")=7

而LEN(“學(xué)生”)=4

2刪除前后空格函數(shù)ALLTRIM(表達式)

例如:ALLTRIMfSTUDENT")="STUDENT”

3取子串函數(shù)

左字符串函數(shù)LEFT(表達式,長度)

例如:LEFT("STUDENT",3)="STU”

右字符串函數(shù)RIGHT(表達式,長度)

例如:RIGHT("STUDENT",4)="DENT”

中間字符串函數(shù)SUBSTR(表達式,起始位置,長度)

例如:SUBSTR(UVISUALFOXPRO”,8,3)="FOX”

SUBSTRfVISUALF0XPR0",8)="F0XPR0”

4求子串位置函數(shù)AT(表達式1,表達式2)

返回表達式1首字符在表達式2中的位置,若表達式1

不是表達式2的子串則返回0。

例如:AT("FOX","VISUALFOXPROH)=8

而AT("fox","VISUALFOXPRO"”。

5字符串匹配函數(shù)LIKE(表達式1,表達式2)

若兩個表達式對應(yīng)字符都匹配返回.T.否則返回.F.

表達式1中可包含通配符*和?

例如:LIKE(“ABC”,"ABC")=.T.

知識點三

日期和時間函數(shù)

1系統(tǒng)日期和時間函數(shù)

DATE()返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期型

TIMEQ返回當(dāng)前系統(tǒng)時間,函數(shù)值為字符型

DATETIMEQ返回當(dāng)前系統(tǒng)日期時間

2年份/月份/天數(shù)函數(shù)

YEAR(日期表達式)返回指定日期中的年份

MONTH(日期表達式)返回指定日期中的月份

DAY(日期表達式)返回指定日期中的天數(shù)

3小時/分鐘/秒函數(shù)

HOUR(日期時間表達式)返回時間的小時數(shù)

MINUTE(日期時間表達式)返回時間的分鐘數(shù)

SEC(日期時間表達式)返回時間的秒數(shù)

知識點四

數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

1數(shù)值轉(zhuǎn)換字符串STR(數(shù)值表達式)

例如:STR(123)="123”

2字符串轉(zhuǎn)換數(shù)值VAL(字符表達式)

例如:VAL(“123”)=123

3字符串轉(zhuǎn)換日期CTOD(字符表達式)

例如:CTOD(“2008/08/08")={A2008-08-08}

4日期轉(zhuǎn)換字符串DTOC(日期表達式)

例如:DTOC({A2008-08-08})=),2008/08/08),

知識點五

測試函數(shù)

1值域測試函數(shù)

BETWEEN(表達式T,表達式L,表達式H)

若T>=LANDT<=H函數(shù)返回.T.否則返回.F.

若L為NULL或H為NULL函數(shù)返回NULL

2表文件尾測試函數(shù)EOF()

若記錄指針指向表尾函數(shù)返回.T.否則返回.F.

3表文件首測試函數(shù)BOF()

若記錄指針指向表頭函數(shù)返回.T.否則返回.F.

4條件測試函數(shù)

IIF(邏輯表達式,表達式1,表達式2)

若邏輯表達式為.T.函數(shù)返回表達式1的值,否則

返回表達式2的值。

例如:假設(shè)X的值是5

則IIF(X>=5,X+5,X-5)的最后結(jié)果是10

練習(xí)題

5計算表達式3+5A0+SIGN(16-SQRT(257))o

6用VF表達式表示一元二次方程的兩根。

7用邏輯表達式表示所有姓王或末字為軍的學(xué)生。

8用IIF函數(shù)表示A和B中的較大者。

第4課

知識點一

順序語句

1輸入語句

格式:INPUT字符表達式TO變量

例如:從鍵盤上輸入一個整數(shù)并保存到變量A

INPUT"請輸入一個整數(shù)"TOA

2輸出語句

用?或??在屏幕上顯示結(jié)果

例如:計算上例中A的平方并顯示出結(jié)果

?A*A或??A*A

知識點二

條件語句

格式1:

IFv條件,THEN

語句序列

ENDIF

若條件為真則執(zhí)行語句序列,否則結(jié)束。

格式2:

IFv條件,THEN

語句序列1

ELSE

語句序列2

ENDIF

若條件為真則執(zhí)行語句序列1,否則執(zhí)行語句序列2o

例如:輸入一整數(shù),若能被3整除則輸出它的平方;

否則輸出它的2倍。

INPUT"請輸入一個整數(shù)"TOA

IFMOD(A,3)=0THEN

?A*A

ELSE

?A*2

ENDIF

知識點三

分支語句

語法格式:

DOCASE

CASE條件1

語句序列1

CASE條件n

語句序列n

OTHERWISE

語句序列

ENDCASE

分別對條件1-n判斷,若某個條件成立則執(zhí)行相應(yīng)的語句

序列;若條件均不成立,則執(zhí)行OTHERWISE后的

語句序列。

例如:輸入一個分數(shù),并根據(jù)此分數(shù)顯示相應(yīng)等級。

90到100優(yōu)秀

80至I」89良

70至U79一般

其余差

INPUT"請輸入一個分數(shù)"TOA

DOCASE

CASEA>=90ANDA<=100

GRADE=”優(yōu)秀”

CASEA>=80ANDA<=89

GRADE",

CASEA>=70ANDA<=79

GRADE="一般”

OTHERWISE

GRADE="差”

ENDCASE

?”此分數(shù)對應(yīng)的等級為"+GRADE

知識點四

循環(huán)語句

語法格式:

DOWHILE條件

語句序列

ENDDO

若條件為真則執(zhí)行語句序列,然后再判斷條件,若仍為真

則重復(fù)執(zhí)行語句序列直到條件為假時循環(huán)結(jié)束。

例如:編程計算S=1+2+……+100的值。

s=o

K=1

DOWHILEK<=100

S=S+K

K=K+1

ENDDO

?S

練習(xí)題

9輸入一個年份,若是閏年則輸出“yes”;否則輸出“n。”。

10輸入一個整數(shù)x,輸出下列表達式的值。

x2+1(x>0)

s=2x+3(x=0)

x2-1(x<0)

11計算1至999之間所有能被7整除的數(shù)之和。

第三章VisualFoxPro數(shù)據(jù)庫及其操作

第1課

知識點一

建立數(shù)據(jù)庫

通常有三種方法:

1在項目管理器中建立數(shù)據(jù)庫

2在新建對話框中建立數(shù)據(jù)庫

3使用命令建立數(shù)據(jù)庫

命令窗口中輸入:CREATEDATABASE數(shù)據(jù)庫名

知識點二

打開數(shù)據(jù)庫

通常有三種方法:

1在項目管理器中打開數(shù)據(jù)庫

2在打開對話框中打開數(shù)據(jù)庫

3使用命令打開數(shù)據(jù)庫

命令窗口中輸入:OPENDATABASE數(shù)據(jù)庫名

知識點三

刪除數(shù)據(jù)庫

通常有兩種方法:

1在項目管理器中刪除數(shù)據(jù)庫

刪除時有兩個選項:移去和刪除

移去:從項目管理器中刪除數(shù)據(jù)庫,但對應(yīng)數(shù)據(jù)庫文件

仍然存在。

刪除:從項目管理器中刪除數(shù)據(jù)庫,同時對應(yīng)文件也被

刪除。

2使用命令刪除數(shù)據(jù)庫

命令窗口中輸入:DELETEDATABASE數(shù)據(jù)庫名

知識點四

建立數(shù)據(jù)庫表

通常有兩種方法:

1在數(shù)據(jù)庫設(shè)計器中新建表

2使用命令新建表

在命令窗口中依次輸入:

OPENDATABASE數(shù)據(jù)庫名

CREATE表名

知識點五

修改表結(jié)構(gòu)

表結(jié)構(gòu)修改主要包括:增加字段、刪除字段、修改字段。

通常有兩種方法:

1在數(shù)據(jù)庫設(shè)計器中修改表結(jié)構(gòu)

2使用命令修改表結(jié)構(gòu)

在命令窗口中依次輸入:

USE表名

MODIFYSTRUCTURE

知識點六

數(shù)據(jù)庫表的相關(guān)概念

1字段名

指關(guān)系的屬性名。例如:學(xué)號、姓名等。

2字段類型和寬度

常見的類型及符號定義

字符型C數(shù)值型N

浮點型F整型I

日期型D日期時間型T

邏輯型L貨幣型Y

3空值(記作NULL)

在數(shù)據(jù)庫中表示暫未確定的值,它和數(shù)值。含義不同。

注意:數(shù)據(jù)庫中某些字段不允許空值。(例如:學(xué)號)

4數(shù)據(jù)庫表和自由表

數(shù)據(jù)庫表:在數(shù)據(jù)庫設(shè)計器中創(chuàng)建的表。

自由表:指那些不屬于任何數(shù)據(jù)庫的表。

可以將自由表添加到數(shù)據(jù)庫中使之成為數(shù)據(jù)庫表,也

可以將數(shù)據(jù)庫表從數(shù)據(jù)庫中移出使之成為自由表。

第2課

知識點一

瀏覽表記錄

通常有兩種方法:

1在數(shù)據(jù)庫設(shè)計器中瀏覽表記錄

2使用命令瀏覽表記錄

命令窗口中依次輸入:

USE表名

BROWSE

知識點二

增加記錄

1APPEND命令

在表的尾部增加記錄,有兩種格式。

APPEND和APPENDBLANK

APPEND一次可連續(xù)輸入多條新記錄

APPENDBLANK在表的尾部增加一條空白記錄

2INSERT命令

在表的任意位置插入新記錄

INSERT[BEFORE]

若不指定BEFORE,則在當(dāng)前記錄之后插入一條

新記錄;否則在當(dāng)前記錄之前插入一條新記錄。

知識點三

刪除記錄

1邏輯刪除(指作刪除標(biāo)記)

DELETE[FOR條件]

若省略[FOR條件]則只刪除當(dāng)前一條記錄;否則刪除

滿足條件的所有記錄。

例如:邏輯刪除學(xué)生表中年齡為20的學(xué)生記錄

USE學(xué)生

DELETEFOR年齡=20

2物理刪除(指真正刪除記錄)

PACK

記錄徹底被刪除并且不能恢復(fù)。

3物理刪除表的全部記錄

ZAP

全部記錄被刪除并且不能恢復(fù),但表仍然存在。

知識點四

修改記錄

REPLACE[ALL]字段名WITH表達式

若省略[ALL]則只修改當(dāng)前記錄,否則修改全部記錄。

例如:將當(dāng)前表中所有學(xué)生的年齡加1

REPLACEALL年齡WITH年齡+1

知識點五

定位記錄

1GO命令

GO記錄號|TOP|BOTTOM

TOP是表頭BOTTOM是表尾

例如:定位至第5條記錄

GO5

2SKIP命令

SKIP偏移量

若偏移量為正,表示向后移動;否則向前移動。

若省略偏移量,表示向后移動1條記錄。

例如:將指針定位至倒數(shù)第3條記錄的位置

GOBOTTOM

SKIP-2

3LOCATE命令

LOCATEFOR條件

將指針定位在滿足條件的第1條記錄上,若沒有滿足

條件的記錄則指向文件結(jié)束位置。

LOCATE命令常用的結(jié)構(gòu)是:

LOCATEFOR條件

DOWHILEFOUNDQ

語句序列

CONTINUE

ENDDO

例如:輸出學(xué)生表中所有女生的姓名和年齡

USE學(xué)生

LOCATEFOR性別="女”

DOWHILEFOUND()

?姓名,年齡

CONTINUE

ENDDO

練習(xí)題

1創(chuàng)建兩個數(shù)據(jù)庫表,并輸入至少5條記錄。

學(xué)生(學(xué)號8姓名10性別年齡)

銷售(商品號5商品名20價格10.2)

2用VF命令將銷售表中所有商品價格提高12.88%。

3輸出學(xué)生表中所有姓王的男同學(xué)的姓名和年齡。

第3課

知識點一

索引的分類

1主索引

字段中不允許出現(xiàn)重復(fù)值,起主關(guān)鍵字作用。

一個表只能建立一個主索引。

2候選索引

候選索引和主索引具有相同的特性。

一個表可以建立多個候選索引。

3唯一索引

唯一索引保持同早期版本的兼容性,其唯一是指索引項

唯一,并不是字段值的唯一。

一個表可以建立多個唯一索引。

4普通索引

普通索引允許字段有重復(fù)值。

一個表可以建立多個普通索引。

知識點二

索引的建立和刪除

建立索引有兩種方法:

1在表設(shè)計器中建立索引

2使用命令建立索引

INDEXON索引表達式TAG索引名

[UNIQUE|CANDIDATE]

UNIQUE指明建立唯一索引

CANDIDATE指明建立候選索引

若上述兩個都省略,表示建立普通索引。

例如:在學(xué)生表中建立一個名稱為姓名的普通索引

INDEXON姓名TAG姓名

刪除索引

DELETETAG索弓I名

刪除全部索引

DELETETAGALL

例如:在學(xué)生表中刪除前面建立的姓名索引

DELETETAG姓名

知識點三

數(shù)據(jù)完整性

1實體完整性

實體完整性是保證表中記錄唯一的特性。

VisualFoxPro中用主關(guān)鍵字保證數(shù)據(jù)的實體完整性。

2域完整性

域完整性通常限定數(shù)據(jù)類型、取值范圍、有效性規(guī)則等。

例如:年齡為整型,月份取值為1至12等。

3參照完整性

參照完整性反映表和表之間的關(guān)聯(lián)。

參照完整性規(guī)則包括更新規(guī)則、刪除規(guī)則和插入規(guī)則。

練習(xí)題

4創(chuàng)建兩個數(shù)據(jù)庫表:

學(xué)生(學(xué)號8姓名10)

選課(學(xué)號8課程號5成績3.1)

5為學(xué)生表創(chuàng)建一個主索引(學(xué)號),再為選課表創(chuàng)建一個

普通索引(學(xué)號),最后建立兩個表的關(guān)聯(lián)。

第四章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL

第1課

知識點一

SQL語言概述

SQL全稱為StructuredQueryLanguage(結(jié)構(gòu)化查詢語言)

知識點二

SQL基本格式

SELECT字段1,字段2,……字段n

FROM表名1,表名2,……表名n

WHERE條件

GROUPBY分組字段HAVING分組條件

ORDERBY排序字段ASC|DESC

INTOTABLE表名

知識點三

單表查詢

首先建立以下四個表,本章所有例子均對此操作。

倉庫(倉庫號,城市,面積)

職工(倉庫號,職工號,工資)

訂購單(職工號,供應(yīng)商號,訂購單號,訂購日期)

供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)

例1從職工表中查詢所有職工的工資

SELECT工資FROM職工

例2從倉庫表中查詢所有記錄

SELECT*FROM倉庫

例3查詢工資多于1230元的職工號

SELECT職工號FROM職工WHERE工資>1230

知識點四

多表查詢

例1查詢工資多于1230元的職工號和他們所在城市

方法一

SELECT職工號,城市FROM職工,倉庫;

WHERE職工.倉庫號=倉庫.倉庫號;

AND工資>1230

方法二

SELECT職工號,城市FROM;

職工INNERJOIN倉庫;

ON職工.倉庫號=倉庫.倉庫號;

WHERE工資>1230

例2查詢工資多于1230元的職工向北京的供應(yīng)商發(fā)出的

訂購單號。

方法一

SELECT訂購單號FROM職工,訂購單,供應(yīng)商;

WHERE職工.職工號=訂購單.職工號;

AND訂購單.供應(yīng)商號=供應(yīng)商.供應(yīng)商號;

AND工資>1230AND地址="北京”

方法二

SELECT訂購單號FROM;

職工INNERJOIN訂購單INNERJOIN供應(yīng)商;

ON訂購單.供應(yīng)商號=供應(yīng)商.供應(yīng)商號;

ON職工.職工號=訂購單.職工號;

WHERE工資>1230AND地址="北京”

知識點五

嵌套查詢

例1查詢哪些城市至少有一個倉庫的職工工資為1250元

SELECT城市FROM倉庫WHERE倉庫號;

IN(SELECT倉庫號FROM職工;

WHERE工資=1250)

例2查詢所有職工的工資都多于1210元的倉庫信息

SELECT*FROM倉庫WHERE倉庫號;

NOTIN(SELECT倉庫號FROM職工;

WHERE工資v=1210)AND倉庫號;

IN(SELECT倉庫號FROM職工)

練習(xí)題

1查詢在北京的供應(yīng)商的名稱。

2查詢向供應(yīng)商S3發(fā)過訂購單的職工的職工號和倉庫號。

3查詢和職工E1、E3都有聯(lián)系的北京的供應(yīng)商信息。

第2課

知識點一

特殊運算符

BETWEEN……AND表示在一定范圍內(nèi)查詢

例1查詢工資在1220元到1240元范圍內(nèi)的職工信息

SELECT*FROM職工WHERE工資;

BETWEEN1220AND1240

上述語句的等價寫法是:

SELECT*FROM職工;

WHERE工資>=1220AND工資v=1240

LIKE表示模糊查詢,通常和%一起使用。

例2查詢供應(yīng)商名中最后兩字為公司的供應(yīng)商信息

SELECT*FROM供應(yīng)商;

WHERE供應(yīng)商名LIKE"%公司”

上述語句的等價寫法是:

SELECT*FROM供應(yīng)商;

WHERERIGHT(供應(yīng)商名,4)="公司”

知識點二

字段排序ORDERBY

例1查詢所有職工信息并按工資升序排序

SELECT*FROM職工ORDERBY工資

例2查詢所有職工信息,先按倉庫號升序再按工資降序。

SELECT*FROM職工;

ORDERBY倉庫號,工資DESC

知識點三

計算查詢

COUNT(計數(shù))SUM(求和)AVG(平均值)

MAX(最大值)MIN(最小值)

例1查詢供應(yīng)商所在地的數(shù)目

SELECTCOUNT(DISTINCT地址);

FROM供應(yīng)商

上述語句中DISTINCT表示去掉重復(fù)值

例2求所有職工的工資總數(shù)

SELECTSUM(工資)FROM職工

例3求在WH2倉庫工作的職工的最高工資

SELECTMAX(工資)FROM職工;

WHERE倉庫號="WH2”

知識點四

分組查詢GROUPBY

例1求每個倉庫的職工的平均工資和倉庫號

SELECT倉庫號,AVG(工資)FROM職工;

GROUPBY倉庫號

例2求至少有兩個職工的每個倉庫的平均工資和倉庫號

SELECT倉庫號,AVG(工資)FROM職工;

GROUPBY倉庫號HAVINGCOUNT(*)>=2

知識點五

SQL的幾個特殊短語

1只顯示前幾項記錄TOPn

例如:顯示工資最高的3位職工信息

SELECT*TOP3FROM職工;

ORDERBY工資DESC

注意:此短語必須和ORDERBY一起使用

2將查詢結(jié)果存放到數(shù)組INTOARRAY

例如:查詢所有職工信息并存放到數(shù)組A中

SELECT*FROM職工INTOARRAYA

3將查詢結(jié)果存放到表中INTOTABLE

例如:查詢所有職工信息并存放到WORKER表中

SELECT*FROM職工;

INTOTABLEWORKER

練習(xí)題

4查詢所有倉庫的平均面積。

5查詢每個倉庫中工資多于1220元的職工個數(shù)。

6查詢工資低于本倉庫平均工資的職工信息。

第3課

知識點一

插入數(shù)據(jù)

格式一:

INSERTINTO表名VALUES(字段1值,字段2值,……)

例1往倉庫表中增加記錄(“WH45”,“天津”,4500)

INSERTINTO倉庫VALUES(“WH45”,”天津”,4500)

格式二:

INSERTINTO表名FROMARRAY數(shù)組名

例2有一空表ZG,將前面數(shù)組A的數(shù)據(jù)插入到ZG中。

INSERTINTOZGFROMARRAYA

知識點二

更新數(shù)據(jù)

格式:UPDATE表名SET字段=表達式[WHERE條件]

例1將WH1倉庫的職工工資提高10%

UPDATE職工SET工資=工資*1.1;

WHERE倉庫號="WH1”

例2將所有學(xué)生的年齡增加1歲

UPDATE學(xué)生SET年齡=年齡+1

知識點三

刪除數(shù)據(jù)

格式:DELETEFROM表名[WHERE條件]

例1刪除倉庫表中WH2倉庫的信息

DELETEFROM倉庫WHERE倉庫號="WH2”

例2刪除職工表的全部信息

DELETEFROM職工

練習(xí)題

7插入一個新的供應(yīng)商元組(S9,智通公司,沈陽)。

8刪除目前沒有任何訂購單的供應(yīng)商。

9將低于所有職工平均工資的職工提高5%的工資。

第4課

知識點一

創(chuàng)建表

格式:CREATETABLE表名(字段1類型,字段2類型,.

例如:按如下要求創(chuàng)建一個學(xué)生表

學(xué)號字符型10成績數(shù)值型2.1

CREATETABLE學(xué)生(學(xué)號C(10),成績N(2,1))

知識點二

修改表

格式:ALTERTABLE表名ADD|ALTER字段

[CHECK表達式]

例1為訂購單表增加一個總金額N(8,2)字段

ALTERTABLE訂購單ADD總金額N(8,2)

例2將訂購單表的訂購單號字段寬度改為10

ALTERTABLE訂購單ALTER訂購單號C(10)

例3為訂購單表總金額增加有效性規(guī)則(總金額>100)

ALTERTABLE訂購單ALTER總金額;

SETCHECK總金額>100

知識點三

創(chuàng)建視圖:CREATEVIEW視圖名ASSELECT語句

例1創(chuàng)建一個視圖MyView,包含WH1倉庫職工信息。

CREATEVIEWMyViewAS;

SELECT*FROM職工;

WHERE倉庫號="WH1”

刪除視圖:DROPVIEW視圖名

例2刪除前面創(chuàng)建的MyView視圖

DROPVIEWMyView

練習(xí)題

10為教師表的教師號增加有效性規(guī)則:教師號最左邊

三位字符是110。

11為學(xué)院表增加一個字段:教師人數(shù)(整數(shù)),同時設(shè)置

有效性規(guī)則:教師人數(shù)>=0。

12創(chuàng)建一個視圖SView,包含工資不在[1000,1300]的

職工信息。

第五章SQL綜合實例

例1學(xué)生(學(xué)號,姓名,出生日期)

選課(學(xué)號,課程號,成績)

課程(課程號,課程名,學(xué)時)

1)查詢18歲以上的學(xué)生的學(xué)號和姓名。

2)查詢最年長的三位學(xué)生的姓名。

3)查詢所有含有“程序設(shè)計”四個字的課程名。

4)查詢選修了”數(shù)據(jù)庫原理”且成績在85分以上的學(xué)生的

學(xué)號和姓名,按學(xué)號升序和姓名降序保存至STU中。

5)查詢每門課程的課程名和最高分。

6)查詢沒有選修任何課程的學(xué)生的姓名。

7)查詢至少選修了兩門課程的學(xué)生的學(xué)號和姓名。

8)查詢選修了課程的學(xué)生人數(shù)。

9)將所有末字為"軍"的學(xué)生出生日期更改為1983/5/12。

10)為學(xué)生表增加字段“實交學(xué)費"(整數(shù)),同時設(shè)置規(guī)則

實交學(xué)費>0。

解答:

1)SELECT學(xué)號,姓名FROM學(xué)生;

WHEREYEAR(DATE())-YEAR(出生日期)>18

2)SELECTTOP3姓名FROM學(xué)生;

ORDERBY出生日期

3)SELECT課程名FROM課程;

WHERE課程名IN(“程序設(shè)計”)

4)方法一

SELECT學(xué)生.學(xué)號,姓名FROM學(xué)生,選課,課程;

WHERE學(xué)生.學(xué)號=選課.學(xué)號;

AND選課.課程號=課程.課程號;

AND課程名=”數(shù)據(jù)庫原理”AND成績>85;

ORDERBY學(xué)生.學(xué)號,姓名DESC;

INTOTABLESTU

方法二

SELECT學(xué)生.學(xué)號,姓名FROM;

學(xué)生INNERJOIN選課INNERJOIN課程;

ON選課.課程號=課程.課程號;

ON學(xué)生.學(xué)號=選課.學(xué)號;

WHERE課程名=”數(shù)據(jù)庫原理”AND成績>85;

ORDERBY學(xué)生.學(xué)號,姓名DESC;

INTOTABLESTU

5)SELECT課程名,MAX(成績)最高分;

FROM選課,課程;

WHERE選課.課程號=課程.課程號;

GROUPBY選課.課程號

6)SELECT姓名FROM學(xué)生WHERE學(xué)號;

NOTIN(SELECT學(xué)號FROM選課)

7)SELECT學(xué)號,姓名FROM學(xué)生;

WHERE學(xué)號IN(SELECT學(xué)號FROM選課;

GROUPBY學(xué)號HAVINGCOUNT(課程號)>=2)

8)SELECTCOUNT(DISTINCT學(xué)號)FROM選課

9)UPDATE學(xué)生SET出生日期={A1983-05-12};

WHERERIGHT(姓名,2)="軍”

10)ALTERTABLE學(xué)生ADD實交學(xué)費I;

CHECK實交學(xué)費>0

例2工程(工程號,工程名,費用)

開工(工程號,零件號,數(shù)量)

零件(零件號,零件名,顏色)

1)查詢所有和紅色相關(guān)的工程的工程號。

2)查詢同時使用了P2、P3、P4三種零件的工程名。

3)查詢至少使用了兩種零件的工程的工程名和費用。

4)查詢費用低于所有工程平均費用的工程名。

5)創(chuàng)建視圖SVIEW,包含每種零件的零件號和使用數(shù)量。

1)SELECT工程號FROM開工;

WHERE零件號IN(SELECT零件號FROM零件;

WHERE顏色="紅”)

2)SELECT工程名FROM工程;

WHERE工程號IN(SELECT工程號FROM開工;

WHERE零件號="P2")AND工程號IN;

(SELECT工程號FROM開工WHERE零件號="P3");

AND工程號IN(SELECT工程號FROM開工;

WHERE零件號="P4”)

3)SELECT工程名,費用FROM工程;

WHERE工程號IN(SELECT工程號FROM開工;

GROUPBY工程號HAVINGCOUNT(零件號)>=2)

4)SELECT工程名FROM工程;

WHERE費用〈(SELECTAVG(費用)FROM工程)

5)CREATEVIEWSVIEWAS;

SELECT零件號,SUM(數(shù)量)使用數(shù)量;

FROM開工GROUPBY零件號

第六章表單設(shè)計與應(yīng)用

第1課

知識點一

對象和類

1對象

客觀世界里任何實體都被看作是對象。

例如:一臺計算機,一個學(xué)生都可作為對象。

2類

類是由一系列相同特征的對象構(gòu)成的集合。

例如:學(xué)生類、汽車類、電視機類等。

知識點二

屬性和事件

1屬性

屬性是指對象具有的相關(guān)特征。

例如:學(xué)生相關(guān)屬性有學(xué)號、姓名、興趣愛好等。

2事件

事件是指在特定環(huán)境下產(chǎn)生的過程。

例如:鼠標(biāo)單擊、鍵盤按鍵等都是事件。

知識點三

創(chuàng)建表單和運行表單

1創(chuàng)建表單

通常有兩種方法:

1)使用表單設(shè)計器創(chuàng)建表單

2)使用表單向?qū)?chuàng)建表單

2運行表單

通常有兩種方法:

1)打開表單設(shè)計器,單擊工具欄上運行按鈕

2)在命令窗口中輸入:

DOFORM表單文件名

第2課

知識點一

標(biāo)簽控件Label

通常在表單上用來顯示靜態(tài)文本。

主要屬性:

1Name屬性

表示標(biāo)簽的名稱,每個標(biāo)簽的名稱是唯一的。

2Caption屬性

表示標(biāo)簽上顯示的文本。

例1在表單上畫一個名為Mylab的標(biāo)簽并顯示文字

“計算機等級考試”

操作:

1)將標(biāo)簽Name屬性改為Mylab

2)將標(biāo)簽Caption屬性改為”計算機等級考試”

知識點二

命令按鈕Command

通常用來完成某個特定功能如關(guān)閉表單、打印報表等。

主要屬性:

1Name屬性和Caption屬性

這兩個屬性和標(biāo)簽控件中含義完全相同。

2Enabled屬性

表示當(dāng)前按鈕是否可用,簡稱可用性。

若值為.T.表示可用,為E表示不可用。

3Visible屬性

表示當(dāng)前按鈕是否可見,簡稱可見性。

若值為.T.表示可見,為.F.表示不可見。

例1表單上有一個名稱為Mylab的標(biāo)簽和一個名稱為

Mycmd的命令按鈕。點擊命令按鈕后標(biāo)簽中顯示

“大家好",同時命令按鈕隱藏。

操作:

1)將標(biāo)簽Name屬性改為Mylab

2)將命令按鈕Name屬性改為Mycmd

3)雙擊命令按鈕,進入到Click事件中。

Thisforrn.Mylab.Caption="大家好"

Thisform.Mycmd.Visible=.F.

上述代碼中Thisform是當(dāng)前表單的對象名

知識點三

文本框TextBox

主要用于輸入數(shù)據(jù)和編輯數(shù)據(jù)。

主要屬性:

1Value屬性

表示文本框中的內(nèi)容

2PasswordChar屬性

表示文本框中顯示文本時的替換符

例1表單上有一個名稱為Mytext的文本框。文本框中

內(nèi)容為“我的密碼”,但顯示用*號代替。

操作:

1)將文本框的Value屬性改為“我的密碼”

2)將文本框的PasswordChar屬性改為"*"

練習(xí)題

1表單上有兩個文本框和一個命令按鈕。點擊按鈕后將

文本框1中的文本復(fù)制到文本框2中。

2表單上有兩個文本框和一個命令按鈕。點擊按鈕后將

文本框1移至表單左上角,文本框2移至表單右下角。

第3課

知識點一

復(fù)選框Check

通常用來標(biāo)記一個數(shù)據(jù)的兩種狀態(tài)。

主要屬性:

1Caption屬性

含義和前面的標(biāo)簽控件完全相同。

2Value屬性

用來表示當(dāng)前數(shù)據(jù)的狀態(tài)。

值為0表示未選中,值為1表示選中。

例1表單上有兩個復(fù)選框,名稱為Checkl和Check2。

還有一個名稱為Mylab的標(biāo)簽和一個名稱為Cmd

的命令按鈕。

要求:

1)Checkl和Check2的標(biāo)題分別為數(shù)學(xué)和英語。

2)點擊命令按鈕,根據(jù)下表各種情形顯示標(biāo)簽內(nèi)容。

ChecklCheck2標(biāo)簽內(nèi)容

選中未選中我喜歡的學(xué)科是數(shù)學(xué)

未選中選中我喜歡的學(xué)科是英語

選中選中我喜歡的學(xué)科是數(shù)學(xué)英語

操作:

1)將Checkl和Check2的Caption屬性改為數(shù)學(xué)和英語。

2)雙擊命令按鈕,進入Click事件。

Mytext="我喜歡的學(xué)科是”

IFThisform.Checkl.Value=1THEN

Mytext=Mytext+”數(shù)學(xué),

ENDIF

IFThisform.Check2.Value=1THEN

Mytext=Mytext+"英語”

ENDIF

Thisform.Mylab.Caption=Mytext

知識點二

選項按鈕組OptionGroup

通常包含若干個選項按鈕,用戶只能從中選擇一個。

主要屬性:

1ButtonCountMtt

表示選項按鈕組中按鈕的個數(shù)。

2Value屬性

表示選項按鈕組中被選中按鈕的序號。

例1表單上有一個名稱為MyOption的選項按鈕組。

還有一個名稱為Mylab的標(biāo)簽和一個名稱為

Cmd的命令按鈕。

要求:

1)選項按鈕組包含3個按鈕,標(biāo)題分別是數(shù)學(xué)、英語、

計算機。

2)點擊命令按鈕,根據(jù)選擇在標(biāo)簽中顯示相應(yīng)學(xué)科。

操作:

1)將選項按鈕組的ButtonCount屬性改為3。

2)分別將三個按鈕Optionl,Option2,Options的Caption

依次改為“數(shù)學(xué)"、“英語“、“計算機”。

3)雙擊命令按鈕,進入Click事件。

DOCASE

CASEThisform.MyOption.Value=1

Thisform.Mylab.Caption="數(shù)學(xué)"

CASEThisform.MyOption.Value=2

Thisform.Mylab.Caption="英語"

CASEThisform.MyOption.Value=3

Thisform.Mylab.Caption="計算機"

ENDCASE

知識點三

表格Grid

通常在表單上顯示數(shù)據(jù)庫表、查詢、視圖等。

主要屬性:

1RecordSourceType屬性

表示表格的數(shù)據(jù)源類型。

常用的取值:。表4SQL語句

2RecordSource屬性

表示表格的數(shù)據(jù)源。

RecordSourceType為。時,此屬性為一個表名。

RecordSourceType為4時,此屬性為一個SQL語句。

例1表單上有一個名稱為Mygrid的表格控件。要求直接

使用表的方式顯示倉庫表。

操作:

1)將表格控件的RecordSourceType屬性改為0

2)將表格控件的RecordSource改為“倉庫”

例2表單上有一個名稱為Mygrid的表格控件,要求使用

SQL語句顯示倉庫表的全部信息。

操作:

1)將表格控件的RecordSourceType屬性改為4

2)將表格控件的RecordSource改為SELECT*FROM倉庫

知識點四

頁框PageFrame

通常包含多個頁面,每個頁面顯示不同數(shù)據(jù)。

主要屬性:PageCount屬性

表示頁框中包含頁面的個數(shù)。

例1表單上有一個名稱為Mypage頁框。包含三個頁面

三個頁面中分別顯示倉庫表、職工表、訂購單表。

操作:

1)將頁框控件的PageCount屬性改為3

2)選擇第一頁,在上面畫一個表格控件。

將表格RecordSourceType改為0,將RecordSource

改為倉庫。

3)要同樣方法制作第二頁和第三頁。

練習(xí)題

3表單上有一個名稱為MyOption的選項按鈕組、三個

復(fù)選框、一個名稱為Mylab的標(biāo)簽和一個命令按鈕。

要求:

1)選項按鈕組包含2個按鈕,標(biāo)題分別是男生、女生。

2)三個復(fù)選框的標(biāo)題分別是VF、VB、C語言。

3)點擊命令按鈕,按下列格式在標(biāo)簽中顯示相應(yīng)結(jié)果。

(我是XX生,選修的課程是XXXXXX)

4表單上有一個名為Mygrid的表格控件和一個命令按鈕。

點擊按鈕后表格中顯示暫沒有訂購單的職工信息。

第4課

知識點一

計時器Timer

主要用于在一定時間間隔內(nèi)重復(fù)某動作。

主要屬性:

In怕rval屬性表示計時器的時間間隔(單位:毫秒)

注意:1秒=1000毫秒

若將Interval改為0,則表示計時器不起作用。

主要事件:

計時器最常用的是Timer事件,表示在一定的時間間隔內(nèi)

重復(fù)執(zhí)行某過程。

例1表單上有一個計時器Timer!和一個標(biāo)簽Label"!。

要求程序運行后標(biāo)簽每0.1秒從右至左移動10,

當(dāng)標(biāo)簽全部移出表單后再從最右端出現(xiàn)。反復(fù)循

環(huán)達到廣告字幕的效果。

操作:

1)將計時器Timeri的Interval設(shè)為100。

2)雙擊計時器Timeri,進入到Timer事件。

ifThisform.Labell.Left+Thisform.Label1.Width<=0then

Thisform.Labell.Left=Thisform.Width

else

Thisform.Labell.Left=Thisform.Label1.Left-10

endif

知識點二

列表框List

主要用于將相關(guān)信息組成一個列表。

主要屬性:

1RowSourceType屬性

表示列表框中數(shù)據(jù)源類型

1值3SQL語句5數(shù)組6字段

2RowSource屬性

表示列表框中數(shù)據(jù)源

3Value屬性

表示列表框中被選中的項目

4MultiSelect屬性

表示列表框是否可以多選

取值.T.或1可以多選

取值.F.或0不能多選

5List屬性

表示列表框中所有數(shù)據(jù)項

例如:列表框List)中第3項為List1.List(3)

6ListCount屬性

表示列表框中項目總數(shù)

7Listindex屬性

表示列表框中被選中項目的序號

8Selected屬性

表示列表框中某項目是否被選中

例如:若列表框Li列1中第2項被選中,則輸出“Yes”;

否則輸出“No”。

IFThisform.List1.Selected(2)THEN

?“Yes”

ELSE

?“No”

ENDIF

主要方法:

1)Additem增加項目

例如:在列表框Listl中增加一項”VF程序設(shè)計”。

List1.Addltem("VF程序設(shè)計")

2)Removeitem冊U除項目

例如:將列表框Listl中第3項刪除。

Listl.Removeltem(3)

例1表單上有一個列表框、一個標(biāo)簽和一個命令按鈕。

列表框中有三個項目:VF、VB、C語言。選中

一個項目并點擊按鈕,標(biāo)簽中顯示相應(yīng)信息:

(我選修的課程是XX)o

操作:

1)將列表框的RowSourceType屬性改為1-值。

2)在列表框的RowSource屬性中依次輸入:

VF,VB,C語言。

3)雙擊命令按鈕,進入Click事件。

S="我選修的課程是"

S=S+Thisform.Listl.Value

Thisform.Labell.Caption=S

例2表單上有一個列表框、一個文本框和兩個命令按鈕。

點擊按鈕一實現(xiàn)將文本框中內(nèi)容增加到列表框中,

點擊按鈕二實現(xiàn)將列表框中選中的項目刪除。

操作:

1)雙擊命令按鈕一,進入Click事件。

Thisform.Listl.Addltem(Thisform.Text1.Value)

2)雙擊命令按鈕二,進入Click事件。

Thisform.Listl.Removeltem(Thisform.List1.Listindex)

知識點三

組合框Combo

主要屬性:

Style表示組合框的樣式

常見的取值:

0下拉式組合框2下拉式列表框

其余屬性(除MultiSelect外)和方法完全同列表框

知識點四

關(guān)閉表單

命令:THISFORM.RELEASE

練習(xí)題

5表單上有一個計時器和一個標(biāo)簽。要求表單運行后標(biāo)簽

中顯示系統(tǒng)當(dāng)前的時間,并每秒動態(tài)更新。

6使用計時器和標(biāo)簽制作從左至右的廣告字幕效果。

7表單上有一個列表框Listl、一個文本框Text!和一個

命令按鈕Commandl。要求在文本框中輸入一個整數(shù)

(2-9)之間,點擊命令按鈕將10至100之間所有能被

此整數(shù)整除的數(shù)顯示在列表框中。

第七章菜單設(shè)計與應(yīng)用

第1課

知識點一

下拉式菜單

主要步驟:

1文件,新建,菜單,下拉式菜單

2輸入各菜單的標(biāo)題和內(nèi)容

3保存菜單文件

4生成和運行菜單程序

例1新建一個名稱為Mymenu菜單,包含兩個菜單項:

操作和退出,保存和運行菜單。

操作:

1)文件,新建,菜單,下拉式菜單

2)分別輸入兩個菜單項的標(biāo)題:操作和退出。

3)文件,保存,輸入文件名Mymenu保存菜單。

4)菜單->生成,生成菜單程序Mymenu.mpro

5)在命令窗口輸入:DOMymenu.mpr

知識點二

為頂層表單添加菜單

指表單運行時在上面加載并顯示菜單。

主要步驟:

1建立一個下拉式菜單

2在常規(guī)選項對話框中選中“頂層表單”復(fù)選框

3建立一個表單并將ShowWindow屬性設(shè)為2-頂層表單

4在表單的Init事件中加載菜單

DO菜單名.mprWITHthis

5在表單的Destroy事件中釋放菜單

RELEASEMENU菜單名

例2新建一個頂層表單,并將例1中的菜單Mymenu

添加到表單中。

操作:

1)打開例1中的菜單Mymenu

2)在常規(guī)選項對話框中選中“頂層表單”復(fù)選框

3)重新生成菜單程序Mymenu.mpr

4)新建一個表單,將ShowWindow屬性設(shè)為2-頂層表單。

5)進入表單的Init事件:

DOMymenu.mprWITHthis

6)進入表單的Destroy事件:

RELEASEMENUMymenu

知識點三

快捷菜單

指點擊鼠標(biāo)右鍵時彈出的菜單,又稱彈出式菜單。

主要步驟:

1文件,新建,菜單,快捷菜單

2輸入各菜單的標(biāo)題和內(nèi)容

3保存菜單文件

4生成菜單程序

5在表單的RightClick事件中彈出菜單

DO菜單名.mpr

例3建立一個快捷菜單Mymenu,包含兩個菜單項:

日期和時間。再建立一個名稱為Forml的表單,

實現(xiàn)在表單標(biāo)題上顯示當(dāng)前日期和當(dāng)前時間。

操作:

1)新文件,新建,菜單,快捷菜單

2)分別輸入兩個菜單項的標(biāo)題:日期和時間

3)保存菜單并生成菜單程序Mymenu.mpr

4)新建一個表單,并進入RightClick事件:

DoMymenu.mpr

5)進入菜單項日期的命令事件:

Forml.Caption=DTOC(DATE())

6)進入菜單項時間的命令事件:

Forml.Caption=TIME()

知識點四

返回系統(tǒng)菜單

命令:SETSYSMENUTODEFAULT

練習(xí)題

1建立一個頂層表單Forml,上面添加一個菜單Menul

只有一個菜單項:退出,點擊時退出表單。

2建立一個快捷菜單Mymenu,兩個菜單項:年份和月份。

實現(xiàn)在表單Forml標(biāo)題上顯示年份和月份。

附錄:全部練習(xí)題答案

第一章VisualFoxPr

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論