全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Visual Foxpro 教案_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Visual Foxpro 教案_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Visual Foxpro 教案_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Visual Foxpro 教案_第4頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Visual Foxpro 教案_第5頁(yè)
已閱讀5頁(yè),還剩81頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)

VisualFoxpro教案

NationalComputerRankExamination

VisualFoxproTeachingPlanning

興龍計(jì)算機(jī)教育中心

內(nèi)部教材

作者:鄒莫泊

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)

VisualFoxpro教案

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

第1課

知識(shí)點(diǎn)一

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

1人工管理階段

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

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

知識(shí)點(diǎn)二

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

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

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

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

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

知識(shí)點(diǎn)三

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

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

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

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

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

知識(shí)點(diǎn)四

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

1實(shí)體(對(duì)客觀事物的描述)

例如:教師、計(jì)算機(jī)、汽車等都是實(shí)體

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

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

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

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

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

練習(xí)題

1班級(jí)和班長(zhǎng)之間的聯(lián)系屬于()聯(lián)系。

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

知識(shí)點(diǎn)五

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

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

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

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

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

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

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

知識(shí)點(diǎn)六

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

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

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

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

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

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

因?yàn)閷W(xué)號(hào)唯一,所以這樣的元組只有一個(gè)。

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

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

屬性在VF中又稱為字段名

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

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

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

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

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

知識(shí)點(diǎn)七

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

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

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

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

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

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

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

3連接(指兩個(gè)表進(jìn)行連接)

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

練習(xí)題

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

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

第2課

知識(shí)點(diǎn)一

VisualFoxPro系統(tǒng)概述

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

2熟悉VisualFoxPro6.0工作界面

知識(shí)點(diǎn)二

VisualFoxPro6.0上機(jī)主要考點(diǎn)

1項(xiàng)目管理器

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

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

4查詢和視圖

5程序設(shè)計(jì)

6表單設(shè)計(jì)

7菜單設(shè)計(jì)

8報(bào)表設(shè)計(jì)

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

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

第1課

知識(shí)點(diǎn)一

常量的類型

1數(shù)值型常量

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

2字符型常量

用單引號(hào)/雙引號(hào)/方括號(hào)將字符串包含

例如:“計(jì)算機(jī)"、‘123'、[ABC]

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

3日期型常量

嚴(yán)格日期格式:{Ayyyy-mm-dd}

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

4日期時(shí)間型常量

完整格式:{〈日期〉,〈時(shí)間〉}

時(shí)間部分格式:hh:mm:ssAM|PM

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

表示2001年3月22日下午3點(diǎn)25分30秒

5邏輯型常量

只有邏輯真和邏輯假兩個(gè)值。

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

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

知識(shí)點(diǎn)二

變量的定義和使用

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

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

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

2變量的賦值

格式一:變量名=表達(dá)式

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

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

格式二:STORE表達(dá)式TO變量列表

例如:STORE5TOX1,X2,X3

表示同時(shí)給X1,X2,X3賦值5

知識(shí)點(diǎn)三

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

格式:DIMENSION數(shù)組名

或DECLARE數(shù)組名

例如:DIMENSIONX(3)

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

DECLAREY(2,3)

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

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

知識(shí)點(diǎn)四

表達(dá)式值的顯示

格式一:?〈表達(dá)式,

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

格式二:??〈表達(dá)式,

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

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

?每輸出一個(gè)結(jié)果就自動(dòng)換行,而??不會(huì)換行。

第2課

知識(shí)點(diǎn)一

常規(guī)表達(dá)式

1數(shù)值表達(dá)式

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

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

2字符表達(dá)式

字符串運(yùn)算符:

+前后兩個(gè)字符串首尾連接

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

例如:a="Hello“尾部有一個(gè)空格

b=,,everyone!"

a+b="Helloeveryone!"

a-b="Helloeveryone!"尾部有一個(gè)空格

3日期時(shí)間表達(dá)式

