You are on page 1of 23

Ch¬ng II:

Qu¶n trÞ file d÷ liÖu


III. Më/ ®ãng/ cËp nhËt file d÷ liÖu ®· cã
1. Më File d÷ liÖu ®· cã
USE <tªn file>
VÝ dô: ®Ó më File cã tªn "Bangluong" dïng lÖnh
 USE Bangluong
Tªn File vµ sè b¶n ghi cña File ®ang më lu«n hiÓn thÞ trªn thanh tr¹ng th¸i.
Foxpro cho phÐp më ®ång thêi nhiÒu File, mçi File tren mét vïng bé nhí. C¸c
vïng bé nhí ®¸nh sè tõ 0 ®Õn 25. File võa khëi t¹o xong th× v·n ®ang ®îc më (theo
c¸ch trªn th× mÆc ®Þnh më trong vïng sè 0) nÕu cha më file kh¸c ra.
VÝ dô: ®Ó më File cã tªn "Hoso" trong vïng 1 dïng lÖnh
 USE Hoso IN 1
VÝ dô: §Ó më File cã tªn "Bangluong" trong vïng 0 dïng lÖnh
 USE Bangluong
Chó ý:
- LÖnh: USE ? SÏ më hép tho¹i cho phÐp t×m chän file cÇn më
- C¸c lÖnh tiÕp theo trong ch¬ng nµy xem nh ®îc sö dông chØ víi File ®ang më,
c¸c vÝ dô tiÕp theo ®a ra ®Ó sö dông víi file Hoso.dbf ®· nªu.
2. §ãng c¸c File ®ang më
Khi tho¸t khái Foxpro th× c¸c file d÷ liÖu tù ®éng ®ãng l¹i.
§Ó an to¸n d÷ liÖu cÇn ®ãng c¸c file sau khi kÐt thóc c«ng viÖc, muèn vËy sö
dông mét trong c¸c lÖnh:
USE §ãng File ®ang më trong vïng 0
USE IN n §ãng File ®ang më trong vïng thø n
CLOSE ALL §ãng tÊt c¶ c¸c File ®ang më
3. CËp nhËt d÷ liÖu vµo File ®ang më (Më l¹i Hép tho¹i nhËp d÷ liÖu)
APPEND
Trong hép tho¹i, cho phÐp: nhËp thªm b¶n ghi míi, söa trong c¸c b¶n ghi ®·
nhËp.
4. Söa cÊu tróc cña File ®ang më (Më l¹i Hép tho¹i Khai b¸o cÊu tróc)
MODIFY STRUCTURE.
Trong hép tho¹i, cho phÐp: ChÌn thªm trêng (chän trêng vµ bÊm nót Insert), Xo¸
bít trêng (Delete), Söa ch÷a tªn, kiÓu trong mét trêng...
VÝ dô: Söa cÊu tróc File Hoso.dbf, thªm trêng DiemUT (nh trêng DiemTS).
5. Xem cÊu tróc cña file ®ang më
NÕu chØ muèn biÕt cÊu tróc cña file th× dïng lÖnh
DISPLAY STRUCTURE (hoÆc bÊm F5)
Th«ng tin vÒ cÊu tróc cña file sÏ hiÓn thÞ trong vïng lµm viÖc cña cöa sæ Foxpro
6. Sao chÐp cÊu tróc sang file míi
COPY STRUCTURE TO <tªn file> FIELD < DS trêng>
VÝ dô: T¹o file HOSO1.DBF cã cÊu tróc gåm 4 trêng ®îc sao chÐp tõ file HOSO
®ang më
 COPY STRUCTURE TO Hoso1 FIELD Hodem,Ten, Ngaysinh, Gioitinh
IV. C¸c lÖnh xem, söa, xo¸, ®Æt läc, in b¶n ghi
1. Chän b¶n ghi hiÖn thêi
B¶n ghi hiÖn thêi cña File ®ang më: lµ b¶n ghi cho phÐp c¸c lÖnh t¸c ®éng trùc
tiÕp mµ kh«ng cÇn chØ ra cô thÓ b¶n ghi nµo.
GOTO k Chän b¶n ghi thø k lµ b¶n ghi hiÖn thêi
SKIP k Chän b¶n ghi biÖn thêi b»ng c¸ch tiÕn hoÆc lïi k b¶n ghi, kÓ tõ
b¶n ghi hiÖn thêi.
VÝ dô:
 GOTO 5 (chän b¶n ghi thø 5 lµm b¶n ghi hiÖn thêi)
Xem trªn thanh tr¹ng th¸i: 5/25 nghÜa lµ tæng sè 25 b¶n ghi, b¶n ghi hiÖn thêi
lµ b¶n ghi sè 5.
 SKIP 5 (tiÕn 5 b¶n ghi, chän b¶n ghi thø 10 lµm b¶n ghi hiÖn thêi)
 SKIP -1 (lïi 1 b¶n ghi, chän b¶n ghi thø 9 lµm b¶n ghi hiÖn thêi)
Mét sè trêng hîp ®Æc biÖt
GO TOP vÒ b¶n ghi ®Çu
GO BOTTOM vÒ b¶n ghi cuèi
2. LiÖt kª c¸c b¶n ghi (ra mµn h×nh hoÆc ra m¸y in)
§Ó ®¬n gi¶n t¹m thêi xÐt lÖnh liÖt kª víi c¸c thµnh phÇn cha ®Çy ®ñ:
DISPLAY [ph¹m vi] [danh s¸ch trêng] [TO PRINT]
HoÆc:
LIST [ph¹m vi] [danh s¸ch trêng] [TO PRINT]
VÝ dô: FIle Hoso.dbf ®ang më
 DISP hodem, ten, ngaysinh
(LiÖt kª ra mµn h×nh Hä ®Öm, tªn, ngµy sinh cña b¶n ghi hiÖn thêi)
 DISP all Hodem, ten, ngaysinh TO PRINT
(LiÖt kª ra m¸y in Hä ®Öm, tªn, ngµy sinh cña tÊt c¶ c¸c b¶n ghi)
 DISP Reco 5 Hodem, ten, ngaysinh
(LiÖt kª ra mµn h×nh Hä ®Öm, tªn, ngµy sinh cña b¶n ghi sè 5)
 DISP Next 5 Hodem, ten, ngaysinh
(LiÖt kª ra m¸y in Hä ®Öm, tªn, ngµy sinh cña 5 b¶n ghi tiÕp theo kÓ tõ b¶n ghi
hiÖn thêi vµ b¶n rghi hiÖn thêi cóng ®îc chän l¹i b»ng c¸ch tiÕn tiÕp 5 b¶n ghi)
3. Xo¸ b¶n ghi, cÇn thùc hiÖn 2 lÖnh
a) LÖnh ®¸nh dÊu c¸c b¶n ghi cÇn xo¸
DELETE [ph¹m vi]
b) LÖnh xo¸ c¸cb¶n ghi ®· ®¸nh dÊu
PACK
VÝ dô: Muèn xo¸ b¶n ghi thø 5 ph¶i dïng 2 lÖnh
 DELE Reco 5
 PACK
Lóc nµy trªn mµn h×nh sÏ cã th«ng b¸o sè b¶n ghi cßn l¹i vµ c¸c b¶n ghi tiÕp
theo sÏ ®îc ®¸nh sè l¹i.
c) Ngoµi ra, cã thÓ kh«i phôc b¶n ghi ®· bÞ ®¸nh dÊu (th«i ®¸nh dÊu) b»ng
lÖnh:
RECALL [ph¹m vi]
VÝ dô: §¸nh dÊu c¸c b¶n ghi tõ 5-8, sau ®ã kh«i phôc b¶n ghi thø 7
 GOTO 5
 DELE Next 4
 RECALL Reco 7
4. DuyÖt b¶n ghi
BROW [ph¹m vi] [FIEL danh s¸ch trêng]
VÝ dô:
 BROW All Fiel Hodem, ten, diemts
Cöa sæ më ra cho phÐp duyÖt toµn bé c¸c b¶n ghi theo yªu cÇu:
BÊm c¸c phÝm mòi tªn lªn, xuèng, sang ph¶i, sang tr¸i, PageUp, PageDown,... ®Ó
chän b¶n ghi hiÖn thêi, xem vµ söa trong b¶n ghi ®ã.
Muèn ®¸nh d¸u xo¸: Ctrl+T
Muèn thªm b¶n ghi míi rçng: Ctrl+N
KÕt thóc duyÖt, ®ãng cöa sæ l¹i: bÊm Ctrl+W hoÆc Ctrl+End.
- Chó ý: Cöa sæ BROW cã thÓ t¨ng gi¶m kÝch thíc hoÆc thay ®æi vÞ trÝ nh c¸c
cöa sæ bÊt ký kh¸c. C©u lÖnh BROW nªu trªn chØ lµ d¹ng ®¬n gi¶n, cßn cã rÊt
nhiÒu c¸c thµnh phÇn më réng, cã thÓ më cöa sæ tî gióp cña Foxpro (Help ) ®Ó tra
cøu thªm.
5. BiÓu thøc trong c©u lÖnh
VÝ dô: LiÖt kª ra mµn h×nh 3 cét: Hä ®Öm ghÐp víi Tªn, ngµy sinh, §iÎm tuyÓn
sinh céng §iÓm u tiªn ®· nh©n víi 1.5 cÇn dïng lÖnh sau:
DISP ALL Hodem&ten, ngaysinh, diemts+diemut*1.5
C©u lÖnh trªn cã chøa c¸c biÓu thøc:
Hodem&Ten (GhÐp 2 biÕn ký tù cho kÕt qu¶ lµ mét biÕn ký tù);
DiemTS+DiemUT*1.5 (Céng biÕn sè DiemTS víi tÝch biÕn sè DiemUT víi h»ng sè
1.5 kÕt qu¶ lµ mét biÕn sè).
BiÕn: lµ mét tªn dïng ®Ó chøa c¸c gi¸ trÞ. Tªn trêng còng lµ biÕn, cã c¸c kiÓu
biÕn: biÕn ký tù , biÕn Sè, biÕn ngaú, biÕn logic.
BiÓu thøc bao gåm c¸c phÐp to¸n thùc hiÖn ®ùoc gi÷a c¸c biÕn, c¸c h»ng sè vµ
cho kÕt qu¶ lµ h»ng hoÆc biÕn sè thuéc 1 kiÓu d÷ liÖu.
6. BiÓu thøc logic (so s¸nh)
a) Kh¸i niÖm: BiÓu thøc Logic lµ biÓu thøc chøa c¸c phÐp so s¸nh vµ cho kÕt
qu¶ lµ mét gi¸ trÞ thuéc kiÓu L
VÝ dô: ? 4>3  .T.
b) Sö dông biÓu thøc logic trong c¸c c©u lÖnh DISP, DELE, BROW,...
VÝ dô: DISP ALL For DiemTS>10
(LiÖt kª c¸c b¶n ghi cã §iÓm tuyÓn sinh lín h¬n 10)
Trong c©u lÖnh trªn, cho thÊy biÓu thøc Logic ph¶i ®øng sau tõ kho¸ FOR,
nghÝa lµ d¹ng tæng qu¸t cña lÖnh DISPLAY lµ
DISP [ph¹m vi] [c¸c biÓu thøc] [FOR <biÓu thøc logic>] [TO PRINT]
c) C¸c vÝ dô vÒ c©u lÖnh cã chøa biÓu thøc logic
- So s¸nh biÕn kiÓu sè hoÆc kiÓu ngµy, gåm c¸c phÐp so s¸nh th«ng thêng nh
trong to¸n: =, >, >=, <, <=
 DISP ALL For DiemTS+diemUT >= 10
 DISP ALL For Ngaysinh<={5/15/81}
