You are on page 1of 146

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Li ni u
Visual FoxPro 6.0 (gi tt l VF) l mt h qun tr c s d liu quan h
(QTCSDL) trong b Microsoft Visual Studio 6.0. y l mt h QTCSDL trc
quan, mnh v hng i tng.
Nh VF m bn c th to lp cc CSDL gii quyt mt v n thc t
no , bn c th sp xp, tm kim, truy lc thng tin trong cc bng, t cc
bng trong mt CSDL bn c n c th pht sinh ra cc bo biu, cc nh n
v.v..tm li nh cng c ny (VF) m bn c th gii quyt c cc bi ton
xy ra trong cng vic thng nht mt cch d dng.
Vi VF chng ta va k tha c sc mnh trong mi trng Windows, li
va tn dng c mi tnh nng ca mt h qun tr c s d liu mnh, li va
tn dng c cc iu khin c tnh trc quan v cao hn bn tip cn vi cung
cch lp trnh cu trc v hn ht l lp trnh hng i tng (OOP-Object
Oriented Programming).
Gio trnh c t chc theo 11 chng:
Chng 1: Lm quen vi mi trng VF
Chng 2: Cc loi d liu trong VF
Chng 3: DataBase v Table
Chng 4: Truy vn v hin th thng tin
Chng 5: Form Report
Chng 6: Lp trnh trong VF
Chng 7: Thit k giao din
Chng 8: By trong chng trnh
Chng 9: Mng v chuyn giao d liu
Chng 10: Mt s lnh hiu chnh d liu
Chng 11: Chng trnh con
Chng 12: Ghp d liu
Gio trnh c trnh by r rng, d hiu, ni dung ca cc Tables n gin
gip cho vic lnh hi kin thc d d ng.
V VF l mt h QTCSDL ln, cha ng rt nhiu tnh nng tin ch, ngo i
ra cn cha ng mt lot cc iu khin (controls), lp (Class), cc i t ng
khc v.v.., m gio trnh ny l i ng vi s tit khng nhiu, n n khng th
cp y c.
Khi bin son gio trnh ny chng ti ht sc c gng nhng chc chn
khng th trnh khi nhng thiu st, chng ti mong s ch gip ca cc bn.
H ni ngy 15/2/2008

ELEC

Trang 1

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 1: Lm quen vi mi trng VF


1.1 Khi ng VF
C nhiu cch khi ng VF, cch thng dng nht l :
Chn Start/Program/Microsoft Visual Studio 6.0 /Visual FoxPro 6.0
V tu theo ci t v chy trc , nn c th c nhng dng mn hnh xut

hin khc nhau. Gi s ta c dng sau:


Trong trng hp ny ta thy c mt ca s Microsoft Visual FoxPro v mt ca
s Command T (ta s cn lm quen vi hai ca s ny trong sut gio trnh)
1.2 Project Manager
Project Manager (qun l d n) l cng c t chc c bn nht lm vic vi
cc d liu v i tng trong VF. To mt Project Manager mi nh sau:
Chn File/New. Sau ta c hp thoi:

ELEC

Trang 2

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chn Project v New File, hp thoi sau xut hin:


Ngha l VF yu cu bn g tn d n vo phn Enter Project, hy t tn cho d

n v chn Save. Tip theo hp thoi sau hin ra:

ELEC

Trang 3

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Trong hp thoi trn c cc thnh phn: Data, Document, Code v Other v 6


tab: All, Data, Documents, Classes, Code v Other (B n cha cn tm hiu n
vi - v mc ch lc ny l bit cch trng din n m thi). Nu bn kch vo
cc du + th cc thnh phn trong hin ra, bn h y quan st hp thoi sau,
sau khi bn kch vo 4 du cng (+) :

Ta nhn thy trong phn Data c : Databases (c s d liu), Free Tables


(bng), Queries (cc truy vn) v.v.. - chng ta s tm hiu cc thnh phn cc
chng sau.
Khi tm hiu cc i tng ring l, bn khng nn chn Tab All. V d khi lm
vic vi Data, hy chn Tab Data, sau ch phn Data hin ra:

ELEC

Trang 4

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Cng tng t nh vy i vi cc Tab khc.


1.3 B sung v loi b cc File trong mt Project
1. B sung File
Gi s bn cn b sung mt File c ui *.dbf (bng) v o phn Free Tables ca
mt d n c tn DuAn1.PJX, ta thao tc nh sau:
Trng din hp thoi ca d n mi v t tn cho n l DuAn1.PJX, b ng
cc thao tc ni trn:

Chn Free Tables (v ta nh chn tp dng bng) v Add, hp thoi Open hin
ra:
Hy chn mt tp bng (Gi s ta chn tp Labels.dbf) v sau chn OK
Nh vy tp Labels.dbf c a vo Project (d n) c tn DuAn1.PJX
phn Free Tables.

ELEC

Trang 5

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

2. Loi b mt tp trong mt d n
Gi s vi d n m ta va a tp Labels.dbf vo, mun loi b n hy thao
tc:
Trng din hp thoi v chn: Data/Free Tables/Labels.dbf

Nu sa hy chn Modify, hin th hy chn Browse, loi b hy chn Remove


v.v..
1.4 To File mi trong mt thnh phn ca Project Manager
Hy trng din d n, v d d n c tn DuAn1.pjx nh hnh sau:

