27
NGOÂN NGÖÕ LAÄP TRÌNH VISUAL FOXPRO I. GIÔÙI THIEÄU VISUAL FOXPRO: Microsoft Visual Foxpro laø moät phaàn meàm Quaûn lyù CSDL, bao goàm moät soá coâng raát maïnh giuùp coù theå toång hôïp, truy xuaát thoâng tin moät caùch thuaän tieän, coù moät boä leänh duøng trong laäp trình raát phong phuù, cho pheùp taïo ñöôïc moät giao dieän thaân thieän. Ñieàu ñaùng löu yù laø caùc öùng duïng ñöôïc thieát keá töø caùc phieân baûn tröôùc cuûa Foxpro vaãn coøn hieäu löïc trong Visual Foxpro, nghóa laø vaãn coù theå chaïy ñöôïc trong Visual Foxpro. Tuy nhieân, neáu ñaõ söûa ñoåi nguyeân baûn cuõ trong Visual Foxpro roài thì khoâng theå thöïc thi ñöôïc nöõa trong caùc phieân baûn cuõ tröôùc ñoù cuûa noù. Ñeå coù theå duøng ñöôïc Visual Foxpro, maùy vi tính caàn phaûi ñaït ñöôïc toái thieåu caùc ñieàu kieän sau: + Coù boä xöû lyù töø 80386 trôû ñi, neân laø 486 hoaëc maïnh hôn. + Coù boä nhô ù toái thieåu 4MB RAM, nhöng neân laø 8MB RAM hoaëc hôn. + Coù ñóa cöùng caøng lôùn caøng toát, toái thieåu 200MB RAM + Heä ñieàu haønh : Windows 95 hoaëc Windows NT. + Ñaõ caøi heä ñieàu haønh MS DOS, neân duøng DOS 5.0 trôû veà sau. + Ñaõ caøi heä giao dieän Windows 3.x hoaëc Windows ’95 trôû ñi. Sau khi ñaõ ñöôïc caøi ñaët, Visual Foxpro coù theå ñöôïc khôûi ñoäng baèng moät trong caùc caùch nhö sau : + Click chuoät vaøo thöïc ñôn Start treân maøn hình chính cuûa Windows 95 / Windows NT; choïn Programs; choïn Microsoft Visual Foxpro; choïn Visual Foxpro 6.0 + Thöïc hieän chöùc naêng Run vôùi teân taäp thöïc hieän C:\ Vfp\Vfp.exe Visual Foxpro cuõng coù hai cheá ñoä laøm vieäc : hoäi thoaïi vaø chöông trình. Trong cheá ñoä hoäi thoaïi, ngöôøi ta ñöa ra moät yeâu caàu cho Visual Foxpro baèng moät leänh thoâng qua cöûa soå leänh (command window) hoaëc thoâng qua thöïc ñôn heä thoáng (system menu) vaø seõ nhaän ñöôïc keát quaû ngay. Sau ñoù, ngöôøi duøng coù theå tieáp tuïc thöïc hieän caùc yeâu caàu khaùc. Trong cheá ñoä chöông trình, caùc caâu leänh cuûa Visual Foxpro coù theå ñöôïc taäp hôïp laïi thaønh moät taäp tin ghi treân ñóa vaø khi muoán cho thi haønh taäp tin naøy, töø cöûa soå leänh ngöôøi duøng thöïc hieän leänh : DO <Teân chöông trình>. Khi ñoù caùc leänh coù trong taäp tin chöông trình naøy seõ laàn löôït ñöôïc thöïc hieän. 1

Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Embed Size (px)

Citation preview

Page 1: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

NGOÂN NGÖÕ LAÄP TRÌNH VISUAL FOXPRO

I. GIÔÙI THIEÄU VISUAL FOXPRO:Microsoft Visual Foxpro laø moät phaàn meàm Quaûn lyù CSDL, bao goàm

moät soá coâng raát maïnh giuùp coù theå toång hôïp, truy xuaát thoâng tin moät caùch thuaän tieän, coù moät boä leänh duøng trong laäp trình raát phong phuù, cho pheùp taïo ñöôïc moät giao dieän thaân thieän. Ñieàu ñaùng löu yù laø caùc öùng duïng ñöôïc thieát keá töø caùc phieân baûn tröôùc cuûa Foxpro vaãn coøn hieäu löïc trong Visual Foxpro, nghóa laø vaãn coù theå chaïy ñöôïc trong Visual Foxpro. Tuy nhieân, neáu ñaõ söûa ñoåi nguyeân baûn cuõ trong Visual Foxpro roài thì khoâng theå thöïc thi ñöôïc nöõa trong caùc phieân baûn cuõ tröôùc ñoù cuûa noù.

Ñeå coù theå duøng ñöôïc Visual Foxpro, maùy vi tính caàn phaûi ñaït ñöôïc toái thieåu caùc ñieàu kieän sau:

+ Coù boä xöû lyù töø 80386 trôû ñi, neân laø 486 hoaëc maïnh hôn.+ Coù boä nhô ù toái thieåu 4MB RAM, nhöng neân laø 8MB RAM hoaëc

hôn.+ Coù ñóa cöùng caøng lôùn caøng toát, toái thieåu 200MB RAM+ Heä ñieàu haønh : Windows 95 hoaëc Windows NT.+ Ñaõ caøi heä ñieàu haønh MS DOS, neân duøng DOS 5.0 trôû veà sau.+ Ñaõ caøi heä giao dieän Windows 3.x hoaëc Windows ’95 trôû ñi.

Sau khi ñaõ ñöôïc caøi ñaët, Visual Foxpro coù theå ñöôïc khôûi ñoäng baèng moät trong caùc caùch nhö sau : + Click chuoät vaøo thöïc ñôn Start treân maøn hình chính cuûa Windows 95 / Windows NT; choïn Programs; choïn Microsoft Visual Foxpro; choïn Visual Foxpro 6.0 + Thöïc hieän chöùc naêng Run vôùi teân taäp thöïc hieän C:\Vfp\Vfp.exe

Visual Foxpro cuõng coù hai cheá ñoä laøm vieäc : hoäi thoaïi vaø chöông trình.

Trong cheá ñoä hoäi thoaïi, ngöôøi ta ñöa ra moät yeâu caàu cho Visual Foxpro baèng moät leänh thoâng qua cöûa soå leänh (command window) hoaëc thoâng qua thöïc ñôn heä thoáng (system menu) vaø seõ nhaän ñöôïc keát quaû ngay. Sau ñoù, ngöôøi duøng coù theå tieáp tuïc thöïc hieän caùc yeâu caàu khaùc.Trong cheá ñoä chöông trình, caùc caâu leänh cuûa Visual Foxpro coù theå ñöôïc taäp hôïp laïi thaønh moät taäp tin ghi treân ñóa vaø khi muoán cho thi haønh taäp tin naøy, töø cöûa soå leänh ngöôøi duøng thöïc hieän leänh : DO <Teân chöông trình>. Khi ñoù caùc leänh coù trong taäp tin chöông trình naøy seõ laàn löôït ñöôïc thöïc hieän.

Moät öùng duïng (project) bao goàm nhieàu thaønh phaàn : CSDL, chöông trình, maøn hình giao dieän, thöïc ñôn, baùo bieåu, … Moät öùng duïng ñöôïc löu tröõ trong taäp tin coù phaàn môû roäng laø PJX vaø quaûn lyù baèng coâng cuï Project Manager.

CSDL trong Visual Foxpro chöùa danh saùch caùc baûng (table), haøm cöûa soå (view), thuû tuïc, … vaø ñöôïc löu tröõ trong moät taäp tin coù phaàn môû roäng laø DBC (trong khi Foxpro 2.6 laø DBF).

Visual Foxpro cung caáp cho ngöôøi duøng caùc boä coâng cuï nhö : Form Wizard vaø Form Designer tieän duïng trong thieát keá caùc maøn hình giao dieän.

Visual Foxpro cung caáp caùc boä coâng cuï : Report Wizard vaø Report Designer tieän duïng trong thieát keá caùc baùo bieåu.

Visual Foxpro cung caáp caùc boä coâng cuï Menu Designer tieän duïng trong vieäc taïo caùc thöïc ñôn nhieàu caáp.

1

Page 2: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Visual Foxpro coù söï môû roäng sang phöông phaùp laäp trình höôùng ñoái töôïng beân caïnh caùch laäp trình theo thuû tuïc nhö truyeàn thoáng.

Tröôùc khi ñi vaøo töông ñoái chi tieát moät soá caùc vaán ñeà caàn löu taâm, ta löu yù theâm moät soá caùc vaán ñeà veà khaû naêng, giôùi haïn vaø moät soá thuaät ngöõ thöôøng duøng cuûa Visual Foxpro. Khaû naêng vaø giôùi haïn cuûa Visual Foxpro coù theå ñöôïc toùm goïn trong baûng sau :

Khaû naêng Giôùi haïn1. Taäp soá lieäu vaø chæ muïcSoá doøng tin toái ña trong 1 table 1 tyû recordKích thöôùc toái ña cho 1 table 2 GBSoá kyù töï toái ña cho 1 doøng tin (record) 65 500Soá vuøng toái ña treân moät doøng tin 255Soá table toái ña coù theå môû cuøng luùc 255Soá kyù töï toái ña cho 1 vuøng tin 254Soá kyù töï toái ña cho moät khoùa chæ muïc trong taäp non-compact index

100

Soá kyù töï toái ña cho moät khoùa chæ muïc trong taäp compact index

240

Soá toái ña taäp tin chæ muïc ñöôïc môû keøm 1 table

Khoâng giôùi haïn

Soá toái ña taäp chæ muïc ñöôïc môû trong taát caû caùc vuøng laøm vieäc