運(yùn)算符有兩個(gè):+和-

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

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

知識(shí)點(diǎn)二

關(guān)系表達(dá)式

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

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

“計(jì)算機(jī)"$"計(jì)算機(jī)等級(jí)考試”($表示子串包含測(cè)試)

標(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)字符串的比較(默認(rèn)按拼音方式比較)

例如:“bcd”>“abcd”“計(jì)算機(jī)"〉“電腦”

知識(shí)點(diǎn)三

邏輯表達(dá)式

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

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

運(yùn)算規(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.

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

年齡>18AND性別="男”

練習(xí)題

1將A和B的平方和賦給C,請(qǐng)寫出兩種表達(dá)式。

2定義一個(gè)3行4列的矩陣XY乙請(qǐng)寫出表達(dá)式。

,,),

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

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

專業(yè)的女生。

第3課

知識(shí)點(diǎn)一

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

1絕對(duì)值函數(shù)ABS(表達(dá)式)

例如:ABS(-6)=6

2符號(hào)函數(shù)SIGN(表達(dá)式)

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

當(dāng)表達(dá)式為負(fù)時(shí),結(jié)果為-1

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

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

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

例如: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(“汽車",“飛機(jī)“,“輪船")="飛機(jī)”

知識(shí)點(diǎn)二

字符函數(shù)

1字符串長(zhǎng)度函數(shù)LEN(表達(dá)式)

例如:LEN("STUDENT")=7

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

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

例如:ALLTRIMfSTUDENT")="STUDENT”

3取子串函數(shù)

左字符串函數(shù)LEFT(表達(dá)式,長(zhǎng)度)

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

右字符串函數(shù)RIGHT(表達(dá)式,長(zhǎng)度)

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

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

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

SUBSTRfVISUALF0XPR0",8)="F0XPR0”

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

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

不是表達(dá)式2的子串則返回0。

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

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

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

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

表達(dá)式1中可包含通配符*和?

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

知識(shí)點(diǎn)三

日期和時(shí)間函數(shù)

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

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

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

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

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

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

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

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

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

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

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

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

知識(shí)點(diǎn)四

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

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

例如:STR(123)="123”

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

例如:VAL(“123”)=123

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

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

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

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

知識(shí)點(diǎn)五

測(cè)試函數(shù)

1值域測(cè)試函數(shù)

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

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

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

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

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

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

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

4條件測(cè)試函數(shù)

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

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

返回表達(dá)式2的值。

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

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

練習(xí)題

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

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

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

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

第4課

知識(shí)點(diǎn)一

順序語(yǔ)句

1輸入語(yǔ)句

格式:INPUT字符表達(dá)式TO變量

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

INPUT"請(qǐng)輸入一個(gè)整數(shù)"TOA

2輸出語(yǔ)句

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

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

?A*A或??A*A

知識(shí)點(diǎn)二

條件語(yǔ)句

格式1:

IFv條件,THEN

語(yǔ)句序列

ENDIF

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

格式2:

IFv條件,THEN

語(yǔ)句序列1

ELSE

語(yǔ)句序列2

ENDIF

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

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

否則輸出它的2倍。

INPUT"請(qǐng)輸入一個(gè)整數(shù)"TOA

IFMOD(A,3)=0THEN

?A*A

ELSE

?A*2

ENDIF

知識(shí)點(diǎn)三

分支語(yǔ)句

語(yǔ)法格式:

DOCASE

CASE條件1

語(yǔ)句序列1

CASE條件n

語(yǔ)句序列n

OTHERWISE

語(yǔ)句序列

ENDCASE

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

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

語(yǔ)句序列。

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

90到100優(yōu)秀

80至I」89良

70至U79一般

其余差

INPUT"請(qǐng)輸入一個(gè)分?jǐn)?shù)"TOA

DOCASE

CASEA>=90ANDA<=100

GRADE=”優(yōu)秀”

CASEA>=80ANDA<=89

GRADE",

CASEA>=70ANDA<=79