- So s¸nh biÕn kiÓu ký tù, gåm c¸c phÐp so s¸nh: = (b»ng t¬ng ®èi); == (b»ng
tuyÖt ®èi, 2 x©u ký tù gièng nhau hoµn toµn); $ (thuéc)
 DISP ALL For Hodem = "NguyÔn" (LiÖt kª nh÷ng ngêi cã Hä ®Öm b¾t ®Çu
lµ NguyÔn)
 DISP ALL For Hodem == "NguyÔn" ( LiÖt kª nh÷ng ngêi cã Hä ®Öm lµ NguyÔn)
 DISP ALL For "anh"$ Ten ( LiÖt kª nh÷ng ngêi mµ tªn cã chøa "anh")
d) Sö dông c¸c phÐp to¸n AND, OR gi÷a 2 biÎu thøc logic
- PhÐp to¸n <BiÓu thøc1> AND <BiÓu thøc2> Cho kÕt qu¶ lµ .T. chØ khi c¶
<BiÓu thøc1> vµ <BiÓu thøc2> ®Òu lµ .T.
VÝ dô: ? 5>3 AND 10>15 sÏ cho kÕt qu¶ lµ sai: F (v× cã
mét biÓu thøc sai)
VÝ dô: DISP ALL For Ngaysinh<={5/15/81} AND Hodem = "NguyÔn"
- PhÐp to¸n <BiÓu thøc1> AND <BiÓu thøc2> Cho kÕt qu¶ lµ .T. khi trong 2
biªu rthøc <BiÓu thøc1> , <BiÓu thøc2> cã Ýt nhÊt mét biÓu thøc lµ .T.
VÝ dô: ? 5>3 OR 10>15 sÏ cho kÕt qu¶ lµ sai: T (v× cã mét
biÓu thøc ®óng)
VÝ dô: DISP ALL For Hodem="Lª" OR Hodem = "NguyÔn"
7. Thay thÕ tù ®éng (söa ch÷a ®ång lo¹t)
REPLACE [ph¹m vi] [FOR <biÓu thøc>] <tªn trêng> WITH <biÓu thøc>
VÝ dô: Söa DiemUT (®iÓm u tiªn) thµnh 2 ®iÓm cho nh÷ng b¶n ghi cã DiemUT
®ang lµ 1.5 ®iÓm
 REPL ALL FOR DiemUT=1.5 DiemUT WITH 2
VÝ dô: Söa Tongdiem b»ng DiemTS céng víi DiemUT cho tÊt c¶ c¸c b¶n ghi
 REPL ALL Tongdiem WITH DiemTS+DiemUT
Trong mét c©u lÖnh cã thÓ thay thÕ ®ång thêi trong nhiÒu trêng
 REPL ALL DiemUT WITH DiemUT+1 Tongdiem WITH DiemTS + DiemUT
8. §Æt läc b¶n ghi
NÕu chØ lµm viÖc víi mét sè c¸c b¶n ghi tho¶ m·n c¸c ®iÒu kiÖn ®Æt ra, th×
cã thÓ läc c¸c b¶n ghi ®ã b»ng c©u lÖnh:
SET FILT TO <BiÓu thøc logic>
Sau ®ã, ®Õn khi th«i läc, dïng lÖnh
SET FILT TO
VÝ dô:
 SET FILT TO Diemts>8
 DISP ALL (ChØ liÖt kª c¸c b¶n ghi cã §iÓm thi > 8)
 SET FILT TO
 DISP ALL (LiÖt kª t¸on bé c¸c ban rghi)
V. C¸c hµm xö lý ®¬n gi¶n
1. Hµm xö lý ký tù
- Hµm chuyÓn ®æi c¸c ký tù ra ký tù in Hoa: UPPER(<biÓu thøc ký tù>)
VÝ dô: ? UPPER("a")  A
 REPL ALL khoithi WITH Upper(khoithi)
- Hµm chuyÓn ®æi c¸c ký tù ra ký tù in thêng: LOWER(<biÓu thøc ký tù>)
VÝ dô: ? LOWER("B")  b
 DISP ALL Ten FOR "thu" = Lower(ten)
Chó ý, víi c¸c biÓu thøc ký tù (chÝnh lµ x©u ký tù) mµ chøa dÊu tiÕng ViÖt, c¸c
hµm trªn cã thÓ bÞ sai (tuú theo m¸y tÝnh sö dông bé Font tiÕng ViÖt nµo).
- Hµm lÊy phÇn bªn tr¸i cña mét x©u ký tù ®· cho:
LEFT(<biÓu thøc ký tù>, Sè ký tù cÇn lÊy)
VÝ dô: DISP ALL Hodem, Ten FOR Left(Hodem,6)="NguyÔn"
- Hµm lÊy phÇn bªn ph¶i cña mét x©u ký tù ®· cho:
RIGHT(<biÓu thøc ký tù>, Sè ký tù cÇn lÊy)
VÝ dô: DISP ALL Hodem, Ten, Noisinh FOR Right(noisinh)="Hµ néi"
- Hµm lo¹i bá ký tù trèng bªn tr¸i:
LTRIM(<biÓu thøc ký tù>)
VÝ dô: ?Ltrim(' Lª Hoµng') = "Lª Hoµng'  .T.
 REPL ALL Hodem WITH Ltrim(Hodem)
- Hµm lo¹i bá ký tù trèng bªn ph¶i
RTRIM(<biÓu thøc ký tù>)
- Hµm lo¹i bá ký tù trèng c¶ 2 bªn
ALLTRIM(<biÓu thøc ký tù>)
2. Hµm xö lý ngµy th¸ng
- Hµm t¸ch gi¸ trÞ ngµy trong ngµy th¸ng: DAY(<biÓu thøc ngµy th¸ng>)
VÝ dô: ? DAY({9/15/2002})  15
 DISP All FOR DAY(ngaysinh)=15
- Hµm t¸ch gi¸ trÞ th¸ng trong ngµy th¸ng: MONTH(<biÓu thøc ngµy th¸ng>)
VÝ dô: ? MONT({9/15/2002})  9
 DISP All FOR MONT(ngaysinh)=9
- Hµm t¸ch gi¸ trÞ n¨m trong ngµy th¸ng: YEAR(<biÓu thøc ngµy th¸ng>)
VÝ dô: ? Year({9/15/2002})  2002
 DISP All FOR Year(ngaysinh)>1983
VI. S¾p xÕp c¸c b¶n ghi
1. S¾p xÕp c¸c b¶n ghi vµo File míi.
Trong File míi c¸c b¶n ghi ®îc thay ®æi trËt tù ®Ó cho gi¸ trÞ cña mét trêng nµo
®ã lµ t¨ng dÇn (gäi lµ s¾p xÕp t¨ng) hoÆc gi¶m dÇn (nÕu muèn s¾p xÕp gi¶m). C¸c
b¶n ghi trong file míi ®îc ®¸nh sè kh¸c víi trong file cò.
- C©u lÖnh cÇn sö dông lµ:
SORT TO <tªn file> ON <tªn trêng> [/A][/D]
VÝ dô: S¾p xÕp tÊt c¶ c¸c b¶n ghi vµo file míi tªn lµ SAPXEP.DBF, sao cho ®iÓm
thi t¨ng dÇn, ph¶i dïng lÖnh
 SORT TO Sapxep ON DiemTS /A
Sau ®ã më file võa t¹o ra vµ xem c¸c b¶n ghi ®· ®îc ®¸nh sè l¹i:
 USE Sapxep
 DISP All (hoÆc dïng BROW)
NÕu muèn s¾p xÕp gi¶m dÇn th× trong lÖnh s¾p xÕp ph¶i sö dông /D. NÕu
c©u lÖnh kh«ng chØ râ /A hay /D th× c¸c b¶n ghi sÏ ®îc s¾p xÕp t¨ng dÇn.
- Cã thÓ s¾p xÕp ®ång thêi theo nhiÒu trêng
VÝ dô: Tõ file Hoso.DBF, s¾p xÕp c¸c b¶n ghi vµo file míi tªn lµ SAPXEP1.DBF,
sao cho ®iÓm thi t¨ng dÇn, nÕu cã c¸c b¶n ghi cïng ®iÓm thi th× s¾p xÕp t¨ng dÇn
theo ®iÓm u tiªn, ph¶i dïng lÖnh sau
 SORT TO Sapxep1 ON DiemTS , DiemUT
Trong vÝ dô trªn, th× DiemTS gäi lµ kho¸ s¾p xÕp chÝnh cßn DiemUT gäi lµ kho¸
s¾p xÕp phô.

Trong c©u lÖnh SORT còng cã thÓ sö dông c¸c thµnh phÇn [FOR <biÓu thøc
logic>] hoÆc [FIELD <danh s¸ch trêng>] nh c¸c c©u lÖnh kh¸c.
VÝ dô: SORT TO Sapxep2 ON DiemTS , DiemUT FOR diemTS+diemUT>12 FIEL
Hodem, ten, diemTS, diemUT
2. S¾p xÕp b»ng chØ môc
Lµ c¸ch s¾p xÕp thay ®æi trËt tù c¸c b¶n ghi cña chÝnh File ®ang më mµ kh«ng
®¸nh sè l¹i chóng. C¸ch nµy ph¶i t¹o ra mét file phô trî, gäi lµ file chØ môc (kÝch thíc
rÊt nhá). ChØ khi sö dông file chØ môc th× trËt tù s¾p xÕp cña c¸c b¶n ghi míi ®îc
x¸c ®Þnh theo yªu cÇu
a) C©u lÖnh t¹o file chØ môc ®Ó s¾p xÕp c¸c b¶n ghi cña file ®ang më
INDEX ON <kho¸> TAG <tªn chØ môc>
File chØ môc ®îc t¹o víi tªn trïng víi tªn file d÷ liÖu, nhng cã ®u«i lµ CDX. Trong
mét file chØ môc cã thÓ chøa nhiÒu thÎ chØ môc (TAG), mµ mçi thÎ øng víi mét c¸ch
s¾p xÕp. Mçi c©u lÖnh trªn thùc chÊt t¹o mét thÎ chØ môc.trong file chØ môc, file
®ã sÏ ®îc t¹o nÕu cha cã.
Trong ®ã <kho¸> lµ tªn trêng hoÆc biÓu thøc ®Ó x¸c ®Þnh trËt tù s¾p xÕp cña
mçi b¶n ghi, mçi kho¸ øng víi mét c¸ch s¾p xÕp.
VÝ dô:
§Î t¹o thÎ chØ môc ®Ó s¾p xÕp c¸c b¶n ghi sao cho DiemTS + DiemUT t¨ng dÇn
cÇn dïng lÖnh
 INDE ON DiemTS+DiemUT TAG tongdiem Descending