Khoâng giôùi haïn

Soá toái ña caùc moái quan heä Khoâng giôùi haïn

Chieàu daøi toái ña cuûa caùc bieåu thöùc quan heä Khoâng giôùi haïn

2. Vuøng tin (Field)Kích thöôùc toái ña vuøng tin kieåu Character 254Kích thöôùc toái ña vuøng tin kieåu Numeric hay Float

20

Soá kyù töï toái ña duøng ñeå ñaët teân cho vuøng tin trong 1 Table rieâng leû

10

Soá kyù töï toái ña duøng ñeå ñaët teân cho vuøng tin trong 1 Table beân trong moät database

128

Trò soá nguyeân nhoû nhaát -2 147 483 647

Trò nguyeân lôùn nhaát 2 147 483 647Möùc chính xaùc cuûa trò soá khi tính toaùn 16 coät3. Bieán boä nhôù vaø maûngSoá löôïng bieán boä nhôù ngaàm ñònh 1 024Soá löôïng toái ña bieán boä nhôù coù theå choïn 65 000Soá löôïng toái ña caùc maûng coù theå khai baùo 65 000Soá löôïng toái ña caùc phaàn töû trong moät maûng 65 0004. Taäp chöông trình vaø thuû tuïcSoá doøng toái ña trong moät taäp chöông trình Khoâng giôùi

haïnKích thöôùc toái ña cho moät thuû tuïc ñaõ ñöôïc bieân dòch

64 KB

Soá toái ña caùc thuû tuïc trong taäp chöông trình Khoâng giôùi haïn

Soá löôïng toái ña caùc leänh DO goïi loàng nhau 128Soá caáp ra leänh READ loàng trong nhau 5

2

Page 3: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Soá löôïng toái ña leänh laäp trình caáu truùc loàng trong nhau

384

Soá löôïng toái ña caùc thoâng soá ñöôïc trao 27Soá löôïng toái ña caùc xöû lyù phaùt sinh ñoàng thôøi

5

5. Baùo bieåuSoá toái ña caùc object trong moät baùo bieåu Khoâng giôùi

haïnChieàu daøi toái ña moät baùo bieåu 20 inchesToái ña soá caáp phaân nhoùm 1286. Khaû naêng khaùcToái ña soá cöûa soå môû cuøng moät luùc Khoâng giôùi

haïnToái ña soá cöûa soå Browse 255Soá kyù töï toái ña trong moät chuoãi 2 GBSoá kyù töï toái ña trong moät doøng leänh 8 192Soá kyù töï toái ña cho 1 nhaõn Report Label 255Soá kyù töï cho 1 doøng thay theá vó moâ 8 192Soá löôïng toái ña taäp tin ñöôïc môû Giôùi haïn

bôûi DOSSoá toái ña phoùm baám trong 1 Keyboard macro 1 024Soá Fields toái ña coù theå choïn bôûi moät leänh SQL SELECT

255

Caùc kieåu soá lieäu :

Kieåu Duøng trong Kích côõ Phaïm viCharacter Vaên baûn Töø 1 – 254 kyù

töïChöùa kyù töï naøo cuõng ñöôïc

Character (Binary)

Vaên baûn Khoâng thay ñoåi khi chuyeån töø maõ quoác gia naøy sang maõ quoác gia khaùc

Date Ngaøy thaùng

8 bytes 01/01/100 ñeán 31/12/9999

Date Time Ngaøy giôø 8 bytes 01/01/100 ñeán 31/12/999 vaø coù theâm phaàn giôø töø 00:00:00 a.m ñeán 11:59:59 p.m

Logical Trò luaän lyù 1 byte Ñuùng (.T.) hoaëc Sai (.F.)

Currency Giaù trò baèng tieàn

8 bytes Töø –922337203685477.5808 ñeán 922337203685477.5807

Numeric Soá nguyeân hay thaäp phaân

8 bytes boä nhôù; 1 ñeán 20 bytes khi löu giöõ trong table

Töø –0.9999999999E+19 ñeán +0.9999999999E+20

Double Soá chính xaùc keùp

8 bytes Töø +/-4.94065645841247E-

3

Page 4: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

324 ñeán +/-1.79769313486232E+308

Float Soá nguyeân hay thaäp phaân

8 bytes boä nhôù; 1 ñeán 20 bytes khi löu giöõ trong table

Töø –0.9999999999E+19 ñeán +0.9999999999E+20

Integer Soá nguyeân 4 bytes Töø –2147483647 ñeán 2147483646

General Ñoái töôïng nhuùng

4 bytes trong table

Chæ bò giôùi haïn bôûi boä nhôù

Memo Vaên baûn ghi nhôù

4 bytes trong table

Chæ bò giôùi haïn bôûi boä nhôù

Memo (Binary)

Vaên baûn ghi nhôù

Khoâng thay ñoåi khi chuyeån töø maõ quoác gia naøy sang maõ quoác gia khaùc

* Caùc vaán ñeà khaùc : ÖÙng duïng (Application) laø moät taäp hôïp goàm Programs, Forms,

Menus, Labels, Queries, … ñöôïc bieân dòch thaønh moät chöông trình duy nhaát. Caùc öùng duïng ñöôïc xaây döïng baèng chöùc naêng Project Manager, löu treân ñóa thaønh taäp tin coù phaàn môû roäng laø .APP.

Ñoà aùn (Project) laø moät taäp tin theo doõi caùc : Programs, Forms, Menus, … Caùc Project ñöôïc baûo trì bôûi chöùc naêng Project Manager, löu treân ñóa thaønh taäp tin coù phaàn môû roäng laø .PJX.

CSDL (Database) cung caáp moät moâi tröôøng laøm vieäc trong ñoù chöùa moät taäp hôïp caùc Tables, quy ñònh moái quan heä (Relaltionships) giöõa caùc Tables, ñeà ra caùc thuoäc tính (Propeties) cuøng caùc quy luaät kieåm chính soá lieäu duøng ñeå ñieàu khieån ñoàng boä giöõa caùc Tables vôùi nhau. Coù theå söû duïng ñoäc laäp hoaëc lieân keát chuùng vaøo moät project baèng caùch theâm chuùng vaøo Project Manager.

Tables löu giöõ soá lieäu theo caùc ñôn vò goïi laø Records (caùc maãu tin) vaø Fields (caùc vuøng)

Record laø moät boä caùc vuøng tin trong moät Table. Moät Field laø teân cuûa moät coät quy ñònh trong Record ñeå chöùa döõ

kieän thuoäc moät kieåu naøo ñoù.Khi ñaët teân trong Visual Foxpro, caàn löu yù :

Chæ duøng caùc kyù töï chöõ (töø a ñeán z vaø töø A ñeán Z), kyù töï soá (0 ñeán 9), daáu gaïch döôùi.

Teân chæ ñöôïc baét ñaàu baèng kyù töï chöõ hoaëc daáu gaïch döôùi. Teân coù theå daøi töø 1 ñeán 256 kyù töï, ngoaïi tröø teân Field vaø teân

chæ muïc chæ daøi toái ña 10 kyù töï. Khoâng neân ñaët teân truøng vôùi töø khoùa. Teân taäp tin thì theo nguyeân taéc ñaët teân cuûa heä ñieàu haønh ñang

duøng.Caùc toaùn töû :

toaùn töû xöû lyù chuoãi :+ : gheùp chuoãi– : gheùp chuoãi dôøi khoaûng traéng veà cuoái$ : thuoäc veà (So saùnh)

toaùn töû xöû lyù ngaøy giôø :+ : coäng– : tröø

4

Page 5: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Ngaøy + Soá (tính baèng ngaøy) Ngaøy saép tôùiNgaøy – Soá (tính baèng ngaøy) Ngaøy tröôùc ñoùNgaøy giôø + Soá (tính baèng giaây) Ngaøy giôø saép tôùiNgaøy giôø – Soá (tính baèng ngaøy) Ngaøy giôø tröôùc ñoù

toaùn töû luaän lyù :( ): keát nhoùm, ñieàu kieän beân trong ngoaëc keát nhoùm ñöôïc xeùt

tröôùcNOT hoaëc ! : Logical NegativeAND : Logical ANDOR : Logical OR(NOT, AND, OR coù theå vieát theo kieåu cuõ : .NOT., .AND., .OR.)

toaùn töû so saùnh :< : nhoû hôn> : lôùn hôn= : baèng<>, #, != : khoâng baèng (khoâng söû duïng >< hoaëc =! hoaëc )<= : nhoû hôn hay baèng (khoâng söû duïng =< hoaëc )>= : lôùn hôn hay baèng (khoâng söû duïng => hoaëc )== : chuoãi kyù töï baèng chính xaùc

toaùn töû soá hoïc :( ): keát nhoùm**, ^ : luõy thöøa* : nhaân/ : chia% : soá dö pheùp chia nguyeân + : coäng– : tröø

Bieán heä thoáng laø do Visual Foxpro taïo ra khi khôûi ñoäng. Teân bieán heä thoáng thöôøng khôûi ñaàu baèng daáu gaïch döôùi.

Bieán boä nhôù do ngöôøi söû duïng taïo ra, coù theå thay ñoåi giaù trò, kieåu hoaëc xoùa deã daøng khi heát phieân laøm vieäc cuûa Visual Foxpro.

Haøm cô höõu laø haøm coù saün trong boä chöông trình Visual Foxpro. Haøm ngöôøi duøng laø haøm do ngöôøi duøng töï vieát vaø chæ coù taùc duïng trong chöông trình hay öùng duïng coù ñònh nghóa haøm ñoù.Moâi tröôøng laøm vieäc muoán chaïy thaät oån ñònh caàn quan taâm ñeán caùc tham soá moâi tröôøng sao cho phuø hôïp, ñoâi khi caàn phaûi quy ñònh laïi caùc tham soá naøy baèng caùc leänh thích hôïp.