GRADE="一般”

OTHERWISE

GRADE="差”

ENDCASE

?”此分?jǐn)?shù)對(duì)應(yīng)的等級(jí)為"+GRADE

知識(shí)點(diǎn)四

循環(huán)語(yǔ)句

語(yǔ)法格式:

DOWHILE條件

語(yǔ)句序列

ENDDO

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

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

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

s=o

K=1

DOWHILEK<=100

S=S+K

K=K+1

ENDDO

?S

練習(xí)題

9輸入一個(gè)年份,若是閏年則輸出“yes”;否則輸出“n?!?。

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

x2+1(x>0)

s=2x+3(x=0)

x2-1(x<0)

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

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

第1課

知識(shí)點(diǎn)一

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

通常有三種方法:

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

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

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

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

知識(shí)點(diǎn)二

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

通常有三種方法:

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

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

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

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

知識(shí)點(diǎn)三

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

通常有兩種方法:

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

刪除時(shí)有兩個(gè)選項(xiàng):移去和刪除

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

仍然存在。

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

刪除。

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

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

知識(shí)點(diǎn)四

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

通常有兩種方法:

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

2使用命令新建表

在命令窗口中依次輸入:

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

CREATE表名

知識(shí)點(diǎn)五

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

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

通常有兩種方法:

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

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

在命令窗口中依次輸入:

USE表名

MODIFYSTRUCTURE

知識(shí)點(diǎn)六

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

1字段名

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

2字段類型和寬度

常見的類型及符號(hào)定義

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

浮點(diǎn)型F整型I

日期型D日期時(shí)間型T

邏輯型L貨幣型Y

3空值(記作NULL)

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

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

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

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

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

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

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

第2課

知識(shí)點(diǎn)一

瀏覽表記錄

通常有兩種方法:

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

2使用命令瀏覽表記錄

命令窗口中依次輸入:

USE表名

BROWSE

知識(shí)點(diǎn)二

增加記錄

1APPEND命令

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

APPEND和APPENDBLANK

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

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

2INSERT命令

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

INSERT[BEFORE]

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

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

知識(shí)點(diǎn)三

刪除記錄

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

DELETE[FOR條件]

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

滿足條件的所有記錄。

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

USE學(xué)生

DELETEFOR年齡=20

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

PACK

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

3物理刪除表的全部記錄

ZAP

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

知識(shí)點(diǎn)四

修改記錄

REPLACE[ALL]字段名WITH表達(dá)式

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

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

REPLACEALL年齡WITH年齡+1

知識(shí)點(diǎn)五

定位記錄

1GO命令

GO記錄號(hào)|TOP|BOTTOM

TOP是表頭BOTTOM是表尾

例如:定位至第5條記錄

GO5

2SKIP命令

SKIP偏移量

若偏移量為正,表示向后移動(dòng);否則向前移動(dòng)。

若省略偏移量,表示向后移動(dòng)1條記錄。

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

GOBOTTOM

SKIP-2

3LOCATE命令

LOCATEFOR條件

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

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

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

LOCATEFOR條件

DOWHILEFOUNDQ

語(yǔ)句序列

CONTINUE

ENDDO

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

USE學(xué)生

LOCATEFOR性別="女”

DOWHILEFOUND()

?姓名,年齡

CONTINUE

ENDDO

練習(xí)題

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

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

銷售(商品號(hào)5商品名20價(jià)格10.2)

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

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

第3課

知識(shí)點(diǎn)一

索引的分類

1主索引

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

一個(gè)表只能建立一個(gè)主索引。

2候選索引

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

一個(gè)表可以建立多個(gè)候選索引。

3唯一索引

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

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

一個(gè)表可以建立多個(gè)唯一索引。

4普通索引

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

一個(gè)表可以建立多個(gè)普通索引。

知識(shí)點(diǎn)二

索引的建立和刪除

建立索引有兩種方法:

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

2使用命令建立索引

INDEXON索引表達(dá)式TAG索引名