§Î t¹o thÎ chØ môc ®Ó s¾p xÕp c¸c b¶n ghi sao cho Tªn t¨ng dÇn cÇn dïng lÖnh
 INDE ON Ten TAG Ten
Sau mçi lÖnh t¹o thÎ, c¸c b¶n ghi tøc thêi ®îc x¸c ®Þnh trËt tù (theo thÎ võa t¹o),
cã thÓ sö dông c¸c lÖnh liÖt kª hoÆc duyÖt b¶n ghi ®Ó xem.
b) Sö dông File chØ môc
Khi më fie d÷ liÖu (ch¼ng h¹n b»ng lÖnh USE), th× file chØ môc (nÕu ®· t¹o) sÏ
tù ®éng më kÌm theo, nghÜa lµ c¸c thÎ chØ môc t¹o s½n ®· ®îc ®a ra s½n sµng sö
dông. Khi ®ã cã thÓ xem liÖt kª c¸c thÎ chØ môc b»ng lÖnh DISPLAY STATUS (bÊm
phÝm F6).
Muèn s¾p xÕp c¸c b¶n ghi theo thÎ nµo, dïng lÖnh chän thÎ ®ã:
SET ORDER TO <Tªn thÎ cÇn chän>
VÝ dô: Muèn liÖt kª danh s¸ch häc viªn sao cho tæng ®iÓm t¨ng dÇn, v× trong
vÝ dô trªn ®· t¹o thÎ tongdiem, nªn cÇn dïng c¸c lÖnh sau:
 USE Hoso
 SET ORDER TO tongdiem
 DISP ALL
- Chó ý: Cã thÓ trong c©u lÖnh më file ®¸nh kÌm lu«n tªn thÎ cÇn sö dông. VÝ dô
võa nªu cã thÓ chØ cÇn ®¸nh 2 lÖnh:
 USE Hoso ORDE tongdiem
 DISP ALL
VII. KÕt xuÊt th«ng tin
1. TÝnh tæng
SUM [ph¹m vi] [FOR <biÓu thøc logic>] <tªn trêng> TO <tªn biÐn>
VÝ dô: TÝnh tæng ®iÓm thi vµ tæng ®iÓm u tiªn cña tÊt c¶ häc viªn mµ cã ®iÎm
thi kh«ng díi 8, c¸c lÖnh t¬ng øng lµ:
 SUM All diemts FOR diemts>=8
 SUM All diemut FOR diemts>=8
KÐt qu¶ hiÓn thÞ trong vïng lµm viÖc cña cöa sæ Foxpro (xem h×nh). NÕu muèn
kÕt qu¶ ®îc lu l¹i vµo biÕn th× c¸c lÖnh trªn cÇn ®¸nh nh sau
 SUM All diemts FOR diemts>=8 TO t1
 SUM All diemts FOR diemts>=8 TO t2
Khi ®ã c¸c biÕn cã tªn t1, t2 víi c¸c gi¸ trÞ võa nhËn sÏ ®îc sö dông trong c¸c
biÓu thøc tÝnh to¸n, vµ sÏ tån t¹i cho ®Õn khi tho¸t khái Foxpro.
VÝ dô: Sau 2 lÖnh trªn ta cã thÓ dïng lÖnh ?t1+t2
- Chó ý: 2 c©u lÖnh trªn cã thÓ ®¸nh gép thµnh 1 c©u lÖnh: SUM All diemts,
dienut FOR diemts>=8 TO t1, t2
2. §Õm c¸c b¶n ghi
COUNT [ph¹m vi] [FOR <biÓu thøc logic>] TO <tªn biÐn>
VÝ dô: CÇn ®Õm sè häc sinh n÷ (®Õm sè b¶n ghi cã trêng giíi tÝnh lµ F) vµ kÕt
qu¶ lu vµo biÕn hsnu
 COUNT All For Gioitinh=.F. TO hsnu
KÕt qu¶ hiÓn thÞ trªn thanh tr¹ng th¸i vµ lu vµo biÕn hsnu.
3. TÝnh trung b×nh
AVG [ph¹m vi] [FOR <biÓu thøc logic>] <tªn trêng> TO <tªn biÐn>
VÝ dô: TÝnh trung b×nh ®iÓm thi cña tÊt c¶ häc viªn n÷, trung b×nh ®iÓm thi
cña tÊt c¶ häc viªn nam, kÕt qu¶ lu vµo c¸c biÕn TBnu, TBnam th× c¸c lÖnh t¬ng
øng lµ:
 AVG All For Gioitinh=.F. Diemthi to TBnu
 AVG All For Gioitinh=.T. Diemthi to TBnam
4. TÝnh biÓu thøc sè
CALCULATE [ph¹m vi] <DS BiÓu thøc sè> [TO <DS biÕn>]
VÝ dô: CÇn t×m ®iÓm thi cao nhÊt, thÊp nhÊt cña häc sinh n÷ lu vµo m1,m2
 Calc All For Gioitinh=.F. Max(Diemthi), Min(Diemthi) TO m1, m2
Trong biÓu thøc sè thêng chøa c¸c hµm Sum(), Avg(), Max(), Min(),.... Do ®ã lÖnh
Calculate nµy cã thÓ thay thÕ c¸c lÖnh SUM, AVG,...
5. TÝnh c¸c tæng theo nhãm b¶n ghi
TOTAL ON <kho¸> TO <tªn file> [FIEL <danh s¸ch trêng sè>]
TÊt c¶ c¸c b¶n ghi cña File, xÐt theo gi¸ trÞ cña 1 trêng nµo ®ã (trêng kho¸), cã
thÓ ®îc ph©n thµnh c¸c nhãm. Mçi nhãm gåm c¸c b¶n ghi ®ang ®îc s¾p xÕp liªn
tiÕp mµ cã cïng gi¸ trÞ cña trêng kho¸.
VÝ dô: gi¶ sö file Hoso.DBF ®ang më vµ cã trêng Khoithi (trêng KHOITHI cã kiÓu
C, ®é réng lµ 1, c¸c gi¸ trÞ gåm A, B, C, D), c¸c b¶n ghi ®ang ®îc s¾p xÕp theo khèi
thi, nghÜa lµ c¸c b¶n ghi cã khèi thi A ®îc xÕp trªn cïng, tiÐp phÝa díi lÇn lît lµ c¸c
b¶n ghi khèi B, c¸c b¶n ghi khèi C, cuèi cïng lµ c¸c b¶n ghi khèi D. Nh vËy c¸c b¶n
ghi ®îc chia thµnh 4 nhãm (do c¸ch s¾p xÕp theo kho¸). Lóc nµy hoµn toµn cã thÓ
tÝnh tæng ®iÎm thi cña mçi nhãm, bao nhiªu nhãm th× cã bÊy nhiªu gi¸ trÞ tæng, c¸c
gi¸ trÞ tæng tÝnh ®îc sÏ lu ra mét file d÷ liÖu míi, cÊu tróc nh file ®ang më. Sö dông
c¸c lÖnh sau (gåm c¶ s¾p xÕp nhãm, tÝnh tæng, më file kÕt qu¶ vµ xem)
 SORT ON Khoi TO Xepnhom FIEL Khoi, Diemts
 USE Xepnhom
 TOTA ON Khoi TO Tonghop FIEL Diemts
 USE Tonghop
 BROW

VIII. T×m kiÕm b¶n ghi theo ®iÒu kiÖn


1- LÖnh t×m kiÕm tuÇn tù
LOCATE FOR <biÓu thøc logic>
TÊt c¶ c¸c b¶n ghi sÏ ®ùîc lÇn lît kiÓm tra xem <biÓu thøc logic> cã ®óng
kh«ng. B¶n ghi ®Çu tiªn t×m ®îc (tho¶ m·n biÓu thøc logic) sÏ thµnh b¶n ghi hiÖn
thêi, sè thø tù cña nã sÏ hiÓn thÞ trªn thanh tr¹ng th¸i. Cã thÓ liÖt kª hoÆc söa ch÷a
b¶n ghi nµy. §Ó tiÕp tôc t×m trong c¸c b¶n ghi cßn l¹i, dïng c©u lÖnh
CONTINUE
Cho ®Õn khi trªn thanh tr¹ng th¸i hiÓn thÞ "End of Locate Scope", nghi· lµ kh«ng
cßn b¶n ghi nµo n÷a.
VÝ dô: T×m b¶n ghi cã ®iÓm thi >=10
 Loca For Diemts>=10
 ?Hodem, Ten
 Conti
 ....
(xem trªn thanh tr¹ng th¸i, hoÆc cã thÓ dïng lÖnh DISP, lÖnh ? ®Ó xem,...)
2. T×m kiÕm kh«ng tuÇn tù
Trêng hîp t×m kiÕm ®iÒu kiÖn cÇn tho¶ m·n lµ trêng kho¸ ph¶i b»ng 1 gi¸ trÝ
x¸c ®Þnh vµ chØ cã 1 b¶n ghi duy nhÊt tho¶ m·n, th× cÇn chØ môc c¸c b¶n ghi theo
trêng ®ã, r«id dïng lÖnh
SEEK <gi¸ trÞ so s¸nh>
VÝ dô: B¶ng Hoso.dbf cã trêng MAHS (kiÓu C, ®é réng5) ®Ó chøa m· hå s¬ häc
sinh. C¸c b¶n ghi cÇn ®îc chØ môc theo trêng MAHS nµy, sau ®ã t×m b¶n ghi cã m·
lµ H001A, cÇn dïng c¸c lÖnh (gåm c¶ t¹o chØ môc)
 INDE ON Mahs tag CSMA
 Seek 'H001A'
Chó ý: kh«ng dïng CONTINUE sau lÖnh SEEK nµy ®îc.
IX. T¸ch, ghÐp c¸c file d÷ liÖu
1. GhÐp thªm vµo file ®ang më c¸c b¶n ghi tõ File kh¸c
APPEND FROM <tªn file> [FIEL <danh s¸ch trêng>] [FOR <biÎu thøc logic>]
VÝ dô: Thªm c¸c b¶n ghi tõ file nguån: HOSO1.DBF vµo file ®Ých HOSO.DBF ®ang

 Appe From hoso1 FIEL Hodem, Ten, Ngaysinh
HiÓn nhiªn, c¸c trêng Hodem, Ten, Ngaysinh ë c¶ 2 file d÷ liÖu ®Òu ph¶i gièng nhau
(tªn, kiÓu, ®é réng,..)
Chó ý: Cã thÓ sö dông hép tho¹i DataBase\ Append From..., trong hép tho¹i còng cho
phÐp chän c¸c d¹ng file nguån kh«ng ph¶i DBF,...
2. Sao chÐp c¸c b¶n ghi tõ file ®ang më vµo File d÷ liÖu míi
C©u lÖnh COPY TO <Tªn file míi> [Ph¹m vi] [FIELD Danh s¸ch trêng] [FOR <biÓu thøc
logic>]
VÝ dô:
 COPY All FIEL Hodem, Ten, Diemthi FOR Diemts >=9 TO HOSO2.DBF