II. QUAÛN LYÙ ÑEÀ AÙN ( PROJECT MANAGER ) :

Moät öùng duïng laø moät taäp hôïp goàm caùc taäp tin, döõ lieäu, tö lieäu vaø caùc ñoái töôïng. Taát caû caùc thoâng tin quaûn lyù öùng duïng ñöôïc löu trong taäp tin chính coù phaàn môû roäng laø PJX vaø taäp tin kyù öùc coù phaàn môû roäng laø PJT.

5

Page 6: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Cöûa soå quaûn lyù öùng duïng ñuôïc duøng ñeå toå chöùc vaø quaûn lyù caùc thaønh phaàn trong moät öùng duïng. Noù goàm coù 6 trang : All, Data, Docs, Classes, Code, Other. Trang All chöùa toaøn boä thoâng tin cuûa 5 trang coøn laïi. Trang Data goàm 2 thaønh phaàn : Database vaø Query. Trang Docs goàm caùc thaønh phaàn : Forms, Reports, Labels. Trang Classes goàm danh saùch caùc lôùp ñöôïc söû duïng trong öùng duïng. Trang Code goàm caùc taäp tin chöông trình, thö vieän API vaø caùc öùng duïng khaùc. Trang Other goàm caùc thöïc ñôn, taäp tin kieåu vaên baûn TXT vaø caùc taäp tin khaùc.

Caùc nuùt chöùc naêng trong cöûa soå öùng duïng : New : ñeå taïo môùi caùc loaïi thaønh phaàn chi tieát. Add : ñöa taäp tin caùc loaïi ñaõ coù treân ñóa vaøo cöûa soå öùng

duïng. Modify : caäp nhaät treân muïc ñöôïc choïn. Browse : lieät keâ moät taäp tin DBF döôùi daïng baûng. Close : ñoùng caùc taäp tin caùc loaïi. Open : môû moät CSDL. Remove : loaïi boû moät taäp tin hay moät ñoái töôïng ra khoûi cöûa soå

öùng duïng. Build : taïo taäp tin thöïc hieän cho caùc öùng duïng. Preview : xem moät baùo caùo ôû cheá ñoä xem tröôùc treân maøn hình. Run : duøng ñeå thöïc hieän moät truy vaán, bieåu maãu, chöông trình.

* Taïo moät taäp tin öùng duïng :Cuù phaùp : CREATE PROJECT <.PJX> | ?

* Môû moät taäp tin öùng duïng :Cuù phaùp : MODIFY PROJECT <.PJX> | ?

* Dòch moät taäp tin öùng duïng ra taäp tin APP hoaëc EXE :- Choïn nuùt chöùc naêng Build hoaëc choïn Project, Build töø thöïc ñôn heä

thoáng.- Choïn caùch dòch taäp tin öùng duïng :

Rebuild Project ñeå dòch ra taäp tin PJX. Build Application ñeå dòch ra taäp tin APP Build Executable ñeå dòch ra taäp tin EXE.

III. CÔ SÔÛ DÖÕ LIEÄU ( Database ):Baûng trong moâ hình döõ lieäu quan heä laø moät baûng hai chieàu goàm

caùc doøng vaø coät. Moãi baûng ñöôïc ñaëc tröng bôûi teân coù phaàn môû roäng laø DBF vaø danh saùch caùc coät (thuoäc tính). Thöù töï caùc coät laø khoâng quan troïng vaø hai baûng khaùc nhau thì phaûi coù teân khaùc nhau. Coù hai loaïi baûng : baûng tham chieáu (database table) vaø baûng töï do (free table) khoâng thuoäc danh saùch tham chieáu cuûa caùc CSDL. Moãi vuøng laø moät coät trong baûng, phaûi thuoäc moät trong caùc kieåu döõ lieäu : Numeric, Float, Integer, Double, Currency, Character, Date, Date Time, Logical, Memo, General. Moãi maãu tin (record) laø moät doøng trong baûng. Khi muoán söû duïng moät baûng phaûi tieán haønh môû baûng baèng leänh : USE <table>.

Raøng buoäc toaøn veïn (RBTV) laø ñieàu kieän raøng buoäc döõ lieäu trong caùc baûng tham chieáu cuûa CSDL vaø taát caû caùc RBTV phaûi ñöôïc thoûa maõn ôû baát kyø thôøi ñieåm naøo. Vieäc kieåm tra caùc RBTV thöôøng ñöôïc thöïc hieän sau caùc thao taùc caäp nhaät döõ lieäu nhö theâm, söûa, ñaùnh daáu xoùa vaø coù theå ñöôïc tieán haønh thoâng qua caùc thuû tuïc kieåm tra do ngöôøi thieát keá chöông trình öùng duïng vieát hay Visual Foxpro töï ñoäng kieåm tra caùc RBTV döïa treân nhöõng moâ taû chi tieát cuûa ngöôøi thieát keá veà ñieàu kieän raøng buoäc ñoái vôùi döõ lieäu. RBTV coù 2 möùc : raøng buoäc treân vuøng (ñöôïc kieåm tra khi coù söï thay ñoåi döõ lieäu treân vuøng) vaø raøng buoäc maãu tin (ñöôïc kieåm tra khi coù söï thay ñoåi döõ

6

Page 7: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

lieäu treân maãu tin vaø ñöôïc kieåm tra sau raøng buoäc treân vuøng). Phaân loaïi caùc RBTV :

RBTV veà giaù trò cuûa moät vuøng : laø nhöõng ñieàu kieän thu heïp mieàn giaù trò cuûa caùc vuøng. Caùc vuøng naøy thöôøng laø vuøng kieåu soá, kieåu Date, kieåu Character. RBTV lieân vuøng : moâ taû moái quan heä giöõa caùc vuøng trong moät

baûng. RBTV giöõa caùc maãu tin trong moät baûng. Sieâu khoùa – Khoùa chính RBTV veà khoùa ngoaïi : coøn goïi laø raøng buoäc veà phuï thuoäc toàn

taïi. RBTV giöõa caùc maãu tin cuûa nhieàu baûng. RBTV giöõa caùc vuøng cuûa nhieàu baûng. RBTV phöùc taïp treân nhieàu baûng.

Taïo CSDL môùi : choïn moät trong caùc caùch sau : Choïn trang Data cuûa cöûa soå öùng duïng, choïn muïc Database vaø

nhaáp chuoät vaøo chöùc naêng New vaø xaùc ñònh teân trong oâ nhaäp Enter.

Thöïc hieän thoâng qua leänh : CREATE DATABASE <.DBC> | ? Thöïc hieän qua thöïc ñôn heä thoáng : choïn File, New, Database vaø

nhaáp chuoät vaøo New File.Theâm CSDL ñaõ coù vaøo danh saùch tham chieáu cuûa öùng duïng : choïn muïc Database trong trang Data cuûa cöûa soå öùng duïng vaø nhaáp chuoät vaøo chöùc naêng Add.Loaïi moät CSDL ra khoûi danh saùch tham chieáu : choïn moät trang caùc caùch sau :

Thöïc hieän qua cöûa soå öùng duïng : choïn teân CSDL caàn xoùa trong cöûa soá öùng duïng, choïn nuùt chöùc naêng Remove. Trong hoäp thoaïi Remove : choïn Remove ñeå xoùa CSDL ra khoûi danh saùch tham chieáu, choïn Delete ñeå xoùa CSDL ra khoûi ñóa, choïn Cancel ñeå ngöng thao taùc.

Thöïc hieän qua cöûa soå leänh : DELETE DATABASE <.DBC> | ? [DELETETABLES] [RECYCLE].

Taïo moät baûng baèng boä coâng cuï Database Designer :

Choïn bieåu töôïng ñaàu tieân beân traùi (New Table) cuûa thanh coâng cuï Databse Designer, choïn nuùt aán New table trong hoäp thoaïi ngay sau ñoù, xaùc ñònh thö muïc vaø teân table, ñònh nghóa caáu truùc baûng qua cöûa soå Table Designer.

Cöûa soå Table Designer coù trang : Fields, Indexes vaø Table. Trang Fiels duøng ñeå ñònh nghóa caùc vuøng cuûa baûng vôùi caùc yù nghóa :

Name : teân cuûa vuøng. Type : kieåu cuûa vuøng. Width, Decimal : kích thöôùc cuûa vuøng. Index : döõ lieäu cuûa vuøng ñöôïc saép xeáp taêng daån (Ascending)

hoaëc giaûm daàn (Descending). NULL : choù pheùp vuøng nhaän giaù trò NULL hay khoâng.

7

Page 8: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Format : daïng hieån thò cho döõ lieäu vuøng. Input mask : daïng nhaäp lieäu cho döõ lieäu cuûa vuøng. Caption : tieâu ñeà cuûa vuøng. Rule : caùc raøng buoäc toaøn veïn treân vuøng. Message : thoâng baùo loãi khi döõ lieäu khoâng hôïp leä. Default value : giaù trò ngaàm ñònh cho vuøng khi nhaäp lieäu. Field comment : chuù thích theâm cho vuøng.

Trang Indexes : duøng ñeå moâ taû caùc chæ muïc cuûa baûng. Order : thöù töï saép xeáp. Name : teân cuûa chæ muïc. Type : kieåu chæ muïc (Primary, Candidate, Unique, Regular). Expression : bieåu thöùc khoùa cuûa chæ muïc. Filter : ñieàu kieän loïc döõ lieäu cuûa chæ muïc.