[UNIQUE|CANDIDATE]

UNIQUE指明建立唯一索引

CANDIDATE指明建立候選索引

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

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

INDEXON姓名TAG姓名

刪除索引

DELETETAG索弓I名

刪除全部索引

DELETETAGALL

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

DELETETAG姓名

知識(shí)點(diǎn)三

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

1實(shí)體完整性

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

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

2域完整性

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

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

3參照完整性

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

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

練習(xí)題

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

學(xué)生(學(xué)號(hào)8姓名10)

選課(學(xué)號(hào)8課程號(hào)5成績(jī)3.1)

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

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

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

第1課

知識(shí)點(diǎn)一

SQL語(yǔ)言概述

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

知識(shí)點(diǎn)二

SQL基本格式

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

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

WHERE條件

GROUPBY分組字段HAVING分組條件

ORDERBY排序字段ASC|DESC

INTOTABLE表名

知識(shí)點(diǎn)三

單表查詢

首先建立以下四個(gè)表,本章所有例子均對(duì)此操作。

倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),城市,面積)

職工(倉(cāng)庫(kù)號(hào),職工號(hào),工資)

訂購(gòu)單(職工號(hào),供應(yīng)商號(hào),訂購(gòu)單號(hào),訂購(gòu)日期)

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

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

SELECT工資FROM職工

例2從倉(cāng)庫(kù)表中查詢所有記錄

SELECT*FROM倉(cāng)庫(kù)

例3查詢工資多于1230元的職工號(hào)

SELECT職工號(hào)FROM職工WHERE工資>1230

知識(shí)點(diǎn)四

多表查詢

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

方法一

SELECT職工號(hào),城市FROM職工,倉(cāng)庫(kù);

WHERE職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào);

AND工資>1230

方法二

SELECT職工號(hào),城市FROM;

職工INNERJOIN倉(cāng)庫(kù);

ON職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào);

WHERE工資>1230

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

訂購(gòu)單號(hào)。

方法一

SELECT訂購(gòu)單號(hào)FROM職工,訂購(gòu)單,供應(yīng)商;

WHERE職工.職工號(hào)=訂購(gòu)單.職工號(hào);

AND訂購(gòu)單.供應(yīng)商號(hào)=供應(yīng)商.供應(yīng)商號(hào);

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

方法二

SELECT訂購(gòu)單號(hào)FROM;

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

ON訂購(gòu)單.供應(yīng)商號(hào)=供應(yīng)商.供應(yīng)商號(hào);

ON職工.職工號(hào)=訂購(gòu)單.職工號(hào);

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

知識(shí)點(diǎn)五

嵌套查詢

例1查詢哪些城市至少有一個(gè)倉(cāng)庫(kù)的職工工資為1250元

SELECT城市FROM倉(cāng)庫(kù)WHERE倉(cāng)庫(kù)號(hào);

IN(SELECT倉(cāng)庫(kù)號(hào)FROM職工;

WHERE工資=1250)

例2查詢所有職工的工資都多于1210元的倉(cāng)庫(kù)信息

SELECT*FROM倉(cāng)庫(kù)WHERE倉(cāng)庫(kù)號(hào);

NOTIN(SELECT倉(cāng)庫(kù)號(hào)FROM職工;

WHERE工資v=1210)AND倉(cāng)庫(kù)號(hào);

IN(SELECT倉(cāng)庫(kù)號(hào)FROM職工)

練習(xí)題

1查詢?cè)诒本┑墓?yīng)商的名稱。

2查詢向供應(yīng)商S3發(fā)過(guò)訂購(gòu)單的職工的職工號(hào)和倉(cāng)庫(kù)號(hào)。

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

第2課

知識(shí)點(diǎn)一

特殊運(yùn)算符

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

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

SELECT*FROM職工WHERE工資;

BETWEEN1220AND1240

上述語(yǔ)句的等價(jià)寫法是:

SELECT*FROM職工;

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

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

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

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

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