Ch¬ng IV:
Lµm viÖc víi nhiÒu file d÷ liÖu
I. Bµi to¸n qu¶n lý tuyÓn sinh
1. §Æt bµi to¸n
Còng nh mäi bµi to¸n qu¶n lý kh¸c, bµi to¸n tuyÓn sinh khi thùc hiÖn còng ph¶i
t¹o lËp vµ sö dông nhiÒu file d÷ liÖu.
Tríc mçi n¨m häc, nhµ trêng tæ chøc tuyÓn sinh. §Çu tiªn, c¸c hå s¬ xin dù thi
®îc tiÕp nhËn vµ c¸c th«ng tin trong ®ã ®îc cËp nhËt vµo vµo file d÷ liÖu
HOSO.DBF. C¸c th«ng tin gåm Hä ®Öm, Tªn, Ngµy sinh, Giíi tÝnh, Sè b¸o danh,.. cña
thÝ sinh
Sau buæi thi, tê bµi thi cña thÝ sinh ®îc c¾t riªng lµm 2 phÇn:
- PhÇn ®Çu: cã Sè b¸o danh, Sè ph¸ch,... phÇn nµy ®îc cËp nhËt vµo file d÷ liÖu
tªn lµ SOPHACH.DBF
- PhÇn th©n ®Ó chÊm thi: cã Sè ph¸ch vµ chÊm xong sÏ cã §iÓm thi. PhÇn nµy
®îc cËp nhËt vµo file d÷ liÖu tªn lµ DIEMTHI.DBF
Sö dông 3 file d÷ liÖu ®ã, cã thÓ thùc hiÖn tù ®éng c¸c c«ng viÖc sau:
- Tra cøu ®iÓm cña 1 thÝ sinh theo Sè b¸o danh
- In ra B¶ng kÕt qu¶ thi cña c¸c thÝ sinh cã s¾p xÕp theo thø tù gi¶m dÇn cña
®iÓm
- øng víi ®iÓm chuÈn tróng tuyÓn cho tríc (vÝ dô 15,5 ®iÓm), biÕt ®îc sè lîng
häc sinh tróng tuyÓn vµ in ra danh s¸ch nµy,...
-....
2. CÊu tróc c¸c file d÷ liÖu
CÊu tróc file HOSO.DBF:
HODEM C 20
TEN C 10
NGAYSINH D 8
GIOITINH L 1
SOBAODANH C 4
CÊu tróc file SOPHACH.DBF:
SOBAODANH C 4
SOPHACH C 4
CÊu tróc file DIEMTHI.DBF:
SOPHACH C 4
DIEM N 4 1
3. Më c¸c file d÷ liÖu vµ chän vïng lµm viÖc hiÖn thêi
§Ó thùc hiÖn c¸c c«ng viÖc trªn, tríc hÕt cÇn më c¸c file d÷ liÖu liªn quan trong
c¸c vïng lµm viÖc (vïng bé nhí) vµ thiÕt lËp mèi quan hÖ gi÷a c¸c file d÷ liÖu
C©u lÖnh më file trong c¸c vïng lµm viÖc ®· nªu trong ch¬ng II lµ
USE <tªn file> IN <k>
Nhng nÕu tríc khi dïng lÖnh trªn, ta ®· chän vïng <k> lµm vïng lµm viÖc hiÖn
thêi b»ng cÊu lÖnh:
SELEC <k>
Th× c©u lÖnh trªn chØ cÇn ®a vµo lµ
USE <tªn file>
VÝ dô: víi bµi to¸n tuyÓn sinh, ta cã thÓ më 3 file d÷ liÖu trong c¸c vïng 1, 2, 3
nh sau
 USE Hoso IN 1
 USE Sophach IN 2
 SELE 3 (Chän vïng 3 lµm vïng hiÖn thêi)
 USE Diemthi (Má file Diemthi.dbf trong vïng hiÖn thêi)
Sau ®ã liÖt kª c¸c b¶n ghi cña c¸c file ®ã:
 SELE 1
 GO 5
 DISP (Xem b¶n ghi sè 5 trong vïng 1: Hä dÖm, tªn...)
 SELE 2
 DISP RECO 3 (LiÖt kª Sè b¸o danh, Sè ph¸ch trong c¸c b¶n ghi sè 3)
II. ThiÕt lËp quan hÖ gi÷a c¸c file ®ang më
1. C¸c file d÷ liÖu cã quan hÖ
NÕu 2 file d÷ liÖu cã mét trêng gièng nhau (trïng tªn, kiÓu, ®é réng) th× 2 file
®ã cã quan hÖ d÷ liÖu. §Ó tra cøu th«ng tin, thêng ph¶i t×m trong c¸c file d÷ liÖu cã
quan hÖ.
VÝ dô:
Trong bµi to¸n tuyÓn sinh, c¸c file HOSO.DBF vµ SOPHACH.DBF cã quan hÖ v×
cïng cã trêng Sobaodanh (kiÓu C, ®é réng 4). C¸c file SOPHACH.DBF vµ DIEMTHI.DBF
cã quan hÖ v× cïng cã trêng Sophach (kiÓu C, ®é réng 4).
Sö dông c¸c file nµy ta cã thÓ tra cøu ®iÎm thi cho mét thÝ sinh theo tªn hoÆc
sè b¸o danh. Gi¶ sö trong xem trong file HOSO.DBF th× b¶n ghi sè 5 cã hä ®Öm vµ
tªn lµ NguyÔn Lan Anh, sè b¸o danh lµ 0141. Xem tiÕp trong file SOPHACH.DBF th×
Sè b¸o danh 141 cã trong b¶n ghi thø 20 vµ S« ph¸ch lµ 0030. Xem tiÕp trong file
DIEMTHI.DBF th× Sè ph¸ch 0030 cã trong b¶n ghi thø 7 vµ Sè ®iÓm thi lµ 17. ViÖc
t×m kiÕm nh vËy sÏ thùc hiÖn ®îc khi ta thiÕt lËp quan hÖ gi÷a c¸c file nµy
2. ThiÕt lËp quan hÖ gi÷a 2 file ®ang më
Muèn thiÕt lËp quan hÖ gi÷a file ®ang më trong vïng hiÖn thêi (File chÝnh) vµ
file ®ang më trong vïng thø <k> cña bé nhí (File phô), dïng c©u lÖnh:
SET RELATION TO <tªn trêng chung> INTO <k>
Trong ®ã, gi÷a File chÝnh vµ File phô ph¶i cã mét trêng chung vµ c¸c b¶n ghi
cña File phô (ë vïng <k>) ph¶i ®îc chØ môc theo trêng chung.
Khi quan hÖ gi÷a 2 phi ®· ®îc thiÕt lËp, th× b¶n ghi hiÖn thêi cña File phô lu«n
tù ®éng thay ®æi t¬ng øng víi b¶n ghi hiÖn thêi cña File chÝnh sao cho gi¸ trÞ cña
trêng chung cña 2 b¶n ghi hiÖn thêi lu«n trïng nhau.
VÝ dô: (Bµi to¸n tuyÓn sinh)
- Muèn tra cøu ®iÓm cña mét thÝ sinh theo Hä tªn hoÆc Sè b¸o danh nh ®· nªu
ë phÇn trªn, cÇn dïng c¸c lÖnh më c¸c file, lËp quan hÖ rèi dïng lÖnh BROW ®Ó xem
nh sau:
 USE Hoso IN 1
 USE Sophach IN 2
 USE Diemthi IN 3
 SELE 2
 INDE ON Sobaodanh TAG Sbd
 SELE 3
 INDE ON Sophach TAG Sp
 SELE 1
 SET RELA TO Sobaodanh INTO 2
 BROW
 SELE 2
 SET RELA TO Sophach INTO 3
 BROW
 SELE 3
 BROW
Sau c¸c lÖnh trªn, 3 cöa sæ BROW ®îc më ra: khi chän 1 b¶n ghi trong cöa sæ
BROW cña vïng 1 th× trong 2 cöa sæ kia sÏ tù ®éng chän b¶n ghi t¬ng øng cÇn
t×m.
- NÕu kh«ng muèn më cöa sæ BROW nh c¸ch lµm trªn, mµ muèn liÖt kª Hä
®Öm, Tªn, §iÓm thi cña thÝ sinh cã sè b¸o danh 0008 th× sau khi ®· lËp quan hÖ vµ
vïng 1 ®ang lµ hiÖn thêi th× dïng c¸c lÖnh sau:
 DISP ALL Hodem, Ten, Diemthi.diem For Sobaodanh ="0008"
- NÕu muèn t¹o mÉu b¸o c¸o ®Ó in B¶ng kÕt qu¶ thi (gåm c¸c cét STT, Hä vµ tªn,
Ngµy sinh, Giíi tÝnh, Sè b¸o danh, §iÓm thi) th× sau khi më 3 file liªn quan vµ lËp
quan hÖ tiÕp tôc më cöa sæ thiÕt kÕ nh ®· nªu trong ch¬ng III.
3. Quan hÖ "1-1" vµ quan hÖ "1-nhiÒu"
Quan hÖ gi÷a 2 file nh ®· nªu lµ quan hÖ "1-1", nghÜa lµ 1 b¶n ghi cña file
chÝnh øng víi 1 b¶n ghi duy nhÊt cña file phô.
Trêng hîp nÕu 1 b¶n ghi cña file chÝnh øng víi nhiÒu b¶n ghi cña fle phô, gäi lµ
quan hÖ "1-nhiÒu". Trong trêng hîp nµy ®Ó trong vïng k cña file phô, b¶n ghi hiÖn
thêi sÏ ®îc chän lÇn lît cho ®Õn hÕt c¸c b¶n ghi cã gi¸ trÞ trêng chung b»ng víi b¶n
ghi trong vïng chÝnh, th× sau c©u lÖnh ®Æt quan hÖ cÇn dïng thªm lÖnh:
SET SKIP TO <k>
VÝ dô: Cã file NGANH.DBF cã trêng M· ngµnh (MANGANH, C, 1), tªn ngµnh
(TENNGANH, C, 20) vµ chän lµm file chÝnh, quan hÖ víi file phô lµ HOSO.DBF quan
thÎ quan hÖ MN:
 USE NGANH IN 4
 USE HOSO IN 1 TAG MN
 SELE 4
 SET RELA TO Manganh INTO 1
 SET SKIP TO 1
 BROW FIEL Manganh, Tennganh, Hoso.Hodem, Hoso.Ten, Hoso.Ngaysinh,
Diemthi.Diem
4. Quan hÖ ®ång thêi gi÷a mét file chÝnh vµ nhiÒu file phô
Trêng hîp nµy c©u lÖnh t¹o quan hÖ cÇn cã thªm ADDITIVE ®Ó kh«ng huû bá c¸c
quan hÖ kh¸c ®ang tån t¹i.
VÝ dô: Theo vÝ dô trªn, ®ang cã quan hÖ tõ vïng 4 víi file MANGANH sang vïng 1, gi¶
sö muèn lËp thªm quan hÖ tõ vïng 4 sang vïng 5 n¬i ®ang cã file CHUAN.DBF (chøa
®iÓm chuÈn, gåm c¸c trêng MANGANH kiÓu C ®é réng 1; DIEMCHUAN kiÓu N ®é
réng 4.1), cÇn dïng c¸c lÖnh:
 USE CHUAN IN 5 ORDE CH (®· t¹o chØ môc CH theo MANGANH)
 SET RELA TO Manganh In 5 ADDI.