Trang Table : Name : teân baûng. Database : taäp tin CSDL Table file : taäp tin DBF chöùa döõ lieäu cuûa baûng. Records : soá maãu tin cuûa baûng. Fields : soá vuøng cuûa baûng Length : kích thöôùc cuûa maãu tin + 1. Rule : chæ ñònh caùc ñieàu kieän raøng buoäc (bieåu thöùc hay thuû tuïc) Insert trigger : trigger cho thao taùc theâm maãu tin vaøo baûng. Update trigger : trigger cho thao taùc söûa ñoåi döõ lieäu cuûa caùc maãu

tin trong baûng. Delete trigger : trigger cho thao taùc ñaùnh daáu xoùa caùc maãu tin

trong baûng.

Taïo moät baûng : Coù theå taïo caáu truùc cuûa moät baûng baèng leänh :CREATE TABLE | DBF <.DBF> [NAME <teân>] [FREE] ;(<vuøng1> <kieåu1> [(<kích thöôùc1> [, <thaäp phaân1>])] ;[NULL | NOT NULL] ;[CHECK <btL1> [ERROR <btC1>]] ;[DEFAULT <bt1>] ;[PRIMARY KEY | UNIQUE] ;[REFERENCES <baûng1> [TAG <chæ muïc1>]] ;[, <vuøng2> …] ;[, PRIMARY KEY <bt2> TAG <chæ muïc2> ;|, UNIQUE <bt3> TAG <chæ muïc3>] ;[, FOREIGN KEY <bt4> TAG <chæ muïc4> [NODUP] ;REFERENCES <baûng2> [TAG <chæ muïc5>]] ;[, CHECK <btL2> [ERROR <btc2>]])

Trong ñoù :

8

Page 9: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

<.DBF> : teân taäp tin DBF cuûa baûng seõ ñöôïc taïo laäp. Baûng seõ ñöôïc töï ñoäng ñöa vaøo danh saùch tham chieáu cuûa CSDL.

NAME <teân> : teân ñaët theâm cho baûng. FREE : baûng ñöôïc taïo ra khoâng ñöôïc ñöa vaøo danh saùch tham

chieáu . <vuøng1> : teân cuûa vuøng thöù nhaát cuûa baûng. <kieåu1> : kieåu döõ lieäu cho vuøng thöù nhaát cuûa baûng. <kích thöôùc1> : kích thöôùc cuûa vuøng thöù nhaát cuûa baûng. <thaäp phaân1> : soá chöõ soá thaäp phaân cuûa vuøng thöù nhaát. NULL | NOT NULL : cho pheùp / khoâng cho pheùp vuøng laáy giaù trò NULL CHECK <btL1> : raøng buoäc toaøn veïn treân vuøng thöù nhaát trong

baûng. Ngay caû moät maãu tin traéng ñöa vaøo cuõng seõ ñöôïc kieåm tra. ERROR <btC1> : thoâng baùo loãi khi raøng buoäc toaøn veïn trong thaønh

phaàn CHECK bò vi phaïm. DEFAULT <bt1> : giaù trò ngaàm ñònh cho vuøng. PRIMARY KEY : taïo chæ muïc khoùa chính cho vuøng, vuøng naøy seõ laø

khoùa chính cuûa baûng. UNIQUE : taïo chæ muïc khoùa cho vuøng, seõ trôû thaønh khoùa cuûa

baûng. REFERENCES <baûng1> {TAG <chæ muïc1> : baûng ñöôïc taïo seõ lieân

keát khoùa ngoaïi giöõa vuøng thöù nhaát vôùi <chæ muïc1> cuûa <baûng1>. PRIMARY KEY <bt2> TAG <chæ muïc2> : <bt2> laø khoùa chính cuûa

baûng (coù theå goàm nhieàu vuøng). Neáu ñaõ duøng thaønh phaàn PRIMARY tröôùc ñoù roài thì khoâng ñöôïc duøng thaønh phaàn naøy.

UNIQUE <bt3> TAG <chæ muïc3> : <bt3> laø khoùa cuûa baûng (coù theå goàm nhieàu vuøng), khoâng chöùa moät vuøng ñaõ tham gia vaøo khoùa chính.

FOREIGN KEY <bt4> TAG <chæ muïc4> [NODUP] REFERENCES <baûng2> [TAG <chæ muïc5>] : baûng ñöôïc taïo seõ lieân keát khoùa ngoaïi giöõa <bt4> vôùi <chæ muïc5> cuûa <baûng2>. Neáu coù töø khoùa NODUP thì chæ muïc taïo ra seõ laø chæ muïc khoùa ngoaïi.

CHECK <btL2> : moâ taû raøng buoäc toaøn veïn cuûa baûng. ERROR <btC2> : thoâng baùo loãi khi thaønh phaàn CHECK bò vi phaïm

trong quaù trình caäp nhaät döõ lieäu trong cöûa soã Browse hay Edit.Ngoaøi ra coøn caùc leänh veà söûa ñoåi caáu truùc baûng, söûa ñoåi

thoâng tin caùc vuøng, huûy boû coät cuûa baûng, theâm döõ lieäu cuûa baûng, caäp nhaät döõ lieäu cuûa baûng, xoùa döõ lieäu cuûa baûng, truy vaán döõ lieäu cuûa CSDL thoâng qua caùc leänh ALTER, INSERT, UPDATE, DELETE, SELECT.Trigger cuûa moät baûng laø moät haønh ñoäng (töông öùng vôùi 1 thuû tuïc hay chöông trình) ñöôïc ñònh nghóa gaén lieàn vôùi moät thao taùc caäp nhaät döõ lieäu (theâm, söûa, xoùa) cuûa baûng. Trigger thöôøng ñöôïc söû duïng ñeå kieåm tra caùc RBTV.

Ñònh nghóa caùc trigger cho moät baûng : môû cöûa soå Table Designer ñeå thieát keá laïi baûng, choïn trang Table, moâ taû ñieàu kieän raøng buoäc hoaëc teân thuû tuïc kieåm tra raøng buoäc trong caùc oâ : Insert trigger, Update trigger, Delete trigger.

Huûy boû moät trigger : môû cöûa soå Table Designer ñeå thieát keá laïi baûng, choïn trang Table, xoùa ñieàu kieän raøng buoäc hoaëc teân thuû tuïc caàn kieåm tra trong caùc oâ : Insert trigger, Update trigger, Delete trigger. Coù theå thöïc hieän thoâng qua leänh DELETE TRIGGER.

Caùc loaïi chæ muïc (index) ñöôïc löu tröõ döôùi 2 loaïi taäp tin : IDX vaø CDX. Chæ muïc coù theå ñöôïc chia laøm 4 loaïi :

candidate index : chæ muïc khoùa, saép xeáp döõ lieäu theo caùc khoùa cuûa baûng.

9

Page 10: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

primary index : chæ muïc khoùa chính, saép xeáp döõ lieäu theo khoùa chính cuûa baûng.

unique index : chæ muïc duy nhaát (caùc sieâu khoùa), saép xeáp caùc döõ lieäu theo caùc sieâu khoùa hay khoùa cuûa baûng.

regular index : chæ muïc thoâng thöôøng, saép xeáp döõ lieäu theo moät tieâu chuaån naøo ñoù.Hai moái quan heä thöôøng gaëp laø : 1-1 vaø 1-n.Taïo moái lieân keát giöõa hai baûng :

Taïo moái lieân giöõa khoùa k cuûa baûng A vaø caùc vuøng cuûa baûng B :

- Taïo chæ muïc ik cho khoùa k vaø chæ muïc iv cho caùc vuøng. - Click chuoät vaøo doøng ik trong phaàn Indexes cuûa baûng A.

- Gaép doøng ik vaø ñem thaû vaøo doøng iv trong phaàn Indexes cuûa baûng B. Khi ñoù, trong cöûa soå chính cuûa boä coâng cuï Database Designer seõ xuaát hieän ñöôøng noái theå hieän moái lieân keát giöõa hai baûng A vaø B.

Taïo moái lieân giöõa khoùa ka cuûa baûng A vôùi khoùa kb cuûa baûng B :- Taïo chæ muïc ia cho khoùa ka vaø chæ muïc ib cho khoùa kb. - Click chuoät vaøo doøng ia trong phaàn Indexes cuûa baûng A.

Gaép doøng ia vaø ñem thaû vaøo doøng ib trong phaàn Indexes cuûa baûng B. Khi ñoù, trong cöûa soå chính cuûa boä coâng cuï Database Designer seõ xuaát hieän ñöôøng noái theå hieän moái lieân keát giöõa hai baûng A vaø B.

IV. LAÄP TRÌNH : 1. Chöông trình : laø moät taäp hôïp caùc leänh seõ ñöôïc thöïc hieän tuaàn töï töø treân xuoáng hoaëc theo caùc caáu truùc ñieàu khieån. Teân cuûa chöông trình laø teân cuûa taäp tin chöùa noù, coù phaàn môû roäng laø PRG. Soaïn thaûo chöông trình : Cuù phaùp : MODIFY COMMAND <.PRG> | ? [NOEDIT]

<.PRG> | ? : chæ ñònh teân taäp tin chöông trình, daáu ? cho pheùp ñaët teân chöông trình trong cöûa soå ñoái thoaïi OPEN.

NOEDIT : môû chöông trình ra ñeå xem, khoâng cho söûa noäi dung.

10Taïo cöûa soå soaïn thaûo chöông trình

Page 11: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Dòch vaø kieåm loãi chöông trình :Cuù phaùp : COMPILE <.PRG> | ? [NODEBUG]<.PRG> | ? : töông töï phaàn soaïn thaûo NODEBUG : khoâng löu soá thöù töï cuûa caùc doøng leänh vaø ngöôøi söû

duïng khoâng theå gôõ roái trong quaù trình thöïc hieän chöông trình.Khi phaùt hieän loãi sai trong chöông trình, caùc loãi sai ñöôïc ñöa vaøo taäp

tin coù teân truøng vôùi teân chöông trình vaø coù phaàn môû roäng laø ERR. Coù theå dòch chöông trình baèng caùch choïn Program, Complie töø thöïc ñôn heä thoáng.

Thöïc hieän chöông trình :Cuù phaùp : DO <chöông trình> | ?

<chöông trình> | ? : teân chöông trình muoán thöïc hieän.Coù theå choïn Program, Do töø thöïc ñôn heä thoáng.

2) Bieán kyù öùc (bieán boä nhôù) laø vuøng boä nhôù duøng ñeå löu tröõ taïm thôøi moät döõ lieäu. Qui taéc ñaët teân töông töï nhö vuøng trong baûng. Tröôùc khi söû duïng phaûi khai baùo baèng moät trong caùc leänh sau :