上述語(yǔ)句的等價(jià)寫法是:

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

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

知識(shí)點(diǎn)二

字段排序ORDERBY

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

SELECT*FROM職工ORDERBY工資

例2查詢所有職工信息,先按倉(cāng)庫(kù)號(hào)升序再按工資降序。

SELECT*FROM職工;

ORDERBY倉(cāng)庫(kù)號(hào),工資DESC

知識(shí)點(diǎn)三

計(jì)算查詢

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

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

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

SELECTCOUNT(DISTINCT地址);

FROM供應(yīng)商

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

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

SELECTSUM(工資)FROM職工

例3求在WH2倉(cāng)庫(kù)工作的職工的最高工資

SELECTMAX(工資)FROM職工;

WHERE倉(cāng)庫(kù)號(hào)="WH2”

知識(shí)點(diǎn)四

分組查詢GROUPBY

例1求每個(gè)倉(cāng)庫(kù)的職工的平均工資和倉(cāng)庫(kù)號(hào)

SELECT倉(cāng)庫(kù)號(hào),AVG(工資)FROM職工;

GROUPBY倉(cāng)庫(kù)號(hào)

例2求至少有兩個(gè)職工的每個(gè)倉(cāng)庫(kù)的平均工資和倉(cāng)庫(kù)號(hào)

SELECT倉(cāng)庫(kù)號(hào),AVG(工資)FROM職工;

GROUPBY倉(cāng)庫(kù)號(hào)HAVINGCOUNT(*)>=2

知識(shí)點(diǎn)五

SQL的幾個(gè)特殊短語(yǔ)

1只顯示前幾項(xiàng)記錄TOPn

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

SELECT*TOP3FROM職工;

ORDERBY工資DESC

注意:此短語(yǔ)必須和ORDERBY一起使用

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

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

SELECT*FROM職工INTOARRAYA

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

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

SELECT*FROM職工;

INTOTABLEWORKER

練習(xí)題

4查詢所有倉(cāng)庫(kù)的平均面積。

5查詢每個(gè)倉(cāng)庫(kù)中工資多于1220元的職工個(gè)數(shù)。

6查詢工資低于本倉(cāng)庫(kù)平均工資的職工信息。

第3課

知識(shí)點(diǎn)一

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

格式一:

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

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

INSERTINTO倉(cāng)庫(kù)VALUES(“WH45”,”天津”,4500)

格式二:

INSERTINTO表名FROMARRAY數(shù)組名

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

INSERTINTOZGFROMARRAYA

知識(shí)點(diǎn)二

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

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

例1將WH1倉(cāng)庫(kù)的職工工資提高10%

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

WHERE倉(cāng)庫(kù)號(hào)="WH1”

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

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

知識(shí)點(diǎn)三

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

格式:DELETEFROM表名[WHERE條件]

例1刪除倉(cāng)庫(kù)表中WH2倉(cāng)庫(kù)的信息

DELETEFROM倉(cāng)庫(kù)WHERE倉(cāng)庫(kù)號(hào)="WH2”

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

DELETEFROM職工

練習(xí)題

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

8刪除目前沒(méi)有任何訂購(gòu)單的供應(yīng)商。

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

第4課

知識(shí)點(diǎn)一

創(chuàng)建表

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

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

學(xué)號(hào)字符型10成績(jī)數(shù)值型2.1

CREATETABLE學(xué)生(學(xué)號(hào)C(10),成績(jī)N(2,1))

知識(shí)點(diǎn)二

修改表

格式:ALTERTABLE表名ADD|ALTER字段

[CHECK表達(dá)式]

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

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

例2將訂購(gòu)單表的訂購(gòu)單號(hào)字段寬度改為10

ALTERTABLE訂購(gòu)單ALTER訂購(gòu)單號(hào)C(10)

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

ALTERTABLE訂購(gòu)單ALTER總金額;

SETCHECK總金額>100

知識(shí)點(diǎn)三

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

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