Ch¬ng V:
LËp Ch¬ng tr×nh øng dông, nh÷ng cÊu tróc c¬ b¶n
I. Ch¬ng tr×nh vµ File ch¬ng tr×nh
1. Ch¬ng tr×nh vµ File ch¬ng tr×nh
Trong bµi to¸n qu¶n lý, thêng ph¶i thùc hiÖn mét sè c«ng viÖc cô thÓ vµ mçi
c«ng viÖc nµy thêng ®ßi hái ph¶i ®a vµo lÇn lît nhiÒu dßng lÖnh phøc t¹p. H¬n n÷a
c¸c c«ng viÖc ®ã ®îc thùc hiÖn lÆp l¹i nhiÒu lÇn, nÕu mçi lÇn thùc hiÖn l¹i ph¶i
®¸nh còng vÉn c¸c dßng lÖnh nh lÇn tríc th× sÏ rÊt khã kh¨n vµ kh«ng ®¸p øng ®îc
yªu cÇu cung cÊp nhanh th«ng tin.
Vi dô: trong bµi to¸n qu¶n lý tuyÓn sinh, trong mét kú tuyÓn sinh, thêng xuyªn
ph¶i cËp nhËt th«ng tin, tra cøu ®iÓm theo sè b¸o danh, in B¶ng kÕt qu¶ thi,...Mçi
viÖc ®ã cÇn ®¸nh vµo rÊt nhiÒu dßng lÖnh. Bµi to¸n ®ã lÆp l¹i hµng n¨m vµ ë mäi
trêng häc,...
C¸c dßng lÖnh øng víi c¸c c«ng viÖc ®ã ®îc biªn so¹n theo tr×nh tù thùc hiÖn
vµ ®îc ghi l¹i vµo ®Üa thµnh file ch¬ng tr×nh. Khi cÇn thùc hiÖn c¸c c«ng viÖc ta
chØ cÇn ®a vµo mét c©u lÖnh gäi file ch¬ng ®ã vµ c¸c dßng lÖnh ®îc tù ®éng lÇn
lît thùc hiÖn.
VËy ch¬ng tr×nh bao gåm c¸c dßng lÖnh ®îc biªn so¹n ®Ó m¸y tÝnh thùc hiÖn
lÇn lît vµ gi¶i quyÕt mét c«ng viÖc nµo ®ã. Ch¬ng tr×nh ®îc lu tr÷ trªn ®Üa thµnh
file ch¬ng tr×nh (*.PRG hoÆc *.SPR,...)
VÝ dô: NÕu c«ng viÖc thêng xuyªn ph¶i lµm lµ liÖt kª Hä ®Öm, tªn, sè b¸o danh,
®iÓm thi, cÇn biªn so¹n mét file ch¬ng tr×nh gåm c¸c dßng lÖnh: Më c¸c file liªn
quan trong c¸c vïng, chän vïng chÝnh, lËp quan hÖ, liÖt kª,...
§Ó gi¶i quyÕt mét bµi to¸n qu¶n lý, ta ph¶i t¹o ra vµ sö dông c¸c file d÷ liÖu, c¸c
file ch¬ng tr×nh vµ c¸c file phô trî kh¸c.
2. C¸c thao t¸c biªn so¹n ch¬ng tr×nh
a) Më cöa sæ biªn so¹n ch¬ng tr×nh
Tõ cöa sæ lÖnh, ®¸nh vµo c©u lÖnh sau:
MODIFY COMMAND <Tªn file ch¬ng tr×nh>
VÝ dô: §Ó biªn so¹n file ch¬ng tr×nh XEMDIEM.PRG, cÇn ®¸nh vµo c©u lÖnh
 MODI COMM Xemdiem
Cöa sæ biªn so¹n ch¬ng tr×nh "Xemdiem" sÏ më ra, trong ®ã chØ cã con trá v¨n
b¶n ®Ó ta b¾t ®Çu biªn so¹n dßng lÖnh ®Çu tiªn.cña ch¬ng tr×nh
NÕu tríc ®ã File ch¬ng tr×nh Xemdiem.prg ®· ®ùoc t¹o råi th× néi dung cña nã
còng sÏ hiÎn thÞ trong cöa sæ më ra khi thùc hiÖn c©u lÖnh trªn.
Muèn ®ãng cöa sæ vµ kÕt thóc biªn so¹n, t¬ng tù nh c¸c cöa sæ kh¸c trong
Foxpro, cã thÓ bÊm Ctrl+W hoÆc ESC tuú theo cã cÇn ghi l¹i hay kh«ng.
b) Thao t¸c biªn so¹n
So¹n lÇn lît c¸c dßng lÖnh, ng¾t dßng bÊm phÝm Enter, t¬ng tù nh ng¾t ®o¹n
v¨n b¶n trong Word. Mçi dßng cña ch¬ng tr×nh chØ chøa 1 c©u lÖnh. C©u lÖnh qu¸
dµi th× cã thÓ so¹n trªn nhiÒu dßng, nhng cuèi dßng cÇn ng¾t ph¶i cã dÊu chÊm
ph¶y (;).
C¸c phÝm bÊm di chuyÓn con trá, ®¸nh chÌn, xo¸, c¾t d¸n, sao chÐp,.. còng
hoµn toµn t¬ng tù nh trong Word.
C¸c dßng b¾t ®Çu b»ng dÊu * sÏ ®îc bá qua khi thùc hiÖn ch¬ng tr×nh, do ®ã
cã thÓ ®a vµo ch¬ng tr×nh mét sè dßng chó thÝch ®Ó gióp cho viÖc ®äc kiÓm tra
ch¬ng tr×nh. Còng nh vËy trªn mçi dßng lÖnh, sau ký hiÖu && lµ phÇn sÏ ®îc bá qua.
c) CÊu tróc chung cña mét ch¬ng tr×nh
C¸c c©u lÖnh cña ch¬ng tr×nh sÏ ®îc thùc hiÖn tù ®éng lÇn lît theo thø tù, do
®ã tuú theo t¸c dông cña tõng c©u lÖnh mµ ®a vµo ®ïng vÞ trÝ cÇn thiÕt. ViÖc lùa
chän c¸c lÖnh ®Ó ®a vµo ch¬ng tr×nh ph¶i dùa theo thuËt to¸n cña ch¬ng tr×nh.
ThuËt to¸n lµ mét m« h×nh chØ ra thø tù c¸c c«ng viÖc chi tiÕt cÇn thùc hiÖn ®Ó
gi¶i quyÕt ®îc bµi to¸n ®· ®Æt ra.
Th«ng thêng trong ch¬ng tr×nh lÇn lît gåm:
- C¸c lÖnh thiÐt lËp m«i trêng lµm viÖc cña ch¬ng tr×nh
- C¸c lÖnh nhËp d÷ liÖus
- C¸c lÖnh xö lý d÷ liÖu
- C¸c lÖnh ®a kÕt qu¶ xö lý ra (mµn h×nh hoÆc m¸y in)
- C¸c lÖnh kÕt thóc
3. Thùc hiÖn ch¬ng tr×nh
DO <tªn file ch¬ng tr×nh>
VÝ dô: thùc hiÖn file Baitap1.prg
 Do Baitap
C¸c lÖnh sÏ ®îc thùc hiÖn lÇn lît tõ ®Çu cho ®Õn hÕt (cßn gäi lµ "ch¹y ch¬ng
tr×nh").
NÕu mét dßng lÖnh cã lçi có ph¸p (sai tªn lÖnh, c¸c tõ kho¸, c¸c phÐp to¸n víi c¸c
kiÓu d÷ liÖu kh«ng cho phÐp,... ) th× ch¬ng tr×nh sÏ bÞ dõng vµ mét th«ng b¸o sÏ
xuÊt hiÖn, t¹i dßng cã lçi còng ®îc t« nÒn ®en.
File ch¬ng tr×nh thêng ®îc më ra söa ch÷a nhiÒu lÇn cho ®Õn khi ch¹y tr¬n
tru, ®a ra kÕt qu¶ ®óng ®¾n, dÔ sö dông,...
II. C¸c lÖnh ®¬n gi¶n: ThiÕt lËp m«i trêng, Vµo/ra d÷ liÖu
1. Mét sè c©u lÖnh thiÕt lËp m«i trêng lµm viÖc cña ch¬ng tr×nh
CLEAR && Xo¸ mµn h×nh:
CLEA ALL && Xo¸ tÊt c¶ c¸c biÕn vµ ®ãng mäi file d÷ liÖu
SET TALK OFF && Kh«ng tù ®éng hiÓn thÞ kÕt qu¶ trung gian
SET STATUS OFF && Kh«ng hiÓn thÞ thanh tr¹ng th¸i:
2. NhËp d÷ liÖu vµo biÕn
a) NhËp d÷ liÖu vµo biÕn kiÓu sè
INPUT <th«ng b¸o> TO <tªn biÐn>
VÝ dô:
 INPUT "NhËp sè thø 1: " TO s1
C©u lÖnh nµy ®Æt mét <tªn biÕn> lµ s1 ®a <th«ng b¸o> lµ "NhËp sè thø 1: "
ra t¹i ®Çu dßng trèng ®Çu tiªn trªn mµn h×nh, ®ång thêi con trá xuÊt hiÖn kÒ bªn
ph¶i, chê cho ngêi dïng ®¸nh vµo mét sè (ch¼ng h¹n ®¸nh 100, xong bÊm Enter), gi¸
trÞ ®¸nh vµo ®îc lu gi÷ vµo biÕn s1 (ch¼ng h¹n s1 chøa sè 100 võa ®¸nh vµo) vµ
c©u lÖnh hoµn thµnh.
b) NhËp d÷ liÖu vµo biÕn ký tù
ACCESS <th«ng b¸o> TO <tªn biÕn>
VÝ dô:
 ACCE "Cho biÕt së thÝch cña b¹n: " TO x1