Leänh gaùn :Cuù phaùp : <bieán1> = <bt1> (gaùn giaù trò <bt1> cho <bieán1>)hay : STORE <bt2> TO <bieán2> [, <bieán3>, …] (duøng ñeå gaùn cuøng moät giaù trò cho nhieàu bieán)Khi bieán kyù öùc truøng teân vôùi teân moät bieán vuøng, söû duïng M. hay M-> ñaët tröôùc bieán kyù öùc ñeå chuyeån quyeàn öu tieân cho bieán kyù öùc.

Leänh PUBLIC : Duøng ñeå khai baùo moät danh saùch caùc bieán toaøn cuïc.Cuù phaùp : PUBLIC <bieán1> [, <bieán2>, …]

Leänh LOCAL : Duøng ñeå khai baùo moät daùnh saùch caùc bieán cuïc boä hay bieán cuïc boä. Cuù phaùp : LOCAL <bieán1> [, <bieán2>, …]

Khai baùo maûng :Cuù phaùp : DIMENSION <maûng1>(<kích thuôùc1>) [,

<maûng2>(kíchthöôùc2) …]hay : PUBLIC <maûng3>(<kích thuôùc3>) [, <maûng4>(kíchthöôùc4) …]hay : LOCAL <maûng5>(<kích thuôùc5>) [, <maûng6>(kíchthöôùc6) …]

maûng1 : teân bieán maûng 1 hay 2 chieàu.kích thuôùc1 : kích thöôùc hay soá phaàn töû cuûa caùc chieàu.

Duøng ñeå khai baùo moät daùnh saùch caùc bieán cuïc boä hay bieán cuïc boä. Löu yù leänh naøy khoâng ñöôïc vieát taét thaønh LOCA vì seõ laàm laãn vôùi leänh LOCATE.

Leänh DIMENSION duøng ñeå khai baùo caùc bieán maûng 1 hoaëc 2 chieàu.

Leänh PUBLIC duøng ñeå khai baùo maûng toaøn cuïc.Leänh LOCAL duøng ñeå khai baùo maûng cuïc boä.

Sau khi khai baùo maûng, coù theå söû duïng leänh gaùn ñeå gaùn caùc giaù trò cho maûng.

11

Page 12: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Vieäc khai baùo bieán coù theå chæ caàn ñaët tröôùc khi söû duïng bieán maø khoâng baét buoäc phaûi ñaët ôû ñaàu chöông trình. Noù coù theå thöïc hieän ôû cöûa soå leänh cuõng nhö baát cöù vò trí naøo trong chöông trình. Giaù trò cuûa bieán kyù öùc ñöôïc löu thaønh moät taäp tin ñeå söû duïng sau naøy coù phaàn môû roäng laø MEM.

Leänh löu caùc giaù trò cuûa bieán kyù öùc leân taäp tin :Cuù phaùp : SAVE TO <.MEM> [ALL LIKE <daïng1> | ALL EXCEPT

<daïng2>] <.MEM> : teân taäp tin löu tröõ giaù trò cuûa bieán kyù öùc. Ngaàm ñònh, seõ löu tröõ taát caû caùc bieán kyù öùc ñang toàn taïi trong boä nhôù leân taäp tin.ALL LIKE <daïng1> : chæ löu caùc bieán kyù öùc coù teân phuø hôïp vôùi

<daïng1>ALL EXCEPT <daïng2> : löu taát caû caùc bieán kyù öùc ngoaïi tröø caùc

bieán coù teân phuø hôïp vôùi <daïng2>. Leänh chuyeån taûi caùc bieán kyù öùc töø taäp tin leân boä nhôù :

Cuù phaùp : RESTORE FROM <.MEM> [ADDITIVE] <.MEM> : teân taäp tin löu tröõ caùc bieán kyù öùc muoán chuyeån taûi

vaøo boä nhôù. Ngaàm ñònh, caùc bieán kyù öùc ñang toàn taïi trong boä nhôù seõ bò maát ñi vaø thay vaøo ñoù laø caùc bieán ñöôïc löu tröõ töø taäp tin <.MEM> leân.

ADDITIVE : caùc bieán kyù öùc hieän coù trong boä nhôù khoâng maát ñi maø cuøng toàn taïi vôùi caùc bieán ñöôïc chuyeån taûi töø taäp tin <.MEM> leân.

Vieäc trao ñoåi döõ lieäu giöõa bieán vuøng vaø bieán kyù öùc thöôøng xuyeân xaûy ra trong quaù trình caäp nhaät döõ lieäu. Leänh SCATTER vaø GATHER seõ thöïc hieän böôùc sao cheùp noäi dung caùc bieán vuøng ra bieán kyù öùc vaø ghi noäi dung caùc bieán kyù öùc ñaõ ñöôïc xöû lyù vaø kieåm tra vaøo maãu tin hieän haønh cuûa DBF.

Cuù phaùp : SCATTER MEMVAR [MEMO] [BLANK]GATHER MEMVAR [MEMO]

Leänh SCATTER taïo ra moät boä bieán kyù öùc truøng teân vôùi caùc vuøng cuûa taäp tin DBF vaø töï ñoäng sao cheùp noäi dung cuûa maãu tin hieän haønh cho boä bieán kyù öùc naøy. Töø khoùa MEMO nhaèm sao cheùp caû vuøng kieåu Memo (neáu coù) thaønh caùc bieán kieåu chuoãi. Töø khoùa BLANK seõ cho pheùp cheùp moät maãu tin traéng thay vì maãu tin hieän haønh. Leänh GATHER coù taùc duïng ngöôïc laïi. Hieän nay, ñaõ coù nhöõng coâng cuï tieän duïng vaø hieäu quaû trong vieäc taïo caùc maøn hình nhaäp lieäu. Baáy giôø, vieäc giao tieáp seõ ñöôïc thöïc hieän giaùn tieáp qua caùc oâ ñieàu khieån.

Macro (&) ñöôïc duøng vôùi caùc bieán kyù öùc kieåu chuoãi. Leänh coù chöùa macro laø leänh chöa hoaøn chænh, noù seõ ñöôïc thoâng dòch hai laàn tröôùc khi thöïc hieän.3) Caáu truùc ñieàu khieån : tuaàn töï, choïn löïa, caáu truùc laëp.

Caáu truùc tuaàn töï : laø caáu truùc ñieàu khieån cô baûn cuûa Visual Foxpro.

Caáu truùc choïn löïa :* Caáu truùc ñieàu kieän ñôn IF :Cuù phaùp : IF <btL>

<nhoùm leänh1>[ELSE

<nhoùm leänh2>]ENDIF

Khi thöïc hieän ñeán caáu truùc naøy, <btL> ñöôïc kieåm tra. Neáu baèng .T. seõ thöïc hieän <nhoùm leänh1> töø sau IF ñeán tröôùc ELSE (neáu coù) hoaëc

12

Page 13: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

ñeán tröôùc ENDIF (neáu khoâng coù ELSE). Neáu baèng .F. seõ thöïc hieän <nhoùm leänh2> töø sau ELSE ñeán ñeán tröôùc ENDIF (neáu coù) hoaëc boû qua caáu truùc naøy (neáu khoâng coù ELSE). Sau ñoù, chöông trình seõ ñöôïc tieáp tuïc thöïc hieän phaàn tieáp theo sau ENDIF. Ñoái vôùi caáu truùc choïn löïa ñôn giaûn, coù theå duøng haøm IIF().* Caáu truùc nhieàu ñieàu kieän DO CASE :

Cuù phaùp : DO CASECASE <btL1>

<nhoùm leänh1>CASE <btL2>

<nhoùm leänh2>…

CASE <btLn><nhoùm leänhn>

[OTHERWISE<nhoùm leänh0>]

ENDCASE Caáu truùc ñieàu khieån DO CASE seõ laàn löôït kieåm tra caùc ñieàu kieän <btL1>, <btL2>, …, , <btLn> vaø thöïc hieän nhoùm leänh ôû sau ñieàu kieän ñaàu tieân ñöôïc thoaû. Neáu taát caû caùc ñieàu kieän ñeàu khoâng thoûa seõ thöïc nhoùm leänh ôû sau OTHERWISE neáu coù.

Caáu truùc laëp :* Caáu truùc ñieàu khieån FOR … ENDFOR :

Cuù phaùp : FOR <bieán kyù öùc> = <btN1> TO <btN2> [STEP ,btN3>]…[LOOP]…[EXIT]…ENDFOR

Thaân cuûa voøng laëp ñöôïc laëp ñi laëp laïi nhieàu laàn trong khi <bieán kyù öùc> thay ñoåi giaù trò töø <btN1> ñeán <btN2>. Sau moãi laàn thöïc hieän thaân voøng laëp, <bieán kyù öùc> ñöôïc theâm <btN3> neáu coù STEP hoaëc töï ñoäng taêng leân 1 neáu khoâng coù STEP.