CREATEVIEWMyViewAS;

SELECT*FROM職工;

WHERE倉(cāng)庫(kù)號(hào)="WH1”

刪除視圖:DROPVIEW視圖名

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

DROPVIEWMyView

練習(xí)題

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

三位字符是110。

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

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

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

職工信息。

第五章SQL綜合實(shí)例

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

選課(學(xué)號(hào),課程號(hào),成績(jī))

課程(課程號(hào),課程名,學(xué)時(shí))

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

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

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

4)查詢選修了”數(shù)據(jù)庫(kù)原理”且成績(jī)?cè)?5分以上的學(xué)生的

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

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

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

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

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

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

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

實(shí)交學(xué)費(fèi)>0。

解答:

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

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

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

ORDERBY出生日期

3)SELECT課程名FROM課程;

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

4)方法一

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

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

AND選課.課程號(hào)=課程.課程號(hào);

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

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

INTOTABLESTU

方法二

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

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

ON選課.課程號(hào)=課程.課程號(hào);

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

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

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

INTOTABLESTU

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

FROM選課,課程;

WHERE選課.課程號(hào)=課程.課程號(hào);

GROUPBY選課.課程號(hào)

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

NOTIN(SELECT學(xué)號(hào)FROM選課)

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

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

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

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

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

WHERERIGHT(姓名,2)="軍”

10)ALTERTABLE學(xué)生ADD實(shí)交學(xué)費(fèi)I;

CHECK實(shí)交學(xué)費(fèi)>0

例2工程(工程號(hào),工程名,費(fèi)用)

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

零件(零件號(hào),零件名,顏色)

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

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

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

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

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

1)SELECT工程號(hào)FROM開工;

WHERE零件號(hào)IN(SELECT零件號(hào)FROM零件;

WHERE顏色="紅”)

2)SELECT工程名FROM工程;

WHERE工程號(hào)IN(SELECT工程號(hào)FROM開工;

WHERE零件號(hào)="P2")AND工程號(hào)IN;

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

AND工程號(hào)IN(SELECT工程號(hào)FROM開工;

WHERE零件號(hào)="P4”)

3)SELECT工程名,費(fèi)用FROM工程;

WHERE工程號(hào)IN(SELECT工程號(hào)FROM開工;

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

4)SELECT工程名FROM工程;

WHERE費(fèi)用〈(SELECTAVG(費(fèi)用)FROM工程)

5)CREATEVIEWSVIEWAS;

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

FROM開工GROUPBY零件號(hào)

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

第1課

知識(shí)點(diǎn)一

對(duì)象和類

1對(duì)象

客觀世界里任何實(shí)體都被看作是對(duì)象。

例如:一臺(tái)計(jì)算機(jī),一個(gè)學(xué)生都可作為對(duì)象。

2類

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

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

知識(shí)點(diǎn)二

屬性和事件

1屬性

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

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

2事件

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

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

知識(shí)點(diǎn)三

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

1創(chuàng)建表單

通常有兩種方法:

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

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

2運(yùn)行表單

通常有兩種方法:

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

2)在命令窗口中輸入:

DOFORM表單文件名

第2課

知識(shí)點(diǎn)一

標(biāo)簽控件Label

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

主要屬性:

1Name屬性

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

2Caption屬性

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

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

“計(jì)算機(jī)等級(jí)考試”

操作:

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

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

知識(shí)點(diǎn)二

命令按鈕Command

通常用來(lái)完成某個(gè)特定功能如關(guān)閉表單、打印報(bào)表等。

主要屬性:

1Name屬性和Caption屬性

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

2Enabled屬性

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

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

3Visible屬性

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

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

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

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

“大家好",同時(shí)命令按鈕隱藏。

操作:

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

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

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

Thisforrn.Mylab.Caption="大家好"

Thisform.Mycmd.Visible=.F.

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

知識(shí)點(diǎn)三

文本框TextBox

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

主要屬性:

1Value屬性

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

2PasswordChar屬性