C©u lÖnh nµy ®Æt mét <tªn biÕn> lµ x1 ®a <th«ng b¸o> lµ "Cho biÕt së thÝch
cña b¹n: " ra t¹i ®Çu dßng trèng ®Çu tiªn trªn mµn h×nh, ®ång thêi con trá xuÊt
hiÖn kÒ bªn ph¶i, chê cho ngêi dïng ®¸nh vµo mét x©u ký tù (ch¼ng h¹n ®¸nh "ThÓ
thao". xong bÊm Enter), gi¸ trÞ ®¸nh vµo ®îc lu gi÷ vµo biÕn x1 (cã kiÓu lµ C) vµ
c©u lÖnh hoµn thµnh
3. C©u lÖnh g¸n gi¸ trÞ vµo biÕn
<Tªn biÕn> = <BiÓu thøc>
VÝ dô:
 S3 = s1+s2
C©u lÖnh nµy tÝnh tæng c¸c gi¸ trÞ chøa trong c¸c biÕn s1 vµ s2 råi lu gi÷ kÕt
qu¶ vµo mét biÕn míi, biÕn míi ®Æt tªn lµ S3.
VÝ dô:
 x1 = ALLT(x1)
C©u lÖnh nµy lo¹i bá ký tù trèng v« nghÜa ë c¶ bªn tr¸i vµ bªn ph¶i cña x©u ký
tù chøa trong biÕn x1 råi lu gi÷ kÕt qu¶ vµo chÝnh trong biÕn x1.
C¸c c©u lÖnh g¸n thêng dïng ®Ó xö lý, tÝnh to¸n c¸c biÎu thøc, trong biÓu thøc
cã thÓ gåm c¸c biÕn, c¸c h»ng, c¸c hµm.
4. C©u lÖnh ®a gi¸ trÞ cña biÓu thøc ra mµn h×nh hoÆc m¸y in
PRINT <c¸c biÓu thøc> HoÆc gän h¬n
? <c¸c biÓu thøc>
VÝ dô:
 ? "Tæng lµ: ", S3
C©u lÖnh nµy ®a ra mµn h×nh t¹i ®Çu dßng tiÕp theo, lÇn lît gi¸ trÞ 2 biÓu
thøc.
Muèn ®a gi¸ trÞ ra m¸y in, tríc c©u lÖnh ®a ra nµy, cÇn ph¶i cã lÖnh:
 SET DEVICE TO PRINT
Sau lÖnh ®a ra, ®Ó ngÇm ®Þnh trë l¹i lµ chØ ®a ra mµn h×nh, cÇn dïng lÖnh
 SET DEVICE TO
III. CÊu tróc rÏ nh¸nh.
1. Môc ®Ých
B×nh thêng c¸c c©u lÖnh trong ch¬ng tr×nh ®îc thùc hiÖn lÇn lît cho ®Õn hÕt.
Do c¸c kÕt qu¶ trung gian hoÆc d÷ liÖu nhËp vµo kh«ng tho¶ m·n mét ®iÒu kiÖn
nµo s®ã,... cã thÓ mét nhãm c©u lÖnh liªn tiÕp ®îc bá qua vµ c©u lÖnh tiÕp sau
nhãm ®ã l¹i cÇn ®îc thùc hiÖn. Nhãm lÖnh mµ cã thÓ bÞ bá qua ®ã gäi lµ mét
nh¸nh rÏ cña ch¬ng tr×nh. Trong ch¬ng tr×nh thêng gåm nhiÒu c¸c nh¸nh rÏ, t¹i vÞ
trÝ tríc vµ sau nh¸nh rÏ ph¶i cã c¸c c©u lÖnh t¹o cÊu tróc rÏ nh¸nh.
2. CÊu tróc IF...ENDIF
a) D¹ng 1 nh¸nh
IF <BiÓu thøc logic>
<Nhãm lÖnh>
EndIF
C¸c lÖnh trong <Nhãm lÖnh > sÏ bÞ bá qua nÕu <biÓu thøc logic> cho kÕt qu¶
lµ Sai, ngîc l¹i nÕu ®iÒu kiÖn ®îc tho¶ m·n, tøc lµ <biÓu thøc logic> cho kÕt qu¶ lµ
.T. th× c¸c lÖnh trong nhãm lÖnh míi ®îc thùc hiÖn.
a) D¹ng 2 nh¸nh
IF <BiÓu thøc logic>
<Nhãm lÖnh 1>
ELSE
<Nhãm lÖnh 2>
EndIF
C¸c lÖnh trong <Nhãm lÖnh 1> sÏ bÞ bá qua ®Ó thùc hiÖn <Nhãm lÖnh 2> nÕu
nh <biÓu thøc logic> cho kÕt qu¶ lµ Sai, ngîc l¹i nÕu ®iÒu kiÖn ®îc tho¶ m·n, tøc lµ
<biÓu thøc logic> cho kÕt qu¶ lµ .T. th× c¸c lÖnh trong <Nhãm lÖnh 1> ®îc thùc
hiÖn cßn <nhãm lÖnh 2> l¹i bÞ bá qua.
3. CÊu tróc DO CASE...ENDCASE
DO CASE
CASE <BiÓu thøc logic 1>
<Nhãm lÖnh 1>
CASE <BiÓu thøc logic 2>
<Nhãm lÖnh 2>
..................................
..................................
CASE <BiÓu thøc logic n>
<Nhãm lÖnh n>
[OTHEWISE && Nh¸nh dù phßng nµy cã thÓ kh«ng cã
<Nhãm lÖnh n+1>]
ENSCASE
C¸c <BiÓu thøc logic> sÏ ®îc lÇn lît kiÓm tra ®Ó chän nh¸nh cÇn rÏ. NÕu BiÓu
thøc logic cña nh¸nh nµo cã kÕt qu¶ §óng tríc th× Nhãm lÖnh cña nh¸nh ®ã ®îc thùc
hiÖn. Trêng hîp kh«ng cã BiÓu thøc logic nµo tho¶ m·n, th× Nhãm lÖnh N+1 cña
nh¸nh dù phßng [OTHEWISE...] sÏ ®îc thùc hiÖn (nÕu cã nh¸nh nµy).
IV. CÊu tróc lÆp
1. Môc ®Ých
Trong ch¬ng tr×nh, mét nhãm c¸c c©u lÖnh liªn tiÕp nµo ®ã cã thÓ ph¶i thùc
hiÖn lÆp l¹i víi sù thay ®æi gi¸ trÞ cña c¸c biÕn th× míi ®¹t ®îc kÕt qu¶ cÇn thiÕt.
Sù thùc hiÖn lÆp ®i lÆp l¹i nhãm lÖnh ®ã sÏ chØ dõng l¹i khi ®iÒu kiÖn lÆp kh«ng
cßn tho¶ m·n n÷a. Muèn vËy t¹i vÞ trÝ tríc vµ sau nhãm lÖnh cÇn lÆp l¹i ®ã ph¶i cã
c¸c c©u lÖnh t¹o cÊu tróc lÆp.
2. CÊu tróc Do While... Enddo.
DO WHILE <BiÓu thøc logic>
<Nhãm lÖnh lÆp>
ENDDO
Khi biÓu thøc logic cho gi¸ trÞ §óng th× nhãm lÖnh tiÕp tôc ®îc thùc hiÖn. Cø
lÆp l¹i nh thÕ cho ®Õn khi biÓu thøc Logic cã gi¸ trÞ lµ Sai. V× vËy nÕu <nhãm lÖnh
lÆp> kh«ng t¸c ®éng g× ®Õn <BiÓu thøc logic>, cã nghÜa lµ <BiÓu thøc logic>
vÉn gi÷ nguyªn gi¸ trÞ .T. vµ nhãm lÖnh vÉn sÏ ®îc thùc hiÖn lÆp l¹i m·i m·i, kh«ng tù
tho¸t ra ®îc.
Vßng lÆp cã thÓ kÕt thóc ®ét ngét khi ®ang thùc hiÖn (BiÓu thøc logic vÉn
®óng) nÕu gÆp lÖnh EXIT. NghÜa lµ trong nhãm lÖnh lÆp cã mét nh¸nh rÏ cã chøa
lÖnh EXIT, nÕu nh¸nh rÏ ®ã ®îc thùc hiÖn th× vßng lÆp bÞ ng¾t tøc thêi.
VÝ dô:
Ch¬ng tr×nh sau ®©y cã biÓu thøc logic lu«n ®óng, sau mçi khi ch¹y hÕt vßng
lÆp sÏ ®a ra c©u hái "Cã thùc hiÖn lÆp l¹i n÷a kh«ng ?", nÕu bÊm phÝm "K" ®Ó
tr¶ lêi "kh«ng" th× vßng lÆp kÕt thóc, nÕu ngîc l¹i, bÊm bÊm phÝm kh¸c "K" th×
vßng lÆp vÉn tiÕp tôc ®îc thùc hiÖn.
LÖnh EXIT thêng ®îc dïng phæ biÕn trong cÊu tróc lÆp Do While...Enddo. Ngoµi
ra, cßn cã lÖnh LOOP ®Ó bá qua c¸c lÖnh cßn l¹i cña nhãm lÖnh lÆp vµ kiÓm tra l¹i
biÓu thøc logic ®Ó b¾t ®Çu mét lÇn lÆp míi.
3. CÊu tróc For...EndFor
Khi sè lÇn lÆp cña vßng lÆp ®· biÕt tríc th× cã thÓ dïng cÊu tróc lÆp víi mét
biÕn ®Õm sè lÇn lÆp nh sau
FOR <BiÕn ®Õm> = <n1> TO <n2> [STEP <n3>]
<Nhãm lÖnh lÆp>
ENDFOR
Trong ®ã <n1>, <n2>, <n3> lµ c¸c biÓu thøc sè vµ n2>n1. CÊu tróc nµy thêng sö
dông kh«ng cã [STEP <n3>], khi ®ã n3 ngÇm ®Þnh lµ 1. Sau mçi lÇn lÆp, gi¸ trÞ n1
®îc céng thªm 1 vµ khi n1 vît qu¸ n2 vßng lÆp sÏ kÕt thóc, nªn sè lÇn lÆp lµ n2-n1+1.
4. BiÕn m¶ng
Trong ch¬ng tr×nh thêng sö dông nhiÒu biÕn ®Ó lu gi÷ c¸c gi¸ trÞ trung gian,
nh trong c¸c vÝ dô ®· nªu ®ã lµ c¸c biÕn t1, t2, KT, TL,... vµ c¶ c¸c biÕn trêng nh
HODEM, TEN, NGAYSINH... Mét sè trêng hîp ph¶i sö dông biÕn m¶ng, ®ã lµ tËp hîp
c¸c biÕn cïng tªn vµ ®îc ph©n biÖt nhê chØ sè vµ gäi lµ c¸c phÇn tö cña m¶ng.
BiÕn m¶ng ph¶i khai b¸o tríc khi sö dông, c©u lÖnh khai b¸o biÕn m¶ng chØ râ
Tªn m¶ng, sè phÇn tö cña m¶ng:
DIMENSION Tªnm¶ng1(<sè phÇn tö>), Tªnm¶ng2(<Sè phÇn tö>),...
VÝ dô: C©u lÖnh sau khai b¸o m¶ng A cã 10 phÇn tö, m¶ng B cã 20 phÇn tö
DIME A(10), B(20)
Sau lÖnh trªn trong ch¬ng tr×nh cã thÓ sö dông c¸c biÕn A(1), A(2),..., A(10);
B(1), B(2),..., B(20).
KÝch thíc tèi ®a lµ 65000, sè m¶ng ®îc khai b¸o tèi ®a còng lµ 65000. Sau khi
khai b¸o, c¸c phÇn tö t¹m nhËn gi¸ trÞ .F. (thuéc kiÓu L), sau ®ã sÏ ®îc g¸n d÷ liÖu
bÊt kú.
C¸c m¶ng nh trªn gäi lµ m¶ng mét chiÒu. Cã trêng hîp ph¶i sö dông m¶ng 2
chiÒu, ch¼ng h¹n trong líp cã 20 häc sinh, ®Ó lu tr÷ Hä tªn, Ngµy sinh, §iÓm kiÓm
tra, §iÓm thi th× thay cho ph¶i dïng 4 m¶ng, mçi m¶ng 1 chiÒu (kÝch thíc 20x1) ta
chØ cÇn dïng 1 m¶ng 2 chiÒu cã kÝch thíc 20x4 vµ khai b¸o nh sau:
 DIMESION Hocsinh(20,4)