Gaëp töø khoùa EXIT trong thaân voøng laëp seõ thoaùt khoûi caáu truùc ñieàu khieån FOR vaø thöïc hieän tieáp caùc leänh sau ENDFOR.

Gaëp töø khoùa LOOP trong thaân voøng laëp, seõ boû qua caùc leänh coøn laïi cuûa thaân voøng laëp trong laàn thöïc hieän ñoù, thay ñoåi giaù trò <bieán kyù öùc>, chuyeån ñieàu khieån trôû laïi voøng laëp FOR cho laàn thöïc hieän keá.* Caáu truùc ñieàu khieån DO WHILE … ENDDO :

Cuù phaùp : DO WHILE <btL>…[LOOP]…[EXIT]…ENDDO

Thaân cuûa voøng laëp ñöôïc laëp ñi laëp laïi nhieàu laàn trong khi <btL > vaãn coøn laø .T. Chæ khi naøo <btL>coù giaù trò .F. thì seõ thoaùt khoûi caáu truùc naøy. Töø khoùa EXIT, LOOP töông töï nhö treân.* Caáu truùc ñieàu khieån SCAN … ENDSCAN :Cuù phaùp : SCAN [<phaïm vi>] [FOR <btL1>] [WHILE <btL2>]

13

Page 14: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

[LOOP]…

[EXIT]…

ENDSCANCaáu truùc naøy duøng ñeå “queùt” taäp tin DBF. Khoâng caàn ñaët leänh

SKIP vaøo trong thaân chöông trình vì sau moãi laàn thöïc hieän voøng laëp, con troû maãu tin töï ñoäng dôøi xuoáng maãu tin keá. Töø khoùa EXIT, LOOP töông töï nhö treân. Caáu truùc ngaét :* Ngaét khi phaùt hieän loãi sai :

Cuù phaùp : ON ERROR [<leänh>]Duøng ñeå kieåm soaùt vaø xöû lyù loãi sai trong quaù trình thöïc hieän

chöông trình hay leänh.<leänh> : leänh seõ thi haønh ñeå xöû lyù loãi sai. Thöôøng laø leänh goïi

thöïc hieän moät chöông trình hay thuû tuïc (leänh DO). Haøm ERROR() cho bieát maõ soá töông öùng cuûa loãi sai, ngöôøi laäp trình döïa vaøo ñaây ñeå coù xöû lyù thích hôïp cho töøng loãi sai. Sau khi <leänh> thöïc hieän xong, seõ tieáp tuïc laøm doøng leänh tieáp theo ngay beân döôùi doøng phaùt sinh loãi hoaëc thöïc hieän laïi doøng phaùt sinh ra loãi neáu trong chöông trình hay thuû tuïc xöû lyù loãi coù chöùa leänh RETRY.

Leänh ON ERROR khoâng coù leänh theo sau duøng ñeå traû quyeàn xöû lyù loãi sai veà cho Visual Foxpro.* Ngaét khi baám phím qui ñònh :Cuù phaùp : ON ESCAPE [<leänh1>] Leänh naøy duøng ñeå thöïc hieän moät xöû lyù khaùc (,leänh1>) thay cho caùch xöû lyù ngaàm ñònh cuûa Visual Foxpro. Neáu khoâng coù thaønh phaàn leänh keøm theo coù taùc duïng traû veà caùch xöû lyù ngaàm ñònh cuûa Visual Foxpro.

ON KEY [LABEL <toå hôïp phím> [leänh2>]]Leänh naøy duøng ñeå moâ taû nhöõng xöû lyù (<leänh2>) khi ngöôøi söû

duïng baám toå hôïp phím hay baám chuoät. Neáu khoâng coù thaønh phaàn leänh keøm theo seõ traû veà caùch xöû lyù ngaàm ñònh neáu coù cuûa toå hôïp phím. Leänh naøy ñöôïc duøng phoái hôïp vôùi leänh PUSH KEY ñeå ghi nhôù caùch xöû lyù hieän haønh cuûa taát caû caùc phím tröôùc khi duøng ON KEY LABEL vaø phuïc hoài laïi caùch xöû lyù cuûa caùc phím khi keátthuùc chöông trình baèng leänh POP KEY. Caáu truùc loàng nhau :

Ngoaïi tröø leänh ON ERROR ñöôïc loàng vaøo moät thuû tuïc xöû lyù loãi khaùc, taát caû caùc caáu truùc ñieàu khieån ñaõ neâu coù theå loàng vaøo nhau theo nhieàu caáp. Kyõ thuaät gioùng haøng ñöôïc aùp duïng nhaèm traùnh caùc loãi sai veà cuù phaùp vaø giuùp deã ñoïc hôn.

4) Thuû tuïc (Procedure) : laø ñoaïn chöông trình con ñeå thöïc hieän moät chöùc naêng naøo ñoù. Moät thuû tuïc ñaàu baèng chæ thò PROCEDURE ñeå ñaët teân cho thuû tuïc vaø coù theå keát thuùc baèng chæ thò RETURN hoaëc ENDPROC (khoâng baét buoäc).Cuù phaùp : PROCEDURE <teân thuû tuïc>…[RETURN]…[ENDPROC]Caùc thuû tuïc coù theå löu chung trong moät chöông trình nhöng phaûi

taùch rôøi vaø khoâng ñöôïc loàng nhau. Khi goïi thöïc hieän thuû tuïc, seõ thöïc hieän nhö sau :

Cuù phaùp : DO <thuû tuïc> IN <.PRG>

14

Page 15: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Neáu caùc thuû tuïc chöùa trong moät taäp tin chöông trình, coù theå môû taäp tin chöông trình naøy baèng leänh SET PROCEDURE TO [<.PRG>] vaø boû qua phaàn IN <.PRG> trong caùc leänh goïi thöïc hieän thuû tuïc.

Thuû tuïc noäi taïi laø moät daïng thuû tuïc raát ñaëc bieät cuûa Visual Foxpro, thöôøng laø caùc triggers cuûa CSDL. Choïn muïc Stored Procedures trong cöûa soå öùng duïng, choïn moät trong caùc nuùt chöùc naêng New hoaëc Add hoaëc Modify (taùc duïng nhö nhau). Khi ñoù xuaát hieän moät cöûa soå chöùa taát caû caùc thuû tuïc noäi taïi hieän coù cuûa CSDL ñeå ngöôøi laäp trình coù theå soaïn thaûo moät thuû tuïc môùi, söûa ñoåi hoaëc xoùa boû moät thuû tuïc ñaõ coù.

Dòch caùc thuû tuïc noäi taïi :Cuù phaùp : COMPILE DATABASE <.DBC>

Bieán toaøn cuïc (Global) : laø bieán coù theå söû duïng ôû moïi caáp chöông trình (hay thuû tuïc) goïi nhau; ñöôïc khai baùo trong chöông trình (hay thuû tuïc) baèng leänh PUBLIC hoaëc ñöôïc khai baùo ôû cöûa soå leänh khoâng phaûi baèng leänh LOCAL; seõ maát ñi neáu gaëp moät trong caùc leänh : QUIT, CLEAR ALL, CLEAR MEMORY, RELEASE <bieán1> [<bieán2>, …]

Bieán cuïc boä (Local) : laø bieán chæ coù theå söû duïng trong chöông trình (hay thuû tuïc) khai baùo noù vaø trong nhöõng chöông trình (hay thuû tuïc) maø noù goïi thöïc hieän; ñöôïc khai baùo trong chöông trình (hay thuû tuïc) khoâng phaûi baèng leänh PUBLIC hoaëc ñöôïc khai baùo ôû cöûa soå leänh baèng leänh LOCAL; seõ maát ñi neáu gaëp moät trong caùc leänh : QUIT, CLEAR ALL, CLEAR MEMORY, RELEASE <bieán1> [<bieán2>, …]

Trao ñoåi tham bieán : Coù hai hình thöùc trao ñoåi tham bieán : trao ñoåi theo giaù trò (coù theå thay ñoåi giaù trò cuûa baûn sao nhöng khoâng laøm thay ñoåi giaù trò goác cuûa tham bieán) vaø trao ñoåi theo ñòa chæ (coù theå laøm thay ñoåi giaù trò goác cuûa tham bieán). Ñeå thöïc hieän vieäc trao ñoåi tham bieán giöõa caùc chöông trình (hay thuû tuïc), phaûi chæ ñònh danh sach tham bieán gôûi ñi.

Cuù phaùp : DO <thuû tuïc> WITH <tham bieán1> [, <tham bieán2>, …]Taïi chöông trình (thuû tuïc) ñöôïc goïi thöïc hieän, phaûi ñaët doøng leänh khai baùo caùc tham bieán nhaän PARAMETERS hay LPARAMETERS ôû ngay sau doøng leänh ñaët teân cuûa thuû tuïc.Cuù phaùp : PROCEDURE <teân thuû tuïc>

PARAMETERS <tham bieán1> [, <tham bieán2>, …]…

ENDPROCToái ña coù 27 tham bieán ñöôïc khai baùo. Che bieán : nhaèm traùnh tình traïng caùc bieán cuïc boä ñöôïc ñaët teân

truøng nhau ngoaøi yù muoán khi coù nhieàu ngöôøi cuøng tham gia vieát moät chöông trình öùng duïng.

Cuù phaùp : PRIVATE <bieán1> [, <bieán2>, …]hay : PRIVATE ALL [LIKE <daïng1> | EXCEPT <daïng2>]<bieán1> [, <bieán2>, …] : caùc bieán cuïc boä ñöôïc che ñi.PRIVATE ALL : che taát caû caùc bieán cuïc boä.PRIVATE ALL LIKE <daïng1> : che taát caû caùc bieán coù teân phuø hôïp

