Giáo trình Visual Foxpro

pdf 70 trang hapham 2330
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Visual Foxpro", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_visual_foxpro.pdf

Nội dung text: Giáo trình Visual Foxpro

  1. Mclc CHƯƠNG1:GIITHIUVHQUNTRCSDLVISUALFOXPRO CHƯƠNG2:THAOTÁCVIBNGDLIU CHƯƠNG3:SPXPTÌMKIMTHNGKÊ CHƯƠNG4:LPTRÌNHTRÊNVISUALFOXRO CHƯƠNG5:FORMS CHƯƠNG6:REPORTS CHƯƠNG7:TOMENUVÀQUNLÝðÁN www.Updatesofts.com2006
  2. Chương1: GIITHIUVHQUNTRCSDLVISUALFOXPRO 1.1TngquanvFoxProvàVisualFoxPro 1.1.1Giithiu Foxprolàhquntrcơsdliudùngđgiiquytcácbàitốntrongcáclĩnhvcqunlý. FoxProđưcthakvàpháttrintrênphnmmDBASEIIIPLUSvàDBASEIV,nhngsn phmnitingcahãngASTONTATE.Khicáccơngclptrìnhvàcácngdngtrênmơi trưngWindowsngàynhiuthìMicrosoftchorađicácphiênbnFoxPro2.6,chyđưctrên haimơitrưngDOSvàWindows.VisualFoxprolàsnphmcahãngMicrosoft,nĩđưck thatFoxproforWindows,làmttrongnhngcơngctinliđgiiquytcácbàitốn tronglĩnhvcqunlýchonhngngưichuyênnghipvàkhơngchuyênnghip.Tkhiphát trinđnnay,HngMicrosoftđãchorađinhiuphiênbnVisualFoxpro3.0,4.0,5.0,6.0. 1.1.2KhiđngVisualFoxpro. Sau khi đã cài đt Visual FoxPro, ta cĩ th khi đng nĩ bng cách thc hin file FoxProw.exehocfilevfp.exeđiviVisualFoxprotheocáccáchsau: +KíchchutvàobiutưngcaFoxProhocVisualFoxprotrênDesktop +ChnmenuStart/Program,chnMicrosoftVisualFoxprovàkíchchutvàođĩ. MànhìnhVisualFoxprosaukhikhiđng: Thanhtiêuđ ThanhMenu Thanhcơng MànhìnhVisualFoxProsaukhikhiđng: Caslnh 1.1.3Cácchđlàmvic
  3. VisualFoxProcĩ2chđlàmvic;chđtươngtác(interactive)vàchđchươngtrình (program). Chđtươngtác :Làchđtrlitngcâulnhmtcangưisdng,trongchđnàycĩ2 hìnhthcđưacâulnh: *ðưacâulnhquamenuhthng(systemmenu). *ðưacâulnhtcaslnh(commandwindow). Chđchươngtrình :Cáccâulnhtrongcaslnhcĩthtptrungthànhmtfilevàlưutrên đĩa(gilàfilechươngtrìnhngun).Khimunthchincáclnhtrongchươngtrìnhny,ti caslnhđưavàocáccâulnh:DO ðthốtkhiVisualFoxPro,ticaslnhsdnglnhQUIT 1.2Cáckháinimcơbn 1.2.1Kiudliu ðitưngxlýcaV.FOXPROlàdliu,đqunlývàkhaithácttcácdliunày,tuỳ theo tính cht, V.FOXPRO phi chia d liu thành nhiu kiu d liu khác nhau: kiu s (numberic),kiuchui(character),kiungàytháng(date),kiulýlun(logical),kiubnh (memo),kiuhìnhnh(picture). a. KiusNumeric(N) :dùngđbiudincácsliumanggiátrshcvàcĩnhucu tínhtốnnhưtrongktốn,qunlý, Midliukiuschimtiđa20chsgmcphn nguyên,phnthpphânvàduchmthpphân. b. KiusFloat(F): Dùngđbiudinslàcácscĩduchmđngnhư:2.03e5(2.03x 10 5),thưngđưcsdngtrongcácchươngtrìnhthuclĩnhvckhoahckthut, c. KiuchuiCharater(C): ChacácsliulàthpmtsbtkỳcáckýtASCII nhưtên,hhoclàsnhưngkhơngcĩnhucutínhtốnnhưschngminh,đach,sphịng, Midliukiuchuicĩđdàitiđa255kýt(mikýtchim1bytetrongbnh). d. KiungàythángData(D) :Dùngchonhngsliudngngàythángnhưngàysinh, ngàyđn, ðĩlànhngsnguyêndng"yyyymmdd"khihinthrabênngồisđưcchuyn thànhdngngàythángbìnhthưngnhưmmddyy,ddmmyyyy, tuỳtheoyêucucangưi
  4. lptrình.ðdàicđnhcadliukiungàylà8kýt. e. KiulogicLogical(L) :Dùngchonhngdliuchcĩmttronghaitrưnghphoc đúng(T)hocsai(F)nhưgiitính,đitưngưutiên, ðdàicđnhcadliukiulýlun là1kýt. f. KiughinhMemo(M): Dliukiughinhlàmtđonvănbncĩđdàilnhơn 255kýt,nhưkhenthưng,lýkch,quátrìnhcơngtác, ðdàikhaibáolà10nhưngnidung thcscakiughinhlàtuỳý,chúngđưclưutrtrongmttptinkháccĩcùngtênnhưng phnmrnglà.FPT(FoxProText). g. KiutngquátGeneral(G) :Dùngđchadliunhưbngtính,âmthanh, h. KiuhìnhnhFicture(P) :Dliulưudưidnghìnhnh.BMP,thưngđưcdùng trongcácchươngtrình"qunlýnhưs","nhndng", 1.2.2Cácphéptốn a. Phéptốnshc :ðưcthchintrêncácdliukius,gmcácphéptốn: Phéptốn Ýnghĩa Víd ,+ duâmvàdương +5,7 hay^ lutha 5 2,5^2 ,/ nhân,chia 25,5/7 % phndư(modulo) 25%5 +, cng,tr 102,45+4 ðưutiêncácphéptốntheothtđãnêutrên,cĩththayđithttínhtốnbngcách đtchúngtrong2dungocđơn()nhưcácquytctínhtốnshcthơngthưng. b. Phéptốnchui :Dùngđxlýcácdliukiuchui. •Phéptốnghépni(+):dùngđghép2chuicnhnhau,ktqucaphéptốnlàmt dliukiuchui. Víd:Trungtâm'+'Tinhc'>'TrungtâmTinhc'
  5. •Phéptốnghépni():dùngđghép2chuicnhnhauvàdichuyncácducách chuithnht(nucĩ)racuichuitothành. Víd:'Trungtâm ''Tinhc'>'TrungtâmTinhc' •Phéptốn$:kimtrachuibêntráicĩnmtrongchuibênphikhơng.Ktquca phéptốncĩkiulogic. Víd:'ab'$"ABab"chogiátr.T.nhưng'ab$"AaBb"chogiátr.F. c. Phéptốnngày :Haidliukiungàycĩthtr()chonhauđchokhongcáchđis gia2ngày. Víd: {01/08/2003}{05/09/2003}>35 {01/08/2003}{05/07/2003}>25 Mtdliukiungàycĩthcng(+)haytr()mtsnguyênđchoktqulàmtdliu kiungày. Víd: {01/08/2003}+10>{11/08/2003} {01/08/2003}20>{12/07/2003} Chúý: •Haidliukiungàykhơngthcng(+)chonhau. •Mtskhơngthtr()vimtdliukiungày. Vicdintthtngày(D),tháng(M),năm(Y)trongmtdliukiungàycịnphthucvào thiđimhintiđangtheohthngngàythángnào. (1)LnhSETDATEFRENCH|AMERICAN|JAPAN:Chophépthitlpdliudngngày theokiuPháp|M|Nht. (2)SETCENTURYON|OFF:Quyưcnămcĩmtdliudngngàyđưcbiudintheodng hais(mcđnh)haydngbns.NuSETCENTURYONthìnămđưcbiudintheodng bncons,nuSETCENTURYOFF(dngmcđnh)thìnămđưcbiudintheodnghai cons. (3)LnhSETMARKTO :đnđnhkýtphâncáchngàytháng,nămlà .DùnglnhSETMARKTOđtrvkýtphâncáchngàythángmcđnh.
  6. d. Phéptốnquanh:dùngđsosánhhaigiátrcahaibiuthccùngkiu Phéptốn ÝnghĩaPhéptốn Ýnghĩa ,! khác > lnhơn lnhơnhaybng == bngchínhxác Haidliukiusđưcsosánhdatheobiudincachúngtrêntrcs. Haidliukiungàyđưcsosánhdatheobiudincachúngtheochiucathigian. Trongkiulogic,VisualFoxProquyưc:.T. .T.'a' .F. Trưnghphaichuicĩđdàikhácnhau,thìvicsosánhdavàovicthitlpmơitrưng SETEXACTON/OFF,nghĩalà: NuSETEXACTONthì'AB'='AB'>.F. NuSETEXACTOFFthì'ABCD'='AB'>.T. e. Phéptốnlogic :VisualFoxProcĩ3phéptốnlogic:NOT;AND;OR NOThay! :phđnhcatốnhngtheosau. AND :chogiátr.T.nuchaitốnhngđu.T. OR :chogiátr.F.nuchaitốnhngđu.F. 1.2.3Tốnhng Tốnhnglàcácdliuthamgiavàocácphéptốn. Víd:del=b^24*a*cthìb,2,4,a,clàcáctốnhng. 1.2.4Hng
  7. Làđilưngcĩgiátrkhơngđitrongthigianchươngtrìnhthchin.Trkiudliu memothìmikiudliuđucĩhngcanĩ. Hngkius:như2.5,100,4.14 Hngkiuchui:hngloinyphiđtronghaidu" "hoc' 'hoc[ ],cĩđdàitiđa khơngquá253kít. Víd:"abc";tnghp','123', Hngkiungày:phiđưcđttrongcpdu{ } Víd:{01/01/96};{}:ngàyrng. Hnglogic:chcĩ2giátr.T.và.F. 1.2.5Bin Binlàđilưngdùngđlưutrdliutrongquátrìnhtínhtốn.Bincĩhaiđctrưng chính:tênbinvàgiátrcabin.Tênbinđưcđttheonguyêntc:dàikhơngquá10kít, btđuphilàchcáihocdu_phncịnlilàthpcabtkỳcácchcái,chshocdu _.TênbinkhơngnênđttrùngtêncáctkhốcaVisualFoxPro,tênbincĩthvitbng chinhoahaychthưng.VisualFoxProhiukiucabinlàkiucagiátrmànĩđang mang.Slưngtiđacabinđưcphépsdnglà2048bin. VisualFoxProchiabinlàm3loi: a. Binbnh :Gichunglàbin,dongưisdngtoratrongbnh,khikhơngsdng nacĩthgiiphĩngđtitkimbnh. Víd:hsl=3.12 ngaysinh={01/01/88} b. Binhthng :ðưctorangaytkhikhiđngVisualFoxPro.Cĩtênbtđubng dugchni(_)thưngđưcsdngtrongvnđinn,ngưisdngkhơngthgiiphĩng binloiny. c. Bintrưng :TêncáctrưngtrongtptinCSDL,nĩchcĩýnghĩakhitptinchanĩ đưcmrađsdng.
  8. Nucĩmtbinđttrùngvimtbintrưngthìbintrưngđưcưutiênthchintrưc. Nutnhihaibintrưngvàbinbnhtrùngtênnhau,đtruynhpđnchúngmàkhơng snhmln,bnsdngquycáchsauchobinbnh: M. hayM> 1.2.6Hàm Hàmlànhngđonchươngtrìnhđưcvitsnnhmthchinmtcơngvicnàođĩ.Các hàmnythưngchoramtgiátr,nhưngcũngcĩhàmchthihànhmtvicnàođĩmàkhơng choramttrnàoc.Vhìnhthchàmđưcđctrưngbitênhàmvàtheosaulàcpdu() dùngđbaocácđis,cácđisnyđtcáchnhaubiduphy.Mthàmcĩthcĩnhiuđi shockhơngcĩđisnàocnhưngphicĩ()theosau. Víd:Date():chobitngàythángnămhthng. Sqrt(x):cănbc2cax. Cĩ2loihàm:HàmcĩsncaVisualFoxProvàhàmttodongưisdngtora.Chúngta snghiêncuvnđnykhơnchươngsau. 1.2.7Biuthc Biuthclàtphpcamthaynhiuthànhphnnhưhng,hàm,bin,phéptốn,dungoc trịn.Saukhitínhtốnbiuthcschomttrduynht.Trcabiuthcthucvmttrong4 kiu:N,C,D,L.Mtbiuthccĩthrtphctp,trcabiuthcđưctínhtheonguyêntc sau: *Trong()tínhtrưc,ngồi()tínhsau, *Phéptốnưutiêncaotínhtrưc. *Bêntráitínhtrưc,bênphitínhsau. 1.2.8Tkhố TkhốlànhngtđưcVisualFoxProsdngvàomtmcđíchriêng,ngưisdngkhơng đưcđttêntrùngvicáctkhốny.Thơngthưngtkhốlànhngđngtđngtca lnhthchin.Nutkhốcĩnhiuhơn4kýtthìkhisdngchcnghi4kýtđu. Ví d: Câu lnh MODIFY COMMAND LUONG.PRG cĩ 2 t khố là MODIFY và COMMANDcĩthvitgnlà:MODICOMMLUONG.PRG 1.2.9Lnhvàchươngtrình
  9. Lnhlànhngyêucuđthchinmtnhimvnàođĩ.LnhtrongVisualFoxProthưnglà mtđngt,cũngcĩtrưnghplàmtkíhiunhư:!.?, Tphpcáclnhnhmđtđưc mtmctiêuđragilàchươngtrình. TrongVisualFoxProcĩ3cáchđbanhànhlnh: a. Dùngcaslnh : Lnhđưcđưavàocaslnh,saukhinEnterlnhđưcthihànhngay.Thihànhxong mtlnhthìlnhcũđưclưulitrêncaslnhcĩthsdngcholnsau.Cáchnythưng dùngtrongnhngtínhtốnđơnginđkimtraktqucalnh. b. Dùngmenu : Lnhđưcbanhànhbngcáchkíchhotmenutươngng,saukhithihànhxongcâulnh cũngđưclưulitrêncaslnh.Cáchnychhnchtrongmtslnhthơngthưngtrên tptinCSDL. c. Dùng chương trình: Son tho trưc mt chương trình gm nhiu lnh thích hp. Chương trình đưc lưu trên đĩa dưi tên mt tp tin cĩ phn m rng PRG. ð thc hin chươngtrìnhnày,ticaslnhđưacâulnhDO .SaukhinEnterchương trìnhđưcnpvàobnhvàtnglnhđưcthchintheotht. Bàithchànhchương1 1.GiscĩtptinHSNV.DBF(cĩcutrúcnhưđãmơtbài1,thchànhhai)trong đĩcĩítnht15mutin. a. Dùng lnh SORT đ sp xp li tp tin HSNV.DBF sang mt tp tin mi HSNVSX.DBFtheochtiêu:Cácmutinđưcspxptheotngđơnv(gimdn),trongmi đơnvthttên,hđưcspxptăngdn. b.MtptinHSNVSX.DBF •SdnglnhLISTlitkêcáctrưngHOLOT,TEN,NGSINH,M_LUONG,MADV. •SdnglnhUSEđđĩngtptinli.
  10. c.Lp3tptinchmc:FMASO.IDXtheotrưngMASONV, FDONVI.IDX theo trưngMADV,FLUONG.IDXtheotrưngM_LUONGgimdn. Bngcáchthaythtptinchmcch,hãylitkêcácmutintheoMASONVtăng dn,theoMADVtăngdn,theoM_LUONGgimdn. 2.TrongtptinHSNV.DBF a.DùnglnhLOCATE: Tìm ngưi cĩ h tên là ‘LE VAN NAM’ (gi s cĩ h tên này trong tp tin HSNV.DBF).DùnglnhDISPLAYchohinnidungcamutinnày,ridùnglnhEDITđ sali. TìmnhngngưiphịngHànhchính(MADV=’HC’),chohinđyđthơngtinca nhngngưinày. Tìmnhngngưicĩmclương>310. b.DùnglnhSEEKđtìmkimngưicĩMASONV=’TCH01’(gismãnàycĩtrong tptinHSNV.DBF).Chohinnidungcamutinnày. c.ChobitđachcangưicĩHtênlà‘HOVANHAO’,sinhngày10/11/58(bnghaicách: LOCATEvàSEEK).  1.CHƯƠNG2: THAOTÁCVIBNGDLIU 1.1.2.1.KHÁINIM Bngdliuchadliutheodngdịngvàct,midịngđưcgilàmtmutin(record), mictđưcgilàmttrưng(field)cabng. MibngdliuđưclưutrtrênđĩavitênfilecĩphnmrngmcđnhlàDBF,mibng dliucĩhaiphn:cutrúcvànidungcabng. Víd:bngnhânviên(nhanvien.dbf)cĩcutrúcsau:
  11. Fieldname Type Width Decimal Hoten Character 30 Gioitinh Logic 1 Ngaysinh Date 8 NamLV Numberic 4 Lylich Memo 10 NidungcaNHANVIEN.DBF Hoten Gioitinh Ngaysinh NamLV Lylich NguyenvanA .T. 10/15/75 1999 Memo LethiNhan .F. 06/15/70 1995 Memo 1.2.2.2FILEVÀKIUFILETRONGVISUALFOXPRO 2.2.1CáckiufilechínhcaFoxpro FoxProcĩcáckiufilesau: *.dbf: Filedliu *.idx: Filechmc *.prg: Filechươngtrình *.dbc: Filecơsdliu *.dll: Filethưvinlinktđng *.pjx: Filedán *.scx: FileForm *.vcx: Filethưvin 2.2.2.Cáchtchcmtfiledliu
  12. a.Filedliu :Làtphpdliuphnánhvmttphpcácđitưngqunlýthơngquacác thuctínhcanĩ. b.Bnghi(Record) :Làmtbgiátrcácthuctínhphnánhvmtđitưngqunlý. c. Trưng (Field) :Làmtthuctínhtrongfiledliu,mitrưng đưc xác đnh bi tên trưng,kiutrưngvàkíchthưctrưng. +Têntrưng(Fieldname):Têntrưngdàitiđa10kýtbaogmchcái,chs,kýtgch dưi,kýtđutiêncatêntrưngphilàchcái. +Kiutrưng(Fieldtype):Kiutrưngcĩcácdngsau: C:Charater N:Numberic L:Logic D:Date M:Memo G:General +Kíchthưctrưng(FieldWidth):Làkhongbnhcnthitđlưutrcácgiátrca trưng,kíchthưccatrưngphthucvàokiutrưng: KiuC: Tiđa254Byte KiuN: Tiđa20Bytekcduthpphân KiuL: Chim1Byte KiuD: Chim8Byte KiuM: đdàituỳý,chim10Bytekhikhaibáo Currency: Chim8byte +Cutrúcfile:Mithptrưngspxptheothtnhtđnhgilàcutrúccafiled liu,mifiledliuchcĩmtcutrúccth. 2.2.3.Nguyêntchotđng ChúngtachcĩthtruynhpđncácphntcamtfileDBFnufileđĩđãđưcmbng lnhUSE . mithiđimbtkỳ,mifileDBFđangmscĩmtmutinhinthi,mutinhinthi
  13. làmutincĩthtruynhpvàothiđimđĩ.Mutinhinthiđưctrđnbcontrmutin (recordpointer).Mimutinđangmcĩ2vtríđcbitchúý:đufilevàcuifile.ðbit đưccontrmutinđuhaycuifiletadùngcáchàmlogicsau: .HàmBOF()(beginoffile)chogiátr.T.nucontrmutincuifileDBFđangm,ngưc lihàmchogiátr.F. .HàmBOF()(endoffile)chogiátr.T.nucontrmutincuifileDBFđangm,ngưcli hàmchogiátr.F. .Sthtcamutin(recordnumberrecno):mơtsthtvtlýcamutintrongtptin cơsdliuDBF.SthtnydoFoxProquiđnhmtcáchtunt,đưcđánhst1đn mutincuicùng.Trongkhilàmvic,nuxốmtmutinthìsthtnàycũngtđngđưc cpnhttheochophùhp. .HàmRECOUNT()dùngđbitsmutincamttptinDBFđangm. .HàmRECSIZE()dùngđbitđưckíchthưccamtmutin. .HàmRECNO()chobitsthtcamutinhinthi. .KíchthưccacácmutincamtfileDBFđubngnhau. 1.3.2.3.CÁCLNHCƠBNTRÊNFILEDBF 1.4.2.3.1Dnglnhtngquát Lnhlàmtchthchomáythchinmtthaotáccth.MtlnhtrongFoxpronĩichungcĩ cúpháptngquátnhưsau: Lnh[phmvi][FIELDS ][FOR ][WHILE ][FROM /ARRAY ][TOprint/tênfile/dsáchbin] Trongđĩ, Lnh:mttkhố,chobitmcđíchcacơngvic,phivitđutiênvàcĩthvit4kítđu nulnhcĩnhiuhơn4kýt. Víd: DISPLAYFIELDSHOTEN,HSLUONG DISP FIELHOTEN,HSLUONG
  14. Phmvi(Scope):chđnhphmvicácmutinchustácđngcalnh,phmvicĩthlà: •ALL: ttccácmutintrongfiledliuđubtácđngcalnh(nucĩs dngFORthìphmviđưchiulàALL). •NEXT :nmutintiptheotínhtmutinhinthibtácđngcalnh. •RECORD Lnhchtácđngđnmutinthn •REST Lnhstácđngtmutinhinthichođnht. FIELDS :lnhchcĩtácdngtrênnhngtrưngcĩtênđưcnêutrong . FOR :mutinnàothomãn mibtácđngbilnh. WHILE :chngnào cịnđúngthìlnhcịnhiulc.Nghĩalà,lnhstácđng lêncácbnghithomãnbiuthclogicđikèm(cĩgiátrlà.T.)chođnkhigpmtbnghi khơngthomãnbiuthclogic(cĩgiátr.F.)hocđnhtfiledliu.Nuđiukinsaithì lnhđưcdngngay.TronglnhnuvacĩFORvacĩWHILEthìmnhđWHILEưutiên thchintrưc. FROM :têncafilemàtđĩlnhlysliuđsdngchofileDBFđangm. TOPRINT/tênfile/dsáchbin:chuynktqusaukhithchinlnhđnmáyin/file/bin. Cácmnhđtheosaulnhcĩmthaykhơngtuỳtrưnghpvàkhơngcnphivittheotht nhưđãnêu. 1.5.2.3.2Tobngdliu Cúpháp: Create ↵ hoc ChnFile/New/ Víd:createnhanvien ↵ &&tobngnhanvien Lúcnày,mànhìnhsxuthinhpthoiđtatocutrúcbng Chèn thêm trưng Xĩa trưng
  15. Trongđĩ: Name: Têntrưng Type: Kiutrưng Width: ðrngcatrưng Decimal: Schslsauphnduchmthpphân,phnnàychs dngchodliukius. Chúý:Cáctêntrưngkhơngđưctrùngnhau,khơngđưctrùngvitkhố. ðividliukiusnucĩphnthpphânthìđrngcaphnthpphânphinh hơnđrngcatrưngítnhtlà2đơnv. ðktthúcvicnhpcutrúctanđngthi phím Ctrl+W,lúcnàysnhnđưchpthoi Lúc này: tr li thì s quay li ca s lnh,tr li đtinhànhnhpcácbnghi.KhichnYesstiptcxuthinhpthoiđnhp dliu. Khiktthúcvicnhpdliu,nhnthp đlưufiledliulênđĩa.Khiđĩfiled liuscĩdng .DBF Chúý:ðnhpdliuchotrưngMEMO,tađưacontrđnhpmemorinhnthpphím Ctrl_PgUp,lúcđĩsxuthincasnhpdliuchotrưngnày.Saukhiktthúcvicnhp dliuchonĩ,tanthpCtrl+Wđghili. 1.6.2.3.3ðnhvcontrđnmtbnghi a.ðnhvtuytđi Cú pháp: GO |[TOP]|[BOTTOM] Tácdng:Dùngđchuyncontrbnghiđnbnghicĩshiu đưcchiđnhtrongcâu
  16. lnh. +GOTOP:Dùngđchuyncontrbnghivđufiledliu. +GOBOTTOM:Dùngđchuyncontrbnghivcuifiledliu. b.ðnhvtươngđi Cúpháp:Skip[+|][ ] Tácdng:Dichuyncontrbnghivtrưc()haysau(+)sovibnghihinthi. Chúý:KhichgõlnhSkip ↵thìcontrbnghisđưcdichuynvsaubnghihinthi mtđơnv. 1.7.2.3.4Lydliutbng a.LnhDisplay Cúpháp:display[ ][fields ] [For ][While ][on|off] Tácdng:Hinthnidungcacácbnghitrong đưcchđnhvàthomãnđiu kincacácbiuthclogicđisauFORvàWHILEnucĩ. Theomcđnhthìttccáctrưngtrongbngdliusđưchinth,nucĩ[field ]thìnhngtrưngđưcchratrongdanhsáchnàymiđưchinthlênmàn hình. mcđnhlàbnghihinthi. Víd:1.Hinthttccácbnghicabngdliunhanvien: Usenhanvien ↵ Displayall ↵ 2.Hinthttcnhngngưicĩnămlàmvic(namlv)trưc1980 Displayfornamlv<1980 ↵ Chúý:TrongcâulnhcaFox,nucĩmnhđFORthìphmvimcđnhlàALL. b.LnhLIST
  17. Cúpháp: List[ ][fields ][For ][While ][on|off] Tácdng:HinthnidungcacácbnghinhưlnhDisplaynhưngmcđnhcalnhnàylà ALL Víd:1.Hinthttccácbnghicabngdliunhanvien: Usenhanvien ↵ List ↵ 2.Hinthttcnhngngưicĩnămlàmvic(namlv)trưc1980 Listfornamlv Tácdng:Lnhnàytínhtốnvàchohinthktqucadanhsáchbiuthclênmànhình. Chúý:lnh?trưckhiindliuthìxungdưi1dịng,cịnlnh??thìkhơng. Víd:Chohinthhtêncangưicĩshiulà5lênmànhình: Go5 ↵ ?‘hoten’,hoten ↵ Chúý:danhsáchbiuthctrongFoxđưcvitcáchnhaubiduphy“,”. Víd:chobithtên,nămlàmviccangưicĩshiulà2: Go2 ↵ ?’hoten:’,hoten,’namlamviec:’,namlv ↵ 1.8.2.3.5Chèn,bsungbnghi a.Chènbnghi Cúpháp:INSERT[BEFORE][BLANK] Tácdng:Chènmtbnghingaysaubnghihinthi(nucĩ[Before])vinidungđưc nhpvào.Nucĩ[BLANK]thìschènmtbnghitrng.
  18. Víd:chènmtbnghivàosaubnghith3: Go3 ↵ Insert b.Bsungbnghi Cúpháp:APPEND[BLANK] Tácdng:ðchèn1bnghivàocuibngdliu(giátrđưcnhpvào),nucĩthams [BLANK]thìsbsungmtbnghitrng. 2.3.6Sachanidungbnghi a.LnhBROWSE: CÚPHÁP:BROWSE[FIELD ][FREEZE ][NODELETE] [NOEDIT][FOR ] TÁCDNG:HINTHNIDUNGCABNGDLIU,MIBNGHIðƯCTHHIN TRONGMTHÀNG(DỊNG),TACĨTHXEMVÀDICHUYNHPSÁNGT TRƯNGNÀYQUATRƯNGKHÁC,BNGHINÀYSANGBNGHIKHÁCVÀCĨ THSAðINIDUNGCATNGMUTINTRONGBNGHI. VÍD: USENHANVIEN ↵↵↵ BROWSE ↵↵↵ [FIELD ]:CHOPHÉPCÁCTRƯNGTRONGDANHSÁCH NÀYðƯCHINTHTRÊNMÀNHÌNH,NUKHƠNGCĨTHAMSNÀYTHÌTT CCÁCTRƯNGTRONGBNGDLIUSðƯCHINTH. [FREEZE ]:CHOPHÉPCÁCTRƯNGTRONGDANH SÁCHNÀYLUƠNðƯCHINTHTRÊNMÀNHÌNH. [NODELETE]:KHƠNGCHOPHÉPXỐ [NOEDIT]:KHƠNGCHOPHÉPSAðI.
  19. VÍD:HINTHNIDUNGCACÁCTRƯNGHOTEN,NAMLVðTINHÀNH SAðI. BROWSEFIELDHOTEN,NAMLVFREEZENAMLV [FOR ]:CHCHOPHÉPNHNGBIUTHCTHOMÃNðIU KINCABIUTHCLOGICMIðƯCHINTH. b.LnhEdit CÚPHÁP:EDIT[ ][FIELD ][ NOAPPEND][NODELETE][NOEDIT] [FOR ][WHILE ] TÁCDNG:TƯƠNGTNHƯLNHBROWSENHƯNGCÁCBNGHIðƯCXUT HINNHƯLNHAPPEND. c.LnhREPLACE CÚPHÁP: REPLACE[ ] WITH [ADDITIVE] [, WITH [ADDITIVE] ][FOR ] [WHILE ] TÁCDNG:DÙNGðTHAYTHNIDUNGCÁCTRƯNGðƯCCHRACACÁC BNGHINMTRONG VÀTHAMÃNðIUKINCA ðISAUFORHOCWHILEBICÁCBIUTHCTƯƠNGNG.PHMVI MCðNHLÀBNGHIHINTHI. CHÚÝ:KIUDLIUCA VÀCA TƯƠNGNGPHI TƯƠNGðƯƠNGNHAU,NUKHƠNGTHÌFOXSTHƠNGBÁOLIKIUDLIU "DATATYPEMISMATCH". VÍD:1.THAYTHHTÊNCANHÂNVIÊNTRONGFILENHANVIENBNGCH IN
  20. REPLACEALLHOTENWITHUPPER(HOTEN) ↵↵↵ 2.NÂNGLƯƠNGCANHNGNHÂNVIÊNNLÊNHTHÊM50000ðNG REPLACELUONGWITHLUONG+50000FOR!GIOITINH ↵↵↵ 1.9.2.3.7Xốbnghi VICXỐMTBNGHITRONGBNGDLIUðƯCTHCHINTHEOHAI BƯC: BƯC1:ðÁNHDUBNGHIMUNXỐ: CÚPHÁP:DELETE[ ][FOR ][WHILE ] TÁCDNG:LNHNÀYðÁNHDUTTCCÁCBNGHITHOMÃNðIUKIN ðƯCNÊU,MCðNHLÀBNGHIHINTHI. KHITHCHINLNHNÀYCÁCBNGHIðƯCCHðNHðÁNHDUXỐS XUTHINDU*TRƯCCÁCBNGHI.LÚCNÀYTACĨTHPHCHILI CÁCBNGHIðĨðƯC. VÍD:ðÁNHDUXỐNHNGNHÂNVIÊNCĨNĂMLÀMVICTRƯC1951. DELETEFORNAMLV<1950 ↵↵↵ BƯC2.XỐCÁCBNGHI.CÁCBNGHISAUKHIðÃðƯCðÁNHDUXỐ NUQUYTðNHTHTSMUNXỐNĨTHÌTHCHINLNHPACK,NGƯC LINUKHƠNGMUNXỐNĨTHÌTHCHINLNHRECALL. A.LNHXỐCÁCBNGHIBðÁNHDUXĨA(PACK) CÚPHÁP:PACK TÁCDNG:XỐCÁCBNGHITRONGBNGDLIUðÃðƯCðÁNHDUXỐ BNGLNHDELETE. B.LNHPHCHICÁCBNGHIðÃðƯCðÁNHDUXỐ(RECALL):
  21. CÚPHÁP:RECALL[ ][FOR ][WHILE ] TÁCDNG:PHCHILICÁCBNGHIMÀTRƯCðĨðÃðƯCðÁNHDU XỐBILNHDELETE.PHMVIMCðNHCALNHNÀYLÀBNGHIHIN THI. C.LNHXĨADLIUTRÊNFILEDBF. CÚPHÁP:ZAP TÁCDNG:XĨATTCCÁCBNGHITRONGMTFILEDBFðANGM. 1.10.2.3.8Lcdliu ðHNCHSLƯNGCÁCBNGHITHAMGIAVÀOQUÁTRÌNHXLÝ,TACĨ THLCCÁCBNGHITRONGBÀNGDLIUTHOMÃNðIUKINCHO TRƯC. CÚPHÁP:SETFILTERTO ↵↵↵ SAUKHITHCHINLNHLCTHÌCÁCLNHTIPTHEOSAULNHNÀYCH CĨTÁCDNGðIVICÁCBNGHITHOMÃNðIUKINLC. MUNHUBVICLCDLIUTATHCHINLNH:SETFILTERTO ↵↵↵ VÍD: 1.CHHINTHNHNGNHÂNVIÊNN: SETFILTERTO!GIOITINH ↵↵↵ LIST ↵↵↵ 2.CHÍXÉTNHNGNHÂNVIÊNCĨQUÊQUÁNLÀHU SETFILTERTOQUEQUAN=="HUE" ↵↵↵ LIST ↵↵↵ 1.11.2.3.9THAOTÁCVICUTRÚCBNG:
  22. a.Xemcutrúcbng(List|Displaystructure) CÚPHÁP:LIST|DISPLAYSTRUCTURE ↵↵↵ TÁCDNG:HINTHCUTRÚCCABNGDLIUðANGðƯCM,BAOGM: TÊNTRƯNG,KIUVÀðRNGCATRƯNG. VÍD: USENHANVIEN ↵↵↵ LISTSTRUCTURE b.Sađicutrúcbngdliu CÚPHÁP:MODIFYSTRUCTURE ↵↵↵ TÁCDNG:HINTHVÀCHOPHÉPSAðICUTRÚCBNGDLIU,KT THÚCLNHNÀYNHNTHPPHÍMCTRL+W. VÍD: USENHANVIEN ↵↵↵ MODIFYSTRUCTURE ↵↵↵ c.Saolưucutrúcbngdliu CÚPHÁP:COPYSTRUCTURETO [FIELDS ] ↵↵↵ TÁCDNG:ðSAOCHÉPCUTRÚCCABNGDLIUðANGðƯCMSANG MTBNGMICĨTÊNðƯCCHRATRONG VICÁC TRƯNGðƯCCHRATRONGMC[FIELD ].MCðNH CALNHNÀYLÀTTCCÁCTRƯNGCĨTRONGBNGDLIUðANGðƯC M. VÍD:SAOLƯUCUTRÚCCANHANVIENTHÀNHFILECĨTÊNLÀLUU.DBF NHƯNGCHGMCÁCTRƯNG:HOTE,GIOITINH,NĂMLV. USENHANVIEN ↵↵↵ COPYSTRUCTURETOLUUFIELDSHOTEN,GIOITINH,NAMLV↵↵↵ CHÚÝ:BNGMIðƯCTORACHCĨCUTRÚC,KHƠNGCĨNIDUNG.
  23. 1.12.2.3.10Saochépbng CÚPHÁP:COPYTO [ ][FIELDS ][FOR ][WHILE ] ↵↵↵ TÁCDNG:LNHDÙNGðTOBNGMICĨTÊNðƯCCHRA VINIDUNGðƯCLYTBNGDLIUðANGðƯCM.MCðNH LNHNÀYLÀTTCCÁCBNGHIðUðƯCSAOCHÉP,NUCĨPHMVIVÀ CÁCBIUTHCLOGICTHÌNHNGBNGHITHOMÃNðIUKINMIðWOCJ SAOCHÉP.DANGSÁCHTRƯNGðCHðNHCÁCTRƯNGðƯCSAOCHÉP. VÍD:TOBNGDLIUCĨTÊNLÀNU.DBFTFILENHANVIEN.DBFGMCÁC TRƯNGHOTEN,NGAYSINH,NAMLV. USENHANVIEN ↵↵↵ COPYTONUFIELDSHOTEN,NGAYSINH,NAMLVFOR!GIOITINH ↵↵↵ USENU ↵↵↵ &&MðXEMKTQU LIST ↵↵↵ 1.13.2.4.MTSHÀMTHƠNGDNG 2.4.1.Cáchàmvngàytháng A.HÀMDATE(): CHONGÀY,THÁNG,NĂMHINTICAHTHNG.THT NGÀY,THÁNG,NĂMCALNHNÀYPHTHUCVÀOLNHSETDATE. VÍD: NUTATHCHINLNH:SETDATEFRENCH ↵↵↵ RITHCHINLNHDATE() ↵↵↵THÌNGÀYHINHÀNHCAHTHNGSðƯC HINRATHEOTHTLÀNGÀY,THÁNG,NĂM. B.HÀMYEAR( ): CHONĂM(CĨ4CHS)CA . VÍD:YEAR(DATE()) →→→CHONĂMHINTICANGÀYHTHNG. C.HÀMMONTH( ): CHOTHÁNGHINTICABIUTHCNGÀY VÍD:MONTH(DATE()) →→→CHOTHÁNGCANGÀYHTHNG.
  24. D.HÀMDAY( ):CHONGÀYCABIUTHCNGÀY. VÍD:DAY(DATE()) ↵↵↵→→→CHONGÀYHINTI. 2.4.2.Cáchàmvchui A.HÀMLEN( ): CHOCHIUDÀICABIUTHC,TÍNHBNGBYTECA ,CHUIRNGCĨCHIUDÀILÀ1. B.HÀMLEFT( , ): TRÍCHRAMTCHUIT GM KÝTTÍNHTBÊNTRÁISANG. VÍD:?LEFT("NGUYENVANAN",6) →→→CHOKTQULÀ"NGUYEN". C.HÀMRIGHT( , ): TRÍCHRAMTCHUIT GM KÝTTÍNHTBÊNPHISANG. D.HÀMSUBSTR( , , ): TRÍCHRAMTCHUICONCA TVTRÍ VÀGM )KÝT. VÍD:?SUBSTR("NGUYENVANAN",8,3"KTQUCHOCHUI"VAN". E.HÀMALLTRIM( ): CHOKTQULÀMTCHUISAUKHIðÃLOIB CÁCKÝTTRNGHAIBÊN(NUCĨ)CA . VÍD:?ALLTRIM("NGUYENVANAN") →→→"NGUYENVANAN" F.HÀMUPPER( ): CHOKTQULÀCHUIINHOACA . VÍD:?UPPER("NGUYENVANAN") →→→"NGUYENVANAN" G.HÀMLOWER : NGƯCLICAHÀMUPPER. 2.4.3.Cáchàmshc A.ASB(X): CHOGIÁTRTUYTðICAX. B.INT(X): CHOPHNNGUYÊNCAX. C.ROUND(X, ): LÀMTRỊNXVINSL. E.SIN(X): CHOGIÁTRSINX F.COS(X): CHOGIÁTRCOSX.
  25. Bàithchànhchương2 1.TotptinDBF. DùnglnhCreatetcaslnhđtocutrúcchotptinHSNV.DBFnhưsau:(Chto cutrúc,khơngnhpdliu). 2.FieldName FieldType WidthDec Phnghichú MASONV Character 5 Mãsnhânviên HOLOT Character 20 Hlĩt TEN Character 7 Tên PHAI Logic 1 Phái(Nam,N) DIACHI Character 30 ðach NGSINH Date 8 Ngàysinh TDVH Numeric 2 Trìnhđvănhố M_LUONG Numeric 3 Mclương NGAYLL Date 8 Ngàylênlương Ghichú: Trìnhđvănhốđưcđánhgiáquacácmãsau: 0:Mùch,112:Phthơng,13:ðihc,14,Caohc,15:Tinsĩ b.ChobitcơngdngcaphímF5vàF6 c.Thêmvàotptinvatorahaitrưngmi. 3.FieldName FieldType WidthDec Phnghichú MADV Character 2 Mãđơnv HOHANG Memo 10 Hhàng d.trưngPHAIsalitênlàNUcĩkiuLogic. e.Nhpsliu10nhânviênvàotptinHSNV.BDFnày. Ghichú:ðnhpdliuvàovùngHOHANG(kiuMemo)dùngphímCtrl_Homevà ktthúcbngCtrl_W.
  26. 2.DùngmenuhthngtocutrúctptinHOCVIEN.DBFsauđây: 4.FieldName FieldType WidthDec Phnghichú MASONV Character 4 Mãsnhânviên HO Character 20 Hlĩt TEN Character 7 Tên NAM Logic 1 Nam:.T.,N:.F. NGSINH Date 8 Ngàysinh NOISINH Character 2 5 Nơisinh DIACHI Character 20 ðach MALOP Character 4 Mãlp MAGV Character 3 Mãgiáoviên DIEMLT Numeric 5 2 ðimlýthuyt DIEMTH Numeric 5 2 ðimthchành UUTIEN Logic 1 Ưutiên GHICHU Date 10 Ghichú Nhpsliu10hcviênđutiên b.DùnglnhDIRcaslnhđxemtptincĩtrênđĩahaykhơng,smutinva nhpvàdunglưngđĩacịntrng? c.Gõlnh:UseđđĩngtptinHOCVIEN.DBFrithốtkhiFoxPro. Cp nht d liu 1.MtptinHOCVIEN.DBF Dùng lnh LIST hay DISPLAY ALL đ xem ni dung các mu tin ca tp tin HOCVIEN.DBF và ch xem các vùng tin MAHV, HO, TEN, NAM, MALOP, MAGV, DIEMLT,DIEMTH,nucĩsaisĩthãyđiuchnhchođúng. 2.GõlnhSETSTATUSONđxemthanhtrngthái. NuthanhtrngtháibchekhutbicaslnhthìnCtrl_F7đdichuyncasđn vtríkhác. NubĩngmdưicaslnhchelpthanhtrngtháithìgõSETSHADOWOFFđ ttđi.
  27. 3.DùnglnhAPPENDđthêmhaimutinmirinCtrl_Wđghili. 4.DùnghàmRECNO()chobitshiucamutinhinhànhdicontrđnđutp tin. 5.SdnglnhEDITđsanidungcácmutintuỳýthíchcabn,saxongn Ctrl_Wđghili. 6.Gõlnh:BROWSE.Quansátmànhìnhrithcácđngtácsau: a.ðưavtsángđnmutinthnhttivùngghichú,rinCtrl_Homeđxemphnghi chúcĩnhngnidunggì?GõthêmmtghichútuỳýrinCtrl_Wđghili. b.nAlt+BđgiMENUcaBROWSE,sauđĩgiAPPEND,nhpthêm1mutinri nCtrl_Wđghili. c.GõlilnhBROWSElnna,nCtrl_N,FoxProsthêmmutintrngcui,nhp sliuchomutinnày. d.ðưavtsángđnvùngDIEMLT,nAlt+BđgiMENUph,sauđĩchnMoveri chuynvtsángđnvùngDIEMTH,nEnter.KtquhaictDIEMLTvàDIEMTHsđưc chuynchonhau. e.ðưavtsángđnvùngNOISINH,nAlt+BđgimenuSIZE,dùngmũitêntráithu hpctnàycịn10Bytesthơi,sauđĩgõ:“VĩnhliHu”vàomutinthtư. 7.GõlnhDELETEALLFORDIEMTH<7rixemcĩbaonhiêumutinbđánhdu xố? 8.GõlnhBROWSEđquansát,sauđĩđưavtsángđnmtmutinbđánhduxố rinCtrl_Txemduxốcĩcịnhaykhơng,nliCtrl_Tlnnađxemđiugìxyra,sauđĩ nCtrl_Wđthốtra. 9.GõlnhRECALLALLđphchicácmutinbđánhduxốriđĩngtptin HOCVIEN.DBFli. 10.MtptinHSNV.DBF a.DùnglnhREPLACEđtănglươnggpđơichottcnhânviên,sauđĩtăngthêm riêngchocácnnhânviên10%na. b.ThêmvàocutrúctinHSNV.DBFmttrưngLOAIBC(loibiênch:BC/HD)và dùngBROWSEnhpdliuchovùngtinnày,nCtrl_BđthốtkhiBROWSE. c.GõlnhDISPLAYSTRUCTURE(hayF5)đxemlicutrúc. d.ðánhduxốcácnhânviênmùchvàtrìnhđphthơngcholitkêtrênmànhình nhngmutinkhơngbđánhduxố.
  28. e.NhpthêmhaimutinvàogiatptinHSNV.DBF. MtmutinsaumutincĩSTT=5 MtmutintrưcmutincĩSTT=3 f.GõlnhRECALLALLđphchicácmutinbđánhduxố. g.Litkêdanhsáchcácnhânviêntheodng. MNV HOLOT TEN NU NGSINH HSL TDVH h.Litkêtheongcâugnhngnhânviênnam. i.Litkêtheodngcâugnhngnhânviênnamt18đn30tui. j.Litkêtheodngcâugnhngnhânviênncĩtrìnhđđihc. k.Litkêtheodngcâugnhngnhânviêncĩtênbtđubngvn‘H’ l.GõlnhUseđđĩngtptinHXNV.DBFrithốtkhiFoxPro. 
  29. 5.CHƯƠNG3:SPXPTÌMKIMTHNGKÊ 5.1.3.1.SPXP 3.1.1.Kháinim Trong mt bng d liu, chúng ta cĩ th sp xp các mu tin theo mt tiêu chun no ĩ tu theo yêu cu ca vic khai thác thơng tin. 3.1.2.Spxptheochmc a.Kháinimvchmc Tađãbitmibngdliuchacácbnghivàmibnghiđuđưcđánhshiutheo sthtt1đnn. Víd:bngNHANVIEN.DBFcĩdangsau: Record# HOTEN NGAYSINH GIOITINH NAMLV 1 NGUYNVĂNA 02/10/75 .T. 1985 2 Lêthnhàn 05/23/75 .F. 1980 3 NguynAn 10/26/80 .T. 1982 4 TrnHnh 09/25/70 .T. 1981 Shiucácbnghi Khi x lý thơng tin trong bng d liu, ta truy xut chúng theo trt t ca s hiu bn ghi. Víd: useNHANVIEN↵ list ↵ Ktquinrasnhưsau: Record# HOTEN NGAYSINH GIOITINH NAMLV 1 NGUYNVĂNA 02/10/75 .T. 1985 2 Lêthnhàn 05/23/75 .F. 1980 3 NguynAn 10/26/80 .T. 1982 4 TrnHnh 09/25/70 .T. 1981
  30. Spxpbngdliutheochmclàtoramtfilemi(cĩphnmrngmcđnhlà .IDX)chcĩhaitrưng:trưngkhốspxpvàtrưngshiubnghi .Thtcabnghi đâylàthtspxp. Ví d: file ch mc ca bng nhanvien theo th t tng dn ca nm l àm vic nh sau: Namlv Record# filechmctheonamlv 1980 2 1981 4 1982 3 1985 1 Lúcnày,khitruyxutdliucabng,thtcacácbnghilàthtđưcquyđnh trongfilechmcnày. Ví d: Trong bng nhanvien, s dng ch mc theo trng namlv.idx ta cĩ th t truy xut: Record# Hoten ngaysinh gioitinh namlv 2 Lêthnhàn 05/23/75 .F. 1980 4 TrnHnh 09/25/70 .T. 1981 3 NguynAn 10/26/80 .T. 1982 1 NguynvănA 02/10/75 .T. 1985 b.LpchmcIDXchobngdliu Cúpháp:INDEXON TO [FOR ][UNIQUE]↵ Tácdng:Lnhspxpfiledliutheochiutăngdnca cacácbn ghi tho mãn sau FOR, mc đnh là tt c các bn ghi. Nu cĩ t khố [UNIQUE]thìcácbnghinàocĩ trùngnhausbbquatrênfilechmc. Víd1:Hinththeothttăngdncanamlvcacácnhânviên. useNHANVIEN ↵ indexonNAMLVtoCMNAMLV ↵ list ↵
  31. Víd2:Hinththeothttăngdncahoten indexonHOTENtoCMHOTEN ↵ list ↵ Chúý:Lnhluơnspxptheothttăngdnca ,dovykhilachn thìphichnchophùhp. Víd1:Hinththeothtgimdncanamlvcacácnhânviên. useNHANVIEN ↵ indexonNAMLVtoCMNAMLVG ↵ list ↵ Víd2:Hinththeothtgimdncangaysinh. useNHANVIEN ↵ indexondate()NGAYSINHtoCMNSINHG ↵ list ↵ c.Mtslnhliênquan +SETINDEXTO :Dùngđmfilechmcsaukhiđãmmtbngd liu. +SETINDEXTO:Dùngđđĩngfilechmc. + REINDEX: Dùng  cp nht li file ch mc sau khi cĩ s sa i trên bng d liu. 5.2.3.2.TÌMKIM 3.2.1.Tìmkimtunt a.LnhLocate: Cúpháp: LOCATE[ ]FOR [WHILE ]
  32. Tácdng:Lnhsduyttuntcácbànghitrongbngdliuvàtìmđnbnghiđu tiêntrong thomãnđiukinca .Nutìmđưc,hàmFOUND()s chogiátr.T.,hàmEOF()cĩgiátr.F. Víd:Tìmnhânviênđutiêntrongbngdliusinhnăm1970trongbngnhanvien useNHANVIEN ↵ Locateforyear(NGAYSINH)=1970 ↵ Display ↵ b.Lnhcontinue Cúpháp:CONTINUE Chcnăng:TheosaulnhLOCATE,dùngđtìmbngghiktipsauthamãnđiu kinđãnêu. Víd:Tìm2nhânviênđutiênsinhnăm1970 useNHANVIEN locateforyear(NGAYSINH)=1970 display continue display 3.2.2.Tìmkimsaukhiđãlpchmc Cúpháp:SEEK Chcnăng:saukhiđãlpchmctheo đtìmbnghinàothamãnmt điukindavào TasdnglnhSEEKtheosaulà cabiuđiukincntìm.nutìmthythì hàmFOUND()cĩgiátr.T.vàhàmEOF()cĩgiátr.F. Víd:1.SpxptheothttăngdncaHTên,tìmnhânviêncĩtên“NguyenVan AN”.
  33. useNHANVIEN indexonupper(HOTEN)toCMHOTEN seek“NguyenVanAn” disp 2.SpxptheothtgimdncaNAMLV,tìmnhânviêncĩnămlàmvic1981. useNHANVIEN indexonNAMLVtoCMNAMLVG list seek1981 disp 3.3.THNGKÊ 3.3.1.ðmslưngbnghi Cúpháp COUNT[ ][FOR ][WHILE ][TO ] Chcnăng:lnhdùngđđmsmutintrongbngdliuhinhànhthamãnđiukincác nm trong phm vi đưcch ra. Kt quđưcđưaramànhìnhhayđưavào nucĩTO. Víd:ChobitcĩbaonhiêunhânviêncĩNAMLVlà1980 useNHANVIEN countforNAMLV=1980tosonguoi ?’cĩsonguoi:‘,songuoi,‘làmvicnăm1980’ 3.3.2.Tínhtnggiátrcáctrưngkius Cúpháp: SUM[ ][ ][TO ] [FOR ][WHILE ]
  34. Chcnăng:Lnhslytngtheocácbiuthcđưcxâydngdatrêncáctrưngkiu s,cacácbnghitrongbngdliu;nmtrong vàthamãnđiukincacác .Nukhơngcĩ thìcáctrưngkiusđuđưclytng. Mcđnh,ktquđưcđưaramànhình;nucĩTO thìktqucacác sđưcđưavàocác tươngng. Chúý:Phitươngng11gia và . Víd:DavàobngNHANVIEN,chobittngLUONGphitrvàtngPHUCAPlà baonhiêu. useNHANVIEN sumLUONG,PHUCAPtotongluong,tongpc ?’tongluongla:’,tongluong ?’tongphucapla:’,tongpc 3.3.3.Tínhtrungbìnhcngcáctrưngkius Cúpháp:AVERAGE[ ][ ][TO ][FOR ] [WHILE ] Chcnăng:gingnhưlnhSUMtrênnhưngsaukhilytng,lnhslygiátrđĩ đemchiachotngsbnghithamgiavàocâulnh. Víd:davàobngNHANVIEN,chobittrungbìnhminhânviênnhnđưcbao nhiêuLUONG,PHUCAP. useNHANVIEN averageLUONG,PHUCAPtotbluong,tbphucap ?’trungbinhluong:’,tbluong ?’trungbìnhphucap:’,tbphucap 3.3.4.Tínhtngcáctrưngstheonhĩm CÚPHÁP:TOTALON TO [ ]
  35. [FIELD ][FOR ][WHILE ] Chcnăng:Lnhscngdncáctrưngkiu s theo tng nhĩm bn ghi cĩ gingnhauvàđưavàobngmicĩtênđưcchra .Mcđnhthìtt ccáctrưngkiusđuđưccngdn,nucĩFIELDS thìchcĩcác trưnglitkêmiđưccng.Lnhchtácđngđncácbànghinmtrong(phmvi)vàtho mãnđiukinđisaucácmnhđFOR,WHILE. Chúý:Trưckhidùnglnhnày,bngdliuphiđnhspxptheokhố. Víd:DavàobngVATTV,hãythngkêxemmimthàngđãxuthaynhpmts lưnglàbaonhiêu. useVATTV indexonMAXN+MAVTtoCMTK totalonMAXN+MAVTtoTHONGKEfieldsSOLUONG useTHONGKE ?‘chitietla:’ listMAXN,MAVT,SOLUONG,DONGIA GisbngVATTUsaukhispxplà: MAXN SOCT MAVTU SOLUONG DONGIA N 9 A01 145 5 N 4 A01 203 500 N 1 F01 123 200 N 2 F01 345 200 N 10 F01 654 180 KtqucabngTHONGKE.DBFlà: MAXN SOCT MAVTU SOLUONG DONGIA N 9 A01 348 500
  36. N 1 F01 469 200 N 10 F01 654 180 6.CHƯƠNG4: LPTRÌNHTRÊNVISUALFOXRO 6.1.4.1.CHNGTRÌNH 4.1.1Kháinim Làmtdãylnhliêntipđưctchcvào1filechươngtrình,filechươngtrìnhmc đnhcĩphnmrnglà*.PRG. Trongmtchươngtrình,milnhđưcvittrênmthàngvàmihàngchchamtlnhti mtctbtkỳ. 4.1.2.Sonthochươngtrình ðsonthochươngtrình,tcaslênhđưavàolnh; MODIFY COMAND Lúcnàyxuthincaschươngtrìnhđtacĩthđưacáclnhvàochonĩ. Mtchươngtrìnhfoxprothưngcĩ3phn. a)Tomơitrưnglàmvic:thưngchacáclnhsau: SETDATEFRENCH:đtngàythángnămtheodngDDMMYY SETCURENCYON:đtnămcĩ4chs SETTALKOFF/ON:nhincácktquthchinlnh SETDEFAULTTO :đtđưngdnhinthi CLEAR:xốmànhìnhhinthktqu CLOSEALL:đĩngcácbngdliu,cácfilecơsdliu, b)Phnthânchươngtrình:
  37. Thchincáccơngvicmàchươngtrìnhyêucunhư: +Cpnhpdliu +xlý,tínhtốn +Ktxutthơngtin c)Ktthúcchươngtrình +ðĩngcáctptinCSDL,cácbngdliuđangsdng +Giiphĩngbinnh +Trlicácchđchohthng. d)Chúthíchtrongchươngtrình Làcácgiithíchđưcthêmvàođlàmrõchochươngtrình,phiđưcbtđubidu*hay && *:Btđumtdịng &&:Vitsaumtlnh 6.2.4.2.BINNH 4.2.1.Khaibáobin a)Lnhgán= Cúpháp: = Víd: a=5 ngay=Date() b)LnhSTORE Cúpháp: STORE to Cơngdng:Gángiátr cho ;nu chưatntinĩskhaibáo, nuđãcĩthìthaythbigiátrmi. Víd:STORE0Toa,b,c
  38. 4.2.2.Nhpgiátrchobintbànphím a)LnhACCEPT Cúpháp ACCEPT to Chcnăng:Dùngđnhpmtchuitbànphím,ktthúcbiphím ↵,giátrnhnđưc sđưacho . Víd: ACCEPT‘nhaphoten’tobhoten ?‘Hotenvuanhap',bhoten làmtcâunhcnhngưisdng. b.LnhINPUT Cúpháp:INPUT to Tácdng:Tươngtlnhtrênnhưngcĩthnhndliutheotngkiu: KiuCharater:Phiđưcđttrongcpdu' 'hay" ". KiuNumberic:Nhpdliukius. KiuDate:Phiđưcđtrongdu{}. KiuLogic:Nhpgiátr.T.hay.F. Víd: INPUT'Nhapngaysinh'TObngaysinh INPUT'Nhapdiem"TObdiem Chúý:Tronghailnhtrên,nubinchưacĩthìnĩstkhaibáo,nuđãcĩthìnĩs thaygiátrcabinbigiátrvanhp. 4.3.CÁCCUTRUCðIUKHINCHƯƠNGTRÌNH 4.3.1.Cutrúctunt
  39. Quyưc:Chươngtrìnhđưcthchinttrênxungdưi. 4.3.2. Cu trúc r nhánh Cịn gi l cu trúc chn la. Cu trúc r nhánh cĩ hai dng: dng khuyt v dng y : .F. BthcL a.Dngkhuyt : .T. Cúpháp: IF Cácl nh ENDIF Tácdng:Khigpcutrúcnày, sđưctính,nucĩgiátr.T.thì sđưcthchin,ngưclithchincáclnhtiptheosau. Ví d: Vit chng trình nhp vo hai s, cho bit s ln nht settalkoff clear Input:Nhapsothunhat'toso1 Input:Nhapsothuhai'toso2 max=so1 Ifmax<so2 max=so2 Endif ?"Solonnhatla:',max settalkon return b.Dngđyđ: .T. .F. BthcL Cácl nh Cácl nh
  40. Cúpháp: IF ELSE ENDIF Tácdng:Khigpcutrúcnày, sđưctính.Nucĩgiátr.T.thì sđưcthchin,ngưcli(cĩgiátr.F.)thìsthchin .Sauđĩtiptcthc hincáclênhtiptheotrongchươngtrình. Víd:Davàobngnhanvien,hãynhpvàomthtênnhânviên,tìmxemcĩđúnglà nhânviêncacơngtyhaykhơng,nuđúngthìthơngbáonămsinhvànămlàmvic,ngưcli thìthơngbáolàkhơngphinhânviêncacơngty. settalkoff clear closeall use NHANVIEN accept'nhaphotennhanvien:'tobhoten locateforHOTEN=bhoten iffound() ?'ngaysinhlà:',ngaysinh' ?'namlamviec:',namlv else ?'khongphailanhanviencuacongty' endif settalkon return 4.3.2.1.Lachnmttrongnhiutrưnghp Cúpháp DOCASE
  41. CASE CASE CASE [OTHERWISE ] ENDCASE Tác dng:Khigpcutrúc DO CASE,các điu kin s đưc tính. Nu điukinnàođĩcĩgiátr.T.thìnhĩmlnhtươngngsđưcthchinvàktthúc cutrúcnày,ritiptcthchincáclênhsauENDCASE.Trongtrưnghpkhơngcĩ nàot1đnncĩgiátr.T.thì (nucĩ)sđưcthchin. Víd:Vitchươngtrìnhnhpvàomtnăm(cĩ4chs),sauđĩnhpthêmmttháng, chobitthángnàycĩbaonhiêungày. settakloff clear input'nhapvaomotnam'tobnam input'nhapvaomotthang'tobthang docase casebthang=4orbthang=6orbthang=9orbthang=11 songay=30 casebthang=12 if(mod(bnam,4)=0and(mod(bnam,100)<>0) songay=29 else songay=28 endif otherwise songay=31
  42. endcase ?'thang',bthang,'nam',bnam,'co',songay,'ngay' settalkon return 4.3.3.Cutrúclp 4.3.3.1.CutrúcDOWHILE Cúpháp: DOWHILE [LOOP] [EXIT] ENDDO Tácdng:Khigpcutrúcnàythì sđưctính,nucĩgiátr.F.thìsdng vàthchincáclnhsauENDDO.Nucĩgiátr.T.thìcáclnhtrongthânvịnglpsđưc thchinvàliquayvkimtrađiukintrong vàcthtiptc. [LOOP]:Khigplnhnày,Foxprosquayvkimtrađiukinlogicmàbquacác lnhphíasau[LOOP]. [EXIT]:Khigplnhnàythĩsthốtrakhichươngtrình. Víd:Chobitdangsáchhtêncacácnhânviêntrongcơngty. settakloff clear closeall useNHANVIEN ?'danhsachhotenhocvienla:' dowhile!eof() ?HOTEN skip enddo settalkon return
  43. Chúý:Khisdngcutrúcnày,cáclnhtrongthânvịnglpphithayđiđưcgiátr ca đđmbotínhktthúc. Víd:Nhpvàomtnăm,hãythơngbáodanhsáchhtên,ngàysinhcanhngnhân viênlàmvictrongnămđĩ,nukhơngcĩthìthơngbáolàkhơngcĩ. settakloff setdatefrench clear closeall useNHANVIEN input'nhapnamlamviec"tobnam setfiltertoNAMLV=bnam counttodem ifdem=0 ?'khongconhanviennao' else gotop ?'danhsachnhanvienlamviecnăm',bnam ?"HOTEN NGAYSINH' dowhile!eof() ?HOTEN,NGAYSINH skip enddo endif setfilterto settalkon return 4.3.3.2.CutrúcSCAN Cúpháp SCAN[ ][FOR ][WHILE ]
  44. [LOOP] [EXIT] ENDSCAN Tácdng:Dùngđduytlnlưtcácbnghitrongbngdliuhinhànhnmtrong đưcchravàthomãnđiukincacác sauFORhocWHILE.Tương ngvimtbnghitìmđưc. sđưcthchin. CutrúcSCANsdngkhinàoduytđnbnghicuicùngcabngdliuđangxét. Ví d: Vit chng trình nhp nm (bn ch s), hin th nhng n nhân viên sinh nm ĩ. settakloff setdatefrench clear closeall useNHANVIEN input'nhapnamlamviec"tobnam input'nhapnam:'tobnam ?'DANHSACHCACNUNHANVIEN,SINHNAM',bnam scanfor!GIOITINHandyear(NGAYSINH)=bnam ?HOTEN,NGAYSINH endscan settalkon return Bàithchànhchương4 7.FieldName FieldType WidthDec Phnghichú MASV Character 5 Mãsnhânviên HOLOT Character 20 Hlĩt TEN Character 7 Tên
  45. NGSINH Date 8 Ngàysinh QUEQUAN Character 20 Quêquán DOS Numeric 2 ðimmơnDos VRES Numeric 2 ðimVRER FOX Numeric 2 ðimFoxPro DTB Numeric 4 2 ðimtrungbình XEPLOAI Character 4 Xploi Nhpvào10mutinchocácvùng:MASV,HOLOT,TEM,NGSINH,QQUAN,DOS, VRES,FORtheomudưiđây.Cácvùngtincịnlistínhsau: MASV HOLOT TEN NGSINH QQUAN DOS VRES FOR CK001 LeVan Hung 12041972 DaNang 8 9 10 NT001 HoThi Lan 10051969 Hue 7 6 9 NT002 TranVan Long 06121968 DaLat 5 4 5 CK002 Le Tung 05061967 TP.HCM 7 7 6 KT001 Ng.Thi Hoa 10101967 TP.HCM 8 4 7 KT002 LeVan Chau 05041968 DaNang 7 6 9 CK003 Vo Anh 02101969 Hue 9 9 10 CK004 HoDuc Tuan 10021968 DaNang 7 6 9 NT003 VoThi Lan 02011969 Hue 8 9 9 NT004 LeVan Huy 05061968 DaNang 8 5 2 2.DùnglnhCOPYFILEđchéptptinKETQUA1.DBFthànhKQ1.DBF.Sauđĩcĩ thdùnglnhUSEKQ1đmtptinKQ1khơng?tisao? 3.MtptinKETQUA1.DBF a.Tính(đimtrungbình),bitrngDOScĩhshai,VREScĩhs1,FOXcĩhs3. b.Xploi,bitrng: DTB>=9 :Xploi‘GIOI’ 7<=DTB<9 :Xploi‘KHA’
  46. 5 =8. Bàitpchương5 1.TotptinNHAPVT.DBFcĩcutrúcnhưsau: 8.FieldName FieldType WidthDec Phnghichú MAVT Charater 5 Mãsvttư NGAYNHAP Date 8 Ngàynhp MANX Charater 1 Nhp:N,xut:X SL Numeric 6 Slưng DONGIA Numeric 8 ðơngiá THANHTIEN Numeric 9 Thànhtin Nhpvào10mutintheomudưiđây: MAVT NGAYNHAP MANX SL 8.1.DONGIA TV01 01011998 N 12 3850000 TL01 04011998 N 10 4700000 ML01 08011998 X 40 5100000 BU01 04051998 N 30 220000 QB01 05011998 N 28 350000 MG01 05061998 X 12 4000000 ND01 06061998 N 20 650000
  47. HD02 10101998 N 12 13000000 HD02 01011998 N 10 16000000 XD01 01011998 X 30 1200000 2.TptinTONKHO98.DBFcĩcutrúcnhưsau: 9.FieldName FieldType WidthDec Phnghichú MAVT Charater 5 Mãsvttư TONDAU Numeric 10 Tnđukỳ SLN Numeric 10 Slưngnhp SLX Numeric 10 Slưngxut TONCUOI Numeric 10 Tncuikỳ Nhpvàocácmutinsau: MAVT TONDAU TV01 12 TL01 30 ML01 50 BU01 40 QB01 50 MG01 55 ND01 100 HD02 50 HD02 45 XD01 100 3.TotptinDMVTU.DBFcĩcutrúcsau: 10.FieldName FieldType WidthDec MAVT Charater 5
  48. TENVT Charater 20 LyMAVTtrongtptinTONKH98.DBFthaythvàotrưngMAVT NhpvàotrưngTENVTcácdliusau:
  49. MAVT NGAYNHAP TV01 TivimauSHAP14 TL01 TulanhTOSHIBA1401 ML01 Maylanh1.5HP BU01 BanuiPhilip QB01 QuatbanHitachi MG01 MaygiatSANYO40 ND01 NoicomdienSANYO HD02 Xecub86 XD01 XedapNHAT 4.TínhgiátrtrưngTHANHTIENcatptinNHAPVT.DBF 5.Tínhtngstinnhpcamiloivttưcĩchcáiđutiênbêntráigingnhau. 6.TínhSLN,SLX,TONCUOI,sauthigiannhpxuttrên. 7. To tp tin TONKHO99.DBF cĩ cu trúc ging như TONKHO98.DBF. Ly TONCUOIcatptinTONKHO94.DBFđbvàoTONDAUcaTONKHO99.DBF 8.LitkêdanhsáchNhpvttưgmcácmcsau: MAVT TENVT NGAYNHAP MANX SL 9.LitkêdanhsáchTONKHOgmcácmcsau: MAVT TENVT TONDAU TONCUOI 
  50. 11.CHƯƠNG5:FORMS 11.1.5.1.KHÁINIMVLPTRÌNHHNGðITNG: Thitkvàlptrìnhhưngđitưnglàmtsthayđiđiviphongcáchlptrìnhcũ, lptrìnhhưngthtc.đâythayvìnghĩđncácchcnăngcachươngtrìnhtachcnnghĩ đncácđitưngđangto:làcácthànhphnđclpcamtngdngcichcnăngriêng canĩ.Mimtđitungđucĩmtbthuctínhmơtđitưng;cácphươngthclànhng đontrìnhchatrongđiukhin,chođiukhinbitcáchthcđthchinmtđoncơngvic nàođĩ;vàtphpnhngskinđĩlànhngphnngcađitưng. TrongVisualFoxpro,cácformvàcontrollàcácđitưngđưcdùngđxâydngcác ngdng 5.1.1.Thuctínhcađitưng(Properties) ðchđnmtthuctínhcađitưngnàotadùngcúphápsau: . Víd:Myform.caption=“Chươngtrìnhngdng” Cácthuctínhthơngdng: Left:Vtrícnhtráicađitưngsovivtchanĩ. Top:Vtrítrêncađitưngsovivtchanĩ. Height:Chiucaocađitưng. Width:Chiurngcađitưng. Name:Tênđchđitưng. Enable:Giátrlogic: True:cĩquynlàmvic. False:Khơngcĩquynlàmvic. Visible:Giátrlogic: True:Thyđưcđitưng;
  51. False:Khơngthyđưcđitưng. 5.1.2.Phươngthccađitưng(Methods) ðgiđnphươngthccamtđitưng,tadùngcúpháp: . Víd:Myform.show Mtsphươngthcthưngdùng: Refresh:Làmtươiliđitưng. Show:Hinđitưng. Hide:nđitưng. Release:Giiphĩngđitưng. SetFocus:Thitlp“tmngm”chođitưng. 5.1.3.Skincađitưng ðchđnskincađitưng,tadùngcúphápsau: . Mtsskinthưngdùng: Click:ðưcgikhikíchchutvàođitưng. DbClick:ðưcgikhikíchđúpchutvàođitưng. MouseMove:ðưcgikhidichuynchuttrênbmtcađitưng. KeyPress:ðưcgikhinhnmtphímkíchchutvàođitưng. Gotfocus:ðưcgikhiđưađitưngvàotmngm. Lostfocus:ðưcgikhiđưađitưngrakhitmngm Change:ðưcgikhicĩsthayđinidungdliukiuchuicađitưng.
  52. 11.2.5.2.FORM 5.2.1.Giithiu Formđưcdùngđlàm giaodinnhp,hinththơng tin,nĩcungcpmttphp cácđitưngđđáplinhng thaotáccangưidùnglàm chongdngradángchuyên nghip. Víd:GiaodincamtFormnhpdliu 5.2.2.ToformthơngquaWizard TmenuTools,chnwizard,chnform,xuthingiaodinwizardselection,rithơng quahưngdn. 5.2.3.Toformthơngquathitk ðtoformthơngquathitk,t caslnhtathchinlnhsau: CREATE FORM Khiđĩtađưcmànhìnhthitk formnhưsau: a.Qunlýform Lưu Form : T menu file, chnsaveđlưuvào ,mcđnhphnmrnglàscx. Chyform :Tcaslnh,thchinlnhsau: DOFORM ðĩngform (giiphĩngkhibnh) RELEASE
  53. b.Tuycpđncácđitưngtrênform +Munchđnmtđitưngnàotrênform,tadùng: . :nu khơngcùngviformđangthaotác. . :nuđitưngnmtrênformđangthaotác. +Munthayđigiátrcácthuctínhtrênform,ta dùng: . = :numunthay đi thuctínhcaformkhơngphilàformhinhành. . = :numunthay đi cácthuctínhcaformhinhành. c.Cácthuctính,phươngthc,skin thưng dùng trênform. Thuctính: BackColor:Màunn BorderStyle:Dngđưngvin Caption:Tiêuđcaform FillColor:Màuđtơđitưng Fontname:Fontchchocácđitưngchavănbn Fontsize:Kínhthưcfontname Moveable:Chophépdichuynhaykhơng Tìnhhung MoveMouse:ðápngkhidichuynchuttrênbmtform Destroy:ðápngkhigiiphĩngform Load:ðápngkhinpformvàobnh
  54. 5.3.ThanhcơngcControlToolbar MunđưađitưngtrênthanhControlvàoform:4bưc Kíchchutvàođitưngcnđưa Vnĩtrênformđxácđnhvtrí Thitlpcácthuctínhthíchhp Vitmãlnhchocáctìnhhungtươngng Quyưcđttênchocácđitưng Loiđitưng Tên Form BtđubiFrm Command Btđubicmd Editbox BtđubiEdb Grid BtđubiGrd Image BtđubiImg Label BtđubiLbl Textbox BtđubiTxt Timer BtđubiTmr 5.3.2.MtsđitưngtrênControls a.Label:Dùngđthhincácchuitrênform. Cácthuctínhthưngdùng: Caption:Chuithhin Autosize:Giátrlogic,chophépkíchthưccaLabelcĩtđngchnhsatheo đdàicacaptionhaykhơng. b.CommandBottom:Dùngđthhincácnútlnhtrênform.
  55. Cácthuctínhthưngdùng: Caption:tênxuthintrênnútlnh Picture:Hìnhxuthintrênnútlnh Enable:giátrLogic,chophépchnnútlnhhaykhơng CácSkinthưngdùng: Click:Khikíchchutvàonútlnhthìskinnàyđưcgi. c.TextBox:Dùngđxem,chnhsadliutcáctrưngtrongbngdliukhơngphi kiumemo. Cácthuctínhthưngdùng. ControlSource:Têncatrưnghaybinmàgiátrcanĩđưchintrong textbox Value:Giátrhinthicatextbox. Skinthưngdùng: Change:Khicĩsthayđicathuctínhvalue KeyPress:Khicĩphímbtkỳđưcn. d.Editbox:Tươngtnhưtextbox,đưcdùngđchnhsadliutcáctrưngmemo. Cácthuctínhthưngdùng. ControlSource:Têncatrưngmàgiátrcanĩđưcthhintrongeditbox. ScrollBars:Cĩhinthanhcuntrongkhungeditboxhaykhơng. ReadOnly:Chophépcĩđưcchnhsanidunghaykhơng Skinthưngdùng: Change:Khicĩsthayđicathuctínhvalue. Keypress:Khicĩphímbtkỳđưcn. e.Images:Dùngđđưacáchìnhnhtrênform.
  56. Cácthuctínhthưngdùng. Picture:Xácđnhfilehìnhnh Stretch:Xácđnhcáchthcthhinhìnhnh(phĩngto,thunh,nguyênmu). f.Timer:Dùngđthitlpcáccơngvicthchinđuđnsaumtkhongthigian. Cácthuctínhthưngdùng. Enabled:XácđnhxemTimercĩhiulchaykhơng Interval:Quyđnhkhongthigianxácđnhchotìnhhungtimer. Skinthưngdùng: Timer:ðưckíchhotđuđnsaumtkhongthigianxácđnhthuctính Interval. g.Grid:Dùngđthhindliutheodngbng. Cácthuctínhthưngdùng. RowSource:Xácđnhbngdliucnthhin. ColumnCount:XácđnhsctcaGrid. Chúý: NuRowSourcekhơngđưcchrathìlybngdliuhinhành. NuColumncountkhơngchrathìmcđnhlàttccáctrưngtrongbng dliu(Columncount=1). ControlSource:ðưcxácđnhchotngct,dùngđkhaibáongundliu choctđĩ. AllowAddnew:Chophépthêmcácbnghimihaykhơng. Chúý: MunthayđicácthuctínhtrênGridthìchuynGridsangdngeditbngcáchnhnphím phichutlênRrid,chnProperties.GridđangchđEditcĩmtđưngvinbaoquanh. 12.5.4.Víd
  57. Gi scĩbngdliuvicutrúc: MANV C 5 HOTEN C 30 Hãythitkformđxembngdliutrên. FrmXem Tathitkformnhưsau TxtMAN V TxtHOTE N CmdThoa CmdDa CmdTruo CmdSau CmdCuoi t u c 13.Cá cthuctínhchính: 14. +TxtMANVcácthuctínhControlSourcelàMANV 15.+TxtHOTENcácthuctínhControlSourcelàHOTEN 16.MãlnhcacácđitưngtrênFormlà: +FrmXem.load usehoso +CmdDau.Click gotop
  58. thisform.refresh +CmdCuoi.Click gobottom thisform.refresh +CmdTruoc.Click ifnotbof() skip1 endif thisform.refresh +CmdSau.Click ifnoteof() skip endif thisform.refresh +CmdThoat.Click use thisform.release 
  59. 17.CHƯƠNG6 REPORTS 17.1.6.1.KHÁINIM Reportslàcơngcđtrìnhbàyvàtĩmttdliutrongmtvănbnkhiin.Reportcĩhai thànhphncơbncuthành:dliungun,thơngthưnglàcácbngdliuvàhìnhthctrình bàylàdngthccareportsđnhdngcáchktxutdliu. MànhìnhthitkReport 17.2.6.2.CÁCBCðTOREPORT Tacĩththitkreportđthhindliunhiudngthckhácnhautrêngiykhiin. Quátrìnhthitkgm4bưcchínhnhưsau: 1.XácđnhloiReportcnto:Tclàquytđnhchndngthcmàreporthinthkt qu. 2.ToReportlayout:Cĩthsdngreportwizardhayreportdesigner.Reportlayout đưclưutrênđĩaviphnmrngcafilelàFRX:Lưutrchititcareport. 3.Sađilayoutcareport. 4.Xemvàinreport. 17.3.6.3.TOREPORTBNGWIZARD.
  60. TmenuTools,chnWizard,chnReportsauđĩlàmtheocácbưchưngdn. Bưc1:Chnbngdliuvàcáctrưngcnthhin Bưc2:Tonhĩmdliuktxut Bưc3:ChnkiuReportthhin Bưc4:Chncáchtrìnhbàytrêngiyin
  61. Bưc5:ChntrưngSpxp Bưc6:ðttađ,ktthúc 17.4.6.4.TOREPORTBNGREPORTDESIGNER 6.4.1.QunlýReport TomiReport:CREATEREPORT Víd:createreportTHU Lúcnàymànhìnhxuthinhpthoireport Mmtreportsncĩ:MODIFY
  62. Xemtrưckhiin:REPORTFORM PREVIEW Xemtrưckhiincĩđiukin: REPORTFORM PREVIEW Inreport: REPORTFORM TOPRINTER 6.4.2.CácthànhphntrênReport Title:Dùngđintrênmireport:Tmenureport,chntitlesummary PageHeader:ðintrênmiheadercamitrangin. Columnheader:ðintênheadercamict.ðchn,tmenufilechnpagesetup, chngiátrchocolumnnumberlnhơn1. Groupheader:Xuthinmikhibtđunhĩmmi.ðchn,tmenureportchndata grouping. Detail:phnchitittrênmirecord(ngvitngrecordtrênbngdliu). Group footer: In phn Footer ca mi nhĩm. ð chn, t menu report chn data grouping.
  63. Columnfooter:InphnFootercamict.ðchn,tmenufile,chnpagesetup,chn giátrchocolumnnimberlnhơn1. PageFooter:InphnFootercamitrang. Sumary:Phntmttcamireport. 6.4.3.CáccontroltrênReport ThanhcơngcReportControl Chcnăngcacáccontrol: Fieldtrongbàngdliu,binvàcácbiuthctốn Field Textthuntuý Label ðưngk Line Hpvàđngkhung Rectangle Hìnhtrịn,elip RoundedRectangle HìnhnhhocfieldGeneral Picture 6.4.4.ðưacáccontrolvàoreport Thchincácbưcsau: +Chncontrolthíchhp +Kéorêchuttrênreportđxácđnhvtrícanĩtrênreport +Hiuchnhcáccontrol a.ðưafieldvàoreport: abl +Kíchchutvào +TronghpreportExpression,chnnútlnhsauhpExpression. +Tronghpfield,hcntêntrưnghaybinthíchhp. +ChnOK.
  64. b.ðưalabelvàoreport: +Chn A +Gnidungcalabel c.ðưaPictureboundcontrolvàoreport: +Chnpictureboundcontrol +Xuthinhphithoireportpicture,chnfile,numunchènhìnhnhtfile, chnfieldnumunchntrưngGeneral. +ChnOk 6.5.Víd ThitkReportnhưsau(davàoBngCANBO.DBFbàitp2): iif(GIOI_TINH=".T.","nam" iif( COGIADINH=".F.", 
  65. 18.CHƯƠNG7. TOMENUVÀQUNLÝðÁN 18.1.7.1.TOMENU 18.2.7.1.1.GIITHIU Menucungcpmtphươngthccĩcutrúcvàgiaodinvingưidùngđtácđnglên nhngcâulnhtrongngdng. Vicspxpvàthitkmenuthíchhpsgiúpchongưidùngđưcthunlikhis dnghthngmenucabn. 18.3.7.1.2.CÁCBƯCTIMTMENUHTHNG 1.Spxpvàthitk:Quytđnhmenunàobncnchúngxuthinvtrínàotrên mànhình,cnnhngmenuconnào? 2.Sdngmenudesigner,tomenuvàcácSubmenu. 3.Gncáccâulnhtươngngvicơngvic. 4.Biêndchmenu 5.Tinhànhchyth,kimtra. 18.4.7.1.3.TOMENUHTHNG 7.1.3.1.Qunlýmenuhthng Menuhthngđưclưutrtênđĩavifilecĩphnmrnglà*.MNX TomenubngcơngcDesignerMenu:Thchinlnh: CREATEMENU ↵ Mmenuđãcĩ:MODIFYMENU DchfileMenu:ðdchfilemenu,tmànhìnhMenuDesignerchnlnhGenerate. FilemenusaukhidchscĩphnmrnglàMPR. 7.1.3.2.TomenuhthngthơngquaMenuDesigner SaukhithchinlnhCreatemenu,tađưcmànhìnhgiaodinMenu:Designernhư
  66. sau: +TronghpPrompt,tađưavàotêncnhinthtrêngiaodin. +TronghpResult,chn: Submenunumuntomenucon. Procedurenumunthihànhthtc - Command nu mun thc hin mt lnh. +Ktthúc,nCtrl_W. 18.5.7.2.QUNLÝðÁN 18.6.7.2.1.KHÁINIMðÁN ðánlàtêngiđchđnngdngmàbnđangxâydng.Thơngthưngcácthành phncamtđánbaogm: +Cácbngdliu(table). +Cácfilecơsdliu(database) +Cácform +Cácreport +Cácquery +Cácfilekhácnhưâmthanh,hìnhnh,tàiliu,hìnhnhcontr,
  67. 18.7.7.2.2.QUNLÝðÁN MtđántrongVisualFoxprođưclưutrtrênfilecĩphnmrngmcđnhlà*.PRJ. 7.2.2.1.Tomicácđán Thchinlnh:CREATEPROJECT LúcnàyxuthincasqunlýđánProjectManagernhưtrên. + Database:Baogmcác: Table:Cácbngdliucĩliênktvinhauhaycácbngtdo. Query:Làcutrúcđlythơngtintcácbngtable. View:LàcácQuerychuyêndngmàtacĩthtruyxutdliuccbvàtxa chophépcpnhtcácngundliubngcáchlàmthayđReportbi quyre. +Documents:Chacáctàiliusdngchođán;baogmcácformvàreport.
  68. +Class:Litkêcácthưvinđưcsdng. +Code:vànhngfilekhác:Litkêcácfilechươngtrìnhvàcácfilekhácđưcsdng trongchươngtrình. ðchnhsabtkỳmtthànhphnnàotrongđántachnnĩrichnnútModify. ðthêmbtkỳmtfilenàochođántakíchnútadd(nuchnfileđãcĩ)hocnútnew (nutomi). Munloibbtkỳmtthànhphnnàocađántachnnĩrichnnútremove. 7.2.2.2.Mmtđánđãcĩ Thchinlnh:MODIFYPROJECT 7.2.2.3.Dchđán +DchsangAPP:Khinày,đchnđánphicĩmtbnsaocaVisualFoxpro. DùnglnhBUILD +Dchsangfilecĩphnmrnglàexe:Khinày,ngưi dùng khơng cn cĩ Visual Foxpronhưngphicungcphaifile:vfp6r.dllvàvfp6renu.dllđưccàiđttrongđưngdn hoctrongcùngthưmcvingdng. Dùnglnh:BUILDEXE 7.2.2.4.Chyđán Saukhiđãdch,tacĩthchyđánthơngqualnh:DO 18.8.7.2.3.ðTSTARTINGPOINTCHOðÁN Khingdngđưcthihành,cĩmtđimbtđu,đĩlàStartingpoint. ðchnmtthànhphncadánlàStartingpoint: +ChnthànhphnđưcđtlàStartingpoint. +TMenuProject,chnSetmain. Thơngthưng,Startingpointlàmtchươngtrìnhkhiđngchacácthànhphn: Dosetup.prg
  69. Domainmenu.mpr ReadEvents Docleanup.prg a. Do Setup.prg: L thc hin chng trình  thit lp mơi trng cho h thng. b.Domainmenu.mpr:Chyfilemenuchínhđthitlpgiaodinchohthng. c.ReadEvents:Btđuthchinvịnglpđthchincơngvic. d.Docleanup.prg:Chychươngtrìnhdndpmơitrưng,trlimơitrưngchohthngvà thốtkhihthng.đây,phicĩlnhClearEventsđthốtkhivịnglpđãđưcthitlp bilnhReadEvents.