Nh vËy ta d· cã mét ma trËn c¸c biÕnvíi c¸c chØ sè nh sau
Hocsinh(1,1) Hocsinh(1,2) Hocsinh(1,3) Hocsinh(1,4)
Hocsinh(2,1) Hocsinh(2,2) Hocsinh(2,3) Hocsinh(2,4)
...... ...... ...... .....
Hocsinh(20,1) Hocsinh(20,2) Hocsinh(20,3)
Hocsinh(20,4)

Ch¬ng V:
C¸c kü thuËt sö dông trong lËp tr×nh
I. Ch¬ng tr×nh øng dông vµ c¸c yªu cÇu chung
1. C¸c chøc n¨ng c¬ b¶n
Mét bé ch¬ng tr×nh trong bµi to¸n qu¶n lý dï ë qui nµo còng cÇn cã c¸c chøc
n¨ng sau:
- Qu¶n lý ngêi dïng, khi b¾t dÇu ch¹y, ch¬ng tr×nh yªu cÇu nhËp Tªn ngêi dïng
vµ MËt khÈu, nÕu hîp lÖ ch¬ng tr×nh míi tiÕp tôc.
- NhËp, xem, söa c¸c b¶n ghi. C¸c d÷ liÖu ph¸t sinh trùc tiÕp hµng ngµy (trªn c¸c
chøng tõ) cÇn ®îc kÞp thêi ®a vµo, cã thÓ kiÓm tra, ®èi chiÐu vµ söa ch÷a.
- LiÖt kª c¸c b¶n ghi tho¶ m·n c¸c ®iÒu kiÖn ®Æt ra (theo mÉu b¸o c¸o)
- Tæng hîp, thèng kª d÷ liÖu...
- Sao lu, trî gióp
....
2. Giao diÖn sö dông
§èi víi ngêi dïng, ch¬ng tr×nh cÇn thuËn tiÖn, gÇn víi thao t¸c nghiÖp vô (c¸c
mÉu chøng tõ, b¶ng biÓu,..). §iÒu ®ã phô thuéc chñ yÕu vµo c¸c vÊn ®Ò tr×nh bµy
mµn h×nh.
C¸c Menu nhiÒu møc cÇn s¾p xÕp vµ tr×nh bµy phï hîp víi c¸c chøc n¨ng vµ dÔ
nhí, nªn sö dông c«ng cô tù ®éng t¹o Menu (ch¬ng VI).
§Ó nhËp, xem, söa d÷ liÖu, nÕu dïng c¸c cöa sæ cã s½n (nh APPEND hoÆc
BROW,...) râ rµng kh«ng thÓ thuËn tiÖn ®èi víi tõng bµi to¸n cô thÓ. NÕu c¸c tªn tr-
êng ®îc thay bëi c¸c Tiªu ®Ò râ rµng h¬n (ch¼ng h¹n TENKHACH, TENHANG nÕu
thay bëi Hä vµ Tªn kh¸ch hµng, Tªn hµng) t¹i c¸c vÞ trÝ thÝch hîp cïng víi c¸c chi tiÕt
hç trî kh¸c t¬ng tù nh mét tê Ho¸ ®¬n b×nh thêng... th× ngêi dïng ch¬ng tr×nh sÏ
thÊy dÔ hiÓu h¬n. Do vËy cÇn t¹o cöa sæ ®Ó nhËp, xem, söa d÷ liÖu võa ®Ó thuËn
tiÖn, võa cã thÓ kiÓm so¸t d÷ liÖu nhËp vµo ph¸t hiÖn c¸c sai sãt...
§Ó t¹o cöa sæ nªn sö dông c«ng cô tù ®éng t¹o cöa sæ (ch¬ng VI)
II. Tr×nh bµy mµn h×nh
1. C¸c lÖnh @
Mçi ®iÓm trªn mµn h×nh ®îc ký hiÖu (d, c) thuéc dßng d cét c
a) VÏ khung ch÷ nhËt tõ (d1,c1) ®Õn (d2,c2)
@d1,c1 TO d2,c2
VÝ dô:
 @ 10,20 TO 18,60
b) Xo¸ mµn h×nh trong khung ch÷ nhËt tõ (d1,c1) ®Õn (d2,c2)
@d1,c1 TO d2,c2 CLEAR
c) §a ra mét th«ng b¸o t¹i (d,c)
@d,c SAY <BiÓu thøc ký tù>
VÝ dô:
 @ 11, 30 SAY "NhËp Ho¸ ®¬n"
 @ 12, 22 SAY "Hä vµ Tªn kh¸ch hµng: "
d) §a ra mét th«ng b¸o t¹i (d,c) vµ chê nhËn d÷ liÖu nhËp tõ bµn phÝm vµ g¸n
cho biÕn ®· cã, dïng 2 c©u lÖnh
@ d,c SAY <Th«ng b¸o> GET <Tªn biÕn>
READ
VÝ dô:
 Ht=""
 Dc=""
 Th="Th"
 @ 12, 22 SAY "Hä vµ Tªn kh¸ch hµng: " GET Ht
 @ 13, 22 SAY "§Þa chØ: " GET Dc
 @ 14,22 SAY "Tªn hµng: " GET Th
 READ
Qua vÝ dô trªn, chøng tá: mét lÖnh READ cã t¸c dông chung cho nhiÌu lÖnh @
d,c SAY...GET ë phÝa trªn; C¸c biÐn Ht, Dc, Th sö dông sau GET ph¶i ®· ph¸t sinh tríc
®ã.
NÕu c©u lÖnh cã thªm RANGE(<min>, <max>) vµ VALID <BiÓu thøc logic> th×
d÷ liÖu nhËp vµo ph¶i trong giíi h¹n kh«ng nhá h¬n <min>, kh«ng lín h¬n <max>
vµ ph¶i tho¶ m·n ®iÒu kiÖn (biÎu thøc Logic b»ng .T.)
VÝ dô:
 @ 14,.22 SAY "Tªn hµng: " GET Th VALI Len(Th)>0
 @ 15, 22 SAY "Sè lîng: " GET Sl RANG(0,1000)
Cã thÓ nhËp d÷ liÖu vµo biÕn trêng cã s½n, khi ®ã tªn biÕn trêng sau GET gåm
cã tªn file d÷ liÖu ®øng tríc ph©n c¸ch bëi dÊu chÊm
VÝ dô:
 @ 12, 22 SAY "Hä vµ Tªn kh¸ch hµng: " GET Hoso.hoten
Th«ng thêng c¸c biÕn nhí ®îc sö dông ®Ó chøa gi¸ trÞ cña biÕn trêng ®Ó söa
ch÷a, sau khi söa ch÷a xong sÏ g¸n l¹i cho biÕn trêng
VÝ dô: C¸c biÕn m.hoten, m.diachi, m.tenhang ®îc dïng ®Ó chøa c¸c gi¸ trÞ t-
¬ngøng cña c¸c trêng Hoten, Diachi, Tenhang
 SCATER MEMVAR && Ph¸t sinh biÕn vµ g¸n gi¸ trÞ cña trêng cho biÕn
 @ 12, 22 SAY "Hä vµ Tªn kh¸ch hµng: " GET m.hoten
 @ 13, 22 SAY "§Þa chØ: " GET m.diachi
 @ 14,22 SAY "Tªn hµng: " GET m.tenhang
 READ
 GATHER MEMVAR && G¸n trë l¹i gi¸ trÞ cu¶ biÕn nhí vµo c¸c trêng
2. Cöa sæ
a) §Þnh nghÜa cöa sæ tõ (d1,c1) ®Õn (d2,c2)
DEFINE WINDOW <Tªn cöa sæ> FROM d1,c1 TO d2,c2
Trong ®ã Tªncöa sæ ®Æt theo qui t¨c tªn biÕn (kh«ng chøa dÊu, kÓ c¶ dÊu
c¸ch,...). ngoµi ra cßn cã thÓ ®a thªm vµo c¸c tuú chän
TITLE <X©u ký tù> Tiªu ®Ò sÏ hiÓn thÞ s¸t c¹nh trªn cña cöa sæ
SHADOW T¹o bãng cña cöa sæ
COLOR SCHEME <n> T¹o mµu nÒn theo s¬ ®å mµu thø n (1<n<10)
b) KÝch ho¹t cöa sæ ®Î sö dông
ACTIVE WINDOW <Tªn cöa sæ ®· ®îc ®Þnh nghÜa>
C¸c cöa sæ ®îc kÝch ho¹t sÏ xuÊt hiÖn trªn mµn h×nh. Cöa sæ võa ®îc kÝch ho¹t
sÏ lµ cöa sæ hiÖn thêi vµ lµ n¬i ®a th«ng tin ra hoÆc chê nhËn d÷ liÖu (c¸c lÖnh ?,
INPUT, @,...). Cöa sæ chØ ®ãng khi t¾t kÝch ho¹t cöa sæ ®· kÝch ho¹t b»ng lÖnh
ACTIVE WINDOW <Tªn cöa sæ ®· ®îc ®Þnh nghÜa>.
II. §iÒu khiÓn b»ng bµn phÝm hoÆc chuét
1. Vïng nhí bµn phÝm
Khi m¸y ®ang lµm viÖc, nÕu bÊm mét phÝm nµo ®ã th× m· cña phÝm ®ã ®îc l-
u trong vïng nhí dµnh cho bµn phÝm. M· mét sè phÝm nh sau
a 97 PageUp 18
b 98 PageDown 3
c 99 Ctrl+Home 29
.... Ctrl+End 23
z 122 Delete 7
enter 13 BackSpace 127
ESC 27 Mòi tªn lªn 5
Home 1 Mòi tªn 23
xuèng
End 6 Mòi tªn tr¸i 19
Mòi tªn ph¶i 4
Trong vïng nhí c¸c phÝm ®îc lu theo thø tù ®a vµo, vµ tèi ®a lµ 256. Cã thÓ kiÓm
so¸t vïng nhí hoÆc c¸c phÝm ®· ®îc bÊm b»ng mét sè lÖnh vµ hµm.
a) LÖnh xo¸ vïng nhí bµn phÝm
CLEAR TYPEHEAD
b) Hµm x¸c ®Þnh vïng nhí bµn phÝm cã rçng kh«ng (kÕt qu¶ .T. lµ kh«ng rçng)
CHRSAW()
c) Lu tríc c¸c phÝm vµo vïng nhí bµn phÝm
KEYBOARD <X©u ký tù>
VÝ dô: dßng lÖnh sau gäi thùc hiÖn file ch¬ng tr×nh SV.PRG
 KEYB "DO SV" + CHR(13)"
VÝ dô:
 KEYB "{CTRL+F4}