vôùi <daïng1>.PRIVATE ALL EXCEPT <daïng2> : che taát caû caùc bieán coù teân khoâng

phuø hôïp vôùi <daïng2>.5) Haøm (Function) : töông töï thuû tuïc veà maët chöùc naêng, chæ khaùc ôû choã haøm seõ traû veà nôi goïi moät vaø chæ moät giaù trò. Kieåu döõ lieäu cuûa haøm laø kieåu cuûa giaù trò traû veà. Haøm coù saün nhö DATE(), INT(), UPPER(), … do Visual Foxpro cung caáp. Haøm do ngöôøi söû duïng ñònh nghóa thì trong phaàn thaân cuûa haøm phaûi coù ít nhaát 1 doøng leänh RETURN ñeå traû giaù trò veà nôi goïi.

15

Page 16: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Cuù phaùp : FUNCTION <teân haøm>PARAMETERS <tham bieán1> [, <tham bieán2>, …]…[RETURN <bt>]…ENDFUNC<teân haøm> : teân cuûa haøm do ngöôøi duøng ñònh nghóa.PARAMETERS <tham bieán1> [, <tham bieán2>, …] : danh saùch caùc tham

bieán cuûa haøm.<bt> : giaù trò traû veà nôi goïi.

V. MAØN HÌNH GIAO DIEÄN (INTERFACE DISPLAY):Maøn hình giao dieän laø nhöõng cöûa soå coù chöùa caùc ñoái töôïng ñaëc

bieät goïi laø caùc ñieàu khieån, ñaûm nhieäm vieäc giao tieáp giöõa ngöôøi duøng vaø öùng duïng. Coù hai loaïi maøn hình giao dieän thoâng duïng : daïng ñôn giaûn lieân keát vôùi moät baûng vaø daïng one – to – many lieân keát vôùi baûng coù thieát laäp moái quan heä vôùi nhau.Thanh coâng cuï vaø thuoäc tính taïo giao dieän :

Nhaõn (Label): laø ñoaïn vaên baûn coá ñònh, daøi toái ña 256 kyù töï. Khi ñaët \< tröôùc moät kyù töï naøo ñoù thì kyù töï ñoù trôû thaønh phím noùng.

Thuoäc tính YÙ nghóaCaption Noäi dung cuûa nhaõnName Teân cuûa nhaõn

Hoäp vaên baûn (Text Box) : duøng ñeå hieån thò vaø caäp nhaät döõ lieäu treân moät doøng.

Thuoäc tính YÙ nghóaControlSource Vuøng keát noái vôùi hoäp vaên baûnName Teân cuûa hoäp vaên baûnFormat Daïng hieån thò vaø nhaäp lieäu cuûa hoäp

vaên baûn. K : ñaùnh daáu choïn taát caû döõ lieäu trong hoäp ñieàu khieån khi ñieàu khieån nhaän ñöôïc focus.! : ñoåi chöõ thöôøng thaønh chöõ hoa.Z : khoâng hieän 0 neáu giaù trò cuûa ñieàu khieån ñang laø 0.

16

Page 17: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

InputMask Daïng nhaäp lieäu cuûa hoäp vaên baûn.X : cho pheùp nhaäp baát kyø kyù töï.9 : chæ ñöôïc nhaäp soá vaø daáu.# : chæ nhaäp soá, daáu vaø khoaûng traéng.

MaxLength Qui ñònh soá kyù töï toái ña coù theå nhaäp ñöa vaøo hoäp vaên baûn (khoâng haïn cheá neáu = 0)

ToolTipText Chuù thích theâm cho hoäp vaên baûn

Hoäp soaïn thaûo (Edit Box) : duøng ñeå hieån thò vaø caäp nhaät döõ lieäu treân nhieàu doøng (thích hôïp vôùi döõ lieäu kieåu Memo hay kieåu Character coù ñoä daøi khaù lôùn).

Thuoäc tính YÙ nghóaControlSource Vuøng keát noái vôùi hoäp soaïn thaûoName Teân cuûa hoäp soaïn thaûoFormat Daïng hieån thò cuûa hoäp soaïn thaûoMaxLength Qui ñònh soá kyù töï toái ña coù theå nhaäp

ñöa vaøo hoäp soaïn thaûo (khoâng haïn cheá neáu = 0)

ToolTipText Chuù thích theâm cho hoäp soaïn thaûo

Nuùt leänh (Command Button) : duøng ñeå ñaëc tröng cho moät chöùc naêng seõ ñöôïc thöïc hieän khi ngöôøi söû duïng choïn nuùt leänh naøy.

Thuoäc tính YÙ nghóaTerminateRead Giaù trò laø .T. thì maøn hình giao dieän seõ

ñoùng laïi sau khi thi haønh nuùt leänhName Teân cuûa nuùt leänhCaption Vaên baûn xuaát hieän treân nuùt leänhPicture Hình aûnh xuaát hieän treân nuùt leänhClick Event Thuû tuïc seõ ñöôïc thi haønh khi ngöôøi söû

duïng choïn nuùt leänh

OÂ kieåm tra (Check Box) : Moät oâ kieåm tra ñöôïc choïn (x) coù yù nghóa ngöôøi söû duïng ñoàng yù vôùi noäi dung moâ taû cuûa oâ kieåm tra.

Thuoäc tính YÙ nghóaControlSource Vuøng keát noái vôùi oâ kieåm traCaption Vaên baûn xuaát hieän treân oâ kieåm traPicture Hình aûnh xuaát hieän treân oâ kieåm tra

Hoäp danh saùch (List Box) – Hoäp danh saùch keùo xuoáng (Combo Box) : Hoäp danh saùch laø moät khung chöõ nhaät chöùa danh saùch caùc muïc, trong ñoù moãi doøng laø moät muïc vaø coù theå coù nhieàu coät. Töông töï cho hoäp danh saùch keùo xuoáng nhöng chæ cho hieån thò moät doøng (muïc), chæ khi click chuoät vaøo muõi teân phía phaûi cuûa hoäp danh saùch keùo xuoáng thì taát caû caùc muïc môùi ñöôïc hieån thò

Thuoäc tính YÙ nghóaBoundColumn Giaù trò coät thöù maáy ñöôïc traû veà khi

choïn moät muïc choïn trong hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng.

17

Page 18: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

ControlSource Vuøng keát noái vôùi hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng.

ColumnCount Soá coät hieån thò treân hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng.

ListItem Cho pheùp truy caäp ñeán caùc muïc trong hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng.

ListCount Cho bieát soá muïc coù trong hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng.

RowSource Nguoàn döõ lieäu cung caáp caùc cho hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng.

RowSourceType Kieåu döõ lieäu nguoàn, coù theå laø Query, Bí danh, caâu leänh SQL, …

AddItemMethod Ñöa moät muïc vaøo danh saùchRemoveItemMethod

Huûy moät muïc ra khoûi danh saùch

RequeryMethod Caäp nhaät laïi caùc thay ñoåi trong hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng.

Spinner : laø moät ñieàu khieån cho pheùp ngöôøi duøng choïn giaù trò trong moät phaïm vi.

Thuoäc tính YÙ nghóaControlSource Vuøng keát noái vôùi SpinnerIncrement Böôùc taêng hoaëc giaûm cho SpinnerKeyboardHighValue, KeyboardLowValue

Giaù trò lôùn nhaát vaø nhoû nhaát coù theå ñöa vaøo töø baøn phím cho Spinner.

SpinnerHighValue, SpinnerLowValue

Giaù trò lôùn nhaát vaø nhoû nhaát choïn trong Spinner.

Löôùi (Grid) : duøng ñeå hieån thò döõ lieäu theo daïng löôùi, laø moät baûng coù nhieàu coät vaø nhieàu doøng; thöôøng söû duïng trong maøn hình giao dieän one – to – many, noäi dung cuûa löôùi laø döõ lieäu cuûa baûng table vaø caùc döõ lieäu naøy coù quan heä vôùi baûng cha theo moät bieåu thöùc quan heä. Moãi coät cuûa löôùi goàm hai thaønh phaàn : tieâu ñeà (Headder) vaø ñieàu khieån cuûa coät (ngaàm ñònh laø hoäp vaên baûn, coù theå ñoåi thaønh combo box hay oâ kieåm tra).

Thuoäc tính YÙ nghóaChildOrder Teân index Tag cuûa döõ lieäu nguoàn cho

löôùiLinkMaster Bí danh cuûa baûng chaRecordSourceType

Kieåu döõ lieäu nguoàn cuûa löôùi

RecordSource Döõ lieäu nguoàn cuûa löôùiRelationalExpr Bieåu thöùc quan heä giöõa baûng cha vaø

baûng conColumnCount Soá coät hieån thò trong löôùiDeleteMark Laø .T. thì beân traùi löôùi seõ xuaát hieän

theâm moät coät ñeå ñaùnh daáu xoùa maãu

18

Page 19: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

tinRecordMark Laø .T. thì seõ xuaát hieän theâm moät coät

chöùa daáu hieäu cho caùc maãu tin ñöôïc choïn.

Maøn hình nhieàu trang : ñöôïc söû duïng trong tröôøng hôïp maøn hình giao dieän coù nhieàu ñieàu khieån vaø caàn toå chöùc, phaân nhoùm theo chuû ñeà.

Thuoäc tính YÙ nghóaActivePage Soá thöù töï trang hieän haønhPageCount Toång soá trang cuûa maøn hình nhieàu trangPageHeight Ñoä cao cuûa trangPageWidth Ñoä roäng cuûa trangTabs Laø .T. thì maøn hình nhieàu trang seõ coù

TabsTabStretch Laø 0 seõ cho pheùp hieån thò nhieàu doøng