表示文本框中顯示文本時(shí)的替換符

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

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

操作:

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

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

練習(xí)題

1表單上有兩個(gè)文本框和一個(gè)命令按鈕。點(diǎn)擊按鈕后將

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

2表單上有兩個(gè)文本框和一個(gè)命令按鈕。點(diǎn)擊按鈕后將

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

第3課

知識(shí)點(diǎn)一

復(fù)選框Check

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

主要屬性:

1Caption屬性

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

2Value屬性

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

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

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

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

的命令按鈕。

要求:

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

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

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

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

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

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

操作:

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

2)雙擊命令按鈕,進(jìn)入Click事件。

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

IFThisform.Checkl.Value=1THEN

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

ENDIF

IFThisform.Check2.Value=1THEN

Mytext=Mytext+"英語(yǔ)”

ENDIF

Thisform.Mylab.Caption=Mytext

知識(shí)點(diǎn)二

選項(xiàng)按鈕組OptionGroup

通常包含若干個(gè)選項(xiàng)按鈕,用戶只能從中選擇一個(gè)。

主要屬性:

1ButtonCountMtt

表示選項(xiàng)按鈕組中按鈕的個(gè)數(shù)。

2Value屬性

表示選項(xiàng)按鈕組中被選中按鈕的序號(hào)。

例1表單上有一個(gè)名稱為MyOption的選項(xiàng)按鈕組。

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

Cmd的命令按鈕。

要求:

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

計(jì)算機(jī)。

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

操作:

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

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

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

3)雙擊命令按鈕,進(jìn)入Click事件。

DOCASE

CASEThisform.MyOption.Value=1

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

CASEThisform.MyOption.Value=2

Thisform.Mylab.Caption="英語(yǔ)"

CASEThisform.MyOption.Value=3

Thisform.Mylab.Caption="計(jì)算機(jī)"

ENDCASE

知識(shí)點(diǎn)三

表格Grid

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

主要屬性:

1RecordSourceType屬性

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

常用的取值:。表4SQL語(yǔ)句

2RecordSource屬性

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

RecordSourceType為。時(shí),此屬性為一個(gè)表名。

RecordSourceType為4時(shí),此屬性為一個(gè)SQL語(yǔ)句。

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

使用表的方式顯示倉(cāng)庫(kù)表。

操作:

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

2)將表格控件的RecordSource改為“倉(cāng)庫(kù)”

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

SQL語(yǔ)句顯示倉(cāng)庫(kù)表的全部信息。

操作:

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

2)將表格控件的RecordSource改為SELECT*FROM倉(cāng)庫(kù)

知識(shí)點(diǎn)四

頁(yè)框PageFrame

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

主要屬性:PageCount屬性

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

例1表單上有一個(gè)名稱為Mypage頁(yè)框。包含三個(gè)頁(yè)面

三個(gè)頁(yè)面中分別顯示倉(cāng)庫(kù)表、職工表、訂購(gòu)單表。

操作:

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

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

將表格RecordSourceType改為0,將RecordSource

改為倉(cāng)庫(kù)。

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

練習(xí)題

3表單上有一個(gè)名稱為MyOption的選項(xiàng)按鈕組、三個(gè)

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

要求:

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

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

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

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

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

點(diǎn)擊按鈕后表格中顯示暫沒(méi)有訂購(gòu)單的職工信息。

第4課

知識(shí)點(diǎn)一

計(jì)時(shí)器Timer

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

主要屬性:

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

注意:1秒=1000毫秒

若將Interval改為0,則表示計(jì)時(shí)器不起作用。

主要事件:

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

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

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

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

當(dāng)標(biāo)簽全部移出表單后再?gòu)淖钣叶顺霈F(xiàn)。反復(fù)循

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

操作:

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

2)雙擊計(jì)時(shí)器Timeri,進(jìn)入到Timer事件。

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

Thisform.Labell.Left=Thisform.Width

else

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

endif

知識(shí)點(diǎn)二