2. C¸c hµm nhËn diÖn bµn phÝm
a) Hµm cho biÕt ký tù xÕp ®Çu tiªn trong vïng nhí bµn phÝm
INKEY(<t>, <c>)
Trêng hîp vïng nhí rçng (th«ng thêng), th× hµm sÏ chê t gi©y ®Ó ngêi dïng bÊm
mét phÝm vµ sau t gi©y kh«ng bÊm g× th× hµm sÏ cho gi¸ trÞ 0; NÕu t=0, hµm sÏ
chê m·i, b¾t buéc ph¶i bÊm phÝm th× míi tiÕp tôc; NÕu kh«ng cã t, Hµm cho ngay
gi¸ trÞ 0.
Tuú chän <c> chØ nhËn 1 trong 3 gi¸ trÞ:
"S" Cho hiÓn thÞ con trá (ngÇm ®Þnh lµ cã)
"H" Kh«ng cho hiÓn thÞ con trá
"M" NhËn biÕt bÊm chuét (ngÇm ®Þnh lµ kh«ng)
Cã thÓ kÕt hîp c¸c gi¸ trÞ trªn
b) Hµm cho biÕt phÝm ®îc nhÊn cuèi cïng
LASTKEY()
VÝ dô: §o¹n ch¬ng tr×nh sau ®Ó söa b¶n ghi hiÖn thêi nhng khi ®ang nhËp nÕu
bÊm ESC th× sÏ lÊy laÞ gi¸ trÞ ban ®Çu cña b¶n rghi
SCATER TO TAMTHOI && Lu t¹m thêi b¶n ghi hiÖn thêi ra biÕn Tamthoi
@11,22 Say "Hä vµ tªn: " get Hoten
@12,22 Say "Ngµy sinh: " get Ngaysinh
@13,22 Say "Líp: " get Lop
@15,22 Say "Muèn huû viÖc söanhÊn SC "
READ
IF LASTK()=27
GATHER FROM Tamthoi && G¸n l¹i gi¸ trÞ tõ Tamthoi vµo b¶n ghi
ENDIF
3. BÉy phÝm
§«i khi ta muèn r»ng, trong khi ch¬ng tr×nh ®ang ch¹y, nÕu bÊm phÝm nµo ®ã
ch¬ng tr×nh sÏ nhËn biÕt ®îc vµ thùc hiÖn mét yªu cÇu.chuÈn bÞ tríc.
VÝ dô
§ang cÇn nhËp Sè b¸o danh ®Î tra cøu ®iÓm, nÕu bÊm F1 th× B¶ng kª Sè b¸o
danh vµ Hä tªn thÝ sinh sÏ hiÖn ra, bÊm ESC l¹i Èn ®i...
Muèn vËy ph¶i ®Æt bÉy phÝm:
ON KEY LABEL <Nh·n phÝm> <LÖnh>
VÝ dô:
ON KEY LABEL F1 Do SV
HoÆc
ON KEY LABEL {Ctrl+F4} Do Bangke

Ch¬ng VI:
C¸c c«ng cô hç trî lËp tr×nh tù ®éng
I. Sö dông bé t¹o tù ®éng cöa sæ (Screen Builder)
1. C¸c thao t¸c chÝnh
Nh ë phÇn trªn, ta ph¶i biªn so¹n c¸c dßng lÖnh ®Î t¹o ra c¸c cöa sæ ®Ó xem,
söa, nhËp d÷ liÖu. Trong c¸c cöa sæ nµy thêng bao gåm nhiÒu chi tiÕt phøc t¹p nh
c¸c Nh·n, c¸c Hép nhËp d÷ liÖu, C¸c nót lÖnh, Nót radio, Hép kiÓm, Thanh cuén,
B¶ng chän... Thùc tÕ so¹n c¸c dßng lÖnh ®Ó t¹o ra c¸c chi tiÕt ®ã theo ®óng ý
muèn lµ c«ng viÖc hÕt søc khã kh¨n. Bé t¹o cöa sæ víi c¸c c«ng cô kÌm theo ®îc sö
dông ®Î thiÕt kÕ trùc tiÕp cöa sæ víi c¸c chi tiÐt bªn trong, ngay trªn mµn h×nh ®Ó
cã thÓ ®iÒu chØnh kÝch thíc, vÞ trÝ vµ c¸c tÝnh chÊt kh¸c cña chóng cho ®Õn khi
võa ý. Sau ®ã Bé t¹o cöa sæ sÏ tù ®éng t¹o ra chÝnh c¸c dßng lÖnh øng víi cöa sæ vµ
c¸c chi tiÕt võa thiÕt kÕ.
Do ®ã sö dông Bé t¹o cöa sæ gåm c¸c thao t¸c chÝnh lÇn lît lµ:
- Më c¸c file d÷ liÖu liªn quan
- Më cöa sæ thiÕt kÕ (T¹o file thiÕt kÕ *.SCX)
- Khai b¸o mét sè thuéc tÝnh chung
- ThiÕt kÕ chi tiÕt, ghi l¹i file thiÕt kÕ
- Ph¸t sinh ch¬ng tr×nh (T¹o file ch¬ng tr×nh mµ khi ch¹y sÏ t¹o ra cöa sæ - file
nµy cïng tªn víi file thiÕt kÕ vµ cã ®u«i.SPR).
- Xem, söa thiÕt kÕ; Xem file ch¬ng tr×nh ®îc tù ®éng sinh ra.
VÝ dô:
C¸c nh·n "Hå s¬ tuyÓn sinh", "Hä vµ tªn", "Ngµy sinh",..
C¸c hép nhËp d÷ liÖu (khung bªn c¹nh c¸c nh·n)
C¸c nót lÖnh "§Çu", "Tríc",...
Sau ®©y lµ c¸ch tiÕn hµnh cô thÓ tõng thao t¸c ®ã
2. Cöa sæ thiÕt kÕ vµ c¸c khai b¸o chung
CREATE SCREEN <tªn tÖp>
Trong ®ã <tªn tÖp> ®Æt cho tÖp ®ang ®îc t¹o ®Ó chøa c¸c khai b¸o vµ c¸c
thiÕt kÕ chi tiÕt, phÇn ®u«i cña tªn file sÏ tù thªm vµo lµ SCX
VÝ dô: §Ó khëi t¹o thiÕt kÕ cöa sæ nhËp Hå s¬, dïng lÖnh
 CREA SCRE NhapHS
Cöa sæ sÏ më ra t¬ng tù nh cöa sæ thiÕt kÕ mÉu b¸o c¸o (REPORT). C©u lÖnh
trªn còng ®îc dïng ®Ó më cöa sæ thiÕt kÐ ®· cã ®Ó söa ch÷a.
NÕu thiÕt kÕ míi th× tríc hÕt ph¶i khai b¸o, më hép tho¹i SCREEN\ LAYOUT
Trong hép tho¹i cÇn khai b¸o Tiªu ®Ò trªn (Title), Tªn (Name), VÞ trÝ, kÝch thíc ,
Mµu nÒn,...cña cöa sæ. Khai b¸o xong bÊm OK ®Ó kÕt thóc khai b¸o vµ tiÕn hµnh
thiÕt kÕ chi tiÕt.
Sau khi hoµn thµnh thiÕt kÕ, ph¶i tiÕn hµnh ph¸t sinh ch¬ng tr×nh, më hép
tho¹i Program\ Generate...
Sau khi ph¸t sinh ch¬ng tr×nh ph¶i ghi l¹i file mÉu (File\ Save) hoÆc Ctrl+W.
Mçi khi söa ch÷a l¹i thiÕt kÕ ®Òu ph¶i ph¸t sinh ch¬ng tr×nh vµ ghi l¹i thiÕt kÕ.
Trong c©u lÖnh gäi thùc hiÖn ch¬ng tr×nh tù ph¸t sinh t¹o cöa sæ ph¶i chØ râ
tªn file cã phÇn ®u«i lµ SPR.
VÝ dô:
 Do Nhaphs.SPR
III. Truy vÊn d÷ liÖu b»ng SQL
1. Môc ®Ých
Trong Foxpro cßn cã nhãm lÖnh SQL, gåm c¸c lÖnh ®Æc biÖt cho phÐp t¹o lËp,
kÕt nèi c¸c file d÷ liÖu ®îc dÏ dµng h¬n
2. Mét sè lÖnh SQL
a) T¹o file d÷ liÖu cã cÊu tróc cho tríc
CREATE TABLE <Tªn file> (<Tªn trêng1> <KiÓu d÷ liÖu>(§é réng, [phÇn thËp
ph©n]), <Tªn trêng 2> <KiÓu d÷ liÖu>(§é réng, [phÇn thËp ph©n]),...)
VÝ dô: T¹o file Canbo.DBF
 CREA TABL Canbo (Hoten C (20), Ngaysinh D(8), L¬ng N(7,1))
b) T¹o mét b¶ng d÷ liÖu t¹m thêi trong bé nhí
CREATE CURSOR <Tªn file> (<Tªn trêng1> <KiÓu d÷ liÖu>(§é réng, [phÇn thËp
ph©n]), <Tªn trêng 2> <KiÓu d÷ liÖu>(§é réng, [phÇn thËp ph©n]),...)
VÝ dô: T¹o file Canbo.DBF
 CREA CURS Canbo (Hoten C (20), Ngaysinh D(8), L¬ng N(7,1))
B¶ng d÷ liÖu t¹m thêi sÏ kh«ng ®îc ghi l¹i vµo ®Üa khi tho¸t khái Foxpro
c) Thªm b¶n ghivµo mét file d÷ liÖu ®· cã
INSERT INTO <Tªn file> [<danh s¸ch trêng>] VALUE (<danh s¸ch c¸c gi¸ trÞ>)
VÝ dô:
 INSE INTO Hoso VALU ("NguyÔn ThÞ Lan", "Anh", {8/14/78}, .F.)
d) Chän d÷ liÖu vµ ®a ra thµnh mét b¶ng
SELECT <danh s¸ch trêng> FROM <danh s¸ch c¸c file> [WHERE <biÓu thøc
logic>] [GROUP BY <tªn trêng> HAVING <BiÓu thøc logic>] [ORDER BY <tªn trêng>|
<chØ môc> [ASC|DSC]]
Trong®ã:
<danh s¸ch trêng> nÕu thay b»ng dÊu * th× tÊt c¶ c¸c trêng ®îc ®a ra, nÕu tr-
êng cña file kh«ng ë vïng hiÖn thêi th× ph¶i cã tªn file ®øng tríc c¸ch bëi dÊu chÊm.
NÕu muèn tªn cét cña b¶ng kh¸c víi tªn trêng th× sau mçi tªn trêng ph¶i kÌm theo AS
<tªn cét>
[WHERE <biÓu thøc logic>] ®Ó chØ ra b¶n ghi nµo cÇn ®a ra
[GROUP BY <tªn trêng> HAVING <BiÓu thøc logic>] ®Ó kÕt xuÊt th«ng tin theo
mét trêng vµ ®iÒu kiÖn kÌm theo.
[ORDER BY <tªn trêng>|<chØ môc> [ASC|DSC]] chØ ra thø tù s¾p xÕp c¸c
dßng khi ®a ra.
VÝ dô:
 SELE Hodem + Ten AS "Hä vµ tªn", Ngaysinh AS "Ngµy sinh", Sobaodanh AS "Sè
b¸o danh", Diemthi.tongdiem AS "Tæng ®iÓm" FROM Hoso, Diemthi WHER
Diemthi.tongdiem>=12

You might also like