neáu tabs khoâng ñuû choã treân naøn hình nhieàu trang.Laø 1 chæ cho pheùp hieån thò 1 doøng tabs treân maøn hình nhieàu trang.

2) Thieát keá maøn hình giao dieän baèng Form Winzard : Taïo maøn hình giao dieän ñôn giaûn töø moät baûng :

+ Choïn nuùt chöùc naêng New trong cöûa soå öùng duïng.+ Choïn nuùt nhaán Form Wizard.+ Choïn doøng Form Winzard, choïn OK.+ Ñònh nghóa caáu truùc cuûa maøn hình giao dieän :

* Böôùc 1 : Choïn caùc vuøng.& Choïn CSDL, baûng vaø caùc vuøng cho maøn hình giao dieän.& Choïn Next ñeå sang böôùc tieáp theo.

* Böôùc 2 : Choïn daïng cuûa maøn hình giao dieän& Choïn daïng maøn hình giao dieän.& Choïn Next ñeå sang böôùc tieáp theo.

* Böôùc 3 : Thöù töï saép xeáp caùc maãu tin& Choïn thöù töï saép xeáp caùc vuøng neáu caàn.& Choïn Next ñeå sang böôùc tieáp theo.

* Böôùc 4 : Keát thuùc& Ñaët tieâu ñeà cho maøn hình giao dieän& Choïn Preview ñeå xem tröôùc maøn hình giao dieän môùi taïo.& Choïn Finish ñeå keát thuùc, ñaët teân maøn hình giao dieän hoäp thoaïi

xuaát hieän ôû ñaây. Taïo maøn hình giao dieän One – to - Many :

+ Choïn nuùt chöùc naêng New trong cöûa soå öùng duïng.+ Choïn nuùt nhaán Form Wizard.+ Choïn doøng One – to – Many Form Winzard, choïn OK.+ Ñònh nghóa caáu truùc cuûa maøn hình giao dieän :

* Böôùc 1 : Choïn caùc vuøng cuûa baûng cha& Choïn CSDL, baûng cha vaø caùc vuøng cho maøn hình giao dieän.& Choïn Next ñeå sang böôùc tieáp theo.

* Böôùc 2 : Choïn caùc vuøng cuûa baûng con& Choïn CSDL, baûng con vaø caùc vuøng cho maøn hình giao dieän.& Choïn Next ñeå sang böôùc tieáp theo.

* Böôùc 3 : Xaùc ñònh moái quan heä giöõa hai baûng.* Böôùc 4 : Choïn daïng cuûa maøn hình giao dieän (töông töï nhö treân)* Böôùc 5 : Thöù töï saép xeáp caùc maãu tin (töông töï nhö treân)

19

Page 20: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

* Böôùc 6 : Keát thuùc (töông töï nhö treân)

3) Thieát keá maøn hình giao dieän baèng boä coâng cuï Form Design : Taïo maøn hình giao dieän :

Cuù phaùp : CREATE FORM <.SCX> | ? Söûa ñoåi maøn hình giao dieän :

Cuù phaùp : MODIFY FORM <.SCX> | ?Boä coâng cuï Form Designer coù moät cöûa soå Form bieåu dieãn caáu

truùc (goàm caùc ñieàu khieån) cuûa maøn hình giao dieän vaø cöûa soå Propeties ñeå hieån thò caùc thuoäc tính cuûa ñieàu khieån trong maøn hình giao dieän.

VI. REPORT ( Baùo Caùo): 1. Caùc daïng baùo bieåu :

Baùo bieåu khoâng phaân nhoùm : laø nhöõng baùo bieåu ñôn giaûn, döõ lieäu cuûa baùo caùo laø noäi dung cuûa caùc vuøng thuoäc moät hoaëc nhieàu baûng.

- Baùo bieåu theo coät : döõ lieäu lieân quan ñeán moät ñoái töôïng ñöôïc theå hieän ôû nhieàu coät treân moät doøng.

- Baùo bieåu theo doøng : döõ lieäu lieân quan ñeán moät ñoái töôïng ñöôïc theå hieän ôû nhieàu coät treân nhieàu doøng.

Baùo bieåu phaân nhoùm : döõ lieäu ñöôïc phaân thaønh nhieàu nhoùm theo caùc khoùa. Cuoái moãi doøng coù theå coù caùc doøng tính toaùn.

- Baùo bieåu theo nhoùm vaø toång coäng : döõ lieäu phaân nhoùm vaø coù theå coù toång coäng ôû cuoái moãi nhoùm.

- Baùo bieåu daïng 1 - n : döõ lieäu theå hieän theo töøng nhoùm trong baûng cha vaø ñoái vôùi moãi nhoùm coù theå coù theâm caùc chi tieát cuûa nhoùm ñoù trong baûng con. Giöõa baûng cha vaø baûng con phaûi coù thieát laäp moái quan heä.

2. Caáu truùc cuûa baùo bieåu : Bao goàm caùc thaønh phaàn : Title : tieâu ñeà cuûa baùo bieåu, chæ in ôû trang ñaàu tieân cuûa baùo

bieåu. Summary : toùm taét cuûa baùo bieåu, chæ in ôû trang cuoái cuøng cuûa

baùo bieåu. Page Header : tieâu ñeà xuaát hieän ôû ñaàu moãi trang cuûa baùo bieåu. Page Footer : haï muïc xuaát hieän ôû cuoái moãi trang cuûa baùo bieåu. Detail : phaàn noäi dung chi tieát cuûa baùo bieåu. Group Header : tieâu ñeà moãi nhoùm döõ lieäu (chæ coù trong loaïi baùo

bieåu ñöôïc phaân nhoùm). Group Footer : haï muïc cuoái moãi nhoùm döõ lieäu (chæ coù trong loaïi

baùo bieåu ñöôïc phaân nhoùm).

3. Coù theå taïo baùo bieåu baèng boä coâng cuï Report Wizards hoaëc Report Designer.

20

Page 21: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

VII. MENU (THÖÏC ÑÔN) : Caùc thöïc ñôn bao goàm : Thöïc ñôn keùo xuoáng, thöïc ñôn ngang, thöïc ñôn nhieàu caáp, thöïc ñôn heä thoáng. Tröôùc khi keát thuùc thöïc hieän chöông trình, duøng leänh SET SYSMENU TO DEFAULT ñeå traû laïi thöïc ñôn heä thoáng cuûa Visual Foxpro.

1. Thöïc ñôn keùo xuoáng :

Ñònh nghóa thöïc ñôn keùo xuoáng : duøng leänh DEFINE POPUP. Ñònh nghóa caùc muïc choïn cuûa thöïc ñôn keùo xuoáng : duøng leänh

DEFINE BAR. Khai baùo noäi dung xöû lyù cho thöïc ñôn keùo xuoáng : * Xöû lyù toaøn cuïc treân thöïc ñôn keùo xuoáng : duøng leänh ON

SELECTION POPUP <tdkx> <leänh>* Xöû lyù cuïc boä töøng muïc choïn cuûa thöïc ñôn keùo xuoáng : duøng

leänh ON SELECTION BAR <btN> OF <tdkx> <leänh> Kích hoaït thöïc ñôn keùo xuoáng : duøng leänh ACTIVATE POPUP. Ngöng kích hoaït thöïc ñôn keùo xuoáng : duøng leänh DEACTIVATE POPUP. Che giaáu thöïc ñôn keùo xuoáng : duøng leänh HIDE POPUP. Hieån thò thöïc ñôn keùo xuoáng : dung leänh SHOW POPUP.

2. Thöïc ñôn ngang : Ñònh nghóa thöïc ñôn ngang : duøng leänh DEFINE MENU. Ñònh nghóa caùc muïc choïn cuûa thöïc ñôn ngang : duøng leänh DEFINE

PAD. Khai baùo noäi dung xöû lyù cho thöïc ñôn keùo ngang :

* Xöû lyù toaøn cuïc treân thöïc ñôn ngang : duøng leänh ON SELECTION MENU <thöïc ñôn ngang> <leänh>* Xöû lyù cuïc boä töøng muïc choïn ngang cuûa thöïc ñôn : duøng leänh ON SELECTION PAD <muïc choïn ngang> OF <thöïc ñôn ngang> <leänh>

Kích hoaït thöïc ñôn ngang : duøng leänh ACTIVATE MENU.

21

Page 22: Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro

Ngöng kích hoaït thöïc ñôn ngang : duøng leänh DEACTIVATE MENU. Che giaáu thöïc ñôn ngang : duøng leänh HIDE MENU. Hieån thò thöïc ñôn ngang : dung leänh SHOW MENU.

3. Thöïc ñôn nhieàu caáp : Laø söï keát hôïp cuûa hai thöïc ñôn ôû treân ñeå coù ñöôïc moät heä thoáng thöïc ñôn nhieàu caáp.

4. Thöïc ñôn heä thoáng : laø thöïc ñôn ñöôïc ñònh nghóa baèng leänh DEFINE MENU vaø coù keøm theo vieäc ñaët teân cho thöïc ñôn naøy laø _MSYSMENU.Coù theå taïo thöïc ñôn nhanh choùng hôn baèng boä coâng cuï Menu Designer.Dòch taäp tin thöïc ñôn MNX thaønh taäp tin MPR : - Duøng leänh MODIFY MENU ñeå môû taäp tin thöïc ñôn trong cöûa soå cuûa Menu Designer.- Choïn Menu, Generate töø thöïc ñôn heä thoáng.- Trong oâ Output File cuûa cöûa soå ñoái thoaïi, ñaët teân cho taäp tin MPR seõ ñöôïc phaùt sinh va sau ñoù click chuoät vaøo nuùt nhaán Generate.Thi haønh taäp tin chöông trình thöïc ñôn MPR : DO <.MPR> ./.

22