列表框List

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

主要屬性:

1RowSourceType屬性

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

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

2RowSource屬性

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

3Value屬性

表示列表框中被選中的項(xiàng)目

4MultiSelect屬性

表示列表框是否可以多選

取值.T.或1可以多選

取值.F.或0不能多選

5List屬性

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

例如:列表框List)中第3項(xiàng)為L(zhǎng)ist1.List(3)

6ListCount屬性

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

7Listindex屬性

表示列表框中被選中項(xiàng)目的序號(hào)

8Selected屬性

表示列表框中某項(xiàng)目是否被選中

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

否則輸出“No”。

IFThisform.List1.Selected(2)THEN

?“Yes”

ELSE

?“No”

ENDIF

主要方法:

1)Additem增加項(xiàng)目

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

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

2)Removeitem冊(cè)U除項(xiàng)目

例如:將列表框Listl中第3項(xiàng)刪除。

Listl.Removeltem(3)

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

列表框中有三個(gè)項(xiàng)目:VF、VB、C語(yǔ)言。選中

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

(我選修的課程是XX)o

操作:

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

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

VF,VB,C語(yǔ)言。

3)雙擊命令按鈕,進(jìn)入Click事件。

S="我選修的課程是"

S=S+Thisform.Listl.Value

Thisform.Labell.Caption=S

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

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

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

操作:

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

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

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

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

知識(shí)點(diǎn)三

組合框Combo

主要屬性:

Style表示組合框的樣式

常見的取值:

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

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

知識(shí)點(diǎn)四

關(guān)閉表單

命令:THISFORM.RELEASE

練習(xí)題

5表單上有一個(gè)計(jì)時(shí)器和一個(gè)標(biāo)簽。要求表單運(yùn)行后標(biāo)簽

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

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

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

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

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

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

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

第1課

知識(shí)點(diǎn)一

下拉式菜單

主要步驟:

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

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

3保存菜單文件

4生成和運(yùn)行菜單程序

例1新建一個(gè)名稱為Mymenu菜單,包含兩個(gè)菜單項(xiàng):

操作和退出,保存和運(yùn)行菜單。

操作:

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

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

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

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

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

知識(shí)點(diǎn)二

為頂層表單添加菜單

指表單運(yùn)行時(shí)在上面加載并顯示菜單。

主要步驟:

1建立一個(gè)下拉式菜單

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

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

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

DO菜單名.mprWITHthis

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

RELEASEMENU菜單名

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

添加到表單中。

操作:

1)打開例1中的菜單Mymenu

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

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

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

5)進(jìn)入表單的Init事件:

DOMymenu.mprWITHthis

6)進(jìn)入表單的Destroy事件:

RELEASEMENUMymenu

知識(shí)點(diǎn)三

快捷菜單

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

主要步驟:

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

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

3保存菜單文件

4生成菜單程序

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

DO菜單名.mpr

例3建立一個(gè)快捷菜單Mymenu,包含兩個(gè)菜單項(xiàng):

日期和時(shí)間。再建立一個(gè)名稱為Forml的表單,

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

操作:

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

2)分別輸入兩個(gè)菜單項(xiàng)的標(biāo)題:日期和時(shí)間

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

4)新建一個(gè)表單,并進(jìn)入RightClick事件:

DoMymenu.mpr

5)進(jìn)入菜單項(xiàng)日期的命令事件:

Forml.Caption=DTOC(DATE())

6)進(jìn)入菜單項(xiàng)時(shí)間的命令事件:

Forml.Caption=TIME()

知識(shí)點(diǎn)四

返回系統(tǒng)菜單

命令:SETSYSMENUTODEFAULT

練習(xí)題

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

只有一個(gè)菜單項(xiàng):退出,點(diǎn)擊時(shí)退出表單。

2建立一個(gè)快捷菜單Mymenu,兩個(gè)菜單項(xiàng):年份和月份。

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

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

第一章VisualFoxPr

溫馨提示

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