Chn thnh phn bn mun to File (gi s chn Data/Free Tables


Chn New sau ta c hp thoi:

ELEC

Trang 6

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chn New Table


Sau hp thoi Create hin ra:

Hy g tn tp vo v chn Save

Sau ca s to bng (Table Designer) c dng:


Hy to cu trc tp mi (s ni cch to ch ng sau)
Np lun d liu vo, np xong hy g Ctrl + W thot

ELEC

Trang 7

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

1.5 Thm ch thch (m t) File


Nhiu khi ta mun ch thch cho mt File n o , gi s ta mun ch thch File
Labels.dbf l "y l tp nhn dng cho vic in b th". Mun vy ta thao tc
nh sau:
Chn tp Labels.dbf trong phn Data/Free Tables, nh trong hp thoi sau:

Chn Menu Project /Edit Description nh hnh sau:

ELEC

Trang 8

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Sau ta c hp thoi:
G ch thch: "y l tp nhn dng cho vic in b th" vo v chn OK

Sau ta thy ch thch hin ra mi khi ta chn tp Labels.dbf:


1.5 Nhng vn khc
1. Di chuyn Project Manager
a tr chut vo thanh tiu ca Project Manager, sau ko n ni cn
n.
2. t li kch c ca Project Manager
t tr chut nh hoc cc cnh, sau co ko cho hp vi kch c m mnh
mun.
3. Ch phn Tab ca Project Manager
Bn phi ca cc Table c mi t n ln, hy kch vo n ta c d ng Project
Manager mi nh sau:

c ch
thch ri!

ELEC

Trang 9

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Cn nu kch vo mi tn xung ta c hnh th ban u.


4. Tch cc Tab thnh cc giao di n ring
a Project Manager v dng ch cn li thanh Tab
a tr chut vo Tab, ko xung ta c mt giao din ring ca Tab :

Nu kch vo du Close (X) ca giao din n (hoc ko n v ni xut pht),


giao din ny s nhp vo Tab tng ng ca Project Manager.
5. a Project Manager v dng nh thanh cng c nm pha trn mn
hnh
a tr chut vo thanh tiu v ko v pha trn, vng dnh cho cc thanh
cng c, cho n khi n mt phn pha sau thanh Tab . Nh hnh sau:
Mun Project Manager tr v dng ban u h y ko "thanh ny" ra khi vng
cho n khi n tr v dng ban u.

Nh thanh cng c

ELEC

Trang 10

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

1.6 Cc thanh cng c


Vic s dng cc thanh cng c trong VF cng nh trong cc chng trnh khc
trong mi trng Windows, s gip cho vic thao tc nhanh v chnh xc. a
mt thanh cng c ra mn hnh theo cc bc sau:
Chn View /Toolbars sau ta c hp thoi chn thanh cng c:

Hy nh du kim vo mt thanh m bn cn.


Nu khng mun hin th thanh cng c h y xo du khim
Bn s hiu cch dng cc thanh cng c qua nhng phn thch hp.
1.7 Thanh Menu Bar

Khi khi ng mt d n, thanh Menu Bar c cc th nh phn sau:


N bao gm:
File, Edit, View, Tools, Program, Project, Window, Help
ELEC

Trang 11

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Khi bn chn mt thnh phn no trong Project Manager th cc thnh phn


ca Menu Bar tng ng c th c khc nhau. V d bn chn Documents/Form
th Menu Bar s c cc thnh phn:

Ngha l gm cc thnh phn:


File, Edit, View, Format, Form, Tools, Program, Window v Help
Cn nu bn chn Code /Program th :

ELEC

Trang 12

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Trn Menu Bar khng c thnh ph n Form.


Bn s tm hiu cc thnh phn ca Menu Bar nhng phn sau.
1.8 Mt s thut ng v thao tc c bn i vi Project Manager
Nh bn bit Project Manager l "Trung tm iu khin" ca mi qu trnh x
l trong VF. Chnh v vy m chng ta phi lm quen mt s thut ng v mt s
thao tc trc khi chuyn sang cc phn c bn khc. Nh trnh by trn,
trong Project Manager cha 5 nhm c bn:
A. Nhm Data
Nhm ny c gi l nhm d liu, trong nhm ny c cha 3 thnh phn c
bn l:
DataBases
DataBases l c s d liu (CSDL), ta tm thi hiu l mt tp cc File c t
chc theo mt quy tc no thc thi mt nhim v n o . Trong
DataBases cha cc loi tp khc nhau, nhng c mt loi tp rt quan trng
c gi l bng (table). Table l loi tp c bn nht trong CSDL, nhiu pht
sinh xut pht t tp ny. hiu n ta tm thi a ra mt hnh nh nh sau:
Mt th sinh thi khi A c cc thng tin: Hodem, T en, Ngaysinh, Sbdc c ghi
vo tp c tn TsKhoiA.dbf c hnh nh sau:

ELEC

Trang 13

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Bng ny c 4 ct, m ta hay gi l Trng (Field), mi Trng c tn Trng


khc nhau, v d trn cc tn Trng l:
a. Hodem ( ghi H v m ca Th sinh).
b. Ten ( ghi tn ca Th sinh)
c. Ngaysinh ( ghi ngy sinh ca Th sinh)
d. Sbd ( ghi s bo danh ca Th sinh)
Mi dng trong bng c gi l mt bn ghi (Record)
Tt nhin gii quyt bi ton Tuyn sinh, mt mnh bng ny cha , gi s
ta cn c tp dng bng c tn DiemKhoiA.dbf nh sau:

kt ni hai bng trn thnh mt loi thng tin cho mt th sinh bao gm:
Hodem, Ten, Ngaysinh, Sbd, Toan, Ly, Hoa, Tong ta ph i da vo trng SBD,
nh trng ny m hai bng trn c th lin kt c vi nhau nh ra th ng
tin cho mt Th sinh. Ta gi trng ny l trng Kho, ngha l hai bng trn c
mi quan h thng qua trng Kho SBD.
Trong hai bng trn ta cn phi ch mt vn na l kiu trng v di
trng. V d:
1. Trng Hodem c kiu vn bn (Character ) v thng l c di 20 k t,
ngha l s k t dnh cho h v m khng c qu 20 (tt nhin phi cn
c vo thc t nh di cho thch hp)
2. Trng Ten c kiu Character v di nn khai bo l 7 (v tn ng i Vit
nam thng khng qua 7 k t)
ELEC

Trang 14

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

3. Trng ngy sinh cng c th khai bo Character v c di 6 (v 2 ch s


cho ngy, 2 cho thng v 2 cho nm). Tuy v y trong VF cn c kiu Date,
chng ta s xt k kiu ny phn sau.
4. Trng Toan, Ly, Hoa, Tong l trng s (Numeric) v v cch cho im
tuyn sinh thng l 2 ch s phn nguyn, du phy thp phn v c th hai
ch s sau du phy, ngha l di 5 v s ch s sau du phy l 2.
5. Trng s bo danh (Sbd) c kiu l Character v di tu bn, min l
gn cho mi th sinh mt m, khng th sinh no ging nhau.
Trong DataBases c c cc thnh ph n khc nh: Local View, Remote View,
Conections, Stored Procedures (chng ta s tm hiu sau)
Free Tables
Trong thnh phn ny cha cc bng t do (nm ngo i DataBases - CSDL)
Queries
Dng truy vn - to cc Tables khc t Tables ngun, ngha l sinh ra cc tp
bng t nhng tp bng ngun theo mt s iu kin n o
B. Documents
Trong Documents c cc thnh ph n nh: Form, Reports v Labels.
Form
Trong Form cha cc tp c hnh nh Form. Thc cht Form l mt ca s dng
dt cc iu khin ln trn n. Nu bn chn Form v chn New sau chn
New Form ta c hnh sau:

Ta c th t cc iu khin ln Form bng cch:

ELEC

Trang 15

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

1. Chn View/Form Controls Toolbars, sau ta c hp i u khin sau:

Nt lnh

2. Kch nt lnh, a tr chut vo Form, r ta c nt lnh nh hnh sau:

Dng nt lnh cng nh cc iu khin khc lm g chng ta s c mt


chng ni v iu .
Reports (bo biu)
Trong Reports cha cc tp bo biu c ui *.frx v *.frm
Labels (nhn)
Trong Labels cha cc tp nhn (bn s tm hiu Reports v Labels sau).
C. Classes
Dng to mi hoc ni kt cc lp v o Project Manager
D. Code
Trong Code c Program, API Libraies v Applications
Program
ELEC

Trang 16

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Trong Program cha cc chng trnh. Gi s bn chn Program, New sau ta

c ca s chng trnh hin ra, ca s ny dng g cc lnh m ngun:


API Libraies v Applications
Hai thnh phn ny dng ni kt cc th vin API v cc ng dng (*.DLL).
E. Other
Trong Other c 3 thnh phn: Menus, Text Files v Other Files
Menus
Thnh phn ny dng to cc tp Menus (*.mnx)
Text Files
Dng to mmt tp text hoc ni kt mt tp text v o Project Manager
Other Files
Dng ni kt vo Project Manager mt tp bt k - c th c tp ho.
Cu hi v bi tp
Cu 1: Project Manager l g?
A. L mt chng trnh
B. L mt tp CSDL
C. L mt cng c cha nhiu i t ng gip cho vic Qun tr CSDL d d ng
Cu 2: Nhm Data trong Project Manager bao g m nhng cng c no?
A. Cng c DataBases
B. Cng c Free Tables
C. Cng c Queries
D. C 3 cng c trn
Cu 3: ln n tn trng ca mt bng trong DataBases ta thao tc th n o?
A. Chn DataBases /Tables
B. Chn DataBases /Tables/Tn tp bng
C. Chn DataBases /Nhm D liu cha bng /Tables/T n tp bng
D. Chn DataBases /Nhm D liu cha bng /T n tp bng
Cu 4: Nhm Documents trong Project Manager bao g m nhng cng c no?
ELEC

Trang 17

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

A.
B.
C.
D.

Cng c Forms
Cng c Reports
Cng c Labels
C 3 cng c trn

Cu 5: to mt ca s Form mi ta l m th no?
A. Chn Form
B. Chn Form /New
C. Chn Form /New/New Form
D. M tp Form c
Cu 6: a mt iu khin ln Form ta lm th no?
A. M tp cha iu khin
B. Chn iu khin cn a ln Form, a tr chut vo Form v r
C. Chn iu khin cn a ln Form, a tr chut vo Form v kch
Cu 7: Trong mt DataBases c th c php c bao nhiu tp bng?
A. Ch 1
B. Hai tp bng
C. Ba tp bng
D. C th c nhiu tp bng
Cu 8: xo mt bng trong DataBases ta l m th no?
A. Chn tp bng
B. Chn tp bng /chn Remove
C. Chn tp bng /chn Remove sau chn Delete
D. Chn Tables /Chn tp bng /chn Remove sau chn Delete
E. Chn Data /Thnh phn d liu /Tables/Chn tp bng /chn Remove sau
chn Delete
Cu 9: a mt tp bng vo Tables ta lm th no
A. Chn Data /Thnh phn d liu /Tables
B. Chn Data /Thnh phn d liu /Tables/Add
C. Chn Data /Thnh phn d liu /Tables/Add/chn tp cn a vo /OK
Cu 10: Mun hin th hp cha cc iu khin ta l m th no?
A. Tao mt Form mi hoc m mt tp Form hp iu khin s hin ra
B. Chn View /Form Controls To olBars
C. Tao mt Form mi hoc m mt tp Form sau chn View /Form Controls
ToolBars

ELEC

Trang 18

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 2: Cc loi D liu trong VF


Trong chng ny kim tra kt qu ca cc php ton tr n cc kiu d liu,
bn dng ca s lnh (Command). hin th ca s bn chn
Window/Command Window, ng thi dng lnh in (?),v d g lnh sau vo
ca s lnhv: ?2+3 kt qu s l 5 v.v..
2.1 Hng v bin
1. Hng
Trong VF c cc loi hng sau:
Hng nguyn
Vit bnh thng nh trong ton hcV: 12, -23, 0, -234 v.v..
Hng thc
Dng du chm thay du phy thp phn:
23.34, -7.25 v.v..
Dng K t E:
8.234E3= 8.234 x 10 3
0.21E-2=0.21 x 10 -2
Hng vn bn
c t trong du nhy kp hoc n: "Tin hc" hoc 'Tin hc'
Hng Logic
ng .T. v sai .F.
Hng Date
c bao trong { } v vit theo trt t sau: yyyy/mm/dd
{^1978/12/05}
2. Bin
L mt v tr trong b nh m gi tr ca n c th b thay i trong khi chy
chng trnh. Bin c xc nh qua tn. Tn bin c t nh sau:
Khng c di qu 254 k t, c th dng ch ci, ch s v du gch di
dt tn bin nhng khng c bt u bng s, khng c trng vi t
kho trong VF.
V d tn bin hp l: x, y, DienTich, S1
Tn bin khng hp l:-x, 2y,Dien tich, S 1
3. Cc loi bin
Trong VF c 3 loi bin
Bin b nh
Do ngi lp trnh khai bo, c th dng ch m. v sau l tn bin (khng bt
buc). V d: m.DienTich, m.X, S1
Bin h thng
Do VF t to ra khi khi ng, loi bin n y bt u bng du gch di, v d:
_Box, _Alignment
ELEC

Trang 19

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Bin vng (tn khng di qu 10 k t )


L tn cc vng m tp CSDL (s ni sau)
4. Gn gi tr cho bin
A=123 <Enter>(gn gi tr 123 cho bin A)
Hoc Store 123 To A <Enter>
C th gn mt gi tr cho nhiu bin:
Store 2 To A, B, C<Enter>
V d v lm vic vi bin:
A=12<Enter>
B=20<Enter>
S=A+B<Enter>
?S<Enter>
s cho kt qu 32. Chng ta s ni k bin trong phn lp tr nh.
2.2 Cc php ton s hc trong VF
1. Php cng: +
V d: ?23+12 <Enter> s cho kt qu 35
2. Php tr: ?5-10 <Enter> s cho kt qu -5
3. Php nhn: *
?2*4 <Enter> s cho kt qu 8
4. Php chia: /
?4/3 <Enter> s cho kt qu 1.33
5. Php lu tha: ** hoc ^
?2^3 <Enter> s cho kt qu 8
6. Php ly s d: %
?5%3 <Enter> s cho kt qu 2
2.3 Cc php ton Logic trong VF
Gi tr ca i lng kiu logic c th l .T. (ng) hoc .F. (sai)
1. Php ph nh: Not hoc!
?Not(2<3) <Enter> s cho kt qu .F.
2. Php v: And
? (2<4) And (1<2) <Enter> cho k t qu .T.
? (2<4) And (1>2) <Enter> cho k t qu .F.
Php And ch ng khi c hai ton hng u ng
3. Php hoc: or
? (2<4) or (1>2) <Enter> cho k t qu .T.
? (2>4) or (1>2) <Enter> cho k t qu .F.
? (2>4) or (1<2) <Enter> cho k t qu .T.
? (2<4) or (1<2) <Enter> cho k t qu .T.
Php or ch sai khi c hai ton hng c ng sai
ELEC

Trang 20

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

2.4 Cc php quan h trong VF


1. Php so snh bng: =
?(1=2) <Enter> cho kt qu .F.
2. Php so snh nh hn: <
?(1<2) <Enter> cho kt qu .T.
3. Php so snh ln hn: >
?(1>2) <Enter> cho kt qu .F.
4. Php so snh nh hn hoc bng: <=
?(1<=2) <Enter> cho kt qu .T.
5. Php so snh ln hn hoc bng: >=
?(1>=2) <Enter> cho kt qu .F.
6. Php so snh khng bng: <> hoc # hoc!=
?(1#2) <Enter> cho kt qu .T.
7. Php thuc dng cho vn bn: $
?("abc" $ "mnabcd") <Enter> cho k t qu .T.
?("123" $ "dfsabc") <Enter> cho kt qu .F.
2.5 Cc php ton v chui k t trong VF
1. Php kt ni chui: +
?"abc"+"de" <Enter> cho kt qu l "abcde"
2. Php kt ni chui: Kt ni chui nhng b khong trng sau chui th nht
?"abc "-"de" <Enter> cho kt qu l "abcde"
Cn nu dng +
?"abc "+"de" <Enter> cho k t qu l "abc
de"
2.6 Kiu d liu Character
Khi gp php gn: A="Tin hc", ta hiu ngay bin A c kiu Character. Vy kiu
Character l kiu vn bn. Ta c th dng 3 php ton +, -, $ (nh ni trn)
i vi d liu kiu Character, v d:
?"Tin "+"hc" <Enter> cho ta kt qu "Tin hc" v.v..
2.6.1 Mt s hm i vi kiu Characterr
m t cc hm ta dng cp du [ ], nhng g trong cp l khng bt
buc.
1. Hm ALLTRIM ()
Hm ny loi b cc khong trng trc v sau chui vn bn. V d:
A=" Tin
"<Enter>
B="
hc
"<Enter>
?ALLTRIM(A)+ALLTRIM(B) <Enter> s cho kt qu: "Tinhc "
Ta cng c th vit gn:
?ALLT(A)+ALLT(B)
2. Hm ASC ()
ELEC

Trang 21

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Tr v m ASCII ca mt k t:
?ASC("A") <Enter> s cho kt qu 65
?ASC("B") <Enter> s cho kt qu 66
3. Hm AT ()
C php: AT(chui1, chui2 [n])
Tr v v tr xut hin ca chui1 trong chui2, v d:
A="an"<Enter>
B="Hoan"<Enter>
?AT(A,B) <Enter> s cho kt qu 3
v chui A xut hin bt u t v tr th 3 trong chui B
Cn nu:
A="an" <Enter>
B="an nhan"<Enter>
?AT(a,b,2) <Enter> s cho kt qu 6 ( y n =2 - ln xut hin th 2)
3. Hm BETWEEN ()
C php:
BETWEEN (a, b, c)
Xem gi tr a c nm trong khong t b n c hay khng (tt nhi n b <c).
V d:
?BETW(3, 5, 9) <Enter> s cho gi tr .F.
?BETW(8, 5, 9) <Enter> s cho gi tr .T.
?BETW("c", "a", "n") <Enter> s cho gi tr .T. v k t c nm trong khong t
k t a n k t n.
4.Hm Chr ()
Cho bit k t tng ng vi m ASCII
?Chr(65) <Enter> cho kt qu l k t A
5. Hm LEN ()
Cho bit di ca chui.
A="Hong Xun Hn" <Enter>
?Len(a) <Enter> s cho kt qu 14 (c 14 k t tt c, k c du cch)
6. Hm Lower ()
Chuyn cc k t ch hoa sang ch th ng
A=" CHAO"<Enter>
?Lower(A) <Enter> s cho kt qu "chao"
7. Hm UPPER ()
Chuyn cc k t ch thng sang ch hoa
A=" chao"<Enter>
?Upper(A) <Enter> s cho kt qu "CHAO"
8. LTRIM()
Ct cc khong trng pha tri ca chui
A=" Tin hc"<Enter>
?LTRIM(a) <Enter> s cho kt qu "Tin hc"
ELEC

Trang 22

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

9. RTRIM()
Ct cc khong trng pha phi ca chui
A=" Tin hc
"<Enter>
?RTRIM(a) <Enter> s cho kt qu " Tin hc"
10. Hm PROPER ()
Chuyn cc k t u ca mi t th nh ch hoa
A=" TIN HOC QUAN LY" <Enter>
?Proper(a) <Enter> cho kt qu "Tin Hoc Quan Ly"
11. Hm LEFT ()
C php: LEFT(Xau, n)
Cho kt qu n k t bn tri ca chui
a="Tin hoc" <Enter>
?Left(a,2) <Enter> s cho kt qu "Ti"
12. Hm RIGHT ()
Cho kt qu n k t bn phi ca chui
a="Tin hc" <Enter>
?Right(a,2) <Enter> s cho kt qu "c"
13. Hm Str ()
Chuyn s thnh vn bn
?"Km '+str(12) <Enter> s cho kt qu "Km 12", cn nu vit:
?"Km"+12 <Enter> s bo li v vn bn khng th cng vi s c
14. Hm SUBSTR ()
C php: SUSTR(Xau,m,n)
Cho kt qu n k t trong Xau t k t th m
a="Chao anh" <Enter>
?SubStr(a,2,3) <Enter> s cho kt qu "hao"
2.7 Kiu Date v Date Time
1. Hm Date ()
Hm Date ()cho bit ngyc, thng, nm hin thi:
?Date() <Enter> s cho kt qu 7/28/01
2. Hm Datetime ()
Cho kt qu l ngy v gi hin thi
?Datetime() <Enter> s cho kt qu 7/28/01 08:12:56 AM
3. Hm CTOD ()
Chuyn i biu thc k t sang dngh kiu Date
?CTOD("12/04/76") <Enter> s cho d liu kiu Date 12/03/76
4. Hm DTOC ()
Chuyn i biu thc kiu ngy sang biu thc kiu Character
?DTOC({^1967/11/07}) <Enter> s cho kt qu kiu vn bn 12/11/67. Ch l
kiu ngy c bao trong du { } v theo dng {^YYYY-MM-DD}
V d: ?{^2001-07-12}-{^2001-07-10} <Enter> s cho kt qu 2
ELEC

Trang 23

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

5. Hm Day5 ()
Tr v ngy ly t i lng Date
?Day(Date()) <Enter> s cho kt qu l 28 (v ngy hin thi l 7/28/01
6.Hm Month ()
Tr v thng ly t i lng Date
?Month(Date()) <Enter> s cho kt qu l 7 (v ngy hin thi l 7/28/01
7. Hm Year ()
Tr v nm ly t i lng Date
?Year(Date()) <Enter> s cho kt qu l 2001 (v nm hin thi l 7/28/01
8. Hm Cmonth ()
Tr v thng (bng vn bn) ly t i l ng Date
?Cmonth(Date()) <Enter> s cho kt qu July (thng 7)
9. Hm CDOW ()
Tr v th trong tun
?CDOW(Date()) <Enter> s cho kt qu Saturday (v ngy hin thi l 28/07/01)
?CDOW({^2001-07-27}) <Enter> s cho kt qu Friday
Ch : Theo thi quen ca ngi Vit nam trong cch vit ng y l: dd-mm-yy,
t c trt t bn dng lnh:
SET DATE FRENCH trc khi dng d liu Date
V d: Ngi M thng theo trt t: mm-dd-yy:
SET DATE AMERRICAN <Enter>
?DATE() <Enter> s cho kt qu 07-28-01 (thng 7 ngy 28 nm 2001)
SET DATE FRENCH <Enter>
?DATE() <Enter> s cho kt qu 28-07-01 (ngy 28 thng 7 nm 2001)
Bn phi ch iu , nu khng s c khi nhm ln tai hi!
2.7 D liu kiu Currency (tin t)
Currency dng biu th tin t. N c khong rt ln t:
-922.339.203.685.477, 5087 ti 922.337.203.685.477,5807
Ngha l n hng trm nghn t ( biu din thu nhp cc n c ln nh M,
nht, v.v... Khi vit cc s ng vi tin t th ng c ch pha trc hoc sau, v
d: 23.560.000 VND, 23.000 $ v.v.. sau y l mt s nguyn tc:
1. Gn gi tr kiu Currency
gn gi tr kiu Currency cho bin ta t du la ($) pha tr c sp, v d:
Tien=$ 1000 <Enter>
?Tien <Enter> s cho kt qu 1000.0000 (t ng t 4 ch s sau du chm
thp phn)
2. Cc lnh SET
Du $ l ngm nh, mi nc c mt k hiu khc, do phi t k hiu m
bn cn, lnh sau:
SET CURRENCY TO "VND" <Enter>
Tien=$1000 <Enter>
ELEC

Trang 24

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

@10,1 Say Tien Function "$99,999.99" <Enter> s cho kt qu VND1000.0000


Bn s hiu lnh in: @10,1 Say Tien Function "$99, 999.99" phn sau. C n
nu bn cn k hiu tin t nm b n phi thi dng lnh:
SET CURRENCY TO "VND" <Enter>
Tien=$1000 <Enter>
SET CURRENCY RIGHT<Enter>
@10,1 Say Tien Function "$99,999.99"<Enter> s cho kt qu 1000.0000VND.
Du tin t ang nm bn phi, nu mun chuyn sang tri, h y dng lnh:
SET CURRENCY LEFT<Enter>
Mun bit xem ang bn tri hay bn phi, ta dng hm:
SET("CURRENCY"), v d
Set Currency Left <Enter>
?Set("Currency") <Enter> s cho kt qu "Left"
2.7 D liu kiu Logic
Nh ni phn trn, d liu ny c hai gi tr l: .T. v .F. (ng v sai). Khi
gn gi tr Logic hoc biu thc Logic cho bin, bin nhn 1 trong hai gi tr
trn, v d:
a=.T.<Enter>
?a <Enter> s cho kt qu .T.
a=.F. <Enter>
?a <Enter> s cho kt qu .F.
a=(5>9) <Enter>
?a <Enter> s cho kt qu .F.
a=(1<2) and (3<9) <Enter>
?a <Enter> s cho gi tr .T.
2.8 D liu kiu s
Kiu s trong VF bao gm: Numeric, Double, Float v Integer, khi khai bo kiu
trng trong Table (s ni sau) ta n n chn cho thch hp. Sau y l mt s
hm x l d liu kiu s
1. Hm ABS ()
Tr v tr tuyt i ca mt s.
?ABS(-4) <Enter> s cho kt qu 4
a=10 <Enter>
b=20 <Enter>
?Abs(a-b) <Enter> s cho kt qu 10
2. Hm INT ()
Tr v phn nguyn ca mt s
?Int(3.34) <Enter> s cho kt qu 3
?Int(2.2*3) <Enter> s cho kt qu 6
Ngha l i s c th l mt s hoc mt biu thc.
ELEC

Trang 25

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

3.Hm Max ()
Tr v gi tr ln nht trong cc i s ca h m
?Max(3,5,6,-5) <Enter> cho kt qu 6
?Max('a','b','n') <Enter> cho k t qu 'n', v m ca n ln hn m ca a v b
4. Hm Min ()
Tr v gi tr nh nht trong cc i s ca hm
?Min(3,5,6,-5) <Enter> cho kt qu -5
?Min('a','b','n') <Enter> cho k t qu 'a', v m ca a nh hn m ca b v n
5. Hm Mod ()
Tr v s d ca php chia
?Mod(6,4) <Enter> cho kt qu 2
?Mod(6.1,3.2) <Enter> cho k t qu 2.9
6. Hm Round ()
Tr v gi tr sau khi lm trn
C php: Round(X,n).
Trong X l s cn lm trn, n l v tr cn lm trn
?Round(12.345, 2) <Enter> cho k t qu 12.35
(lm trn v tr th 2 sau du chm thp phn)
?Round(12.343, 2) <Enter> cho k t qu 12.34
(lm trn v tr th 2 sau du chm thp phn)
?Round(12.343, 1) <Enter> cho k t qu 12.3
(lm trn v tr th 1 sau du chm thp phn)
?Round(12.343, 0) <Enter> cho k t qu 12
(lm trn v tr hng n v ca phn nguyn)
?Round(12.343, -1) <Enter> cho kt qu 10
(lm trn v tr hng chc ca phn nguyn)
?Round(12.343, -2) <Enter> cho kt qu 0
(lm trn v tr hng trm ca phn nguyn)
7. Hm Val ()
Bin i kiu Character th nh kiu s
a='120' <Enter>
b=Val(a) <Enter>
?b+10 <Enter> s cho kt qu 130
8. Hm SQRT ()
Kt qu l cn bc hai ca mt s dng.
?Sqrt(9) <Enter> cho kt qu 3
9. Hm EXP ()
Tr v kt qu ca exT
?Exp(1) <Enter> cho kt qu 2.72
?Exp(0) <Enter> cho kt qu 1.00
?Exp(2) <Enter>cho kt qu 7.39
10. Hm LOG ()
ELEC

Trang 26

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

y l hm logarit c s e.
?Log(2.72) <Enter> cho kt qu 1
?Log(1) <Enter> cho kt qu 0.00
?Log(2) <Enter> cho kt qu 0.69
11. Cc hm lng gic
?Sin(3.14) <Enter> cho kt qu 0.00
?Cos(3.14) <Enter> cho kt qu -1.00
?Tan(3.14) <Enter> cho kt qu 0.00
2.9 D liu kiu General
Kiu d liu General cho php ta nhng hay ni kt cc i t ng d liu vo
CSDL. V d ta c th nhng mt bng tnh, mt h nh nh dng Gif, Tif, Jpg.
Bn s hiu iu ny phn to lp CSDL
2.10 D liu kiu MEMO
Dng lu tr khi vn bn c kch thc ln hn 254 k t. Tp d liu cha
vng MEMO c tn trng v i tn ca bng nhng phn ui l FPT. Bn s
hiu kiu MEMO phn to bng
Bi tp chng 2:
1. C nhng loi hng no? cho v d.
2. C nhng loi bin no? cho v d.
3. Nu quy tc t tn bin.
4. Cho v v v php gn.
5. C nhng php ton s hc no? cho v d.
6. C nhng php ton vn bn no? cho v d.
7. C nhng php ton Logic no? cho v d.
8. C nhng php ton so snh no? cho v d.
9. Hy dng lnh? v g biu thc sau vo ca s lnh, xem my bo kt qu
no:
((1>2) or (3<7)) and (4<=9)
10. Dng ca s lnh thc hin cc v d trong phn 2.6
11. Dng ca s lnh thc hin cc v d trong phn 2.7
12. Dng ca s lnh thc hin cc v d tro ng phn 2.8
13. Dng ca s lnh thc hin cc v d trong phn 2.9
14. Dng ca s lnh thc hin cc v d trong phn 2.10
15. Gi s ta phi tnh biu thc:(sin4+cos6) (Log e12+e6), trong ca s lnh bn
g nh sau:
a=sin(4) <Enter>
b=cos(6) <Enter>
c=log(12)<Enter>
d=exp(6)<Enter>
ELEC

Trang 27

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

s1=a+b<Enter>
s2=c+d<Enter>
Tich=s1*s2<Enter>
?Tich<Enter>
ng hay sai?
16. Bn ch cn lnh? v ca s lnh, bn c th tnh ton c mi cng thc.
V d bn c th gii phng trnh bc hai: 3x 2+5x-7 bng cc thao tc sau:
a=3<Enter>
b=5<Enter>
c=-7<Enter>
Delta=b*b-4*a*c <Enter>
x1=(-b+Sqrt(delta))/(2*a)<Enter>
x2=(-b-Sqrt(Delta))/(2*a)<Enter>
?x1<Enter>
?x2<Enter>
Bn th theo cch gii mt ph ng trnh bc hai khc.
17. Theo cch ca cu 16, bn th gii h p hng trnh bc nht hai n
18. hy tnh tng lng ca 20 nhn vin bng cch dng 4 bin:
Bin a lu tng ca 5 nhn vin u
Bin b lu tng ca 5 nhn vin tin theo
v.v.. Hy dng php gn tnh tng lng ca 20 nhn vin trn.

ELEC

Trang 28

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 3: Database v Table


Thut ng Database (CSDL) v Table (bng) l hai khi nim khng ng nht
trong VF. Database (tp c dng *.dbc) s tham chiu n cc quan h thng tin
cha ng trong mt hay nhiu Table (tp c dng *.dbf). Chng ta tm h nh
dung l Database nh l mt "t chc" trong c nhiu "b phn" m Table ch
l mt "b phn" trong . C th h n, Database dng t chc, thit lp quan
h gia cc Table v cc thnh phn khc trong , Database cung cp cu trc
dng lu tr d liu, thit lp cc Procedure (th tc) x l cc mi quan
h gia cc Table v cc thnh phn khc nh View, Queries v.v..Chng ny
chng ta s cp n mt vn c bn l: T chc mt Database v to dng
cc Table trong Database sao cho h p l nht v mt x l thng tin.
3.1 T chc mt Database v cc Table trong
thun li cho vic m t ni dung, chng ta a ra mt v d n gin v bi
ton x l d liu Tuyn sinh khi A. Tt nhin chng ta ch cp mt phn
nh trong ton b cng vic x l d liu tuyn sinh. Ngoi ra d b truy cp,
ta quy c l mi tp u c lu trong th mc C:\ VF60 v tn cc tp nh
sau:
Tn tp Project : TuyenSinh.pjx
Tn tp Database: HoSo.dbc
Tn hai tp Table: HoSoKhoiA.dbf v DiemKhoiA.dbf
Tm hiu mt cch "nm na" l trong "t": TuyenSinh.pjx c "ngn":
HoSo.dbc v trong "ngn": HoSo.dbc c hai "vn b n": HoSoKhoiA.dbf v
DiemKhoiA.dbf.
Cng cn phi ni thm rng, vic t chc mt CSDL l mt vn phi
tun th theo mt s quy tc cht ch tr n nguyn l ca i s quan h. Nhng
y ta ch t chc theo "kinh nghim", v y l gio trnh Tin hc ng dng
nhm nhanh chng gip cho ng i hc c cng c gii quyt ngay cc cng
vic ca mnh. Nhng ci "Kinh nghim" cng gip bn gii quyt
c nhng vn m bn ang cn. Chng ta s t chc CSDL b i bn hn
sau khi hc xong phn l thuyt CSDL quan h. Tuy nhi n chng ta cng s
cp n nhng nguyn tc chung nht thit k mt CSDL phn sau. nhng
trc ht hy lm quen .
bn hiu cu trc ca hai Table: HoSoKhoiA.dbf v DiemKhoiA.dbf,
bn hy hnh dung nh sau: Khi ng k d thi bn phi np mt h s tuyn
sinh, nhn vin nhn h s s cn c vo h s m to mt tp HoSoKhoiA.dbf
c hnh nh sau:
HoDem | Ten | NgaySinh | SBD
ELEC

Trang 29

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Sau khi chm im xong, nhn vin phng my tnh li t chc tp


DiemKhoiA.dbf, c dng sau:
SBD | Toan | Ly | Hoa | Tong| UuTien| KhuVuc
Sau y l trnh t xy dng CSDL trn.
1. To tp d n c tn TuyenSinh.pjx trong th m c VF60
Khi ng VF, chn File /New sau ta c hp thoi:

Hy chn Project v chn New file sau ta c hp thoi Create sauH:

ELEC

Trang 30

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Hy chuyn n th mc C:\ VF6o v g tn tp d n l: TuyenSinh.pjx


v chn Save.
Nh vy ta to ra c tp d n c tn TuyenSinh.pjx trong C:\VF60.
2. To tp HoSo.dbc
Sau khi g tp d n (TuyenSinh.pjx) v chn Save th hp thoi sau hin ra:

Chn Data /Databases/New, sau ta c hp thoi:

Hy chn New Database (cha nn chn Database Wizard vi), sau ta


c hp thoi:

Hy g tn tp HoSo.dbc vo v chn Save, sau ta c:

ELEC

Trang 31

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

y l ca s dng to cc Table.
3. To tp bng HoSoKhoiA.dbf
a tr chut vo ca s trn (Database Designer- HoSo), n phm phi
chut ta c:

Hy chn New Table ta c hp thoi tip:

Chn New Table v hp thoi sau li xut hin:

ELEC

Trang 32

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Hy g tp HoSoKhoiA.dbf v chn Save, hp thoi sau hin ra:

y l hp thoi chng ta to tp HoSoKh oiA.dbf. Cch to nh sau:


? ct Name (tn trng) hy g hodem
Chuyn sang ct Type (kiu trng) hy xc nhn Character
Chuyn sang ct Width ( di trng) chn 15
Li quay v ct Name, to tr ng ten
Li quay v ct Name g vo ngaysinh
Chuyn sang ct Type chn Date
Li quay v ct Name g vao sbd
ELEC

Trang 33

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chuyn sang ct Type chn Integer


Nh vy bn to xong cu trc, nu chn OK v xc nhn Yes:

Hy g h v m vo dng hodem, tn vo dng ten v.v..


Sau khi a d liu xong hy kt thc bng vic g: Ctrl+W hoc kch
vo nt Close (X), ta c hp thoi:

Tip tc vi tp DiemKhoiA.dbf theo nh cch trn. Sau khi t chc xong ta c:

ELEC

Trang 34

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Nh vy ta xy dng mt tp d n cha mt tp Da tabase (HoSo.dbc) v


hai tp bng (HoSoKhoiA.dbf v DiemKhoiA.dbf).
3.2 Lm vic vi CSDL
CSDL cung cp mt mi trng lm vic, ta c th lu tr cc bng d liu,
thit lp mi quan h gia cc bng, thit lp cc quy tc iu khin cc bng d
liu quan h, v.v..sau y l trnh t mt s thao tc c bn nht
3.2.1 M mt CSDL c
m mt CSDL c, hy thc hin cc bc sau:
M tp d n (gi s tp bn va mi to l :TuyenSinh.pjx)
Trong Project Manager chn CSDL mun m (gi s chn HoSo.dbc)
Chn Modify
Sau CSDL hin ra nh sau:

3.2.2 Sp xp cc bng trong CSDL


Nu c nhiu bng trong mt CSDL, ta n n sp xp theo mt trt t no , v
d theo By Name, By Type, Horizontally, Vertically . Thao tc nh sau:
Chn Menu Database/Arrange/chn loi cn xp xp

ELEC

Trang 35

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

3.2.3 Thit lp mi quan h gia cc Table


Gi s vi hai bng HoSoKhoiA.dbf v DiemKhoiA.dbf trnG, nu cn bit
thng tin v mt th sinh bao gm Hodem, ten, ngaysinh, sbd, toan, ly, hoa v
tong th lm th no?. R rng ta phi cn c vo mt sbd ca tp
HoSoKhoiA.dbf i chiu vi sbd tng ng trong tp DiemKhoiA.dbf ly
thng tin ra. Trng sbd l duy nht, ngha l H tn, ngy sinh v.v.. c th trng
nhau nhng sbd th khng trng nhau. Ta gi trng sbd l trng kho. Ta ni
rng hai tp trn c mi quan h thng qua trng kho ny. Nh trng sbd m
tuy hai tp c lp nhng li l mt.
Vi Database Designer cho php ta t mi quan h gia chng x l
hai bng d dng. Cch tin hnh t mi quan h nh sau:
1. Sp xp trng Sbd ca tp HoSoKhoiA.dbf bng Index
M tp d n TuyenSinh.pjx, chn HoSo, chn tp HoSoKhoiA.dbf,
chn Modify sau chn Indexes ta c h nh sau:

G tn tp ch mc ct Name (gi s g IndexSbd), Type l Primary


(kho chnh), Expression l Sbd nh h nh sau:

Chn OKC, nh vy ta sp xp tp HoSoKhoiA.dbf tng dn theo tr ng


sbd.
2. Thit lp mi quan h
M CSDL HoSo:

ELEC

Trang 36

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

a tr chut vo trng Kho (indexsbd) ko san g trng Indexsbd ca


tp DiemKhoiA.dbf. Nh vy hai trng Sbd c t mi quan h. Quan
h ny l bn cht, nu ta khng kh quan h i.
3.2.6 Xo mi quan h gia cc Table
Kch vo ng quan h gia hai bng d liu, sau khi kch, ng s
m v to ln.
G vo phm Delete
3.3 Mt s thao tc trong ca s lnh (Command)
Ngoi cc thao tc bng hp thoi (giao din qua ca s), chng ta c n c cc
thao tc qua lnh. Bn hy m ca s Command bng cch:
Chn Window / Command Win dow, sau ta c hnh nh:

3.3.1 M v sa mt CSDL
T ca s lnh bn g:
Open Database C:\VF60\HoSo.dbc <Enter>
Modify Database <Enter>
Sau bn c th a tr chut vo bng, kch phm phi chut chn:
1. Sa cu trc, hy chn: Modify
2. Hin th d liu chn: Browse
3. Xo bng chn: Delete
v.v..
Chng ta cng c th:
Open Database C:\VF60\HoSo <Enter>
use? <Enter>

ELEC

Trang 37

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Sau ta c hp thoi:

Chn mt tp, gi s chn tp HoSoKhoiA.dbf v chn OK


Ngha l tp HoSoKhoiA.dbf c m v sau y l cch dng mt s lnh.
1. Lnh Browse
Lnh ny dng hin th d liu bng v ng thi sa ni dung ca bng.
Hin th ton b bng:
Browse <Enter>

Hin th mt s trng

ELEC

Trang 38

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Browse Field Hodem, ten <Enter>

Hin th c iu kin
Browse for sbd>=6 <Enter> (nhng bn ghi c sbd ln hn hoc bng 6n)

Hin th theo Font ch v c ch xc nh:


Browse font ".vnTime", 16 <Enter>

Browse l mt lnh rt mnh, bn c th kt hp nhiu yu t, v d:


Browse Field Hodem, ten, nga ysinh For Year(ngaysinh)=1982 <Enter>
Ch hin th nhng bn ghi c nm sinh bng 1982, v.v..
ELEC

Trang 39

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

2. Lnh EDIT
Lnh Edit c c php nh lnh Browse, nh hin th theo ct, v d:
Edit for year(ngaysinh)=1982 <Enter>

3. Lnh Append
Dng ni thm cc bn ghi vo sau bng:
Append <Enter>
Pha sau bng hin ra, bn g d liu vo, g xong hy n t hp: Ctrl + W
4. Lnh Modify Structure
Dng sa cu trc bngD, v d:
Modify Structure <Enter>
Sau cu trc bng hin ra, bn c th sa t n trng, kiu trng, di
trng v.v..nu bn mun.
5. Xo bn ghi
Xo bn ghi th n (n=1,2,3,..)
Go 4 <Enter>
Delete <Enter> (nh du bn ghi th 4)
Pack <Enter> (xo bn ghi th 4)
Nh vy bn ghi th 4 b xo
Xo k bn ghi t bn ghi th m
Go 2 <Enter>
Delete next 3 <Enter>
Pack <Enter>
Nh vy xo 3 bn ghi: 2,3,4
Xo t bn ghi th n n cui tp
Go 7 <Enter>
Delete Rest <Enter>
Pack <Enter>
6. Phc hi bn ghi b nh du xo
Go 3 <Enter>
Delete next 4 <Enter>
Recall all <Enter> (4 bn ghi b nh du, nhng ta li khng mun xo nn
phc hi bng lnh Recall all)
Ch : Bn ghi khi b nh du (delete), c vt en pha u, khi d ng Browse
ELEC

Trang 40

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

7. m s bn ghi
m xem c bao nhiu bn ghi
Count all <Enter>
m c iu kin
Count for Year(ngaysinh)=1982 <Enter>
m c lu
Count for sbd>=2 To A <Enter>
?A <Enter>
bin A c lu kt qu.
8. Tnh tng trng
V d ta c bng vi cc trng sau:
Hoten, luong, con
Sum luong <Enter> (tnh tng ct luong)
Sum luong to S <Enter>
Sum luong for luong>=400000<Enter>
v.v..
9. Tnh tng trung bnh
Average luong <Enter>
Average luong for year(ngaysinh)=1980 <Enter>
Average luong to X for year(ngaysinh)=1980 <Enter>
v.v..
10. Sp xp bng lnh SORT
Xp theo mt trng no tng dn.
Sort to TepMoi On sbd /A
Nh vy tp TepMoi.dbf s c xp tng dn theo sbd.
Xp theo mt trng no gim dn.
Sort to TepMoi On sbd /D
11. Sp xp bng lnh Index
Lnh Index khng sinh ra mt tp bng mi, m ch sinh ra mt tp ch mc, ghi
trt t tng dn ca cc bn ghi, tp n y kch thc nh, do trong nhiu tr ng
hp ngi ta hay dng lnh ny. V d:
Index on sbd to sbdindex <Enter>
Xp theo trng Sbd, tp ch mc l sbdindex.idx (duuoi l idx). Chng ta c th
sp xp theo mt trng bt k.
12. V u tp, v cui tp
Go Top <Enter> (a tr v u tp)
Go Bottom <Enter>(a tr v cui tp)
13. chuyn dch bn ghi
Skip 1 <Enter> (tin 1 bn ghi)
Skip 3 <Enter> (tin 3 bn ghi)
Skip -1 <Enter>(li 1 bn ghi) v.v..
ELEC

Trang 41

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

14. Chn mt bn ghi trng


Gi s ta mun chn mt bn ghi, tr thnh bn ghi th 3, hy g:
Go 3 <Enter>
Insert before <Enter> (chn trc bn ghi th 3)
Sau bn ghi th 3 trng, bn ghi th 3 c tr thnh bn ghi th 4, th 4 th nh
th 5, v.v.. hoc c th vit:
Go 2 <Enter>
Insert <Enter>
(Chn sau bn ghi th 2)
15. Lnh thay th
Thay i ni dung ca 1 trng
Replace all Luong With Luong+Luong*0.15 <Enter>
Ngha l tng lng ng lot 15%
Thay i ni dung ca 1 trng c iu kin
Replace all Luong With Luong+Luong*0.15 For Luong<=280000 <Enter>
Ngha l ch tng lng cho ngi c bc lng thp t 280000 tr xung.
3.3.2 To bng trong ca s lnh bng lnh Create
Chng ta cng c th to mt bng t do bng lnh: Create <T n bng >, v d:
Create C:\VF60\NhanSu <Enter>
Sau hp thoi to cu trc hin ra, h y g tn trng vo ct Name, khi g
xong ct Name, kch vo mi tn ca phn Type, ta c:

Hy chn mt kiu trng thich hp.


Chuyn sang phn di (Width), c th dng chut kch vo mi tn ln
hoc xung, hoc g s o di. Nu l kiu s bn phi t s ch s sau du
chm thp phn phn Decimal.
ELEC

Trang 42

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Tip theo l phn Index, nu bn nh sp xp theo tr ng ny hy kch vo mi


tn v chn Ascending (tng dn) hoc Descendin g (gim dn), sau khi chn mt
trong hai loi bn thy ct ny c mi tn nh hnh sau:

Bn tip tc lm nh vy cho n khi ht cc tr ng v chuyn sang giai on


nhp d liu bnh thng nh ni phn trn.
Bi tp chng 3:
1.Cho bng lng nh sau:
Tn Field
Kiu d liu
di
Gii thch tn Field
(Fieldname)
(Type)
Width
MNV
Integer
4
M Nhn Vin
Hodem
Character
20
H v tn m (lt)
Ten
Character
7
Tn nhn vin
GT
Logical
1
Gii tnh
NS
Date
8
Ngy sinh
SoCon
Integer
1
S con
BacLuong
Numeric
9
Bc lng
DiaChi
Character
30
a ch
EMail
Character
20
Hp th in t
a. Hy to mt tp d n c tn TinhLuong.pjx trong th mc C:\VF60
b. Hy to mt cu trc bng nh trn trong phn Database v g vo 10 nhn
vin (nhn vin bn t t ra)
c. Sau khi hon thin bng, bn nhn thy thiu mt mt tr ng PhuCap (ph
cp), ng sau trng BacLuong, hy chn trng vo

ELEC

Trang 43

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

d. Bn thy vic vit tn trng BacLuong, DiaChi l di, bn mun sa li l


BL, DC, hy lm iu
e. Hy cha li kiu ca trng MNV l Character
f. Hy to ch mc v t kho chnh cho trng MNV
g. Hy hin th bng bng lnh Browse
h. Bn th ng ca s Command thc thi cc lnh t 1 n 15 - tng x
l do bn t ra.
2. Cho bng sau:
Tn Field
Kiu d liu
di
Gii thch tn Field
(Fieldname)
(Type)
Width
MNV
Character
4
M Nhn Vin
TDVH
Character
10
Trnh vn ho
NN
Character
7
Ngoi ng
DangVien
Logical
1
ng vin hoc khng
DoanVien
Logical
1
on vin hoc khng
TuoiDang
Integer
1
Tui ng
CV
Character
20
Chc v
a. Hy to tp ny vo trong Project ca cu 1 phn Database
b. Thit lp mi quan h gia hai tr ng MNV
3. Bn t thit k mt Project v vic qun l th vin
4. Cng nh cu hi 3, nhng v qun l lp hc ca bn

ELEC

Trang 44

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

ELEC

Trang 45

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 5: FORM, Report v Label


5.1 Form l g?
Form l m t cng c (hay c ng c th g i l m t c a s ) nh n ta c th thi t
k cc t ng sau:
Thit k giao din hin th thng tin
Thit k giao din nhp d liu v o CSDL
t cc i tng ln Form p ng li cc thao tc ca ng i dng
v.v..

5.1.1 Thit k Form va hin th, nhp hoc sa d liu (ng


vi 1 bng)
1. To bng cng c thut (Wizard)
Wizard l mt cng c ( lp trnh sn) gip chng ta d dng sn sinh ra mt
dng Form theo mt s chun n o . Bn tin hnh theo cc bc sau:
Trng din Project Manager, sau chn Document, chn Forms, chn New,
trn hp thoi New Form hy chn Form Wizard, sau hp thoi Wizard
Selection hin ra v chn Form Wizard. V ta mun giao din ng vi mt
bng, nn trong hp thoi trn hy chn Form Wizard v chn OK. Ta c hp
thoi:

ELEC

Trang 46

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chn CSDL (HOSO), chn bng (HOSOKHOIA), chn cc tr ng m bn


cn ng vi bng chn, gi s: Hodem, ten, ngaysinh, chuyn sang
selected Fields, ta c hnh nh sau:

Chn Next >, sau ta c:

ELEC

Trang 47

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Hy chn mt thnh phn Style - gi s ta chn Embossed v mt thnh


phn Button Type - gi s ta chn Text buttons (nt c ghi vn bn tr n ),
sau kch vo Next > ta c h p thoi:

y l bc chn mt trng sp xp theo Ascending hay Descending, gi


s ta chn trng sbd, v Ascending, sau chn Next >, ta c hp thoi
tip:

ELEC

Trang 48

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Bn hy chn: Save form for later use (Lu Form va to khng chy th) hoc
Save and run form (lu Form v chy th) hoc Save Form and modify it in
Form Designer (lu Form v chnh sa Form trong Form Designer). v.v..
(gi s bn chn Save and Run Form), chn Next > sau hp thoi Save as
hin ra, hy g tn tp Form (*.Scx) v chn Save ta c kt qu:

Bn hy s dng cc nt (Text Button) thc hin mt s vic:


Top
: V u bng
Prev : V bn ghi trc
Next : tin 1 bn ghi
Botton: V cu bn ghi
Find : Tim kim bn ghi c iu kin
Print : In
Add
: Ni thm bn ghi
Edit : son hoc sa bn ghi
Delete: Xo bn ghi
Exit:Thot
5.1.2 Thit k Form ng vi nhiu bng
Trng din Project Manager, chn Document, chn Form, chn New, chn
Form Wizard, sau ta c h p thoi:

ELEC

Trang 49

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chn One -to-Many Form Wizard, sau h p thoi hin ra bn chn bng
"cha" - gi s bn chn bng cha l HoSoKhoiA, v ti cc trng Hodem,
ten, ngaysinh sang bn phi nh hnh sau:

Tip theo bn chn Next > v chn bng c quan h (bng con). Gi s bn
chn bng DiemKhoiA v ti cc trng sang phi nh hnh sau:

ELEC

Trang 50

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chn Next >, ta c hp thoi quan h:

Chn Next >, sau chn th nh phn ca Style v thnh phn Button Type,
chn Next > sau chn trng sp xp (gi s chn tr ng sbd), li chn
Next >, cui cng chn Save and Run Form v chn Finish, kt qu l:

Bn thy: Phn trn l Form cha v phn di l Form con.


ELEC

Trang 51

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

5.2 Report v Label


Report v Label cung cp cho chng ta mt cng c mm do tr nh by v
tm tt d liu trong mt vn bn khi in ra giy.

5.2.1 T chc dng Report


Chng ta c th thit k Report, th hin d liu nhiu dng khc nhau khi in
ra giy. Dng Report Designer hay Report Wizard chng ta c th thit k to ra
cc dng tm tt hoc gom li t cc nhm d liu c bit.
1. S dng Report Wizard to Report ng vi 1 bng
Trong Project Manager ch n Document, chn Report, chn New, chn
Report Wizard, ta c hnh sau:

to Report t mt bng ta chn Report Wizard v OK


Chn tp HoSoKhoiA trong CSDL: HoSo v chn mt s trng cn in y
sang bn phi, nh hp thoi sau:

ELEC

Trang 52

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chn Next >, ta c:

y l hp thoi bn chn Record nhm, nh ng chng ta cha lm nhm, h y


chn Next >, ta c tip:

ELEC

Trang 53

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

n y bn chn kiu b cc d liu, gi s bn chn Executive v chn


Next>, ta c:

y l giao din in, bn c th chn s c t (Number Columns), ct hay d ng


(Field Layout ), hng in (Orientation) v li chn Next >, ta c kt qu:
ELEC

Trang 54

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Bn hy chn mt trng, nu nh sp xp, gi s tr ng Ten v a qua phi,


li chn Next >, ta c:

ELEC

Trang 55

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

n y bn c th chn Preview xem qua dng ca Report, nu va h y


chn Finish v g tn tp vo, th l ta c mt tp Report trong Project.
Bn c th chn li tp Report va to v chn chc nng Modify ta c h nh
sau:

Sau y l mt s thao tc chnh sa:


nh li khong cch dng
a tr chut vo dng Page Header v Detail, ko chnh li khong cch
gia chng.
ELEC

Trang 56

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

nh dng li Font v kch c Font


Chn trng, sau chn Format /Font v nh li Font v kch c Font
Kch p vo "Page", g vo ch Trang (nu bn mun)

5.2.2 To Label
Label l dng Report c bit, chng c thit lp trn mt loi giy nhn c
kch c rt khc nhau, phc v cho nhng vn rt khc nhau, v d to a ch
ngi nhn sau in ra v ct dn vo b th, to giy bo im thi i hc
cho th sinh, to th d thi cho th sinh, to cc nh n ct dn ln cc bao b
v.v... Chng ta c th to Label nhanh chng bng Label Wizard hoc bng cng
c Label Designer.

1. S dng cng c Label Wizard


Cng c ny l cch d nht to Label, tao xong bn c th sa n bng Label
Designer. to mt Label bng Label Wizard, ta thao tc nh sau:
Chn Labels trong Project Manager
Chn nt New
Chn nt Label Wizard, sau ta c h nh sau:

Trn hp thoi bn chn mt CSDL v mt bng to Label, gi s bn


chn CSDL: HOSO v bng l HOSOKHOIA, chn Next >, ta c:

ELEC

Trang 57

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Hnh trn, bn chn o l Metric (mt) v chn kch c nhn (Label) l:


avery EAL04 3.7 cm x 8.9 cm 1 c t, chn Next > ta c:

y l hp thoi gip bn to hnh nh Label t bng. Gi s ta to mt Label


ch cha 3 trng l: Hodem, Ten, sbd mi trng ngn cch bi du gch (hoc
du cch) v Font ".vnTime, 12. Hy thao tc nh sau:
Chuyn Hodem sang phi sau chn du Space (kch v o nt Space ny)
Chuyn Ten sang phi, kch vo du tr
ELEC

Trang 58

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chuyn sbd sang phi


Chn Font v t Font ".vnTime", kch c 12
Chn Next >, sau trn hp thoi mi hy chn trng sp xp, li chn
Next > v trn hp thoi cui hy chn Finish, gio din Save as h y g tn tp
Label vo v chn OK.

2. Sa Label to

Quay v Project Manager chn tp Label va to, chn Modify ta c:

Khong cch t Page Header n Detail qu rng, v nh th s c nhiu


dng trng trong khi in, do bn phi ko li nh hnh sau:

(a tr chut vo cc Bands, n v r).


Bn th chn Freview, ta c:

ELEC

Trang 59

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Ta nhn thy khong cch dng chp nhn c.


Sau y l mt s thao tc khc cho Report v Label. Trc ht hy a Report
Controls ln mn hnh, bng cch chn: Chn View /Report Controls Toolbar ta
c:

a. a mt vn bn vo Report hoc Label lm chc nng tiu hay mt


chc nng khc.
Chn Label (1), sau a tr chut vo Report hoc Label, kch vo ni cn
g vn bn, sau g vn bn vo, kch tr chut vo mt ni no kt
thc.
G xong, hoc ang g bn c th chn Font v kch c Font cho n (chn
Format /font)
Bn cng c th t mu nn hoc mu ch quan hp Color Palette (chn
View /Color Palette Toolbar)
b. Chn trng
Chn Field (2), Kch vo ni cn chn, sau ta c hp thoi:

ELEC

Trang 60

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Kch vo nt phi ca hp vn bn Expression (nt ba chm...), ta c:

Hy chn mt trng: c th l vn bn (String), ton (Math), Logical , ng y


(Date), cc tn trng (fields) ca bng hoc bin b nh (Variables).
c. V ng thng trong Report hoc Labal
Chn 3, a tr chut vo Report hoc Label, r.
d. Bao bng mt hnh ch nht
Chn 4, a tr chut vo mt v tr trong Report hoc Label, r .
e. Bao bng mt hnh ch nht vt gc
ELEC

Trang 61

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chn 5 v thao tc nh (4).


f. Nhng vo Report hoc Label mt i tng
Kch vo 6, a tr chut vo Report hoc Label, kch chut, sau ta c:

Gi s bn chn File, kch v o nt ba chm (...), sau giao din chn File
hin ra: hy chn File cn chn, chn OK, giao din cui hy chn OK.
3.2.3 V d v to Label
Gi s bn to mt Label c dng sau:
B GD &T
Cng ho x hi ch ngha Vit nam
Trng HQL &KD HN
c lp - T do - Hnh phc
Th d thi
nh

Hoten :
Ngy sinh:
Sbd
:
H ni ngy 25/6/2001
Ch tch HTS
<Ch k in t t y >
Ts. L Khc o

Ngun d liu l bng HoSoKhoiA trong CSDL HoSo (nh cc phn trn)

ELEC

Trang 62

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

M Project Manager, chn Label, New, Label Wizard v thao tc nh ni


trn, cui cng ta c:

.Bn hy m Preview, v thy dng nh khi in ra.

Tt nhin c bao nhiu sbd th c b y nhiu Label. Bn nn ci t trang in in


cho hp l.
ELEC

Trang 63

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Bi tp chng 5:
1. Hy thao tc li cc cch to Report v Label
2. Cho bng DiemKhoiA trong CSDL HOSO. H y to mt Report in danh
sch , bao gm cc trng SBD v Tong
3. Cho hai bng: HoSoKhoiA v DiemKhoiA c mi quan h qua SBD, hy to
mt Report bao gm cc tr ng Hodem, ten, sbd, Tong (sp xp theo sbd tng
dn)
4. Bn hy t to ra mt Report t 2 bng trong CSDL l: DiemKhoiA v
KvKhoiA - chng lin quan qua s bo danh (sbd). Hy to Report bao gm:
Sbd, kv, Dt, tong theo nhiu dng Style khc nhau.
5. Hy to mt Label bo cho th sinh n thi, bao gm: Hoten (h t n),
ngaysinh (ngy sinh), sbd (s bo danh), phongthi (ph ng thi), noithi (ni thi),
ngaythi (ngy thi) -bng d liu ngun do bn t to.
6. To mt Label, khng cn bng, m ch a nh, s in thoi ca bn v a
ch ca bn.
7. Bn c 1000 gi hng, mi gi hng bao gm: Ngi nhn, a ch. Bn hy
to mt bng c hai trng trn, sau to mt Label sau khi in ra th ct v
dn vo gi hng.

ELEC

Trang 64

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 6: Lp trnh trong VF


Lp trnh l vit mt dy cc ch th lin tip vi nhau thc hin mt tc v
no . V d bn mun xem im thi trong bng DiemKhoiA ng vi s bo
danh 12. Nu khng bit lp trnh bn s lm nh sau:
M Project Manager
Chn Data/Databases/HoSo/Tables/DiemKhoiA
Chn Browse
Dch chuyn n bn ghi c s bo danh 12
R rng l rt lu. Cn nu lp trnh bn ch cn vit my lnh sau:
Use C:\vf60\DiemKhoiA
Browse for sbd=12
Sau khi chy chng trnh (chy l th no ta s ni sau) ta c kt qu:

V d khc nh: Tng im ton ng lot ln 20%, nu lm th cng bn phi


ly ni dung ca trng Toan nhn vi 1.2 sau li g vo trng Toan ng
vo v tr , li tip tc vi s bo danh khc cho n ht tp. Tht l mt thi
gian! nhng nu lp trnh bn ch cn vit nh sau:
Use C:\vf60\DiemKhoiA
Replace all Toan With Toan*1.2
Replace Tong With Toan+Ly+Hoa
Browse
lnh trn: Replace all Toan With Toan*1.2 c ngha l ni dung ca trng
Toan (ni dung c) c t ng nhn vi 1.2 sau li v o trng Toan
(ni dung mi), c lm th cho ton b bn ghi. Lnh: Replace Tong With
Toan+Ly+Hoa cng tng t. Mi cht t th thi ta thy li ch ca vic lp
trnh ri! Chnh v vy m chng ta khng th khng cp n vic lp tr nh
trong VF, cho d c bn cn quan nim l khng nn a phn lp trnh vo
chng trnh Tin hc ng dng (i cng, vn phng). Tuy nhin cng cn phi
ni thm rng: "Lp trnh y l lit k cc lnh t ng gii quyt mt
cng vic ch chng ta khng i su v o logic lp trnh".
6.1 Lm quen vi lp trnh trong VF
6.1.1 To chng trnh (hay gi l son chng trnh)
Tr li v d "nho nh" ni trn, lm th no to ra chng trnh . 1.
Dng Project Manager (ta g i tt l PM)
ELEC

Trang 65

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Trong PM chn Code /Program/New, sau ca s son tho ch ng


trnh hin ra nh sau:

Trong ca s ny hy g vo ni dung:

Sau khi g xong hy lu n bng cch chn File /Save v chn th mc C:\
VF60 lu, gi s vi tn Vidu1.prg. Nh vy ta to c mt chng trnh
c tn Vidu1.prg (prg l vit tt ch program =prg)
2. Dng Menu File

ELEC

Trang 66

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chn File /New ta c:

Chn Program/New File v mt ca s hin ra bn son ch ng trnh, sau


khi son xong bn cng phi lu n nh phn 1.
3. Dng ca s lnh (Command)
Trong ca s lnhT, hy g:
Modify command C:\VF60\Vidu1.prg <Enter>, sau c a s lnh hin ra. G
xong bn thot v ca s lnh bng vic g : Ctrl+W hoc chn File/Close.
6.1.2 Chy chng trnh
Sau khi c chng trnh ta phi tin hnh chy n.
1. Nu chng trnh nm trong PM
Trong PM chn Code / Program/Vidu1
Chn Run
Chng trnh s chy v cho ta kt qu (nu chng trnh khng sai)
2. Dng Menu
Chn Menu Program /Do, sau ta c hp thoi:

ELEC

Trang 67

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chn tp Vidu1.prg v chn Do


3. Dng ca s lnh
Chuyn v ca s lnh
G: Do C:\VF60\Vidu1 <Enter>
6.1.3 Sa chng trnh
Khi chy chng trnh, nu my bo li ta phi tin h nh sa chng trnh (hay
cn gi l hiu chnh chng trnh).
1. Nu chng trnh nm trong PM
M PM, chn Program /Vidu1
Chn Modify
Sa xong hy ng li .
2. Trong Menu File
Chn File /Open
Chn tp chng trnh cn sa (gi s tp Vidu1)
Sa xong hy ng li
3. Trong ca s lnh
G: Modify Command C:\VF60\ViDu1<Enter>
Sau ca s cha chng trnh c tn Vidu1 hin ra, hy tin hnh sa, sa
xong hy ng li.
6.1.4 Ghi ch trong chng tr nh
Khi c cc lnh trong chng trnh, bn c th gp kh khn nu khng c li
ch thch. Li ch thch my s b qua, nh ng vi con ngi th la quan trng
bi v nh ch thch m bn bit c ni dung ci g?. ghi ch trong
ELEC

Trang 68

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

chng trnh, bn c th dng: Note, * hoc && t ng trc cu ghi ch. C


th Note hoc * t trn mt dng ring bit. && dt pha sau cu lnh. V d
* y l chng trnh xem im thi khi bit sbd
Use C:\VF60\DiemKhoiA && M bng
Browse For sbd=12 && Hin th bn ghi c s bo danh l 12
Close all && lnh ng tt c cc bng
6.1.5 Hng, bin
Trong chng trnh c dng n bin v hng. Bn bit cch t tn binT,
hng v cc loi d liu trong chng 2, y ta ch ni thm v 2 vn :
1. Khi to gi tr ban u cho bin
Vic gn gi tr ban u cho bin bao h m ngha l "khai bo" kiu ca bin
lun, v d:
Kiu Characteer
A="Tin hc"
Hoc
Store "Tin hc" To A
Bin A c kiu Character.
Kiu s (Numeric)
X=120
Store 120 To X
Kiu ngy (Date)
D={^2001/11/23} (gn mt gi tr xc nh)
y={} (gn bin Y c kiu Date)
Kiu Logic
L=.T.
hoc L =.F.
2. Cc loi bin
Nh ni trong chng 2, c 3 loi bin: Bin nh, bin h thng v bin
vng. Bin nh nn c k t m, mt du chm v sau l tn bin khi
nhm vi bin khc (khng bt buc). V d m.DienTch, m.Luong, v.v.. n n t
tn bin c tnh cht gi nh, v d bi n ni v din tch hnh trn:
m.DienTich=Pi*BanKinh*BanKinh
d hiu hn ld:
m.D=p*R*R
Bin vng l bin quy nh tn vng khi m bngB, bin ny khng di qu 10
k t. Bin h thng c du gch chn pha tr c: _Box, v.v..Nh vy nu bn
vit theo quy c th khi c mt chng trnh ta bit ngay l loi bin no Tuy iu ny khng bt buc, nhng nu bn quen cch vit s gip bn d
sa li trong chng trnh.

ELEC

Trang 69

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

6.2 Mt s lnh v lp trnh


1. Vo ra d liu
vo mt s t bn phm ta dng lnh sau:
Input <Thng bao > To <bin>
V d:
Input "Hy cho bit tui ca bn? " To Tuoi
Gp lnh ny my hin thng bo: "Hy cho bit tui ca bn ? " v ch bn
g tui ca bn. Gi s bn g 24 <Enter> th gi tr s 24 c lu trong bin
c tn l Tuoi
Vo mt vn bn t bn phm ta dng lnh sau:
Accept <Thng bo > To <Bin>
V d:
Accept "Hy g vo mt cu kiu?" TO Kieu
Gp lnh ny my hin thng bo: "Hy g vo mt cu kiu ? " v ch bn
g mt cu Kiu. Gi s bn g?: " Kiu cng sc so mn m" <Enter> th gi tr
vn bn (cu Kiu va g) c lu trong bin c tn l Kieu.
Vo mt k t t bn phm ta dng lnh sau:
Wait <Thng bo > To <Bin>
V d:
Wait "Bn g vo mt k t?" To C
Gi s bn g: Q <Enter> th K t Q c lu trong bin c tn C.
Cn nu vit:
Wait [<Thng bo >], th khi bn g mt bin bt k, my s vt qua lnh
V d:
Wait
Wait "G phm tip tc!"
Hin th ni dung ca bin ln mn hnh
Ta dng? hoc??
V d:
A=12
?A && Xung dng ri mi in ni dung ca bin A
?A
?A
Ta c kt qu:
12
12
12
Cn nu:
??A
??A

ELEC

Trang 70

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

??A
Ta c kt qu:
12
12
12
V d v lp trnh:
Nu ng trong ca s lnh h y g:
Modify Command C:\VF60\TongTrungBinh.prg <Enter>
Sau khi g <Enter> my chuyn sang ca s chng trnh. Trong ca s ny hy
g cc lnh sau:
Clear && Xo mn hnh
Input "Cho bit tui ca bn?" To TCon
Input "Cho bit tui b ca bn?" To TBo
TuoitrungBinh=(Tcon+TBo)/2
? "Tui trung bnh l:",TuoiTrungBinh
? "Cho bn, hn gp li!"
Thot khi ca s chng trnh, trong ca s lnh hy g:
Do C:\VF60\TuoitrungBinh <Enter>
V bn g vo:
40 <Enter>
20 <Enter>
Kt qu s l:
Tui trung bnh lT: 30
Cho bnC, hn gp li!
2. Lnh iu kin
Lnh ny c hai dng:
Dng 1:
IF <Diu kin >
<Cc lnh >
ENDIF
Hot ng ca lnh ny nh sau:
Nu <iu kin > ng th thc hin <Cc lnh >
Nu <iu kin > sai th b qua lnh IF
V d:
IF x>=3
x=x+1
ENDIF
C ngha nu X ln hn hoc bng 3 th tng X thm 1, nu sai th gi nguyn X
Dng 2:
IF <iu kin >
<Cc lnh 1>
ELSE
<Cc lnh 2>
ELEC

Trang 71

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

ENDIF
Nu N<iu kin > ng th thc hin <Cc lnh 1> b <Cc lnh 2>
Nu N<iu kin > sai th b <Cc lnh 1> thc hin <Cc lnh 2>
V d:
IF X>=3
x=x+1
ELSE
x=x+10
ENDIF
Ngha l nu x ln hn hoc bng 3 th tng X thm 1, nu khng (ngha l nh
hn 3) th tng X thm 10.
Sau y l mt v d m cc bn ai cng bit cch gii ph thng, l : Gii
phng trnh bc hai: ax 2+bx+c=0, vi a, b, c a vo qua bn p hm.
Chng trnh nh sau:
Modify command C:\VF60\Ptb2 <Enter>
Set Talk off && Tt thng bo hot ng lnh, tng tc x l
Set Decimal to 5 && t 5 ch s sau du chm thp phn
*** Vo 3 s qua bn phm
Input "Vo a =" To a
Input "Vo b =" To b
Input "Vo c =" To c
**Tnh Delta
Delta=b*b-4*a*c
**Dng lnh IF dng 2
IF Delta<0
? "Phng trnh v nghim"
ELSE
X1=(-b+SQRT(Delta))/(2*a)
X2=(-b-SQRT(Delta))/(2*a)
**Dng lnh hin th d liu
?"X1=",X1
?"X2=",X2
Tr v ca s lnh g: Do C:\VF60\Ptb2 <Enter>, sau ta g:
3 <Enter>
5 <Enter>
-9 <Enter>
Kt qu my hin ln mn nh:
X1=1.08876
X2=-2.75542
Ch : Ngm nh l 2 ch s sau du chm thp phn, khi chng ta t 5, vy
chnh xc vl 5 ch s sau du chm thp phn.
ELEC

Trang 72

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

3. Lnh chn3
Lnh IF ch chn mt nhnh trong 2 nhnh, nu c nhiu nhnh th chng ta
cng c th dng lnh IF, nhng tt hn nn dng lnh CASE.
Gi s c bi ton sau: Vo tui ca bn:
Nu Tuoi <15 th hin th: Bn cha n tui thanh nin
Nu Tuoi <=30 and Tuoi>=15 th hin th: Bn l thanh nin
Nu Tuoi >30 th hin th: Bn ht tui thanh ni n
Ta c on m vi lnh IF nh sau:
IF Tuoi < 15
? " Bn cha phi l thanh nin "
ENDIF
Input "Vo tui ca bn?" To Tuoi
IF Tuoi < 15
? " Bn cha phi l thanh nin "
ELSE
IF Tuoi < =30
? " Bn l thanh nin "
ELSE
? " Bn ht tui thanh nin "
ENDIF
ENDIF
Nhng nu ta dng lnh DO CASE th c v d hiu hn.
on m vi lnh DO CASE nh sau:
Input "Vo tui ca bn?" To Tuoi
DO CASE
CASE Tuoi<15
? " Bn cha phi l thanh nin "
CASE Tuoi <=30
? " Bn l thanh nin "
CASE Tuoi >30
? " Bn ht tui thanh nin ri "
ENDCASE
Tng qut lnh DO CASE nh sau:
Dng 1:
DO CASE
CASE < K1 >
Nhm lnh 1
CASE <K2>
<Nhm lnh 2>
ELEC

Trang 73

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

......
......
......
CASE <Kn>
<Nhm lnh n >
ENDCASE
Nu <Ki> ng th thc hin <Nhm lnh i > v ra khi lnh DO CASE
Nu khng c mt <Ki> n o ng, th ra khi DO CASE m khng thc hin
mt <nhm lnh i > no c.
Dng 2:
DO CASE
CASE < K1 >
Nhm lnh 1
CASE <K2>
<Nhm lnh 2>
......
......
CASE <Kn>
<Nhm lnh n >
OTHERWISE
<Nhm lnh n +1>
ENDCASE
Nu cc <K1>, <K2>,...<Kn> u sai th thc hin <Kn+1>
Sau y l mt v d v xem lch hc trong tun:
Set talk off
Set date French
Clear
Input "Bn hi th my?" To Thu
Do Case
Case Thu=2
? " Ton, L, Tin"
Case Thu=3
? " Ton, Anh, Vn"
Case Thu=4
? " a, Nhc, S"
Case Thu=5
? " Vn, Vn, Ho"
Case Thu=6
? " a, Chnh tr, Nhc"
Case Thu=7
? " Ton, L, Tin"
Case Thu=8
ELEC

Trang 74

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

? " Ch nht ngh "


OtherWise
? "Lm g c th?:", Thu
? "Bn g sai!"
EndCase
Ta cng c th lp trnh cho bi ton gii phng trnh bc hai bng DO CASE
nh sau:
Set Talk off && Tt thng bo hot ng lnh, tng tc x l
Set Decimal to 5 && t thm 5 ch s sau du chm thp phn
*** Vo 3 s qua bn phm
Input "Vo a =" To a
Input "Vo b =" To b
Input "Vo c =" To c
**Tnh Delta
Delta=b*b-4*a*c
Do Case
Case Delta<0
? "Phng trnh v nghim"
Case Delta=0
X=-b/(2*a)
?"X=",X
Case Delta>0
X1=(-b+SQRT(Delta))/(2*a)
X2=(-b-SQRT(Delta))/(2*a)
**Dng lnh hin th d liu
?"X1=",X1
?"X2=",X2
EndCase
4. Lnh lp For
Gi s bn phi tnh tng s =1+3+5+...+1001. Cch tnh nh sau:
a. C mt bin nh tn S, khi cha tnh ta gn S =0.
b. C mt bin nh tn i, ban u ta gn i =1.
c. Ly ni dung ca S (hin ti S =0) cng vi ni dung ca bin i (hin tai i =1),
kt qu S (S by gi bng 1)
d. Tng bin i thm 2 (by gi i =3), li quay v bc c, c nh th cho n khi i
>1001 th dng; khi dng S l tng cui cng. Qu trnh c m t bng mt
"on vn" trong VF nh sau:
S=0
For i=1 To 1001 Step 2 && T i =1 n 1001 bc 2
S=S+i
EndFor
ELEC

Trang 75

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Hot ng ca lnh For ging nh cch tnh trn, ngha l:


Bc 1: i=1
Bc 2: Tnh S: S=S+1
Bc 3: Tng I: I=I+2
Bc 4: Nu I <=1001 th thc hin Bc 2, nu ln hn 1001 th ra khi For
Ch : Nu bc bng 1 th c th khng vit Step 1 cng c.
tnh tng trn la lp trnh hon chnh nh sau:
Set Talk Off
S=0
For i=1 To 1001 Step 2
S=S+i
EndFor
?"S=",S
Tng qut:
FOR <Bin>=<Gi tr u > TO <Gi tr cui > STEP <Bc >
<Cc cu lnh >
ENDFOR
V d 1V: Nh bn bit, trong C:\ VF60 ta c bng DiemKhoiA.dbf. Hy
dng lnh FOR hin th Sbd v Tong bng lnh ?
Chng trnh c dng nh sau:
Set Talk off
Use C:\VF60\DiemKhoiA
&&M bng DiemKhoiA
Count to n
&& m xem c bao nhiu bn ghi, lu vo bin n
For i=1 to n
&& Lnh FOR
Go i
&& chuyn con tr bn ghi n bn ghi th i
?"Sbd=", Sbd && Hin th vn bn "Sbd =" v ni dung ca trng Sbd
?"Tong=",Tong && Hin th vn bn "Tong =" v ni dung ca trng Tong
Wait "n phm tip tuc" && Lnh Wait tm dng ch bn n 1 phm
Clear
&& Xo mn hnh
Endfor
V d 2: Trong C:\ VF60 c hai bng HoSoKhoiA v DiemKHoiA, hy lp trnh
hin th (bng lnh? v??) tng th sinh vi cc trng sau:
Hodem, ten, NgaySinh, Sbd, Toan, Ly, Hoa, Tong.
Nh bn bit hai tp ny c quan h 1: 1 ngha l mt bn ghi ca tp
HoSoKhoiA ch c mt bn ghi tng ng ca tp DiemKhoiA (thng qua sbd).
d theo di ta gi thit hai tp trn c s bn ghi bng nhau.
lp trnh cho bi ton ny, ta m hai tp hai vng: vng 1 cho tp
HoSoKhoiA, vng 2 cho tp DiemKhoiA bng cch:
Select 1 && Chn vng 1
Use C:\VF60\HoSoKhoiA
Select 2 && Chn vng 2
Use C:\VF60\DiemKhoiA
ELEC

Trang 76

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

V sau ta ch cn chn: Select 1 th lm vic ngay vi tp HoSoKhoiA m khng


cn m li, v.v..
Chng trnh nh sau:
Select 1
Use C:\VF60\HoSoKhoiA
Index On Sbd To IndexHS && Xp tng dn theo Sbd bng lnh Index
Select 2
Use C:\VF60\DiemKhoiA
Index On Sbd To IndexDi && Xp tng dn theo Sbd bng lnh Index
Count To n
For i=1 To n
Select 1 && V tp HoSoKhoiA
Go i
?Hodem, ten, ngaysinh,sbd
Select 2 && V tp DiemKhoiA
Go i
??Toan, Ly, Hoa, Tong
EndFor
5. Lnh lp DO WHILE
Lnh ny c dng nh sau:
DO WHILE <iu kin >
<Cc lnh >
ENDDO
Hot ng ca lnh ny nh sau:
Chng no m <iu kin > cn ng th thc hin <cc lnh >, cn <iu kin
> sai th ra khi lnh DO WHILE. V d tr n c th vit bng lnh DO WHILE
nh sau:
Set Talk off
Use C:\VF60\DiemKhoiA
&&M bng DiemKhoiA
Count to n
&& m xem c bao nhiu bn ghi, lu vo bin n
i=1
Do While i<=n
&& Lnh Do While
Go i
&& chuyn con tr bn ghi n bn ghi th i
?"Sbd=", Sbd && Hin th vn bn "Sbd =" v ni dung ca trng Sbd
?"Tong=",Tong && Hin th vn bn "Tong =" v ni dung ca trng Tong
Wait "n phm tip tuc" && Lnh Wait tm dng ch bn n 1 phm
Clear
&& Xo mn hnh
I=I+1
&&Tng i thm 1
EndDo
Nu bn qun lnh IN =I+1 th lnh DO WHILE trn s lp v hn ln.
Ch : Khi dng lnh DO WHILE x l cc bng ta nn dng hm EOF (),
EOF=End Of File (kt thc tp) cng vi SKIP dch chuyn bn ghi. H m
ELEC

Trang 77

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

EOF ()cho ga tr .T. nu con tr bn ghi ch cui tpc, nu con tr bn ghi


cha ch cui tp th EOF ()=.F.
V d trn c th vit nh sau:
Set Talk off
Use C:\VF60\DiemKhoiA
&&M bng DiemKhoiA
Do While NOT EOF()
&& Lnh Do While
?"Sbd=", Sbd && Hin th vn bn "Sbd =" v ni dung ca trng Sbd
?"Tong=",Tong && Hin th vn bn "Tong =" v ni dung ca trng Tong
Wait "n phm tip tuc" && Lnh Wait tm dng ch bn n 1 phm
Clear
&& Xo mn hnh
Skip
&&Dch tin 1 bn ghi
EndDo
V d ng vi hai tp trn, ta vit li nh sau:
Select 1
Use C:\VF60\HoSoKhoiA
Index On Sbd To IndexHS && Xp tng dn theo Sbd bng lnh Index
Select 2
Use C:\VF60\DiemKhoiA
Index On Sbd To IndexDi && Xp tng dn theo Sbd bng lnh Index
Do While Not Eof()
Select 1 && V tp HoSoKhoiA
?Hodem, ten, ngaysinh,sbd
Skip
Select 2 && V tp DiemKhoiA
??Toan, Ly, Hoa, Tong
Skip
EndDo
6. Duyt d liu bng vng lp SCAN....ENDSCAN
Lnh ny t ng duyt d liu t Record u cho n Record cui. C php
nh sauL:
SCAN [<Phm vi >][FOR /WHILE <iu kin >]
<cc lnh >
[LOOP]
[EXIT]
ENDSCAN
Sau y l mt s v d:
V d 1: Hin th SBD, Tong t bn ghi th 3 n bn ghi th 10
Use C:\VF60\DiemKhoiA
Go 3
Scan Next 8 && duyt 8 bn ghi t bn ghi th 3
ELEC

Trang 78

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

?sbd, tong
EndScan
V d 2: Duyt t bn ghi th 8 n ht tp
Use C:\VF60\DiemKhoiA
Go 8
Scan Rest && duyt t bn ghi th 8 n ht tp
?sbd, tong
EndScan
V d 3: Duyt nhng bn ghi chn
Use C:\VF60\DiemKhoiA
Scan For Mod(Recno(),2)=0 && Recno()l hm cho gi tr bn ghi hin thil
?sbd, tong
EndScan
V d 4: Duyt, chng no gp Tong >20 th dng
Use C:\VF60\DiemKhoiA
Scan While Tong<=20
?sbd, tong
EndScan
V d 5: Duyt, chng no gp s th t bn ghi chia ht cho 3 th thot
Use C:\VF60\DiemKhoiA
Scan
If Mod(Recno(),3)=0
Exit
EndIf
?sbd, tong
EndScan
V d 6: Duyt, chng no gp s th t bn ghi chn th b khng in
Use C:\VF60\DiemKhoiA
Scan
If Mod(Recno(),3)=0
Loop
EndIf
?sbd, tong
EndScan

ELEC

Trang 79

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

6.3 Lp trnh cu trc


Khi gp mt bi ton A ta thng chia bi ton thnh nhng bi ton nh: A1,
A2, A3,... v tm cch lp trnh vi cc bi ton A i . V c bn l lp trnh d
hn so vi bi ton A, cui cng b cc th no vic gii bi ton A hon
thnh. Cung cch "chia tr" ny thng c p dng trong lp trnh m
ngi ta thng gi mt ci tn "m miu" l lp trnh cu trc. Chng ta khng
phn tch su v lp trnh cu trc lm g, m ch a ra t tng ca n bn
c mt ci nhn s b v phn no ng dng trong khi thit k cc ch ng trnh
trong phm vi tin hc ng dng m thi.
Chng ta va ni l lp trnh cho cc Ai, vy thc cht l lp trnh nh th
no? Thng th cc Ai ng vi mt Modul gi l mt chng trnh con, d
hiu ta trnh by thng qua mt v d. Gi s bn phi tnh biu thc:
S=(12+22+32+...+100 2) (13+23+33+..+100 3)
Ta dng cch "chia tr" nh sau:
S=A1 x A2 vi A1 =(12+22+32+...+100 2), A2=(1 3+23+33+..+100 3). Nh vy ta
chia bi ton trn thnh hai bi ton con, m i bi ton con c nn chia nh
na hay khng l tu bn v tu ch c chia c na hay khng v c nn
chia nh na hay khng. Ta c coi nh chia thnh hai . By gi ta gi chng
trnh con th nht tnh A1 l Tong1 v chng trnh con tnh A2 l Tong2.
Bn xem chng trnh sau:
Set Talk off
S1=0 && Khai bo S1 l s v v tr ton cc
S2=0 && Khai bo S2 l s v v tr ton cc
Do Tong1 && Chy chng trnh con c tn Tong1
Do Tong2 && Chy chng trnh con c tn Tong2
S=S1*S2
?"S=",S
**** Chng trnh con c tn Tong1
Procedure Tong1
For i=1 To 100
S1=S1+i*i
EndFor
EndProcedure
**** Chng trnh con c tn Tong2
Procedure Tong2
For i=1 To 100
S2=S2+i*i*i
EndFor
EndProcedure

ELEC

Trang 80

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Khi chy bn c kt qu: S=8.628.770.875.000 (tm nghn su trm hai tm t,


by trm by mi triu, tm trm by lm ngh n)- bn c tng tng nu tnh
bng th cng th mt bao lu y !.
Chng ta tr li chng trnh trn. on m sau:
Procedure Tong1
For i=1 To 100
S1=S1+i*i
EndFor
EndProcedure
Dng gii bi ton A1, trong c s dng bin S1 v i. S1 khai bo u
(ngoi th tc ny) nn gi l bin ton cc. Bin ton cc c ngha trong ton
b chng trnh, ngha l th tc no cng dng c. Cn bin i nm trong
Tong1 gi l bin cc b, bin cc b ch c ngha trong Tong1 m thi, ngha
l ngoi th tc khng dng c. Khi hon thnh th tc th bin i b xo
ngay. Vi Tong2 cng tng t.
Lnh: Do Tong1
C ngha l chy th tc Tong1, nh chy Tong1 m ta thu v kt qu nm trong
bin S1. Sau khi chy xong l i quay v lnh nm sau Do Tong1 , ngha l gp Do
Tong2, sau khi Tong2 hon thnh ta thu c S2. Sau li quay v lnh ng
sau Do tong2 v gp lnh S =S1*S2 v.v..C ch hot ng l nh vy!. Tng
qut, mt th tc c dng:
PROCEDURE <Tn th tc >
<cc lnh >
ENDPROCEDURE
Mt cu hi c t ra l: C nht thit trong Tong1 phi d ng bin S1 v
trong Tong2 phi dng S2 hay khng? cu tr li l: khng nht thit. C th
trong Tong1 dng mt bin cc b l T1 v trong Tong2 dng bi n cc b T2.
Sau gi ni dung T1 v T2 cho S1 v S2. Cung cch g i l truyn tham s
cho th tc. C th chng trnh trn cn c th vit li nh sau:
Set Talk off
S1=0 && Khai bo S1 l s v v tr ton cc
S2=0 && Khai bo S2 l s v v tr ton cc
Do Tong1 With S1 && Chy chng trnh con c tn Tong1
Do Tong2 With S2 && Chy chng trnh con c tn Tong2
S=S1*S2
?"S=",S
**** Chng trnh con c tn Tong1
Procedure Tong1
Parameter T1
For i=1 To 100
T1=T1+i*i
ELEC

Trang 81

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

EndFor
EndProcedure
**** Chng trnh con c tn Tong2
Procedure Tong2
Parameter T2
For i=1 To 100
T2=T2+i*i*i
EndFor
EndProcedure
R rng lp trnh kiu ny "mm do" hn v trong "Hp en" (Th tc) c th
t ton quyn chn bin cc b m khng h l thuc vo bin ton cc. Hy
hnh dung rng: gi s bn phn cng cho ai y "bc bn cu" lp tr nh th
tc Tong1. Ngi ta "xa" nh vy lm sao m bit bn c bin S1 m dng do nn cho "tng ngoi bin i" t quyt.
Cu lnh: DO Tong1 With S1, c ngha l chy th tc Tong1 v "mang theo"
S1 cha ni dung t T1 trong khai bo c ( Parameter T1) gi sang. Ni nm
na l hp en t quyt nh x l d liu v vo mt bin no y, khi cn th
chng trnh s goi v mang theo bin ly v (ging nh bn mun mua la
th phi mang theo thng ng la cha khng ai bn lun c thng).
Chng trnh con cn c mt dng khc l FUNCTION, c cu trc sau:
FUNCTION <Tn hm > <Cc tham s >
<Cc lnh >
RETURN <Gi tr >
Nh ni phn PROCEDURE, bt k l dng g th nhim v ca chng
trnh con l hon thnh mt cng on v phi to iu kin d dng chng
trnh ly c kt qu ca cng on . FUNCTION cng vy thi, ch c
khc l FUNCTION ch cho ta duy nht mt kt qu nm <T n hm >, cn
PROCEDURE th c th c nhiu kt qu, bi c th khai bo PARAMETER
T1, T2, T3 v.v.. v khi truyn th:
Do <Tn th tc > With X1, X2, X3 v.v..
Vi chng trnh trn, ta c th vit li bng FUNTION nh sau:
Set Talk off
S1=0 && Khai bo S1 l s v v tr ton cc
S2=0 && Khai bo S2 l s v v tr ton cc
S=Tong1(S1) *Tong2(S2) && Gi hm Tong1 v truyn S1, Tong2 truyn S2
?"S=",S
**** Chng trnh con c tn Tong1
Function Tong1(T1)
For i=1 To 100
T1=T1+i*i
EndFor
Return T1 && Gi kt qu T1 cho hm (Tong1)
ELEC

Trang 82

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

**** Chng trnh con c tn Tong2


Function Tong2(T2)
For i=1 To 100
T2=T2+i*i*i
EndFor
Return T2 && Gi kt qu T2 cho hm (Tong2)
Ta nhn thy dng hm (FUNCTION) vic gi hm c dng:
TenHam(Tham s), c th trn:
S=Tong1(S1)*Tong2(S2), khng gi ng nh PROCEDURE l:
Do <Tn th tc > With <Tham s >
Cng nh PROCEDURE, trong hm Tong1 c hai bin cc b l T1 v i, trong
Tong2 c T2 v i. Cn S1 v S2 l ton c c.
6.4 D liu mng
Trong lp trnh ta hay dng d liu mng, vy mng l g?. Ta hy bt u bng
v d sau:
Vo lng ca 100 nhn vin v tnh tng lng ca h. V l 100 nhn vin nn
ta khng th khai bo 100 bin c (th c cho l khai bo c 100 bin,
nhng nu c quan c 10000 ngi th ch l khai bo 10000 bin ?), do ta
nn dng mng. Khai bo mng nh sau:
DIMENSION A(100)
Mng c tn A c 100 phn t, cc phn t c tn:
A(1), A(2), A(3), ...,A(100)
Ta lp trnh nh sau:
Set Talk off
Dimention A(100)
*** Vo d liu
For i=1 To 100
Input "Vo A ("+allt(str(i))+")=" To A(i)
EndFor
** Tnh tng
Tong=0
For i=1 To 100
Tong=Tong+A(i)
EndFor
**In kt qu
? "Tng lng l:", Tong
Gi s c quan bn c 4 nhn vin, bn khng dng mng:
Input "Vo a =" To a
Input "Vo b =" To b
ELEC

Trang 83

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Input "Vo c =" To c


Input "Vo d =" To d
Tong=a+b+c+d
? "Tng lng l:", Tong
a, b, c, d l lng ngi th 1, th 2, v.v.. Nhng nu dng mng th:
Dimention A(4)
For i=1 To 4
Input "Vo A ("+allt(str(i))+")=" To A(i)
EndFor
Tong=0
For i=1 To 4
Tong=Tong+A(i)
EndFor
? "Tng lng l:", Tong
Nhng s bin cng ln th dng mng s ngn gn hn nhiu.
Sau y l mt s v d v mng:
V d 1: Tm Max ca mng s
Set Talk of
Dime a(10) && Vit tt, bn c th vit tt 4 k t u
** Vo mng
For i=1 to 10
Input "Vao a("+Allt(str(i))+")=" To a(i)
EndFor
88Tm Max
Max=a(1)
For i=2 To 10
If max <a(i)
Max=a(i)
Endif
?"Max=",Max
V d 2: Xp mng tng dn
Dime a(10) && Vit tt, bn c th vit tt 4 k t u
** Vo mng
For i=1 to 10
Input "Vao a("+Allt(str(i))+")=" To a(i)
EndFor
** Xp mng
For i=1 To 9
For j=i+1 To 10
ELEC

Trang 84

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

If a(i)>a(j)
Tg=a((j)
a(j)=a(i)
a(i)=Tg
Endif
EndFor
EndFor
Mng hai chiu khai bo nh sau:
Dime a(m,n) trong m l hng v n l c t, v d
Dime a(3,4):
a(1,1) a(1,2), a(1,3), a(1,4)
a(2,1) a(2,2), a(2,3), a(2,4)
a(3,1) a(3,2), a(3,3), a(3,4)
Khi vo d liu bn c th vo theo dng, ht dng n n dng kia.
Cc phn t ca mng c th l s, vn bn, Date, v.v..

ELEC

Trang 85

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Bi tp chng 6
1. Nhp vo mt s nguyn, t bn phm hy in ra kt qu l tng cc ch s
ca s .
2. Vit chng trinh tnh tng ca bnh phng cc s t 1 n n (n a vo qua
bn phm)
3. Vit chng trnh nhp s liu cho tp tin bng, c cu trc nh sau:
Name
Type
Width
Gii thch
Hodem
C
20
H v m
Ten
C
8
Tn
MNV
C
4
M nhn vin
BL
N
9,0
Bc lng
PC
N
3,1
Ph cp
TT
N
10,0
Thnh tin
4. T bng bi tp 3, vit chng trnh tnh ct thnh tin (TT) cho ton b
nhn vin
5. Vit chng trnh hin ra mn hnh ngi c lng cao nht
6. Vit chng trnh tnh lng trung bnh ca ca c quan
7. Xem cu 3, 4, 5, 6 l nhng chng trnh con, hy lp trnh cu trc cho
nhng vn
8. Cho tp: DiemKhoiA nh bn bit. Hy lp trnh thc hin cc cng vic
sau:
Tng Toan thm 12%, Ly 15%, Hoa 20%
Tnh li ct Tong
Tnh im trung bnh ca ton (Toan), l (Ly), ho (Hoa) v tng (Tong)
Hin th nhng th sinh c i m tong >=20
Hin th nhng th sinh c im lit (ton =0 hoc l =0 hoc ho=0)
Hin th danh sch cc th sinh vi cc tr ng DiemKhoia.dbf v cc
trng tp HoSoKhoiA.dbf (hai tp)
Hy thit k theo cch lp trnh cu trc!
9. Cho mng s gm 20 phn t nguyn, hy lp trnh thc hin cc cng vic
sau:
Vo mng
Tm Min ca mng
Tnh tng mng
Tnh tch ca mng
Hin th nhng phn t dng
Tnh tng cc cn bc hai ca cc phn t mng
Hin th nhng phn t chn.

ELEC

Trang 86

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 7: Thit k giao din qua MENU v Windows


7.1 t vn
Khi lp trnh gii quyt mt vn , ta th ng chia vn thnh nhng
phn nh tng i c lp, mi phn nh th ng c m t bng mt
chng trnh con. Khng phi lc no cng cn thc hin tt c cc ch ng trnh
con m c th ch cn thc hin mt s nh trong s . Khi bn v o nh
hng chn mn n, ngi hu bn a cho bn mt quyn thc n cha
ng nhiu mn n trong . D nhi n mn n th nhiu nhng bn cng ch
chn mt s mn n trong thc n m thi. Hnh nh gi cho ngi lp trnh
mt cch thit k giao din qua Menu (thc n). Ngha l cc chng trnh con
(hoc cc i tng cn thc hin khc) ging nh nhng mn n v chng c
xp theo nhm, v d nhm tht, nhm c, nhm rau v.v.. trong tng nhm c
cc mn c th. V d trong nhm tht c tht ln, tht b, v.v.. trong nhm c c
c Qu, c Chp v.v..
Vic thit k theo thc n trn gip cho vic chn la cc i tng v thc
hin cc i tng c la mt cch d dng. Ngoi ra ngi n cng c th
tu chn bn n - ta quan nim phng n nh l mn hnh v mi bn n nh
mt ca s (Window). Nh vy mi s la chn c th xy ra ti mt ca s v
thc hin ti ca s hoc ca s khc. Thc n v bn n l hai cng c gip
cho vic tm mn n v ch n mt cch thun li. Cng ging nh MENU v
WINDOW l hai cng c gip cho vic la chn cc i t ng v thc hin cc
i tng mt cch thun li.
Quyn thc n ca nh hng cng c nhiu loi. Nu nh hng ch c vi
mn n thuc cng mt nhm th thng ngi ta vit chng n gin theo dng
hoc theo ct. V d:
1. Tht ln kho 2. Tht ln luc 3. Tht chn gi ln
Thc n trn gi l thc n ngang (Menu bar), mi mn trn (1. Tht ln
kho1, 2. Tht ln luc v.v..) c gi l mt Pad.
Cn nu vit nh sau:
1. 1. Tht ln kho
2. 2. Tht ln luc
3. 3. Tht chn gi ln
Th c gi l Menu dc hay cn gi l MENU POPUP cn cc thnh phn
ca ct nh: 1.Tht ln kho, 2. Tht ln luc v.v.. gi l Bar 1, Bar 2 v.v..
Cn nu thc n cha nhiu nhm mi nhm li cha nhiu mn c th th
thng thng Menu ngang cha nhm, c n Menu dc cha mn c th, ta s t m
hiu chi tit trong cc phn sau.

ELEC

Trang 87

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

7.2 Thit k cc Menu


7.2.1 Menu ngang
Gi s ta c bi ton n gin sau: To hai th tc c t n l Tong v Tich
tnh tng v tnh tch ca dy s 1,2,3,4,5,6,7,8,9, 10. Ngha l :
S=1+2+..+10, P=1*2*...*10
Bi ton yu cu thit k giao din qua menu ngang
Chng trnh 1.2.1
Clear
Define Menu MemuNgang
Define Pad Tong Of MenuNgang Prompt ' Tnh tng cc s t 1 n 10' At
00,00
Define Pad Tich Of MenuNgang Prompt ' Tnh tch cc s t 1 n 10' At
00,30
On Selection Pad Tong Of MenuNgang Do DieuKhien With Pad()
On Selection Pad Tich Of MenuNgang Do DieuKhien With Pad()
Activate Menu MenuNgang
Procedure DieuKhien
Parameter TsPad
Do Case
Case TsPad='TONG'
Do TinhTong
Case TsPad='TICH'
Do TinhTich
EndCase
Return
Procedure TinhTong
s=0
For i=1 To 10
s=s+i
EndFor
?'Tng S =',s
Return
Procedure TinhTich
p=1
For i=1 To 10
p=p*i
ELEC

Trang 88

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

EndFor
?'Tch p =',p
Return
Gii thch:
Dng 1:
Define Menu MemuNgang
ngha:
nh ngha mt Menu Ngang c t n l MenuNgang
Dng 2:
Define Pad Tong Of MenuNgang Prompt ' Tnh tng cc s t 1 n 10' At
00,00
ngha:
nh ngha mt Pad c tn l Tong thuc MenuNgang, ng thi hin th:'Tnh
tng cc s t 1 n 10' ti (At) to c d ng l 0 v ct l 0
Dng 3:
Define Pad Tich Of MenuNgang Prompt ' Tnh tch cc s t 1 n 10' At
00,30
ngha:
nh ngha mt Pad c tn l Tich thuc MenuNgang, ng thi hin th:'Tnh
tch cc s t 1 n 10' ti (At) to c d ng 0 ct l 30
Dng 4:
On Selection Pad Tong Of MenuNgang Do DieuKhien With Pad()
ngha:
Khi vt sng nm Pad c tn l Tong (tng ng vi dng cht: ' Tnh tng
cc s t 1 n 10' v n Enter th chng trnh con c tn TinhTong c
thc hin, ng thi truyn gi tr (t n ca Pad tng ng) cho thng s ng
sau Parameter ca chng trnh con
Dng 5:
On Selection Pad Tich Of MenuNgang Do DieuKhien With Pad()
ngha:
Khi vt sng nm Pad c tn l Tich (tng ng vi dng cht: ' Tnh tch cc
s t 1 n 10' v n Enter th chng trnh con c tn TinhTich c thc
hin, ng thi truyn gi t r (tn ca Pad tng ng) cho thng s ng sau
Parameter ca chng trnh con
Dng 6:
Activate Menu MenuNgang
ngha:
Kch hot Menu c tn MenuNgang- a Menu vo trng thi hot ng
Hm Pad ()tr v tn Pad khi vt sng nm Pad v n Entert
V d: Nu vt sng nm Pad th 2:
Hm Pad ()s cho gi tr TICHs
ELEC

Trang 89

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Hm Menu ()tr v tn Menu khi Menu c kch hott


V d: Khi Menu c tn MenuNgang c kch hot, hm Menu ()cho gi trc:
MENUNGANG
nh ngha tng qut ta c cc quy c vit tt nh sau:
expN, expN1, expN2 v.v.. l bi u thc nguyn
expC, expC1, expC2 v.v.. l bi u thc vn bn
expR l biu thc bt k
<...> Thng s
[....] l tu chn
| hoc
nh ngha menu c thm mt s thng s hay dng nh sau:
Define Menu <Menu Name> [Mesage <expC>]
[Bar [At Line <expN1>]] [In[Window]<Window Name>| In Screen]
[Color Scheme <expN2> | Color <Color List>]
Trong :
Message<expC> l thng bo vi ni dung l <expC> ti dng m trc
dng lnh:Set Message to <expN>
V d:
Set Message to 23
Define Menu MenuNgang Mesage 'y l Menu ngang'
Bar [At Line <expN1>]
Menu s c t ti dng <expN1>, nu dng Bar, khi thc hin xong
thc n khng hot ng na
[In[Window]<Window Name>| In Screen]
Menu s c t trong ca s hoc trong mn hnh
[Color Scheme <expN2> | Color <Color List>]
t s mu hoc danh sch mu
nh ngha Pad c thm mt s thng s hay dng nh sau:
Define Pad <Pad Name> of <Menu Name>
Prompt <expC1> [At <dng, ct>]
[Mesage <expC>]
[Color Scheme <expN2> | Color <Color List>]
Trong :
Prompt <expC1>
ng vi tn Pad th nht hin thng bo <expC1>
At <dng, ct>
t <expC1> to <dng, ct>
Mesage <expC>
Nh phn trn
ELEC

Trang 90

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Color Scheme <expN2> | Color <Color List>


Nh phn trn
7.2.2 Menu dc
Cng t chng trnh phn 1.2.1 ta chuyn sang giao din theo Menu dc nh
sau:
Chng trnh 1.2.2
Clear
Define Popup MenuDoc From 5,10
Define Bar 1 Of MenuDoc Prompt ' Tnh tng cc s t 1 n 10'
Define Bar 2 Of MenuDoc Prompt ' Tnh tch cc s t 1 n 10'
On Selection Popup MenuDoc Do DieuKhien With Bar()
Activate Popup MenuDoc
Procedure DieuKhien
Parameter TsBar
Do Case
Case TsBar=1
Do TinhTong
Case TsBar=2
Do TinhTich
EndCase
Return
Procedure TinhTong
s=0
For i=1 To 10
s=s+i
EndFor
?'Tng S =',s
Return
Procedure TinhTich
p=1
For i=1 To 10
p=p*i
EndFor
?'Tch p =',p
Return
Gii thch:
ELEC

Trang 91

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Dng 1:
Define Popup MemuDoc From 5,10
ngha:
nh ngha mt Menu dc c tn l MenuDoc v t dng 5 ct 10
Dng 2:
Define Bar 1 Of MenuDoc Prompt ' Tnh tng cc s t 1 n 10'
ngha:
nh ngha Bar 1 thuc MenuDoc, ng thi hin th:'Tnh tng cc s t 1 n
10'
Dng 3:
Define Bar 2 Of MenuDoc Prompt ' Tnh tch cc s t 1 n 10'
ngha:
nh ngha Bar 2 thuc MenuDoc, ng thi hin th:'Tnh tch cc s t 1 n
10'
Dng 4:
On Selection Popup MenuDoc Do DieuKhien With Bar()
ngha:
Khi vt sng nm Bar 1 hoc Bar 2 v n Enter th chng trnh con c tn
TinhTong hoc TinhTich c thc hin, ng thi truyn gi tr (t n ca Bar
tng ng) cho thng s ng sau Parameter ca ch ng trnh con
Dng 5:
Activate Popup MenuDoc
ngha:
Kch hot Popup c tn MenuDoc- a Popup vo trng thi hot ng
Hm Bar() tr v s Bar khi vt sng nm t ar v n Enter
V d: Nu vt sng nm Bar 2:
Hm Bar() s cho gi tr 2s
Hm Prompt() tr v gi tri xu ng sau Promptt
nh ngha Popup c thm mt s thng s hay dng nh sau:
Define Popup <Popup Name> From <dng1, c t1> [To <Dng2,Cot2>]
[Prompt Field <expR>| Prompt Files[Like <skel>]| Prompt structure]
[Mesage <expC1>]
[Title <expC2>]
[In[Window]<Window Name>| In Screen]
[Color Scheme <expN2> | Color <Color List>]
Trong :
Prompt Field <expR>: khi a tu chn ny vo v ch nh mt tn
trng <expR> t mt tp CSDL ang m th d liu ca trng ny s tr
thnh cc tu chn ca Popup

ELEC

Trang 92

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Prompt Files: Nu a tu chn ny vo th cc tp tin s tr thnh tu


chn ca Popup, cn nu Prompt Files Like *.dbf th ch nhng tp CSDL
l tu chn ca Popup
Prompt Structure: Nu c tu chn ny th cc trng s l tu chn
ca Popup
Title <expC2>: S hin tiu ca Popup
[In[Window]<Window Name>| In Screen]
Menu s c t trong ca s hoc trong m n hnh
[Color Scheme <expN2> | Color <Color List>]
t s mu hoc danh sch mu
nh ngha Bar c thm mt s thng s hay dng nh sau:
Define Bar <expN> Of <Popup Name>
Prompt <expC1> [Mesage <expC>] [Skip]
[Color Scheme <expN2> | Color <Color List>]
Trong :
Prompt <expC1>
ng vi tn Bar th nht hin thng bo <expC1>
Mesage <expC>
Nh phn trn
Skip: tu chn khng chn c
Color Scheme <expN2> | Color <Color List>
Nh phn trn
7.2.3 Menu hn hp
V d 1:

Gi s ta nh ngha mt Menu cha hai Pad (Tht luc =ThitLuoc v Tht kho
=ThitKho)
ng vi ThitLuoc?:
Tht G luc
Tht Ngan luc
Thit B luc
ng vi ThitKho?:
Tht G kho
Tht Ngan kho
Tht B kho
Ta lp trnh nh sau:
Chng trnh 1.2.3.1
Clear
Define Menu MonThit
Define Pad ThitLuoc Of MonThit Prompt ' Day la thit luoc ' At 00,00
ELEC

Trang 93

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Define Pad ThitKho Of MonThit Prompt ' Day la Thit kho ' At 00,20
Define Popup Luoc From 02,00
Define Bar 1 Of Luoc Prompt ' Tht G luc '
Define Bar 2 Of Luoc Prompt ' Tht Ngan luc '
Define Bar 3 Of Luoc Prompt ' Tht b luc '
On Selection Popup luoc Do Hien With Bar(),Popup()
Define Popup Kho From 02,20
Define Bar 1 Of Kho Prompt ' Tht g kho '
Define Bar 2 Of Kho Prompt ' Tht ngan kho'
Define Bar 3 Of Kho Prompt ' Tht b kho '
Define Bar 4 Of Kho Prompt ' Tht ln kho '
On Selection Popup Kho Do Hien With Bar(),Popup()
On Pad ThitLuoc Of MonThit Activate Popup Luoc
On Pad ThitKho Of MonThit Activate Popup Kho
Activate Menu MonThit
Procedure Hien
Parameter TsBar,TsPopup
Do Case
Case TsBar=1 and TsPopup='LUOC'
?'y l tht G luc '
Case TsBar=2 and TsPopup='LUOC'
?'y l tht ngan luc '
Case TsBar=3 and TsPopup='LUOC'
?'y l tht b luc '
Case TsBar=1 and TsPopup='KHO'
?'y l tht g kho '
Case TsBar=2 and TsPopup='KHO'
?'y l tht ngan Kho '
Case TsBar=3 and TsPopup='KHO'
?'y l tht b Kho '
Case TsBar=4 and TsPopup='KHO'
?'y l tht ln Kho '
Endcase
Return
V d 2:
Ta nh ngha mt Menu c t n Toan, Menu ny c 2 pad (Lng gic =
LuongGiac v i s =DaiSo). phn lng gic c hai bar l tnh Sin v cos,
phn i s c hai bar l tnh Tng v tnh Tch. Chng trnh nh sau:
Chng trnh 1.2.3.2
ELEC

Trang 94

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Clear
Define Menu Toan
Define Pad LuongGiac Of Toan Prompt ' Cc bi tp lng gic ' At 00,00
Define Pad DaiSo Of Toan Prompt ' Cc bi tp i s ' At 00,35
Define Popup LG From 02,00
Define Bar 1 Of LG Prompt ' Tnh sin
'
Define Bar 2 Of LG Prompt ' Tnh Cos
'
On Selection Popup LG Do DieuKhien With Bar(),Popup()
Define Popup DS From 02,35
Define Bar 1 Of DS Prompt ' Tnh tng '
Define Bar 2 Of DS Prompt ' Tnh tch '
On Selection Popup DS Do DieuKhien With Bar(),Popup()
On Pad LuongGiac Of Toan Activate Popup LG
On Pad DaiSo Of Toan Activate Popup DS
Activate Menu Toan
Procedure DieuKhien
Parameter TsBar,TsPopup
Do Case
Case TsBar=1 and TsPopup='LG'
Do TinhSin
Case TsBar=2 and TsPopup='LG'
Do TinhCos
Case TsBar=1 and TsPopup='DS'
Do TinhTong
Case TsBar=2 and TsPopup='DS'
Do TinhTich
Endcase
Return
Procedure TinhSin
For i=1 to 1000
?i,sin(i)
Endfor
Return
Procedure TinhCos
For i=1 to 1000
?i,Cos(i)
ELEC

Trang 95

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Endfor
Return
Procedure TinhTong
s=0
For i=1 to 1000
s=s+i
Endfor
?'Tong s=',s
Return
Procedure TinhTich
p=1
For i=1 to 10
p=p*i
Endfor
?'Tich p=',p
Return
Lnh sau:
On Pad LuongGiac Of Toan Activate Popup LG
Gii thch:
Gn Pad LuongGiac ca Menu Toan vi Popup LG v kch hot lun
7.3 Window
Ta nh ngha Window nh sau
Define Window <Window Name> From <dong1, ct1>To<dng2, ct 2>
[Title<expC1>] [Footer <expC2>]
[System | Double |Panel |None |<border string>]
[Close | Noclose]
[Float | Nofloat]
[Shadow | Noshadow] [Fill<exC3>]
[Color scheme<expN | Color<color list]
In[Window] <Name> | In Screen]

[Title<expC1>] : Nu chn ca s s c tiu trn l <expC1>


[Footer <expC2>]: Nu chn ca s s c tiu di l <expC2>
[System | Double |Panel |None |<border string>]
ng vin ging nh ng vin ca ca s h thng nu chn System
ng vin kp nu chn Double
ng vin to nu chn Panel

ELEC

Trang 96

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Khng ng vin nu chn None


ng vin l k t nu chn <border string>
[Close | Noclose]: Ca s ng c hoc khng ng c
[Float | Nofloat]: Ca s di chuyn c hoc khng di chuyn c
[Shadow | Noshadow]: Ca s c bng hoc khng
[Fill<exC3>]: Ca s c lp y bi <expC3>
V d:
Clear
Define Window Win1 From 1,2 To 10,20 Title 'Ca s 1' double Close
Define Window Win2 From 12,2 To 20,20 Title 'Ca s 2' double Close
Activate Window Win1
?'Cho ban, ti ang ca s Win1'
Deactivate Window Win1
Activate Window Win2
?'Cho bn, ti n ca s Win2'
Deactivate Window Win2
Chng trnh trn ta nh ngha hai ca s, kch hot ca s Win1 v hin th
trong ca s : 'Cho bn, ti ang ca s Win1'. Sau thi kch hot ca s
bng lnh Deactivate Window Win1.
Tip theo kch hot ca s Win2 v hin th trong ca s : 'Ch o bn, ti
n ca s Win2. Sau thi kch hot ca s bng lnh Deactivate
Window Win2
Gi s v d 2 phn 1.2.3 ta thit k nh sau:
1. 1. Ca s th nht c tn WinMenu hin th Menu Toan
2. 2. Ca s th hai c tn WinSin hin th kt qu Sin
3. 3. Ca s th ba c tn WinCos hin th kt qu Cos
4. 4. Ca s th t c tn WinTong hin th kt qu Tong
5. 5. Ca s th nm c tn WinTich hin th kt qu Tich
6. 6. Thm mt Pad thit lp Procedure Thoat
Chng trnh s nh sau:
Chng trnh 1.3
Clear
Define Window WinMenu From 1,1 To 10,60 Title 'Ca s Menu'
Define Window WinSin From 1,35 To 5,75 Title 'Ca s cha sin'
Define Window WinCos From 6,35 To 10,75 Title 'Ca s cha Cos'
Define Window WinTong From 11,35 To 15,75 Title 'Ca s cha Tng'
Define Window WinTich From 16,35 To 20,75 Title 'Ca s cha Tich'
Define Menu Toan
Define Pad LuongGiac Of Toan Prompt 'bi tp lng gic '
Define Pad DaiSo Of Toan Prompt 'bi tp i s '
ELEC

Trang 97

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Define Pad Thoat Of Toan Prompt 'Thot '


Define Popup LG
Define Bar 1 Of LG Prompt ' Tnh sin
Define Bar 2 Of LG Prompt ' Tnh Cos

'
'

On Selection Popup LG Do DieuKhien With Bar(), Popup()


On Selection Pad Thoat Of Toan Do Thoat
Define Popup DS
Define Bar 1 Of DS Prompt ' Tnh tng '
Define Bar 2 Of DS Prompt ' Tnh tch '
On Selection Popup DS Do DieuKhien With Bar(), Popup()
On Pad LuongGiac Of Toan Activate Popup LG
On Pad DaiSo Of Toan Activate Popup DS
Activate Window WinMenu
Activate Menu Toan
Procedure DieuKhien
Parameter TsBar,TsPopup
Do Case
Case TsBar=1 and TsPopup='LG'
Do TinhSin
Case TsBar=2 and TsPopup='LG'
Do TinhCos
Case TsBar=1 and TsPopup='DS'
Do TinhTong
Case TsBar=2 and TsPopup='DS'
Do TinhTich
Endcase
Return
Procedure TinhSin
Activate Window WinSin
For i=1 to 1000
?i,sin(i)
Endfor
Return
Procedure TinhCos
Activate Window WinCos
For i=1 to 1000
ELEC

Trang 98

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

?i,Cos(i)
Endfor
Return
Procedure TinhTong
Activate Window WinTong
s=0
For i=1 to 1000
s=s+i
Endfor
?'Tong s=',s
Return
Procedure TinhTich
Activate Window WinTich
p=1
For i=1 to 10
p=p*i
Endfor
?'Tich p=',p
Return
Procedure Thoat
Deactivate Window All
Deactivate Menu All
Return
7.4 Mt s lnh khc
7.4.1 Move Window
Lnh c dng sau:
MOVE WINDOW <Window Name> TO <dng, ct>
Lnh trn cho php dch chuyn ca s n to <d ng, ct>
V d:
CLEAR
DEFINE WINDOW Win1 FROM 1,4 TO 5,34 PANEL
ACTIVATE WINDOW Win1
?'Ti ang ch c'
WAIT WINDOW 'n phm di chuyn ca s'
MOVE WINDOW Win1 TO 10,15
?'Ti n ni mi ri'
for i=1 to 100
ELEC

Trang 99

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

?i, sqrt(i)
Endfor
RELEASE WINDOW Win1
Trong chng trnh trn ta cn thy hai lnhT:
1. WAIT WINDOW 'n phm di chuyn ca s'
Lnh ny ch n mt phm bt k di chuyn ca s
2. RELEASE WINDOW Win1
Lnh ny xo ca s khi b nh.
7.4.2 Giao din m File bng MEMU POPUP
Gi s trn a th mc hin thi c nhiu tp *.dbf. Ta c th xy dng mt
giao din m tp v x l tp nh sau:
SET TALK OFF
CLOSE DATABASE
CLEAR
DEFINE POPUP ChonFile FROM 2,2 TO 7, 14 PROMPT FILES LIKE *.dbf ;
TITLE 'Cua so File'
ON SELECTION POPUP ChonFile DO MoFile WITH PROMPT ()
ACTIVATE POPUP ChonFile
PROCEDURE MoFile
PARAMETER a
USE &a
BROWSE
RETURN
7.4.3 Giao din thng qua MEMU POPUP xc nh ni dung tr ng
STT

1 Nguyn Th Vn
2 L Th Phng
3 Bi Tun
4 Trn Th Hong
5 Ng Tun
6 Hong
7 Phm Kim
8 Nguyn Qunh
9 Phm Vn

HOTEN

NGAYSINH

Anh
Thanh
Bo
Hoa
Thu
Chu
Th
Hon
Tun

22-06-81
21-06-81
04-04-80
02-02-80
24-05-80
02 -09-80
11-12-81
29-09-78
15-07-79

TINH

Ngh an
Thi bnh
H ni
Hi phng
Thanh ho
Lo cai
Thi nguyn
Qung bnh
Ho bnh

on chng trnh sau a ni dung trng HOTEN thnh cc Bar ca


MENU POPUP:

ELEC

Trang 100

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

SET TALK OFF


CLOSE DATABASE && ng t t c cc tp CSDL
CLEAR
USE NhanSu
DEFINE POPUP ChonField FROM 2,2 TO 7, 14 PROMPT FIELD HOTEN ;
TITLE 'Cua so Field'
ON SELECTION POPUP ChonField DO MoField WITH PROMPT ()
ACTIVATE POPUP ChonField
PROCEDURE MoField
PARAMETER a
? 'Bn chn ngi c tn:', a
RETURN
7.4.4 Lnh dch chuyn v t kch c cho MENU POPUP
CLOSE DATABASE
DEACTIVATE POPUP ALL
CLEAR
DEFINE POPUP pop FROM 2,2 TO 7, 14 PROMPT FILES LIKE *.dbf TITLE
'Tep CSDL'
ACTIVATE POPUP pop NOWAIT && Kch ho t v khng ch
=CHRSAW(4) && Ch 4 giy
MOVE POPUP pop BY 5,5 && D ch xung
=CHRSAW(2)
SIZE POPUP pop BY 15,15 && phng to thm ln
=CHRSAW(2)
SIZE POPUP pop BY -5,-5 && Gim bt i
=CHRSAW(2)
MOVE POPUP pop BY -5,-5
=CHRSAW(2)
ACTIVATE POPUP pop && Kch ho t v ch
DEACTIVATE POPUP pop && Thi kch ho t
RELEASE POPUP pop && Xo MENU POPUP kh i b nh
7.4.5 Dch chuyn ca s
DEFINE WINDOW Win1 FROM 5,4 TO 15,34 PANEL TITLE 'Window'
ACTIVATE WINDOW Win1
WAIT WINDOW 'n phm di chuyn ca s'
MOVE WINDOW Win1 TO 10,15 && D ch n to (10,15)
WAIT WINDOW 'n phm xo ca s khi b nh'
RELEASE WINDOW Win1 && Xo c a s khi b nh
ELEC

Trang 101

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

7.4.6 MENU H thng


Ga s ta mun to ra mt MENU ng vai tr MENU h thng, khi cn kch
hot ta ch vic n phm ALT hoc F10.
V d to mt MENU h thng ngang bao gm 3 pad:
Pad 1 c tn: Chng trnh 1
Pad 2 c tn: Chng trnh 2
Pad 3 c tn: Chng trnh 3
Khi chn pad 1 th chy th tc 1 c tn Proc1 nm trong tp chng trnh
Prog.prg
Khi chn pad 2 th chy th tc 2 c tn Proc2 nm trong tp chng trnh
Prog.prg
Khi chn pad 3 th chy th tc 3 c tn Proc3 nm trong tp chng trnh
Prog.prg
Ta to MENU h thng nh sauT:
Modi comm HeThong <Enter>
CLEAR
SET SYSMENU SAVE && Lu gi MENU H thng
SET SYSMENU TO && ng MENU H thng ca FoxPro
DEFINE PAD pad1 OF _MSYSMENU PROMPT 'Chng tr nh 1'
DEFINE PAD pad2 OF _MSYSMENU PROMPT ' Chng trnh 2'
DEFINE PAD pad3 OF _MSYSMENU PROMPT 'Chng tr nh 3'
ON SELECTION PAD pad1 OF _MSYSMENU DO Pro1 in Prog
ON SELECTION PAD pad2 OF _MSYSMENU DO Pro2 in Prog
ON SELECTION PAD pad3 OF _MSYSMENU DO Pro3 in Prog
Sau y ta to chng trnh c tn Prog.prg cha 3 th tc proc1, proc2 v proc3
nh sau:
Modi comm Prog.prg
PROCEDURE Proc1
?' Cho bn ti l Proc1 nm trong tp Prog.prg y'
RETURN
PROCEDURE Proc2
?' Tnh cn ca cc s t 1 n 1000'
For i=1 to 1000
?i,sqrt(i)
EndFor
RETURN
Procedure Proc3
?' Tnh sin ca cc s t 1 n 1000'
For i=1 to 1000
ELEC

Trang 102

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

?i,sin(i)
EndFor
Return
Sau y l thao tc khi ch y chng trnh:
Bc 1: Chy chng trnh to menu h thng:
DO HeThong <Enter>
Say khi n Enter th mt MENU h thng c to ra v ngay lp tc thot khi
chng trnh, con tr tr v ca s lnh.
Bc 2: n phm ALT hoc F10 kch hot MENU h thng va to, chn
mc Pad tng ng vi chng trnh mun chy v n Enter
Ch : Mun hu b MENU H thng va mi to, thit lp li MENU h thng
ca FoxPro, t ca s lnh ta g : SET SYSMENU TO DEFAULT <Enter>
7.4.7 Lu ca s vo bin nh v phc hi ca s khi cn
SET SAFETY OFF
CLEAR
DEFINE WINDOW CuaSo1 FROM 2,1 TO 13,55 panel TITLE 'C a s'
ACTIVATE WINDOW CuaSo1
WAIT WINDOW '? n phm tip tc'
SAVE WINDOW CuaSo1 TO Bien && Lu c a s vo bin nh c tn Bien
CLEAR WINDOWS && Xo c a s c tn CuaSo1
WAIT 'n phm'
RESTORE WINDOW CuaSo1 FROM Bien
FOR i=1 TO 1000
?i,sin(i)
NEXT
WAIT 'an phim'
DEACTIVATE WINDOW CuaSo1
7.4.8 Lu mn hnh vo bin nh v phc hi ca s khi cn
? 'Cho bn'
? 'Ti l sinh vin khoa Tin h c Qun l'
SAVE SCREEN TO Bien
CLEAR
WAIT 'Mn hnh khng cn g - n phm!'
RESTORE SCREEN FROM Bien
7.4.9 Menu dn xut
Menu dn xut l Menu m mt hoc nhiu thnh phn (cc Barc) ca mt
POPUP li dn n mt hoc nhiu POPUP khc v c th li mt hoc nhiu
thnh phn ca POPUP mi ny li dn n mt hoc nhiu POPUP khc na
v.v..
V d ta thit k mt MENU nh sau:
ELEC

Trang 103

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

MENU ngang gm hai PAD: Mon1 (Bnh gi) v Mon2 ( ung)


POPUP ng vi Mon1 c: Bar 1 (Bnh nhn hoa qu), Bar 2 (Bnh nhn
tht)
1. 1. Trong Bar 1 (Bnh nhn hoa qu ) li dn n mt POPUP
khc m cc Bar nh sau: Bnh nhn cam, Bnh nhn to, Bnh
nhn l v Bnh nhn chui
2. 2. Trong Bar 2 (Bnh nhn th t) li dn n mt POPUP khc
m cc Bar nh sau: Bnh nhn th t ln, Bnh nhn tht b v
Bnh nhn tht G:
- Bnh nhn tht g li c: Tht g cng nghip v tht g ta
POPUP ng vi Mon2 c: Bar 1 (C ph), Bar 2 (Nc chanh)
1. 1. Trong Bar 1 (C ph) li dn n mt POPUP khc gm hai
Bar (Bar 1 =C ph nu c ng, Bar 2= C ph nu khng
ng)
V.v..
S chn mt loi bnh: Gi s ta chn bnh nhn tht g ta
BNH GI

ung

Bnh nhn hoa qu

Bnh nhn tht


Bnh nhn tht

Bnh nhn tht b


ln
Bnh nhn tht g Bnh nhn tht g cng

Bnh nhn tht g ta


nghip

S chn ung: (Gi s ta chn C ph nu khng ng)


BNH GI

ung
C
Nc
chanh

ph C ph nu c ng
C

ph

nu

khng

ng
Chng trnh nh sau:
CLEAR
ELEC

Trang 104

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

SET TALK OFF


CLOSE DATABASE
DEACTIVATE WINDOW ALL
DEACTIVATE MENU ALL
DEFINE WINDOW Win1 FROM 10,0 TO 23,39 PANEL
DEFINE MENU AnSang
DEFINE PAD Mon1 OF AnSang PROMPT 'Bnh ng t'
DEFINE PAD Mon2 OF AnSang PROMPT ' ung '
ON PAD Mon1 OF AnSang ACTIVATE POPUP C1M1
ON PAD Mon2 OF AnSang ACTIVATE POPUP C2M2
DEFINE POPUP C1M1 MARGIN MESSAGE 'Cc lo i bnh khc nhau'
DEFINE BAR 1 OF C1M1 PROMPT 'B nh nhn hoa qa'
DEFINE BAR 2 OF C1M1 PROMPT 'Bnh nhn th t '
ON BAR 1 OF C1M1 ACTIVATE POPUP C1M1B1
ON BAR 2 OF C1M1 ACTIVATE POPUP C1M1B2
DEFINE POPUP C1M1B1 MARGIN MESSAGE 'Cc Lo i nhn hoa qa'
DEFINE BAR 1 OF C1M1B1 PROMPT 'Bnh nhn cam '
DEFINE BAR 2 OF C1M1B1 PROMPT 'Bnh nhn to '
DEFINE BAR 3 OF C1M1B1 PROMPT 'Bnh nhn l '
DEFINE BAR 4 OF C1M1B1 PROMPT 'Bnh nhn chu i'
DEFINE POPUP C1M1B2 MARGIN MESSAGE 'Cc lo i nhn tht'
DEFINE BAR 1 OF C1M1B2 PROMPT 'Bnh nhn th t ln'
DEFINE BAR 2 OF C1M1B2 PROMPT 'Bnh nhn th t b '
DEFINE BAR 3 OF C1M1B2 PROMPT 'Bnh nhn th t g '
ON BAR 3 OF C1M1B2 ACTIVATE POPUP C1M1B2C1
DEFINE POPUP C1M1B2C1 MARGIN
DEFINE BAR 1 OF C1M1B2C1 PROMPT 'Bnh nhn th t g cng nghip'
DEFINE BAR 2 OF C1M1B2C1 PROMPT 'Bnh nhn th t g ta
'
DEFINE POPUP C2M2 MARGIN MESSAGE 'Cc lo i nc ung'
DEFINE BAR 1 OF C2M2 PROMPT 'C ph '
DEFINE BAR 2 OF C2M2 PROMPT 'N c chanh'
ON BAR 1 OF C2M2 ACTIVATE POPUP C2M2B1
DEFINE POPUP C2M2B1 MARGIN MESSAGE 'Cc Loi c ph'
ELEC

Trang 105

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

DEFINE BAR 1 OF C2M2B1 PROMPT 'C ph en'


DEFINE BAR 2 OF C2M2B1 PROMPT 'Ca ph nu'
ON BAR 2 OF C2M2B1 ACTIVATE POPUP C2M2B2C2
DEFINE POPUP C2M2B2C2 MARGIN MESSAGE 'Cc lo i c ph nu'
DEFINE BAR 1 OF C2M2B2C2 PROMPT 'C ph nu c ng '
DEFINE BAR 2 OF C2M2B2C2 PROMPT 'C ph nu khng ng'
ON SELECTION POPUP ALL DO Chon
ACTIVATE MENU AnSang
PROCEDURE Chon
ACTIVATE WINDOW Win1
CLEAR
?Popup(), Prompt()
WAIT 'n phm'
RETURN
Bi tp:
1. Phn 7.4.1 (Di chuyn ca s)
2. Phn 7.4.2 (M File bng MENU POPUP)
3. Phn 7.4.3 (M ni dung Field bng MENU POPUP)
4. Phn 7.4.4 (Di chuyn MENU POPUP)
5. Phn 7.4.5 (Di chuyn Window)
6. Phn 7.4.6 (Menu H thng)
7. Phn 7.4.7 (Lu v phc hi ca s)
8. Phn 7.4.8 (Lu v phc hi ni dung mn hnh)
9. Phn 7.4.9 (Menu dn xut)

ELEC

Trang 106

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 8. To cc by trong chng trnh


8.1 Lnh ON ERROR
Khi gp mt li bt k ta mun ch ng trnh s thc hin mt chng trnh con
no hoc thng bo dng li xut hin. Nh qu tr nh m ta c th vt
qua li lm mt vic khc hoc sa li . Lnh ON ERRORS c dng
sau:
ON ERROR [<Lnh>]
Khi gp li chng trnh s thng bo li bng cc h m sau:
Hm ERROR ()thng bo m l i
Hm MESSAGE() thng bo l i
Hm MESSAGE (1) hin th lnh sai
Hm LINENO() thng bo s th t dng b li
Lnh ON ERROR thng c tham s cho php hu b by li.
V d:
set talk off
clear
ON ERROR DO ThongBao WITH MESS(1), ERROR(), MESS(), LINENO()

?sin(9
USU Nhansu
Brws
ON ERROR
PROCEDURE ThongBao
PARAMETER a, b, c,d
? 'Sai lnh no?
: ' +a
? 'M ca li
: ' + STR(b)
? 'Sai g?
:'+c
?' Dng no sai
:'+Str(c)
?'----------------------------------------------- '
RETURN
8.2 Lnh ON KEY
Lnh c dng nh sauL:
ON KEY [<Lnh>]
Khi n mt phm bt k th lnh c kch hot v thc hin <Lnh>.
Chng trnh sau ta to mt vng lp, khi chng trnh ang chy nu n mt
phm bt k thi lnh ON KEY c kch hot v chng trnh con c tn
TamDung c thc hin:
SET TALK OFF
USE khoia
ELEC

Trang 107

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

CLEAR
ON KEY DO TamDung
FOR i=1 to 10000
?i,sin(i),cos(i)
Next
PROCEDURE TamDung
h= INKEY()
?'Bn g phm:',H
WAIT
RETURN
8.3 Lnh ON KEY =
Lnh c dng:
ON KEY [=<ExpN] [<Lnh>]
Trong <ExpN> l m phm hoc t hp phm. Bng m phm nh sau:
M phm
Tn phm khi g
Alt+Q n Alt +P
272-281
Alt+A n Alt +L
286-294
Alt+Z n Alt +M
300- 306
F1 n F10
315-324
HOME
327
328
Up arrow ( )
PgUp
329
331
Left arrow ( )
333
Right arrow ( )
End
335
336
Down arrow ( )
PgDn
337
Ins
338
Ins
339
Shift+F1 n Shift +F10
340-349
Ctrl+F1 n Ctrl +F10
350 - 359
Alt+F1 n Alt +F10
360 - 369
Ctrl+Print+Scrn
370
Ctrl+left arrow
371
Ctrl+right arrow
372
Ctrl+End
373
Ctrl+PgDn
374
Ctrl+Home
375
Alt+1 n Alt +0,Alt+-,Alt+=
376 - 387
Ctrl+PgUp
388
ELEC

Trang 108

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

V d 1:

CLEAR
ON KEY = 315 DO TroGiup WITH VARREAD()
SET TALK OFF
USE khoia
SCATTER TO temp
DEFINE WINDOW VAO FROM 6,10 TO 20,70 PANEL
ACTIVATE WINDOW VAO
DO WHILE NOT EOF()
@ 1,3 SAY 'Ho va dem: ' GET hodem
@ 3,3 SAY 'Ten : '
GET ten
@ 5,3 SAY 'Diem toan: '
GET toan
@ 7,3 SAY 'Diem ly : '
GET ly
@ 9,3 SAY 'Diem hoa : '
GET hoa
@ 11,8
SAY 'An ESC de thoat hoac an F1 de tro giup'
READ
SKIP
ENDDO
DEACTIVATE WINDOW VAO
RELEASE WINDOW VAO
PROCEDURE TroGiup
PARAMETERS TenTruong
CLEAR
DEFINE WINDOW HelpMe FROM 1,0 TO 5,79
ACTIVATE WINDOW HelpMe
@ 0,20 SAY 'y l tn tr ng c tn: ' + TenTruong+ ' bn ch vo DL hoc
chp nhn'
WAIT
RELEASE WINDOW HelpMe
RETURN
8.4 Lnh ON KEY LABEL
Lnh c dng sau:

ON KEY [LABEL <Nhn phm >] [<Lnh>]


Sau y l cc nhn phm:
Tn nhn
Shift+F11, Shift+F12
Alt+F1 n Alt +F12
ELEC

Cch vit
Shift+F11 ...
Alt+F1, Alt+F2 ...
Trang 109

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Alt+0 n Alt -9
Alt+A n Alt +Z
Alt+PgUp
Alt+PgDn
Ctrl+left arrow
Ctrl+right arrow
Ctrl+Home
Ctrl+End
Ctrl+PgUp
Ctrl+PgDn
Ctrl+A n Ctrl +Z
Right Mouse
Left Mouse
Mouse
Escape

Alt+0, Alt+1 ...


Alt+A, Alt+B ...
Alt+PGUP
Alt+PGDN
Ctrl+LEFTARROW
Ctrl+RIGHTARROW
Ctrl+HOME
Ctrl+END
Ctrl+PGUP
Ctrl+PGDN
Ctrl+A, Ctrl+B ...
RIGHTMOUSE
LEFTMOUSE
MOUSE
ESC

8.5 Lnh ON ESCAPE


Lnh c dng sau:
ON ESCAPE <Lnh>
Khi n phm ESC th <Lnh> c thi hnh
V d chng trnh:
SET TALK OFF
CLEAR
ON KEY LABEL RIGHTARROW? 'y l phm d ch phi (Right Arrow) '
ON KEY LABEL LEFTARROW? 'y l phm d ch tri (Left Arrow)'
ON KEY LABEL UPARROW? 'y l phm ln d ng (Up Arrow)'
ON KEY LABEL DNARROW? 'y l phm xu ng mt dng (Down Arrow)'
SET ESCAPE ON
Thoat=.T.
ON ESCAPE Thoat=.F.
@ 2,0 SAY 'n cc phm , , v xem lnh ON KEY LABEL, n ESC
thot'
DEFINE WINDOW Input FROM 10,20 TO 14,60 DOUBLE
ACTIVATE WINDOW Input
DO WHILE Thoat
ENDDO
DEACTIVATE WINDOW Input
ON KEY
8.6 Lnh ON READERROR
Lnh c dng:
ELEC

Trang 110

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

ON READERROR [<Lnh>]
Khi nhp d liu nu gp li th thc hin <Lnh>
V d chng trnh:
CLOSE DATABASES
SET STATUS OFF
SET TALK OFF
USE KhoiA
ON READERROR DO LoiNhap
@ 10,13 SAY 'Vo h v m : ' GET HODEM
@ 12,13 SAY 'Vo Tn
: ' GET Ten
@ 14,13 SAY 'Vo s bo danh : '
@ 14,30 GET SBDC Valid Val(right(sbdc,4))<=3000
READ
PROCEDURE LoiNhap
?'Khng c s bo danh '+sbdc
WAIT 'n phm tip tc'
Clear
RETURN

ELEC

Trang 111

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 9: Mng v chuyn giao d liu gia cc mi tr ng


9.1 Mng
Mng c nh ngha nh sau:
DIMENSION <Bin mng >(<expN1> [, <expN2>])
a. Mng mt chiu
Gi s ta khai bo mng A c 10 th nh phn:
DIMENSION A(10)
Th t truy cp mng nh sau: A(1), A(2), A(3), A(4),...,A(10)
b. Mng hai chiu
DIMENSION B(2,4)
Th t truy cp mng nh sau:
B(1,1), B(1,2), B(1,3), B(1,4)
B(2,1), B(2,2), B(2,3), B(2,4)
Ta c th khai bo ngn gnT:
DIMENSION A(10),B(2,4)
gn gi tr ban u cho mng ta dng lnh gn:
A=0 hay STORE 0 TO A
B='Tin hc' hay STORE 'Tin hc' TO B
iu c ngha l cc thnh phn ca mng A: A(1),...,A(10) u bng 0 v
cc thnh phn ca mng B:
B(1,1),B(1,2) v.v..u c cng gi tr 'Tin hc'
Gi s ta c mng:
DIMENSION M(2)
STORE 'A' TO M(1)
STORE 'B' TO M(2)
DISPLAY MEMORY LIKE M
Sau hin ln:
M
Pub A
( 1) C "A"
( 2) C "B"
Cn nu:
DIMENSION M(4)
STORE 'A' TO M(1)
STORE 'B' TO M(2)
DISPLAY MEMORY LIKE M
Sau hin ln:
M Pub A
( 1) C "A"
( 2) C "B"
( 3) L .F.
ELEC

Trang 112

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

( 4)

L .F.

Hy quan st cc v d sau:
DIMENSION M(4)
STORE 'E' TO M(1)
STORE 'F' TO M(2)
STORE 'G' TO M(3)
STORE 'H' TO M(4)
DISPLAY MEMORY LIKE M
M
Pub A
( 1) C "E"
( 2) C "F"
( 3) C "G"
( 4) C "H"
Cn nu:
DIMENSION M(2,3)
DISPLAY MEMORY LIKE M
M
Pub A
( 1, 1) C "E"
( 1, 2) C "F"
( 1, 3) C "G"
( 2, 1) C "H"
( 2, 2) L .F.
( 2, 3) L .F.
Nh vy khi mng 2 chiu chuyn sang mt chiu, th ni dung ca mng hai
chiu c sao chp t mng mt chiu theo trt t trn.
V d:
DIMENSION ViDu(2,3)
STORE 'Tm bit' TO ViDu(1,2)
STORE 'Hello' TO ViDu(2,2)
STORE 99 TO ViDu(6)
STORE .T. TO ViDu(1)
DISPLAY MEMORY LIKE ViDu
Sau khi chy s c kt qu:
VIDU
( 1,
( 1,
( 1,
( 2,
( 2,
ELEC

1)
2)
3)
1)
2)

Priv A
L .T.
C "Tm bit"
L .F.
L .F.
C "Hello"
Trang 113

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

( 2, 3)

99 ( 99.00000000)

9.2 Copy mng


copy ni dung ca mng a (ngun) sang mng b (ch) ta d ng:
=COPY (A,B)
V d:
set talk off
clear
dime a(4),b(4), c(5)
a(1)=2
a(2)=5
a(3)=99
a(4)=1234
=ACOPY(a, b)
?B(1)
?B(2)
?B(3)
?B(4)
=ACOPY(b,c)
?c(1)
?c(2)
?c(3)
?c(4)
?C(5)
9.3 Mt s thut ton v mng
a. Tm max ca mng
Gi s ta tm phn t ln nht ca mng 20 thnh phn. Ta lp trnh nh sau:
Set talk off
Clear
Dimension A(20)
A=0
For i=1 to 20
Input 'Vo phn t A ( '+Str(i,2)+' )=' To A(i)
Next
Max=a(1)
For i=2 to 20
If max<=a(i)
max=a(i)
next
?'Phn t ln nht l:',max
ELEC

Trang 114

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

b. Tm min ca mng
Gi s ta tm phn t nh nht ca mng 20 th nh phn. Ta lp trnh nh sau:
Set talk off
Clear
Dimension A(20)
A=0
For i=1 to 20
Input 'Vo phn t A ( '+Str(i,2)+' )=' To A(i)
Next
Min=a(1)
For i=2 to 20
If min>=a(i)
min=a(i)
next
?'Phn t nh nht l:',max
c. Xp mng
Gi s ta xp gim dn cc phn t ca mng 20 th nh phn, ta lp trnh nh
sau:
Set talk off
Clear
Dimension A(20)
A=0
For i=1 to 20
Input 'Vo phn t A ( '+Str(i,2)+' )=' To A(i)
Next
for i=1 to 20
for j=i+1 to 19
if a(i)>a(j)
tg=a(i)
a(i)=a(j)
a(j)=tg
Endif
9.4 Chuyn bn ghi ra mng hoc bin nh
d trnh by ta nn da vo mt tp CSDL, gi s ta c tp CSDL c t n
KHOIA.DBF nh sau:
STT SBDC
HODEM
TEN
NGAYSINH KV DT
TOAN LY HOA TONG TIEUSU
1 99A0001 Nguyn Th H 171279 1 01 6.5 5.0 5.5 17.0
2 99A0002 Trnh Vnh Anh 280278 2 02 5.0 3.5 4.0 12.5
3 99A0003 Vn
Hng 280679 3 03 7.0 5.5 6.0 18.5
4 99A0004 Trn Thanh Hi 011080 1 01 8.5 7.0 7.5 23.0
ELEC

Trang 115

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

5 99A0005 Phan Trng Thanh 241280 1 5A 9.0 7.5 8.0 24.5


6 99A0006 m Hu
Thng 190581 1 5B 3.0 1.5 2.0 6.5
7 99A0007 L Thanh H ng 171177 2 09 4.5 3.0 3.5 11.0
8 99A0008 Nguyn Phi Chung 020979 2 08 5.5 4.0 4.5 14.0
9 99A0009 Trn Tun Bo 090280 2 07 6.5 5.0 5.5 17.0
10 99A0010 Nguyn nh Thu 151179 2 06 7.0 5.5 6.0 18.5
11 99A0011 Nguyn Vn Hong 100177 2 09 8.5 7.0 7.5 23.0
12 99A0012 inh Vit Hu 020180 2 09 9.0 7.5 8.0 24.5
13 99A0013 Nguyn Chu 071180 2 04 10.0 8.5 9.0 27.5
14 99A0014 L Xun Thanh 200880 2 04 2.5 1.0 1.5 5.0
15 99A0015 Phm Quc Bnh 140975 2 02 4.5 3.0 3.5 11.0
16 99A0016 on Mnh Khanh 030280 3 10 5.0 3.5 4.0 12.5
17 99A0017 Nguyn Vn Khoa 031278 3 11 6.0 4.5 5.0 15.5
18 99A0018 T Hng
An 081180 2 09 8.0 6.5 7.0 21 .5
19 99A0019 Trng n 201180 2 07 7.0 5.5 6.0 18.5
20 99A0020 nh
Khi 190479 2 08 5.0 3.5 4.0 12.5
Trong cc tn Trng nh sauT:
STT
: S th t
HODEM
: H m
NGAYSINH
: Ngy sinh
KV
: Khu vc
DT
: i tng
TOAN
: im ton
LY
: im l
HOA
: im ho
TONG
: Tng im
TIEUSU
: Tiu s
Lnh c dng nh sau:
SCATTER [FIELDS <field list>
| FIELDS LIKE <skel>
| FIELDS EXCEPT <skel>]
TO <array> | TO <array> BLANK
| MEMVAR
Copy d liu t bn ghi hin thi sang mng hoc sang cc bin nh.
SCATTER t ng to ra cc bin nh hoc mng nu chng ch a tn ti.
FIELDS <field list>
Ch mt s trng trong danh sch trng <field list> mi c Copy
FIELDS LIKE <skel> | FIELDS EXCEPT <skel>
Chng ta c th copy cc trng vo bin nh hoc mng bng d ng t kho
LIKE hoc EXCEPT
ELEC

Trang 116

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

SCATTER FIELDS LIKE A*,P* TO my array


SCATTER FIELDS LIKE A*,P* EXCEPT PARTNO* TO myarray
TO <array>
Ni dung cc trng c a vo mng <Array>
TO <array> BLANK
Mt mng c to vi cc phn t trng.
MEMVAR
Chuyn ni dung bn ghi ra cc bin nh (cc bin n h mang tn trngc) v
vit nh sau: m.SBDC, m.HODEM v.v..
V d1:
set talk off
clear
use khoia
copy to khoia1
use khoia1
Dimension A(10)
do while not eof()
scatter to a
?a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8),a(9),a(10)
Skip
Enddo
Gi s khng khai bo mng th my s t ng to ra mng lu bn ghi
set talk off
clear
use khoia
copy to khoia1
use khoia1
do while not eof()
scatter to a
?a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8),a(9),a(10)
Skip
Enddo
V d 2: chuyn ni dung bn ghi ra bin nh
SET TALK OFF
USE Khoia
COPY TO Khoia1
USE Khoia1
SCATTER MEMVAR MEMO
&& ct d liu c
DEFINE WINDOW Win1 FROM 5,10 to 20,70 PANEL
ELEC

Trang 117

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

ACTIVATE WINDOW Win1


@ 1,3 SAY 'S bo danh: '
GET m.sbdc
@ 3,3 SAY 'H m
:'
GET m.hodem
@ 5,3 SAY 'Tn
:'
GET m.ten
@ 7,3 SAY 'Ngy sinh : '
GET m.Ngaysinh
@ 7,18 SAY 'Khu vc : ' GET m.KV
@ 9,13 SAY 'Tiu s
:'
@ 9,23 EDIT m.Tieusu SIZE 3,26
@ 13,13 SAY 'n Escape thay i'
READ
? m.sbd, m.hodem, m.ten, m.ngaysinh, m.kv
IF LASTKEY() != 27
GATHER MEMVAR
WAIT WINDOW 'Ct s thay i' NOWAIT
ELSE
WAIT WINDOW 'Khng ct s thay i' NOWAIT
ENDIF
DEACTIVATE WINDOW Win1
BROWSE
USE
9.5 Chuyn d liu t mng vo bn ghi
GATHER FROM <array> | MEMV AR
[FIELDS <field list>
| FIELDS LIKE <skel>
| FIELDS EXCEPT <skel>]
Lnh GATHER lu d liu t mng hoc t bin nh v o bn ghi hin
thi.
FROM <array>

Copy t mng

MEMVAR
copy vo bn ghi t bin nh
FIELDS <field list>
Ch nhng trng lit k trong <field list> mi nhn d liu vo
FIELDS LIKE <skel> | FIELDS EXCEPT <skel>
V d:
GATHER FROM myarray FIELDS LIKE A*,P*
GATHER FROM myarray FIELDS LIKE A*,P* EXCEPT PARTNO*
ELEC

Trang 118

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

V d:
SET TALK OFF
USE Khoia
COPY TO Khoia1
USE Khoia1
SCATTER MEMVAR MEMO
&& save old values
DEFINE WINDOW Win1 FROM 5,10 to 20,70 PANEL
ACTIVATE WINDOW Wind1
@ 1,3 SAY 'S bo danh: '
GET m.sbdc
@ 3,3 SAY 'H m
:'
GET m.hodem
@ 5,3 SAY 'Tn
:'
GET m.ten
@ 7,3 SAY 'Ngy sinh : '
GET m.Ngaysinh
@ 7,18 SAY 'Khu vc : ' GET m.KV
@ 9,13 SAY 'Tiu s:'
@ 9,23 EDIT m.Tieusu SIZE 3,26
@ 13,13 SAY 'n Escape thay i'
READ
IF LASTKEY() != 27
GATHER MEMVAR
WAIT WINDOW 'Ct s thay i' NOWAIT
ELSE
WAIT WINDOW 'Khng ct s thay i' NOWAIT
ENDIF
DEACTIVATE WINDOW Wind1
BROWSE
USE

ELEC

Trang 119

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 10: Mt s lnh hiu chnh d liu


10.1 Cc tu chn cao cp ca lnh BROWSE
Lnh BROWSE c dng sau:
BROWSE
[FIELDS <field list>]
[FONT <expC1> [, <expN1>]]
[STYLE <expC2>]
[FOR <expL1>]
[FREEZE <field>]
[KEY <expr1> [, <expr2>]]
[LEDIT]
[REDIT]
[LOCK <expN2>]
[LPARTITION]
[NOAPPEND]
[NOCLEAR]
[NODELETE]
[NOEDIT | NOMODIFY]
[NOLGRID] [NORGRID]
[NOLINK]
[NORMAL]
[NOWAIT]
[PARTITION <expN3>]
[PREFERENCE <expC3>]
[SAVE]
[TIMEOUT <expN4>]
[TITLE <expC4>]
[VALID <expL2>
[ERROR <expC5>]]
[WHEN <expL3>]
[WIDTH <expN5>]
[[WINDOW <window name1>]
[IN [WINDOW] <window name2> | IN SCREEN]]
[COLOR SCHEME <expN6> | COLOR <color pair list>]
BROWSE l mt trong nhng lnh mnh ca FoxPro. S dng BROWSE m
ca s Browse v hin th cc bn ghi ca tp c s d liu. Nu nh bn cm
thy c php qu phc tp th nhiu khi ch cn g BROWSE <Enter> l c th
hiu chnh c cc bn ghi. Nhng mun tn dng c sc mnh ca n bn
ELEC

Trang 120

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

nn tu tng tnh hung c th m s dng cc mnh v t kho ca lnh. Sau


y l m t cc mnh v t kho ca n.
1. [FIELDS <field list>]
Mnh [FIELDS <field list>] nh ngh a cc trng cn hin th, v d:
USE KHOIA
BROWSE FIELD Hodem,ten,sbdc
Nu mun mt trng no khng c php sa ta thm: R vo sau
trng
V d:
USE KHOIA
BROWSE FIELD Hodem,ten,sbdc :R
Nh vy trng SBDC ch c m khng c php sa
C th xc nh rng ca trng nh sau:
USE KHOIA
BROWSE FIELD Hodem,ten,sbdc :R :8
trn trng SBDC ch c (:R) v c rng 8 k t (:8)
Gi s ta khng ch trng SBDSO (S bo danh s) ch c sa t s
bo danh 1 n s bo danh 12, ta vit nh sau:
USE KHOIA
BROWSE FIELD Hodem,ten,sbdso :V=(sbdso<13) :F
Khi dng tu chn: V v : F trn, nu mun c mt thng bo li ta vit
nh sau:
USE KHOIA
BROWSE FIELD Hodem, ten, sbdso :V=(sbdso<13) :F:E='Khng c php'
Nu mun ch nh mt khong gi tr hiu chnh, gi s ch c sa
SBDSO (s c g vo thay cho s c) t 12, 20 ta vit nh sau:
USE KHOIA
BROWSE FIELD Hodem, ten, sbdso :B=12,20
Mun hin th mt tn trng mi thay cho tn trng c ta g nh
sau:
USE KHOIA
BROWSE FIELD Hodem, ten, sbdso :H='So Bao Danh'
Ch c sa nhng bn ghi c SBDSO <12 ta g nh sau:
USE KHOIA
BROWSE FIELD Hodem, ten, sbdso :W=SBDSO<12
2. [FONT <expC1> [, <expN1>]]
Khi chy trong mi trng Windows th <expC1>l tn phng ch (VnTime,
VnTimeH v.v..) cn <expN1>l c phng, nu khng c tham s n y, FoxPro s
dng c phng 10.
V d:
ELEC

Trang 121

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

USE KHOIA
BROWSE FIELD Hodem, ten, sbdso Font '.VnTime', 14
3. [STYLE <expC2>]
Biu thc k t <expC2> xc nh kiu ca phng (B= Bo, I=nghing v.v..)
USE KHOIA
BROWSE FIELD Hodem, ten, sbdso Font '.VnTime', 14 Style 'B'
4. [FOR <expL1>]
iu kin hin th cc bn ghi, v d:
USE KHOIA
BROWSE FIELD Hodem, ten, TongDiem For TongDiem >=16
5. [FREEZE <field>]
Ch cho php hiu chnh trng C <field>, v d:
USE KHOIA
BROWSE FIELD Hodem, ten, TongDiem FREEZE TongDiem
6. [KEY <expr1> [, <expr2>]]
Mnh KEY c dng gii hn phm vi cc bn ghi c hin th, v d:
USE Khoia
INDEX ON SBDSO TO SBDINDEX
BROWSE KEY 1,40
Ngha l ch hin cc bn ghi c s bo danh t 1 n 40
USE Khoia
INDEX ON Ten TO TenIndex
BROWSE KEY 'A', 'N'
Hin th nhng bn ghi c tn vi ch ci u t A n N
USE Khoia
INDEX ON Ten TO TenIndex
BROWSE KEY 'A''
Hin th nhng bn ghi c tn vi ch ci u t A
7. [LEDIT] [REDIT]
[LEDIT] cho php hin th d liu dng BROWSE
[REDIT] cho php chuyn sang hin th dng lnh EDIT hoc CHANGE
8. [LOCK <expN2>]
Cho php c nh <expN2> trng bn tri trong khi vn di chuyn tr sang
phi. <expN2> phi nh hn s lng cc trng hin ra mn hnh.
USE KHOIA
BROWSE FIELD Hodem, ten, TongDiem LOCK 2
9. [LPARTITION]
a tr sang vng bn tri, v d:
USE KHOIA
BROWSE PARTITION 40 LPARTITION

ELEC

Trang 122

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Mnh PARTITION 40 chia ca s th nh hai phn, ng phn cch ng


nm ct 40, bnh thng tr nm bn phi nhng nu c mnh
LPARTITION th tr s c t phn tri.
10. [NOAPPEND]
T kho NOAPPEND s khng cho php ghp cc bn ghi v o sau tp, v d:
USE KHOIA
BROWSE FIELD Hodem, ten, TongDiem NOAPPEND
11. [NOCLEAR]
T kho NOCLEAR bo cho lnh BROWSE li tr n mn hnh mt nh ca
ca s BROWSE sau khi thot, v d:
USE KHOIA
BROWSE FIELD Hodem, ten, TongDiem NOCLEAR
12. [NODELETE]
Khng cho xo cc bn ghi, v d:
USE KHOIA
BROWSE FIELD Hodem, ten, TongDiem NODELETE
13. [NOEDIT | NOMODIFY]
Loi b vic hiu chnh d liu.
USE KHOIA
BROWSE FIELD Hodem, ten, TongDiem NOEDIT
Hoc:
USE KHOIA
BROWSE FIELD Hodem, ten, TongDiem NOMODIFY
14. [NOLGRID] [NORGRID]
Khng hin th ng k dc phn cch cc tr ng ca phn vng bn tri hoc
bn phi, v d:
USE KHOIA
BROWSE PARTITION 40 NOLGRID
15. NOLINK
T kho NOLINK bo cho lnh BROWSE khng ni kt cc phn v ng, ngha
l khi ta di chuyn tr n cc bn ghi khc nhau phn v ng ny th cc bn
ghi phn vng kia vn nm yn, v d:
USE KHOIA
BROWSE PARTITION 40 NOLINK
16. [NORMAL]
Nu ch nh t kho NORMAL th ca s BROWSE vn xut hin m n hnh
mc d c th ang c mt ca s hot ng, v d:
DEFINE WINDOW W1 FROM 1,2 TO 12,40 PANEL
ACTIVATE WINDOW W1
USE KHOIA
BROWSE
ELEC

Trang 123

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

D liu s xut hin trong ca s W1 v ca s BROWSE s kt tha cc tnh


cht nh mu, ZOOM, SIZE v.v.. ca ca s W1, con nu:
DEFINE WINDOW W1 FROM 1,2 TO 12,40 PANEL
ACTIVATE WINDOW W1
USE KHOIA
BROWSE NORMAL
Th d liu s xut hin mn hnh (khng phi trong W1) v n k tha mu,
ZOOM, SIZE v.v..ca chnh ca s BROWSE.
17. [NOWAIT]
Nu c t kho NOWAIT, lnh BROWSE s hin th d liu v sau lm tip
cc lnh trong chng trnh m khng phi g CTRL +W hoc CTRL +END, v
d:
Set talk off
Clear
DEFINE WINDOW w1 FROM 1,2 TO 12,40 PANEL
ACTIVATE WINDOW w1
USE KHOIA
BROWSE
WAIT 'n phm tip tc'
BROWSE NOWAIT &&s hin th d liu nhng khng dng
DEFINE WINDOW w2 FROM 14,20 TO 20,70 PANEL
ACTIVATE WINDOW w2
FOR i=1 TO 1000
?i,sin(i)
NEXT
CLEAR ALL
18. [PARTITION <expN3>]
Tch ca s BROWSE thnh hai phn vng, c ng ngn cch ti ct
<expN3>.
USE KHOIA
BROWSE PARTITION 40
19. [PREFERENCE <expC3>]
T kho PREFERENCE bo cho lnh BROWSE l u ct cc thuc tnh v tu
chn ca ca s BROWSE v tp tin ti nguyn c tn <expC3>, sau
dng li, v d:
USE KHOIA
BROWSE FIELD HODEM,TEN, SBDC COLOR SCHEME 3 PREFERENCE
File1
**** Thot bng CTRL +W********
**** Phc ch li nguyn dng *********
BROWSE PREFERENCE File1
20. [SAVE]
ELEC

Trang 124

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

li trn mn hnh ca s BROWSE v cc trng trc khi thot, v d:


USE KHOIA
BROWSE FIELD HODEM,TEN, SBDC SAVE
21. [TIMEOUT <expN4>]
T kho TIMEOUT bo cho lnh BROWSE ch T <expN4> giy, v d:
USE KHOIA
BROWSE FIELD HODEM,TEN, SBDC TIMEOUT 5
Ch : Ch dng TIMEOUT trong chng tr nh.
22. [TITLE <expC4>]
t tiu cho ca s BROWSE, v d:
USE KHOIA
BROWSE FIELD HODEM,TEN TITLE ' Thi khoi A'
23.[VALID [:F] <expL2> [ERROR <expC5>]]
Ch sa d liu khi tho mn <expL2>, v d:
USE KHOIA
BROWSE VALID KV<=3 AND KV>0 ERROR 'Khng c php'
Ngha l khi sa trng KV (Khu vc), ta ch c th g vo cc s 1,2, 3 m
thi, cn nu g vo khc cc s th c thng bo li <expC5> .
24. [WHEN <expL3>]
Ch hiu chnh khi tho mn iu kin <expL3>
USE KHOIA
BROWSE WHEN KV<=3 AND KV>0
25. [WIDTH <expN5>]
t rng cho cc trng, nu rng thc ca tr ng ln hn <expN5> th
ni dung trng s c cun theo chiu ngang.
USE KHOIA
BROWSE WIDTH 10
26. [[WINDOW <window name1>]
Ca s BROWSE s c hin trong ca s c nh ngha trc .C
DEFINE WINDOW W1 FROM 1,1 TO 20,40 PANEL
USE KHOIA
BROWSE WINDOW W1
27. [IN [WINDOW] <window name2> | IN SCREEN]]
Hin mt ca s bn trong mt ca s khc, v d:
USE KHOIA
DEFINE WINDOW WTo FROM 1,1 TO 20,40 PANEL
DEFINE WINDOW WNho FROM 4,4 TO 15,30 PANEL
ACTIVATE WINDOW Wto
BROWSE WINDOW WNho In Wto
28. [COLOR SCHEME <expN6>| COLOR <color pair list>]
Ch nh lc mu hoc danh sch cc thuc tnh m u. Thng thng
COLOR SCHEME 10 l mu ng m nh.C
ELEC

Trang 125

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

USE KHOIA
BROWSE COLOR SCHEME 5
Hoc:
USE KHOIA
BROWSE COLOR 4

10.2 Cc tu chn cao cp ca Lnh CHANGE v EDIT


CHANGE
[FIELDS <field list>]
[<scope>]
[FOR <expL1>]
[WHILE <expL2>]
[FONT <expC1> [, <expN1>]]
[STYLE <expC2>]
[FREEZE <field name>]
[KEY <expr1> [, <expr2>]]
[LEDIT] [REDIT]
[LPARTITION]
[NOAPPEND]
[NOCLEAR]
[NODELETE]
[NOEDIT | NOMODIFY]
[NOLINK]
[NORMAL]
[NOWAIT]
[PARTITION <expN2>]
[PREFERENCE <expC3>]
[SAVE]
[TIMEOUT <expN3>]
[TITLE <expC4>]
[VALID [:F] <expL3>[ERROR <expC5>]]
[WHEN <expL4>]
[WIDTH <expN4>]
[[WINDOW <window name1>]
[IN [WINDOW] <window name2> | IN SCREEN]]
[COLOR SCHEME <expN5>| COLOR <color pair list>]
Nu khng cung cp [scope] th ALL c thit lp, mi mnh v t kho
khc nh lnh BROWSE.
Lnh EDIT hon ton nh lnh CHANGE.

10.3 Cc tu chn cao cp ca lnh @...SAY...GET


Lnh c dng tng qut nh sau:
ELEC

Trang 126

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

@ <row, column>
SAY <expr>
[FUNCTION <expC1>]
[PICTURE <expC2>]
[SIZE <expN1>, <expN2>]
[FONT <expC3> [, <expN3]]
[STYLE <expC4>]
[COLOR SCHEME <expN4>| COLOR <color pair list>]
GET <memvar> | <field>
[FUNCTION <expC1>]
[PICTURE <expC2>]
[FONT <expC3> [, <expN1>]]
[STYLE <expC4>]
[ENABLE | DISABLE]
[MESSAGE <expC5>]
[[OPEN] WINDOW <window name>]
[RANGE [<expr2>] [, <expr3>]]
[SIZE <expN2>, <expN3>]
[VALID <expL1> | <expN4> [ERROR <expC6>]]
[WHEN <expL2>]
[COLOR SCHEME <expN5> | COLOR <color pair list>]
READ
1. <row, column>
Dng (row) v ct (column) ni bt u hin th d liu, nu d ng SET DEVICE
TO PRINTER a kt xut ra my in th hng c th nm trong phm vi t 0
ddn 32.768 v ct t 0 n 255.
2. <expr>
<expr> l biu thc bt k, v d:
@10,12 SAY 'Cho bn'
@11,12 SAY 12*23
Phn chung cho c SAY v GET
3. [FUNCTION <expC1>]
To khun dng cho d liu, biu thc <expC1> nhn cc k t sau:
a. K t!
Chuyn mi k t vit thng thnh vit hoa:
@2,10 SAY 'Cho bn ' FUNCTION '!'
Khi hin th ch 'Cho bn' s bin thnh 'cho bn'.
b. K t ^
Hin th cc s theo dng ng:
@12,10 SAY 1232*7654 FUNCTION '^'
S hin th dng 12 ct 10 s: .94279E+7
c. K t $
ELEC

Trang 127

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Hin th d liu theo dng thc tin t:


@12,10 SAY 12*54 FUNCTION '$'
S hin th kt qu: $648
d. K t (
Bao cc con s m bng cc du ngoc n:
@12,10 SAY -112*54 FUNCTION '('
S hin thS: ( 6048)
e. K t A hoc a
Ch cho php nhp cc k t thuc bng ch ci:
Clear
Ten=Space(7)
@12,10 SAY 'Vo tn ca ban? ' GET Ten FUNCTION 'A'
READ
? Ten
f. K t B hoc b
Ging thng hng l tri ca trng, v d
USE KHOIA
@12,10 SAY 'Vo h m ? ' GET Hodem FUNCTION 'B'
@13,10 SAY 'Vo tn
? ' GET Ten FUNCTION 'B'
@14,10 SAY 'Vo im ton?' GET Toan FUNCTION 'B'
READ
g. K t C
Hin th k t CR sau mt s dng:
@14,10 SAY 1235 FUNCTION 'C'
Kt qu: 1235 CR
h. K t D
Hin th gi tr Date:
@14,10 SAY 12345 FUNCTION 'D'
Kt qu s l:1/23/45
i. K t E
Hin th v nhp ngy thng theo kiu chu u (ngy/Thng /Nm):
Clear
A={}
@14,10 SAY 'Vo d liu dng Date?' GET a FUNCTION 'E'
?a
j. K t I
Canh vn bn nm gia:
USE KHOIA
@12,10 SAY 'Vo h m ? ' GET Hodem FUNCTION 'I'
@13,10 SAY 'Vo tn
? ' GET Ten FUNCTION 'I'
@14,10 SAY 'Vo im ton?' GET Toan FUNCTION 'I'
READ
ELEC

Trang 128

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

k. K t J
Dng thng hng bn phi:
USE KHOIA
@12,10 SAY 'Vo h m ? ' GET Hodem FUNCTION 'J'
@13,10 SAY 'Vo tn
? ' GET Ten FUNCTION 'J'
@14,10 SAY 'Vo im ton?' GET Toan FUNCTION 'J'
READ
l. K t K
Nguyn c trng c chn (bi en)
USE KHOIA
@12,10 SAY 'Vo h m ? ' GET Hodem FUNCTION 'K'
@13,10 SAY 'Vo tn
? ' GET Ten FUNCTION 'K'
@14,10 SAY 'Vo im ton?' GET Toan FUNCTION 'K'
READ
Nn dng K khi ta nh g li ton b ni dung ca trng
m. K t L
Hin th cc ch s 0 u thay v du cch:
A=123
@14,10 SAY 'Vo a =' GET a FUNCTION 'L'
READ
n. K t M <List>
La mt gi tr trong <List>
USE KHOIA
@12,10 SAY 'Vo khu vc? ' GET kv FUNCTION 'M 1,2,3'
@13,10 SAY 'Vo u tin?' GET ut FUNCTION 'M 1,2,3,4,5, 6,7,8,9,10,11'
READ
o. K t S <n>
Cun duyt theo chiu ngang trong khi sa bin sau GET kiu k t:
p. K t T
Ct b du cch trc vo sau ra khi trng k t
2. [PICTURE <expC2>]
a. K t!
Chuyn mi k t vit thng thnh vit hoa:
@2,10 SAY 'cho bn?' PICTURE '!!!!!!!!'
Khi hin th ch 'cho bn' s bin thnh 'cho bn'.
Ch : S k t! bng s k t ca d liu
b. K t #
Ch cho php nhp cc k s, du cch v du +,USE KHOIA
@10,12 SAY 'Vao khu vc?' GET kv PICTURE '#'
READ
c. K t $
ELEC

Trang 129

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Hin th gi tr tin tH:


@10,20 Say 12345 PICTURE '$$$$$$'
d. K t,
Du phy ngn cch ba ch s d c:
@10,20 Say 1234567.87 PICTURE '99,999,999.99'
Kt qu:1,234,567.89
e. K t 9
Vi d liu character ch cho php nhp k s, vi d liu kiu Numeric, ch cho
php nhp cc k s v du -,+
A=0
@10,20 Say 'Vo a =' GET a PICTURE '99999'
READ
f. K t A
Ch cho php nhp cc k t ch ci:
Ten=Space(7)
@10,20 Say 'Vo tn ca bn?' GET ten PICTURE 'AAAAAAA'
READ
g. K t L
Ch cho php nhp d liu kiu Logic (T/F/Y/N)
a=.T.
@10,20 Say 'Vo gi tr a?' GET a PICTURE 'L'
READ
h. K t N
Ch cho php nhp cc ch ci v k s:
a=Space(7)
@10,20 Say 'Vo gi tr a?' GET a PICTURE 'NNNNNNN'
READ
i. K t X
Cho php nhp bt k k t no.
j. K t Y
Ch cho php nhp Y,y,N,n
3. [SIZE <expN1>, <expN2>]
Cho php d liu hin trn <expN1> dng v <expN2> c t.
@1,2 SAY 'Tin hc Qun l' SIZE 4,4
S hin th:
Tin
Hc
Quan
Ly
4. [FONT <expC3> [, <expN3]]
Nh trong lnh BROWSE
5. [STYLE <expC4>]
ELEC

Trang 130

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Nh trong lnh BROWSE


6. [COLOR SCHEME <expN4>| COLOR <color pair list>]
Nh trong lnh BROWSE
7. <memvar> | <field>
Bin sau GET c th l bin b nh hoc bin trng
8. [ENABLE | DISABLE]
Cho php hoc khng cho php truy cp n bin GET.
a=Space(7)
@10,20 Say 'Vo gi tr a?' GET a Disable
READ
Sau mun truy cp bin a:
a=Space(7)
@10,20 Say 'Vo gi tr a?' GET a Enable
READ
9. [MESSAGE <expC5>]
nh ngha mt thng bo khi GET ang c hiu chnh
a='Hong Vn Ti'
@10,20 Say 'Vo gi tr a?' GET a MESSAGE 'Ch sa t n'
READ
10. [[OPEN] WINDOW <window name>]
Ch nh tn ca s ni s hiu chnh trng MEMO
V d:
Clear
DEFINE WINDOW Wind1 FROM 1,1 TO 20,20
DEFINE WINDOW Wind2 FROM 12,30 TO 20,70
USE nhansu
@1,1 Get Tieusu1 OPEN WINDOW Wind1
@2,1 Get Tieusu2 OPEN WINDOW Wind2
Gi s: Tieusu1 v Tieusu2 l hai tr ng MEMO
11. [RANGE [<expr2>] [, <expr3>]]
Khong hp l ca d liu nhp
tuoi=0
@10,20 Say 'Vo tui ca bn?' GET tuoi RANGE 13,35
READ
12. [VALID <expL1> | <expN4> [ERROR <expC6>]]
Nh trong lnh BROWSE
13. [SIZE <expN2>, <expN3>]
Vng hiu chnh c xc nh bng <expN2> d ng v <expN3> ct:
Kieu=Space(50)
@10,20 Say 'Vo mt cu kiu?' GET Kieu SIZE 4,15
READ
14. [WHEN <expL2>]
ELEC

Trang 131

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Nh trong lnh BROWSE


15. [COLOR SCHEME <expN5> | COLOR <color pair list>]
Nh trong lnh BROWSE
Bi tp:
1. 1. Th li cc tu chn ca lnh BROWSE tr n my
2. 2. Th li cc tu chn ca lnh CHANGE v EDIT trn my
3. 3. Th li cc tu chn ca lnh @...SAY...GET tr n my
4. Bn th thit k mt chng trnh c s dng cc tu chn

ELEC

Trang 132

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 11: Chng trnh con


11.1 t vn
Khi lp trnh gii quyt mt vn , ta th ng chia vn thnh nhng
phn nh tng i c lp, mi phn nh th ng c m t bng mt
chng trnh con dng PROCEDURE hay FUNCTION. Vi cch n y chng ta
rt ngn c chng trnh do khng phi vit lp nhiu on lnh, ngo i ra nu
gp li trong mt th tc n o ta d dng sa li trong th tc m thi. Khi
thc hin cc PROCEDURE ta d ng lnh:
DO <Tn PROCEDURE > [WITH <Cc tham s >] cn khi thc hin cc
FUNCTION ta vit tn hm v cc tham bin ca hm v d: Tong(x,y), ta s m
t chi tit cc phn sau.
11.2 Th tc (PROCEDURE)
Th tc c dng:
PROCEDURE <Tn th tc >
PARAMETER <Tham s 1>[,<Tham s 2] [,<Tham s 3>]...]
<Cc lnh ca th tc >
RETURN
Sau y l ngha ca cc thnh phn trong cu trc trn:
PROCEDURE <Tn th tc >
y l dng u ca th tc, tn th tc theo nguyn tc t tn bin ( phn 1).
PARAMETER <Tham s 1>[,<Tham s 2] [,<Tham s 3>]...]
Dng khai bo cc tham s hnh thc, khi gi s truyn cho n cc tham s
c th, cc tham s c th n y theo th t ca tham s hnh thc.
<Cc lnh ca th tc >
Phn ny cha cc lnh ca th tc
RETURN
L lnh bo kt thc th tc
V d 1: Vo hai s tnh tng ca n
Clear
Set talk off
Set deci to 4
Store 0 To s, a, b && Khai bo 3 s
Do Vao With a, b &&Chy chng trnh Vao v truyn cho n hai tham bin a,b
Do Tong With s, a, b &&Chy chng trnh Tong v truyn cho n ba tham bin
s,a,b
?'Tng s =',s && In kt qu ch ng trnh chnh
*** Th tc vo hai s *******
ELEC

Trang 133

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Procedure Vao
Parameter x,y
Input 'Vo x =' To x
Input 'Vo y =' To y
Return
*** Th tc tnh tng hai s *******
Procedure Tong
Parameter Tong,x,y
Tong=x+y
Return
V d 2:
SET CENTURY ON
a={}
Do longdate With a,{11/29/99}
?a
PROCEDURE longdate
PARAMETER c,mdate
c=CDOW(mdate) + ', ' + MDY(mdate)
RETURN
Sau khi chy chng trnh s cho kt qu:
Monday, November 29, 1999
Chng trnh trn cng cn c th vit nh sau:
SET CENTURY ON
?longdate ({11/29/99})
PROCEDURE longdate
PARAMETER mdate
RETURN CDOW(mdate) + ', ' + MDY(mdate)
Ta khng dng DO <Tn chng tr nh con > m dng nh FUNCTION.
V d 3: Truyn mng vo th tc
Clear
Set talk off
Dimension a(10)
Store 0 to a
Do Vao With a
For i=1 to 10
?a(i)
Next
ELEC

Trang 134

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

** Th tc vo mng ****
Proc Vao
Para c
For i=1 to 10
Input 'vao c('+str(i,1)+')=' to c(i)
Next
Return
V d 4: Gi s ta c tp CSDL c t n KHOIA nh sau:
STT SBDC HODEM TEN NGAYSINH KV DT TOAN LY HOA TONG
1 99A0001 Nguyn Th H 171279 1 01 6.5 5.0 5.5 17.0
2 99A0002 Trnh Vnh Anh 280278 2 02 5.0 3.5 4.0 12.5
3 99A0003 Vn
Hng 280679 3 03 7.0 5.5 6.0 18.5
4 99A0004 Trn Thanh Hi 011080 1 01 8.5 7.0 7.5 23.0
5 99A0005 Phan Trng Thanh 241280 1 5A 9.0 7.5 8.0 24.5
6 99A0006 m Hu
Thng 190581 1 5B 3.0 1.5 2.0 6.5
7 99A0007 L Thanh H ng 171177 2 09 4.5 3.0 3.5 11.0
8 99A0008 Nguyn Phi Chung 020979 2 08 5.5 4.0 4.5 14.0
9 99A0009 Trn Tun Bo 090280 2 07 6.5 5.0 5.5 17.0
10 99A0010 Nguyn nh Thu 151179 2 06 7.0 5.5 6.0 18.5
11 99A0011 Nguyn Vn Hong 100177 2 09 8.5 7.0 7.5 23.0
12 99A0012 inh Vit Hu 020180 2 09 9.0 7.5 8.0 24.5
13 99A0013 Nguyn Chu 071180 2 04 10.0 8.5 9.0 27.5
14 99A0014 L Xun
Thanh 200880 2 04 2.5 1.0 1.5 5.0
Lp mt th tc tnh tng trung bnh ca ct tng, sau chng trnh chnh
truyn tham bin thc vo nhn:
Set Talk off
Clear
Store 0 To Tb
Do TrungBinh With Tb
?'im trung bnh chung l:',Tb
PROCEDURE TBINH
PARAMETER DTB
USE KhoiA
AVERAGE Tong To DTB
RETURN
11.3 Hm (FUNCTION)
Hm c cu trc nh sau:
FUNCTION <Tn hm >
PARAMETER <Tham s 1>[,<Tham s 2] [,<Tham s 3>]...]
<Cc lnh ca hm >
RETURN <Biu thc >
ELEC

Trang 135

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Sau y l ngha ca cc thnh phn trong cu trc trn:


FUNCTION <Tn Hm >
y l dng u ca th tc, tn th tc theo nguyn tc t tn bin ( phn 1).
PARAMETER <Tham s 1>[,<Tham s 2] [,<Tham s 3>]...]
Dng khai bo cc tham s hnh thc, khi gi s truyn cho n cc tham s
c th, cc tham s c th n y theo th t ca tham s hnh thc.
<Cc lnh ca hm >
Phn ny cha cc lnh ca hm
RETURN <Biu thc >
L lnh bo kt thc hm v gn gi tr ca biu thc cho tn hm.
V d 1. Gi s ta c tp A99.DBF l tp cha cc thng tin v tuyn sinh khi A
nh sau:
STT SBDC
HODEM
TEN
NGAYSINH KV
DOITUONG TOAN LY
HOA
TONG TC
1 99A0001 Nguyn Th H 171279 1 01 6.5 5.0 5.5 17.0
2 99A0002 Trnh Vnh Anh 280278 2 02 5.0 3.5 4.0 12.5
3 99A0003 Vn
Hng 280679 3 03 7.0 5.5 6.0 18.5
4 99A0004 Trn Thanh Hi 011080 1 01 8.5 7.0 7.5 23.0
5 99A0005 Phan Trng Thanh 241280 1 5A 9.0 7.5 8.0 24.5
6 99A0006 m Hu
Thng 190581 1 5B 3.0 1.5 2.0 6.5
7 99A0007 L Thanh H ng 171177 2 09 4.5 3.0 3.5 11.0
8 99A0008 Nguyn Phi Chung 020979 2 08 5.5 4.0 4.5 14.0
9 99A0009 Trn Tun Bo 090280 2 07 6.5 5.0 5.5 17.0
10 99A0010 Nguyn nh Thu 151179 2 06 7.0 5.5 6.0 18.5
11 99A0011 Nguyn Vn Hong 100177 2 09 8.5 7.0 7.5 23.0
12 99A0012 inh Vit Hu 020180 2 09 9.0 7.5 8.0 24.5
13 99A0013 Nguyn Chu 071180 2 04 10.0 8.5 9.0 27.5
14 99A0014 L Xun
Thanh 200880 2 04 2.5 1.0 1.5 5.0
.......
Tu theo i tng m im c tng nh sau:
Tng 3.5 im nu i tng l '01','02','03','04','5A','5B' v khu vc 3
Tng 2.5 im nu i tng l '06','07','08' v khu vc 3
Khng tng nu i tng l '10','11' v khu vc 3
Tng 4.5 im nu i tng l '01','02','03','04','5A','5B' v khu v c 2
Tng 3.5 im nu i tng l '06','07','08 v khu vc 2
Tng 1 im nu i tng l '10','11' v khu vc 2
Tng 5.5 im nu i tng l '01','02','03','04','5A','5B' v khu v c 1
Tng 4.5 im nu i tng l '06','07','08' v khu vc 1
Tng 4 im nu i tng l '10','11' v khu vc 1
ELEC

Trang 136

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Tng 2 im nu i tng l '09'


Ta lp trnh dng hm INLIST nh sau:
set talk off
use a99
REPL all TC with tonghs+ 3.5 for ut1(DoiTuong) and khuvuc='3'
REPL all TC with tonghs+ 2.5 for ut2(DoiTuong) and khuvuc='3'
REPL all TC with tonghs for ut3(DoiTuong) and khuvuc ='3'
REPL all TC with tonghs+ 4.5 for ut1(DoiTuong) and khuvuc='2'
REPL all TC with tonghs+ 3.5 for ut2(DoiTuong) and khuvuc='2'
REPL all TC with tonghs+ 1 for ut3(DoiTuong) and khuvuc='2'
REPL all TC with tonghs+ 5.5 for ut1(DoiTuong) and khuvuc='1'
REPL all TC with tonghs+ 4.5 for ut2(DoiTuong) and khuvuc='1'
REPL all TC with tonghs+ 4 for ut3(DoiTuong) and khuvuc='1'
REPL all TC with tonghs+ 2 for DoiTuong='09' and khuvuc='2'

************ chuong trinh con ***********


Function ut1
Parameter DoiTuong
Ut1=Inlist(DoiTuong,'01','02','03','04','5A','5B')
Return Ut1
Function ut2
Parameter DoiTuong
Ut2=Inlist(Doituong,'06','07','08')
Return Ut2
Function ut3
Parameter DoiTuong
Ut3=!Inlist(Doituong,'01','02','03','04','5A','5B','06','07','08','09')
Return Ut3
11.4 Bin ton cc (Global) v bin cc b (Private)
a. Bin ton cc
Trong mt chng trnh khi chng ta khi to gi tr cho cc bin nh v mng,
th gi tr cc bin s tn ti trong b nh cho n khi ch ng trnh kt thc
v chng trnh chy sau khng th s dng c cc bin nh . Nhng c
nhiu khi ta mun chng trnh chy sau s dng c cc bin th lm th
no?
lm c iu ny ta phi khai bo cc bin l ton cc bng lnh sau:
ELEC

Trang 137

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

PUBLIC <Danh sch cc bin >


V d:
PUBLIC a,b,c
Nh vy a,b, c l bin ton cc.
khai bo mng ton cc ta dng lnh:
PUBLIC [ARRAY] <Tn v thnh ph n mng >
V d:
PUBLIC ARRAY A(4), B(4), C(4,5) ho c
PUBLIC A(4), B(4) ,C(4,5)
Ch C:
Cc bin ton cc c khi to bi PUBLIC c gi tr ba n u l .F.
Lnh PUBLIC phi thc hin tr c, trc khi gn gi tr cho cc bin.
Cc bin to ra trong ca s lnh l ton cc
b. Bin cc b
Khi thc hin mt chng trnh, nu trong mt chng trnh con ta mun dng
tn bin trng vi bin ton cc, nhng khng mun lm thay i bin ton cc
th nn khai bo bin l bin cc b theo lnh sau:
PRIVATE <Danh sch bin >
V d:
PRIVATE a, b, c
Th bin a, b, c l bin cc b, ngha l n ch c ngha trong chng trnh con
m thi. Sau y l v d v chng trnh.
Set talk off
Clear
PUBLIC a, b
a=1
b=2
Do InAn
?a, b
Procedure InAn
Private a
a=150
b=100
?' a
b '
?a, b
Return
Kt qu sau khi chy chng trnh l:
a
b
150
150
100 (gi tr trong chng trnh con InAn)
1 1
100 (a l cc b, nn ra khi chng trnh con a vn bng 1)
Lnh PRIVATE cn c dng khc:
ELEC

Trang 138

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

PRIVATE ALL [LIKE <Skel> | EXCEPT <Skel>]


V d 1:
Cc b cho tt c cc bin.
PRIVATE ALL
V d 2:
Cc b vi nhng bin c ch u l B.C
PRIVATE ALL LIKE b*
V d 3:
Cc b vi tt c cc binC, tr bin c ch u l a
PRIVATE ALL LIKE EXCEPT A*
V d 4:
Cc b vi tt c cc binC, tr bin c ch u l a v ch th 3 l c.
PRIVATE ALL LIKE EXCEPT a?c*
V d 5: Cc b vi tt c cc bin c 3 k t, tr bin c ch u l A v ch
th 3 l d
PRIVATE ALL LIKE EXCEPT a?d
Ch :
Bin khai bo chng trnh chnh l ton cc, v d trn c th vit nh sau:
Set talk off
Clear
a=1
b=2
Do InAn
?a, b
Procedure InAn
Private a
a=150
b=100
?' a
b '
?a, b
Return
c. Hin th bin nh
hin th ni dung bin nh (t n bin, ton cuc hay cc b, kiu v ln) hy
dng lnh sau:
DISPLAY MEMORY [LIKE <Skel>]
[TO PRINTER | TO FILE <Tn File >]
d. Gii phng cc bin nh
gii phng cc bin nh khi b nh h y thc hin lnh sau:
RELEASE <Danh sch bin nh >
V d
a=1
b='Tin hoc'
ELEC

Trang 139

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

c=.T.
Release b,c
Display memo
Khi chy chng trnh ch c bin a c hin th.
Lnh gii phng bin nh cn c cch vit khc:
RELEASE ALL [ LIKE <skel>| EXCEPT <skel>]
V d:
D1=12
D2=11
C=4
RELEASE ALL Like D*
Hoc c th vit:
D1=12
D2=11
C=4
RELEASE ALL EXCEPT C*
Ch : Ch c lnh RELEASE <Danh sch bin > mi xo c bin ton cc.
V d:
PUBLIC a1, a2,a3, b
Store 10 to a1, a2, a3
Store 2 To b
Release all like a*
Display Memory
Sau khi chy chng trnh ta thy bin a1,a2, a3 khng b xo

ELEC

Trang 140

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Chng 12. Lnh ghp ngang (JOIN) v lnh cp nht (UPDATE)


12.1 Lnh Join
To mt tp CSDL mi t tp CSDL hin h nh v mt tp CSDL th hai m
trong vng lm vic khc. Mi bn ghi ca tp CSDL mi c to bi cc
trng trong hai bn ghi tng ng. Sau y l c php lnh:
JOIN WITH <expN> | WITH <expC>
TO <file>
FOR <expL>
[FIELDS <field list> | FIELDS LIKE <skel> | FIELDS EXCEPT
<skel>]
Cc mnh trn c ngha nh sau:
<expN> | <expC>
Xc nh vng lm vic ca tp CSDL th hai. V ng lm vic c th c xc
nh qua biu thc s <expN> hoc qua biu thc k t <expC>.
TO <file>
<file> l tn ca tp CSDL mi c to thnh t lnh trn.
FOR <expL>
Khi thc hin lnh JOIN mi bn ghi trong tp CSDL hin h nh s c kt hp
ln lt vi tng bn ghi trong tp CSDL th hai, nh ng ch nhng bn ghi tho
mn iu kin <expL>.
[FIELDS <field list> | FIELDS LIKE <skel> | F IELDS EXCEPT <skel>]
Ch nhng trng trong <field list> hoc trong LIKE <skel> hoc khng phi
trong EXCEPT <skel> mi c kt ni, v d:
FIELDS LIKE A*,P*
FIELDS LIKE A*,P* EXCEPT PARTNO*
V d ta c hai tp CSDL. Tp th nht c t n HOSO.DBF vi ni dung sau:
Record# HOTEN NGAYSINH
SBDC KHUVUC DOITUONG
1 Hong Thanh H
191180
99A311
3
11
2 Hong Trung Thnh 231181
99A669
1
08
3 Nguyn Anh Tun 250880
99A784
2
10
4 Vng Vn Hip 250778
99A971
2
09
5 Hong Vn Mnh 300680
99A483
2
09
6 Hong Th Din
281177
99A116
2
09
7 V Th Na
100479
99A492
1
08
8 Hong Vn Tng 260179
99A806
2
09
9 Nguyn Vn Thuyt 210680
99A627
2
11
10 Bi Th Thut
180281
99A633
2
10
11 Nguyn Vn i 020879
99A171
2
09
12 L Thanh Nam
170880
99A504
2
09
13 Nguyn Xun 041080
99A953
1
08
ELEC

Trang 141

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

14 Tr Duy
100481
99A123
2
09
15 inh Quang Hi 280479
99A328
2
10
16 Dng Th Lan
230481
99A411
3
10
17 Nguyn Quang Ph 240480
99A565
3
10
18 H Tt Thng
151181
99A689
2
10
19 Bi Duy Thc
100981
99A700
3
10
20 Lm Hng Hip
080180
99A223
3
11
Tp th hai c tn DIEMTHI.DBF c ni dung nh sau:
Record# SBDC
TOAN10 LY10 HOA10 TONGDIEM30
1 99A311
5.5
4.5
6.8
16.8
2 99A669
6.5
4.3
6.4
17.2
3 99A784
7.5
5.9
7.5
20.9
4 99A971
6.5
6.0
7.0
19.5
5 99A483
5.6
7.4
4.6
17.6
6 99A116
4.8
6.2
5.0
16.0
7 99A492
5.8
6.6
5.1
17.5
8 99A806
6.8
6.9
3.7
17.4
9 99A627
6.9
6.1
4.9
17.9
10 99A633
6.9
5.4
5.6
17.9
11 99A171
7.0
5.7
6.6
19.3
12 99A504
7.0
5.4
6.8
19.2
13 99A953
3.0
4.2
5.7
12.9
14 99A123
4.1
4.4
5.3
13.8
15 99A328
4.1
8.7
5.4
18.2
16 99A411
4.1
7.6
4.3
16.0
17 99A565
4.1
6.8
7.3
18.2
18 99A689
5.1
6.2
8.6
19.9
19 99A700
5.1
6.6
3.1
14.8
20 99A223
6.3
6.1
8.8
21.2
V d 1:
Set talk off
Select 1
Use HoSo
Select 2
Use DiemThi
Join With HoSo To TepMoi For sbdc=HoSo.Sbdc
Use TepMoi
Browse
Khi chng trnh chy ta c TepMoi nh sau:

ELEC

Trang 142

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Record#
SBDC TOAN10 LY10 HOA10 TONGDIEM30 HOTEN

NGAYSINH KHUVUC DOITU ONG

1 99A311 5.5 4.5 6.8 16.8 Hong Thanh H 191180 3


11
2 99A669 6.5 4.3 6.4 17.2 Hong Trung Thnh 231181 1
08
3 99A784 7.5 5.9 7.5 20.9 Nguy n Anh Tun 250880 2
10
4 99A971 6.5 6.0 7.0 19.5 Vng Vn Hi p
250778 2
09
5 99A483 5.6 7.4 4.6 17.6 Hong Vn M nh 300680 2
09
6 99A116 4.8 6.2 5.0 16.0 Hong Th Din
281177 2
09
7 99A492 5.8 6.6 5.1 17.5 V Th Na
100479 1
08
8 99A806 6.8 6.9 3.7 17.4 Hong Vn T ng 260179 2
09
9 99A627 6.9 6.1 4.9 17.9 Nguy n Vn Thuyt 210680 2
11
10 99A633 6.9 5.4 5.6 17.9 Bi Th Thut
180281 2
10
11 99A171 7.0 5.7 6.6 19.3 Nguy n Vn i
020879 2
09
12 99A504 7.0 5.4 6.8 19.2 L Thanh Nam
170880 2
09
13 99A953 3.0 4.2 5.7 12.9 Nguy n Xun
041080 1
08
14 99A123 4.1 4.4 5.3 13.8 Tr Duy
100481 2
09
15 99A328 4.1 8.7 5.4 18.2 inh Quang H i
280479 2
10
16 99A411 4.1 7.6 4.3 16.0 Dng Th Lan
230481 3
10
17 99A565 4.1 6.8 7.3 18.2 Nguy n Quang Ph 240480 3
10
18 99A689 5.1 6.2 8.6 19.9 H T t Thng
151181 2
10
19 99A700 5.1 6.6 3.1 14.8 Bi Duy Th c
100981 3
10
20 99A223 6.3 6.1 8.8 21.2 Lm H ng Hip
080180 3
11
V d 2:
Set talk off
Select 1
Use HoSo
Select 2
Use DiemThi
Join With HoSo To TepMoi For sbdc=HoSo.Sbdc Fields Hoso.Hoten, SBDC,
TongDiem30
Use TepMoi
Browse
Khi chng trnh chy ta c TepMoi nh sau:
Record# HOTEN
SBDC TONGDIEM30
1 Hong Thanh
H
99A311
16.8
2 Hong Trung
Thnh 99A669
17.2
3 Nguyn Anh
Tun 99A784
20.9
4 Vng Vn
Hip 99A971
19.5
5 Hong Vn
Mnh 99A483
17.6
6 Hong Th
Din 99A116
16.0
7 V Th
Na
99A492
17.5
8 Hong Vn
Tng 99A806
17.4
ELEC

Trang 143

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

9 Nguyn Vn Thuyt
10 Bi Th
Thut
11 Nguyn Vn i
12 L Thanh
Nam
13 Nguyn Xun
14 Tr
Duy
15 inh Quang
Hi
16 Dng Th
Lan
17 Nguyn Quang Ph
18 H Tt
Thng
19 Bi Duy
Thc
20 Lm Hng
Hip

99A627
99A633
99A171
99A504
99A953
99A123
99A328
99A411
99A565
99A689
99A700
99A223

17.9
17.9
19.3
19.2
12.9
13.8
18.2
16.0
18.2
19.9
14.8
21.2

12.2 Lnh UPDATE


Lnh ny dng cp nht d liu vo tp CSDL hin hnh t mt tp CSDL
th hai ang m trong mt vng lm vic khc. C php lnh nh sau:
UPDATE ON <field>
FROM <expN> | <expC>
REPLACE <field1> WITH <expr1>
[, <field2> WITH <expr2> ...]
[RANDOM]
Cc mnh trn c ngha nh sau:
ON <Field>
Field l trng kho, tp CSDL hin thi phi c sp xp theo lnh SORT
hoc lnh INDEX trn trng ny theo th th tng dn.
FROM <expN> | <expC>
Xc nh vng lm vic ca tp CSDL th hai, n i ly d liu chuyn cho tp
hin thi. Vng lm vic c th c xc nh qua biu thc s <expN> hoc
qua biu thc k t <expC>.
REPLACE <field1> WITH <exp r1> [, <field2> WITH <expr2> ...]
Trng <Field1> trong tp CSDL hin thi s c nhn gi tr <expr1> v.v..
RANDOM
S c dng nu tp CSDL th hai khng c sp xp theo trng kho tng
dn. Nu tp CSDL th hai c sp xp tng dn theo tr ng kho th mnh
ny khng cn thit v qa trnh cp nht c tin hnh nhanh hn.
Gi s ta c tp Hoso.dbf c cc tr ng sau:
Record# HOTEN
NGAYSINH SBDC
TONG
1 Hong Th
Din 281177 99A116
0.00
2 Tr
Duy 100481 99A123
0.00
3 Nguyn Vn
i 020879 99A171 0.00
4 Lm Hng
Hip 080180 99A223 0.00
ELEC

Trang 144

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

5 Hong Thanh
H 191180 99A311 0.00
6 inh Quang
Hi 280479 99A328 0.00
7 Dng Th
Lan 230481 99A411 0.00
8 Hong Vn
Mnh 300680 99A483 0.00
9 V Th
Na 100479 99A492 0.00
10 L Thanh
Nam 170880 99A504 0.00
11 Nguyn Quang Ph 240480 99A565 0.00
12 Nguyn Vn Thuyt 210680 99A627 0.00
13 Bi Th
Thut 180281 99A633 0.00
14 Hong Trung Thnh 231181 99A669 0.00
15 H Tt
Thng 151181 99A689 0.00
16 Bi Duy
Thc 100981 99A700 0.00
17 Nguyn Anh
Tun 250880 99A784 0.00
18 Hong Vn
Tng 260179 99A806 0.00
19 Nguyn Xun

041080 99A953 0.00


20 Vng Vn
Hip
250778 99A971 0.00
V tp Diem.dbf c cc trng sau:
Record# SBDC
TOAN10 LY10 HOA10 TONGDIEM30
1 99A223
6.3
6.1
8.8
21.2
2 99A784
7.5
5.9
7.5
20.9
3 99A689
5.1
6.2
8.6
19.9
4 99A971
6.5
6.0
7.0
19.5
5 99A171
7.0
5.7
6.6
19.3
6 99A504
7.0
5.4
6.8
1 9.2
7 99A328
4.1
8.7
5.4
18.2
8 99A565
4.1
6.8
7.3
18.2
9 99A627
6.9
6.1
4.9
17.9
10 99A633
6.9
5.4
5.6
17.9
11 99A483
5.6
7.4
4.6
17.6
12 99A492
5.8
6.6
5.1
17.5
13 99A806
6.8
6.9
3.7
17.4
14 99A669
6.5
4.3
6.4
17.2
15 99A311
5.5
4.5
6.8
16.8
16 99A116
4.8
6.2
5.0
16.0
17 99A411
4.1
7.6
4.3
16.0
18 99A700
5.1
6.6
3.1
14.8
19 99A123
4.1
4.4
5.3
13.8
20 99A953
3.0
4.2
5.7
12.9
Ta mun a ct TongDiem30 ca tp CSDL Diem.dbf sng ct Tong ca tp
Hoso.dbf theo trng kho l SBDC, ta lp trnh nh sau:
Set talk off
Clear
ELEC

Trang 145

TRUNG TM O TO TRC TUYN - I HC KINH DOANH & CNG NGH H NI

Select 1
Use Diem
Select 2
Use Hoso
Index on sbdc to sbdc1
Update On Sbdc From Diem Replace Tong With Diem.To ngDiem30 Random
Select 2
Browse
Sau khi chy chng trnh ta c kt qu:
Record# HOTEN
NGAYSINH SBDC TONG
1 Hong Th Din 281177 99A116 16.00
2 Tr
Duy 100481 99A123 13.80
3 Nguyn Vn i
020879 99A171 19.30
4 Lm Hng
Hip 080180 99A223 21.20
5 Hong Thanh H
191180 99A311 16.80
6 inh Quang
Hi 280479 99A328 18.20
7 Dng Th
Lan 230481 99A411 16.00
8 Hong Vn
Mnh 300680 99A483 17.60
9 V Th
Na
100479 99A492 17.50
10 L Thanh
Nam 170880 99A504 19.20
11 Nguyn Quang Ph 240480 99A565 18.20
12 Nguyn Vn Thuyt 210680 99A627 17.90
13 Bi Th
Thut 180281 99A633 17.90
14 Hong Trung Thnh 231181 99A669 17.20
15 H Tt
Thng 151181 99A689 19.90
16 Bi Duy
Thc 100981 99A700 14.80
17 Nguyn Anh Tun 250880 99A784 20.90
18 Hong Vn
Tng 260179 99A806 17.40
19 Nguyn Xun
041080 99A953 12.90
20 Vng Vn
Hip 250778 99A971 19.50
Hoc ta c th vit li chng trnh chy nhanh hn nh sau:
Set talk off
Clear
Select 1
Use Diem
Index on SBDC to SbdDiem
Select 2
Use Hoso
Index on sbdc to sbdc1
Update On Sbdc From Diem Replace Tong With Diem.TongDiem30
Select 2
Browse
ELEC

Trang 146

You might also like