Tim Hieu Ngon Ngu Lap Trinh Visual FoxPro



Comments



Description

NGOÂN NGÖÕ LAÄP TRÌNH VISUAL FOXPROI. GIÔÙI THIEÄU VISUAL FOXPRO: Microsoft Visual Foxpro laø moät phaàn meàm Quaûn lyù CSDL, bao goàm moät soá coâng raát maïnh giuùp coù theå toång hôïp, truy xuaát thoâng tin moät caùch thuaän tieän, coù moät boä leänh duøng trong laäp trình raát phong phuù, cho pheùp taïo ñöôïc moät giao dieän thaân thieän. Ñieàu ñaùng löu yù laø caùc öùng duïng ñöôïc thieát keá töø caùc phieân baûn tröôùc cuûa Foxpro vaãn coøn hieäu löïc trong Visual Foxpro, nghóa laø vaãn coù theå chaïy ñöôïc trong Visual Foxpro. Tuy nhieân, neáu ñaõ söûa ñoåi nguyeân baûn cuõ trong Visual Foxpro roài thì khoâng theå thöïc thi ñöôïc nöõa trong caùc phieân baûn cuõ tröôùc ñoù cuûa noù. Ñeå coù theå duøng ñöôïc Visual Foxpro, maùy vi tính caàn phaûi ñaït ñöôïc toái thieåu caùc ñieàu kieän sau: + Coù boä xöû lyù töø 80386 trôû ñi, neân laø 486 hoaëc maïnh hôn. + Coù boä nhô ù toái thieåu 4MB RAM, nhöng neân laø 8MB RAM hoaëc hôn. + Coù ñóa cöùng caøng lôùn caøng toát, toái thieåu 200MB RAM + Heä ñieàu haønh : Windows 95 hoaëc Windows NT. + Ñaõ caøi heä ñieàu haønh MS DOS, neân duøng DOS 5.0 trôû veà sau. + Ñaõ caøi heä giao dieän Windows 3.x hoaëc Windows ’95 trôû ñi. Sau khi ñaõ ñöôïc caøi ñaët, Visual Foxpro coù theå ñöôïc khôûi ñoäng baèng moät trong caùc caùch nhö sau : + Click chuoät vaøo thöïc ñôn Start treân maøn hình chính cuûa Windows 95 / Windows NT; choïn Programs; choïn Microsoft Visual Foxpro; choïn Visual Foxpro 6.0 + Thöïc hieän chöùc naêng Run vôùi teân taäp thöïc hieän C:\Vfp\Vfp.exe Visual Foxpro cuõng coù hai cheá ñoä laøm vieäc : hoäi thoaïi vaø chöông trình. Trong cheá ñoä hoäi thoaïi, ngöôøi ta ñöa ra moät yeâu caàu cho Visual Foxpro baèng moät leänh thoâng qua cöûa soå leänh (command window) hoaëc thoâng qua thöïc ñôn heä thoáng (system menu) vaø seõ nhaän ñöôïc keát quaû ngay. Sau ñoù, ngöôøi duøng coù theå tieáp tuïc thöïc hieän caùc yeâu caàu khaùc. Trong cheá ñoä chöông trình, caùc caâu leänh cuûa Visual Foxpro coù theå ñöôïc taäp hôïp laïi thaønh moät taäp tin ghi treân ñóa vaø khi muoán cho thi haønh taäp tin naøy, töø cöûa soå leänh ngöôøi duøng thöïc hieän leänh : DO <Teân chöông trình>. Khi ñoù caùc leänh coù trong taäp tin chöông trình naøy seõ laàn löôït ñöôïc thöïc hieän. Moät öùng duïng (project) bao goàm nhieàu thaønh phaàn : CSDL, chöông trình, maøn hình giao dieän, thöïc ñôn, baùo bieåu, … Moät öùng duïng ñöôïc löu tröõ trong taäp tin coù phaàn môû roäng laø PJX vaø quaûn lyù baèng coâng cuï Project Manager. CSDL trong Visual Foxpro chöùa danh saùch caùc baûng (table), haøm cöûa soå (view), thuû tuïc, … vaø ñöôïc löu tröõ trong moät taäp tin coù phaàn môû roäng laø DBC (trong khi Foxpro 2.6 laø DBF). Visual Foxpro cung caáp cho ngöôøi duøng caùc boä coâng cuï nhö : Form Wizard vaø Form Designer tieän duïng trong thieát keá caùc maøn hình giao dieän. Visual Foxpro cung caáp caùc boä coâng cuï : Report Wizard vaø Report Designer tieän duïng trong thieát keá caùc baùo bieåu. Visual Foxpro cung caáp caùc boä coâng cuï Menu Designer tieän duïng trong vieäc taïo caùc thöïc ñôn nhieàu caáp. 1 Visual Foxpro coù söï môû roäng sang phöông phaùp laäp trình höôùng ñoái töôïng beân caïnh caùch laäp trình theo thuû tuïc nhö truyeàn thoáng. Tröôùc khi ñi vaøo töông ñoái chi tieát moät soá caùc vaán ñeà caàn löu taâm, ta löu yù theâm moät soá caùc vaán ñeà veà khaû naêng, giôùi haïn vaø moät soá thuaät ngöõ thöôøng duøng cuûa Visual Foxpro. Khaû naêng vaø giôùi haïn cuûa Visual Foxpro coù theå ñöôïc toùm goïn trong baûng sau : Khaû naêng 1. Taäp soá lieäu vaø chæ muïc Soá doøng tin toái ña trong 1 table Kích thöôùc toái ña cho 1 table Soá kyù töï toái ña cho 1 doøng tin (record) Soá vuøng toái ña treân moät doøng tin Soá table toái ña coù theå môû cuøng luùc Soá kyù töï toái ña cho 1 vuøng tin Soá kyù töï toái ña cho moät khoùa chæ muïc trong taäp non-compact index Soá kyù töï toái ña cho moät khoùa chæ muïc trong taäp compact index Soá toái ña taäp tin chæ muïc ñöôïc môû keøm 1 table Soá toái ña taäp chæ muïc ñöôïc môû trong taát caû caùc vuøng laøm vieäc Soá toái ña caùc moái quan heä Chieàu daøi toái ña cuûa caùc bieåu thöùc quan heä 2. Vuøng tin (Field) Kích thöôùc toái ña vuøng tin kieåu Character Kích thöôùc toái ña vuøng tin kieåu Numeric hay Float Soá kyù töï toái ña duøng ñeå ñaët teân cho vuøng tin trong 1 Table rieâng leû Soá kyù töï toái ña duøng ñeå ñaët teân cho vuøng tin trong 1 Table beân trong moät database Trò soá nguyeân nhoû nhaát Trò nguyeân lôùn nhaát Möùc chính xaùc cuûa trò soá khi tính toaùn 3. Bieán boä nhôù vaø maûng Soá löôïng bieán boä nhôù ngaàm ñònh Soá löôïng toái ña bieán boä nhôù coù theå choïn Soá löôïng toái ña caùc maûng coù theå khai baùo Soá löôïng toái ña caùc phaàn töû trong moät maûng 4. Taäp chöông trình vaø thuû tuïc Soá doøng toái ña trong moät taäp chöông trình Kích thöôùc toái ña cho moät thuû tuïc ñaõ ñöôïc bieân dòch Soá toái ña caùc thuû tuïc trong taäp chöông trình Soá löôïng toái ña caùc leänh DO goïi loàng nhau Soá caáp ra leänh READ loàng trong nhau 2 Giôùi haïn 1 tyû record 2 GB 65 500 255 255 254 100 240 Khoâng haïn Khoâng haïn Khoâng haïn Khoâng haïn 254 20 10 128 -2 147 483 647 2 147 483 647 16 coät 1 024 65 000 65 000 65 000 Khoâng giôùi haïn 64 KB Khoâng giôùi haïn 128 5 giôùi giôùi giôùi giôùi m 1 byte Ñuùng (.) hoaëc Sai (.58 07 8 bytes boä Töø – nhôù.Soá löôïng toái ña leänh laäp trình caáu truùc loàng trong nhau Soá löôïng toái ña caùc thoâng soá ñöôïc trao Soá löôïng toái ña caùc xöû lyù phaùt sinh ñoàng thôøi 5.F.) 8 bytes Töø – 922337203685477.m ñeán 11:59:59 p.9999999999E+20 table 8 bytes Töø +/4. Baùo bieåu Soá toái ña caùc object trong moät baùo bieåu Chieàu daøi toái ña moät baùo bieåu Toái ña soá caáp phaân nhoùm 6. Khaû naêng khaùc Toái ña soá cöûa soå môû cuøng moät luùc Toái ña soá cöûa soå Browse Soá kyù töï toái ña trong moät chuoãi Soá kyù töï toái ña trong moät doøng leänh Soá kyù töï toái ña cho 1 nhaõn Report Label Soá kyù töï cho 1 doøng thay theá vó moâ Soá löôïng toái ña taäp tin ñöôïc môû Soá toái ña phoùm baám trong 1 Keyboard macro Soá Fields toái ña coù theå choïn bôûi moät leänh SQL SELECT Caùc kieåu soá lieäu : Kieåu Character Character (Binary) Date Date Time Duøng trong Vaên baûn Vaên baûn 384 27 5 Khoâng giôùi haïn 20 inches 128 Khoâng giôùi haïn 255 2 GB 8 192 255 8 192 Giôùi haïn bôûi DOS 1 024 255 Ngaøy thaùng Ngaøy giôø Logical Currency Trò luaän lyù Giaù trò baèng tieàn Numeric Soá nguyeân hay thaäp phaân Soá chính xaùc keùp Double Kích côõ Phaïm vi Töø 1 – 254 kyù Chöùa kyù töï naøo töï cuõng ñöôïc Khoâng thay ñoåi khi chuyeån töø maõ quoác gia naøy sang maõ quoác gia khaùc 8 bytes 01/01/100 ñeán 31/12/9999 8 bytes 01/01/100 ñeán 31/12/999 vaø coù theâm phaàn giôø töø 00:00:00 a.9999999999E+19 20 bytes khi ñeán löu giöõ trong +0.94065645841247E3 . 1 ñeán 0.T.58 08 ñeán 922337203685477. caàn löu yù : • Chæ duøng caùc kyù töï chöõ (töø a ñeán z vaø töø A ñeán Z). Caùc toaùn töû : • toaùn töû xöû lyù chuoãi : + : gheùp chuoãi – : gheùp chuoãi dôøi khoaûng traéng veà cuoái $ : thuoäc veà (So saùnh) • toaùn töû xöû lyù ngaøy giôø : 4 . Forms. … ñöôïc bieân dòch thaønh moät chöông trình duy nhaát. löu treân ñóa thaønh taäp tin coù phaàn môû roäng laø . Forms.9999999999E+20 Töø –2147483647 ñeán 2147483646 Chæ bò giôùi haïn bôûi boä nhôù Chæ bò giôùi haïn bôûi boä nhôù Khoâng thay ñoåi khi chuyeån töø maõ quoác gia naøy sang maõ quoác gia khaùc * Caùc vaán ñeà khaùc : • ÖÙng duïng (Application) laø moät taäp hôïp goàm Programs.79769313486232E+ 308 Töø – 0. • Teân chæ ñöôïc baét ñaàu baèng kyù töï chöõ hoaëc daáu gaïch döôùi.APP. Caùc öùng duïng ñöôïc xaây döïng baèng chöùc naêng Project Manager. • Teân taäp tin thì theo nguyeân taéc ñaët teân cuûa heä ñieàu haønh ñang duøng. ngoaïi tröø teân Field vaø teân chæ muïc chæ daøi toái ña 10 kyù töï. • Moät Field laø teân cuûa moät coät quy ñònh trong Record ñeå chöùa döõ kieän thuoäc moät kieåu naøo ñoù. quy ñònh moái quan heä (Relaltionships) giöõa caùc Tables. löu treân ñóa thaønh taäp tin coù phaàn môû roäng laø . Khi ñaët teân trong Visual Foxpro. Queries. Coù theå söû duïng ñoäc laäp hoaëc lieân keát chuùng vaøo moät project baèng caùch theâm chuùng vaøo Project Manager. • CSDL (Database) cung caáp moät moâi tröôøng laøm vieäc trong ñoù chöùa moät taäp hôïp caùc Tables.PJX.Float Soá nguyeân hay thaäp phaân Soá nguyeân Ñoái töôïng nhuùng Vaên baûn ghi nhôù Vaên baûn ghi nhôù Integer General Memo Memo (Binary) 8 bytes boä nhôù.9999999999E+19 ñeán +0. • Tables löu giöõ soá lieäu theo caùc ñôn vò goïi laø Records (caùc maãu tin) vaø Fields (caùc vuøng) • Record laø moät boä caùc vuøng tin trong moät Table. … Caùc Project ñöôïc baûo trì bôûi chöùc naêng Project Manager. 1 ñeán 20 bytes khi löu giöõ trong table 4 bytes 4 bytes trong table 4 bytes trong table 324 ñeán +/1. ñeà ra caùc thuoäc tính (Propeties) cuøng caùc quy luaät kieåm chính soá lieäu duøng ñeå ñieàu khieån ñoàng boä giöõa caùc Tables vôùi nhau. • Ñoà aùn (Project) laø moät taäp tin theo doõi caùc : Programs. • Khoâng neân ñaët teân truøng vôùi töø khoùa. Menus. kyù töï soá (0 ñeán 9). daáu gaïch döôùi. Labels. • Teân coù theå daøi töø 1 ñeán 256 kyù töï. Menus. .NOT. AND. Haøm ngöôøi duøng laø haøm do ngöôøi duøng töï vieát vaø chæ coù taùc duïng trong chöông trình hay öùng duïng coù ñònh nghóa haøm ñoù. kieåu hoaëc xoùa deã daøng khi heát phieân laøm vieäc cuûa Visual Foxpro. != : khoâng baèng (khoâng söû duïng >< hoaëc =! hoaëc ≠) <= : nhoû hôn hay baèng (khoâng söû duïng =< hoaëc ≤) >= : lôùn hôn hay baèng (khoâng söû duïng => hoaëc ≥) == : chuoãi kyù töï baèng chính xaùc • toaùn töû soá hoïc : ( ): keát nhoùm **. ñieàu kieän beân trong ngoaëc keát nhoùm ñöôïc xeùt tröôùc NOT hoaëc ! : Logical Negative AND : Logical AND OR : Logical OR (NOT. OR coù theå vieát theo kieåu cuõ : . . ..) • toaùn töû so saùnh : < : nhoû hôn > : lôùn hôn = : baèng <>. ^ : luõy thöøa * : nhaân / : chia % : soá dö pheùp chia nguyeân + : coäng – : tröø Bieán heä thoáng laø do Visual Foxpro taïo ra khi khôûi ñoäng.+ : coäng – : tröø Ngaøy + Soá (tính baèng ngaøy) → Ngaøy saép tôùi Ngaøy – Soá (tính baèng ngaøy) → Ngaøy tröôùc ñoù Ngaøy giôø + Soá (tính baèng giaây) → Ngaøy giôø saép tôùi Ngaøy giôø – Soá (tính baèng ngaøy) → Ngaøy giôø tröôùc ñoù • toaùn töû luaän lyù : ( ): keát nhoùm.OR. II. coù theå thay ñoåi giaù trò. Haøm cô höõu laø haøm coù saün trong boä chöông trình Visual Foxpro. #. Moâi tröôøng laøm vieäc muoán chaïy thaät oån ñònh caàn quan taâm ñeán caùc tham soá moâi tröôøng sao cho phuø hôïp.AND. Teân bieán heä thoáng thöôøng khôûi ñaàu baèng daáu gaïch döôùi. QUAÛN LYÙ ÑEÀ AÙN ( PROJECT MANAGER ) : 5 . ñoâi khi caàn phaûi quy ñònh laïi caùc tham soá naøy baèng caùc leänh thích hôïp. Bieán boä nhôù do ngöôøi söû duïng taïo ra. phaûi thuoäc moät trong caùc kieåu döõ lieäu : Numeric. Trang All chöùa toaøn boä thoâng tin cuûa 5 trang coøn laïi. bieåu maãu. • Open : môû moät CSDL. Data. Logical. • Build : taïo taäp tin thöïc hieän cho caùc öùng duïng. Classes. ñaùnh daáu xoùa vaø coù theå ñöôïc tieán haønh thoâng qua caùc thuû tuïc kieåm tra 6 . taäp tin kieåu vaên baûn TXT vaø caùc taäp tin khaùc. söûa. Other. • Preview : xem moät baùo caùo ôû cheá ñoä xem tröôùc treân maøn hình.PJX> | ? * Dòch moät taäp tin öùng duïng ra taäp tin APP hoaëc EXE : . III. Raøng buoäc toaøn veïn (RBTV) laø ñieàu kieän raøng buoäc döõ lieäu trong caùc baûng tham chieáu cuûa CSDL vaø taát caû caùc RBTV phaûi ñöôïc thoûa maõn ôû baát kyø thôøi ñieåm naøo.PJX> | ? * Môû moät taäp tin öùng duïng : Cuù phaùp : MODIFY PROJECT <. Cöûa soå quaûn lyù öùng duïng ñuôïc duøng ñeå toå chöùc vaø quaûn lyù caùc thaønh phaàn trong moät öùng duïng. Integer. Float. • Add : ñöa taäp tin caùc loaïi ñaõ coù treân ñóa vaøo cöûa soå öùng duïng. döõ lieäu. Trang Code goàm caùc taäp tin chöông trình.Choïn nuùt chöùc naêng Build hoaëc choïn Project.Moät öùng duïng laø moät taäp hôïp goàm caùc taäp tin. Vieäc kieåm tra caùc RBTV thöôøng ñöôïc thöïc hieän sau caùc thao taùc caäp nhaät döõ lieäu nhö theâm. CÔ SÔÛ DÖÕ LIEÄU ( Database ): Baûng trong moâ hình döõ lieäu quan heä laø moät baûng hai chieàu goàm caùc doøng vaø coät. Trang Classes goàm danh saùch caùc lôùp ñöôïc söû duïng trong öùng duïng. • Remove : loaïi boû moät taäp tin hay moät ñoái töôïng ra khoûi cöûa soå öùng duïng. Caùc nuùt chöùc naêng trong cöûa soå öùng duïng : • New : ñeå taïo môùi caùc loaïi thaønh phaàn chi tieát. Date Time. • Build Application ñeå dòch ra taäp tin APP • Build Executable ñeå dòch ra taäp tin EXE. Build töø thöïc ñôn heä thoáng. Moãi baûng ñöôïc ñaëc tröng bôûi teân coù phaàn môû roäng laø DBF vaø danh saùch caùc coät (thuoäc tính). Double. Reports. Currency. Khi muoán söû duïng moät baûng phaûi tieán haønh môû baûng baèng leänh : USE <table>. Memo. Taát caû caùc thoâng tin quaûn lyù öùng duïng ñöôïc löu trong taäp tin chính coù phaàn môû roäng laø PJX vaø taäp tin kyù öùc coù phaàn môû roäng laø PJT. Trang Other goàm caùc thöïc ñôn. General.Choïn caùch dòch taäp tin öùng duïng : • Rebuild Project ñeå dòch ra taäp tin PJX. Moãi maãu tin (record) laø moät doøng trong baûng. Coù hai loaïi baûng : baûng tham chieáu (database table) vaø baûng töï do (free table) khoâng thuoäc danh saùch tham chieáu cuûa caùc CSDL. • Run : duøng ñeå thöïc hieän moät truy vaán. Date. . * Taïo moät taäp tin öùng duïng : Cuù phaùp : CREATE PROJECT <. Noù goàm coù 6 trang : All. • Modify : caäp nhaät treân muïc ñöôïc choïn. chöông trình. Labels. Trang Data goàm 2 thaønh phaàn : Database vaø Query. Docs. Moãi vuøng laø moät coät trong baûng. Character. Trang Docs goàm caùc thaønh phaàn : Forms. Thöù töï caùc coät laø khoâng quan troïng vaø hai baûng khaùc nhau thì phaûi coù teân khaùc nhau. • Browse : lieät keâ moät taäp tin DBF döôùi daïng baûng. thö vieän API vaø caùc öùng duïng khaùc. • Close : ñoùng caùc taäp tin caùc loaïi. Code. tö lieäu vaø caùc ñoái töôïng. choïn muïc Database vaø nhaáp chuoät vaøo chöùc naêng New vaø xaùc ñònh teân trong oâ nhaäp Enter.DBC> | ? • Thöïc hieän qua thöïc ñôn heä thoáng : choïn File. Loaïi moät CSDL ra khoûi danh saùch tham chieáu : choïn moät trang caùc caùch sau : • Thöïc hieän qua cöûa soå öùng duïng : choïn teân CSDL caàn xoùa trong cöûa soá öùng duïng. • Thöïc hieän thoâng qua leänh : CREATE DATABASE <. • Thöïc hieän qua cöûa soå leänh : DELETE DATABASE <. • RBTV lieân vuøng : moâ taû moái quan heä giöõa caùc vuøng trong moät baûng. Indexes vaø Table. Taïo moät baûng baèng boä coâng cuï Database Designer : Choïn bieåu töôïng ñaàu tieân beân traùi (New Table) cuûa thanh coâng cuï Databse Designer. Trong hoäp thoaïi Remove : choïn Remove ñeå xoùa CSDL ra khoûi danh saùch tham chieáu. Trang Fiels duøng ñeå ñònh nghóa caùc vuøng cuûa baûng vôùi caùc yù nghóa : 7 . choïn nuùt chöùc naêng Remove. • Sieâu khoùa – Khoùa chính • RBTV veà khoùa ngoaïi : coøn goïi laø raøng buoäc veà phuï thuoäc toàn taïi. choïn Delete ñeå xoùa CSDL ra khoûi ñóa. Cöûa soå Table Designer coù trang : Fields.DBC> | ? [DELETETABLES] [RECYCLE]. • RBTV phöùc taïp treân nhieàu baûng. kieåu Date. choïn Cancel ñeå ngöng thao taùc. Caùc vuøng naøy thöôøng laø vuøng kieåu soá.do ngöôøi thieát keá chöông trình öùng duïng vieát hay Visual Foxpro töï ñoäng kieåm tra caùc RBTV döïa treân nhöõng moâ taû chi tieát cuûa ngöôøi thieát keá veà ñieàu kieän raøng buoäc ñoái vôùi döõ lieäu. • RBTV giöõa caùc vuøng cuûa nhieàu baûng. • RBTV giöõa caùc maãu tin trong moät baûng. Phaân loaïi caùc RBTV : • RBTV veà giaù trò cuûa moät vuøng : laø nhöõng ñieàu kieän thu heïp mieàn giaù trò cuûa caùc vuøng. Database vaø nhaáp chuoät vaøo New File. kieåu Character. • RBTV giöõa caùc maãu tin cuûa nhieàu baûng. ñònh nghóa caáu truùc baûng qua cöûa soå Table Designer. New. xaùc ñònh thö muïc vaø teân table. Theâm CSDL ñaõ coù vaøo danh saùch tham chieáu cuûa öùng duïng : choïn muïc Database trong trang Data cuûa cöûa soå öùng duïng vaø nhaáp chuoät vaøo chöùc naêng Add. Taïo CSDL môùi : choïn moät trong caùc caùch sau : • Choïn trang Data cuûa cöûa soå öùng duïng. RBTV coù 2 möùc : raøng buoäc treân vuøng (ñöôïc kieåm tra khi coù söï thay ñoåi döõ lieäu treân vuøng) vaø raøng buoäc maãu tin (ñöôïc kieåm tra khi coù söï thay ñoåi döõ lieäu treân maãu tin vaø ñöôïc kieåm tra sau raøng buoäc treân vuøng). choïn nuùt aán New table trong hoäp thoaïi ngay sau ñoù. 8 . • Filter : ñieàu kieän loïc döõ lieäu cuûa chæ muïc. Trang Indexes : duøng ñeå moâ taû caùc chæ muïc cuûa baûng. Regular). • Caption : tieâu ñeà cuûa vuøng. • Default value : giaù trò ngaàm ñònh cho vuøng khi nhaäp lieäu. Decimal : kích thöôùc cuûa vuøng. <thaäp phaân1>])] . • Rule : chæ ñònh caùc ñieàu kieän raøng buoäc (bieåu thöùc hay thuû tuïc) • Insert trigger : trigger cho thao taùc theâm maãu tin vaøo baûng. • Type : kieåu chæ muïc (Primary.DBF> [NAME <teân>] [FREE] . (<vuøng1> <kieåu1> [(<kích thöôùc1> [. • Order : thöù töï saép xeáp.• Name : teân cuûa vuøng. • Fields : soá vuøng cuûa baûng • Length : kích thöôùc cuûa maãu tin + 1. • NULL : choù pheùp vuøng nhaän giaù trò NULL hay khoâng. [CHECK <btL1> [ERROR <btC1>]] . • Message : thoâng baùo loãi khi döõ lieäu khoâng hôïp leä. • Format : daïng hieån thò cho döõ lieäu vuøng. [DEFAULT <bt1>] . • Records : soá maãu tin cuûa baûng. • Input mask : daïng nhaäp lieäu cho döõ lieäu cuûa vuøng. Candidate. • Database : taäp tin CSDL • Table file : taäp tin DBF chöùa döõ lieäu cuûa baûng. • Index : döõ lieäu cuûa vuøng ñöôïc saép xeáp taêng daån (Ascending) hoaëc giaûm daàn (Descending). • Delete trigger : trigger cho thao taùc ñaùnh daáu xoùa caùc maãu tin trong baûng. • Field comment : chuù thích theâm cho vuøng. • Update trigger : trigger cho thao taùc söûa ñoåi döõ lieäu cuûa caùc maãu tin trong baûng. • Rule : caùc raøng buoäc toaøn veïn treân vuøng. • Expression : bieåu thöùc khoùa cuûa chæ muïc. Unique. Taïo moät baûng : Coù theå taïo caáu truùc cuûa moät baûng baèng leänh : CREATE TABLE | DBF <. • Name : teân cuûa chæ muïc. Trang Table : • Name : teân baûng. • Type : kieåu cuûa vuøng. • Width. [NULL | NOT NULL] . [. • CHECK <btL2> : moâ taû raøng buoäc toaøn veïn cuûa baûng. • NAME <teân> : teân ñaët theâm cho baûng. |. • <vuøng1> : teân cuûa vuøng thöù nhaát cuûa baûng. xoùa) cuûa baûng. • REFERENCES <baûng1> {TAG <chæ muïc1> : baûng ñöôïc taïo seõ lieân keát khoùa ngoaïi giöõa vuøng thöù nhaát vôùi <chæ muïc1> cuûa <baûng1>. • ERROR <btC2> : thoâng baùo loãi khi thaønh phaàn CHECK bò vi phaïm trong quaù trình caäp nhaät döõ lieäu trong cöûa soã Browse hay Edit. caäp nhaät döõ lieäu cuûa baûng. Neáu coù töø khoùa NODUP thì chæ muïc taïo ra seõ laø chæ muïc khoùa ngoaïi. söûa ñoåi thoâng tin caùc vuøng. REFERENCES <baûng2> [TAG <chæ muïc5>]] . khoâng chöùa moät vuøng ñaõ tham gia vaøo khoùa chính. truy vaán döõ lieäu cuûa CSDL thoâng qua caùc leänh ALTER. CHECK <btL2> [ERROR <btc2>]]) Trong ñoù : • <. Baûng seõ ñöôïc töï ñoäng ñöa vaøo danh saùch tham chieáu cuûa CSDL. • DEFAULT <bt1> : giaù trò ngaàm ñònh cho vuøng. SELECT. <vuøng2> …] . Trigger thöôøng ñöôïc söû duïng ñeå kieåm tra caùc RBTV. • ERROR <btC1> : thoâng baùo loãi khi raøng buoäc toaøn veïn trong thaønh phaàn CHECK bò vi phaïm. 9 . [. Neáu ñaõ duøng thaønh phaàn PRIMARY tröôùc ñoù roài thì khoâng ñöôïc duøng thaønh phaàn naøy. [REFERENCES <baûng1> [TAG <chæ muïc1>]] . FOREIGN KEY <bt4> TAG <chæ muïc4> [NODUP] . PRIMARY KEY <bt2> TAG <chæ muïc2> . vuøng naøy seõ laø khoùa chính cuûa baûng. • <kieåu1> : kieåu döõ lieäu cho vuøng thöù nhaát cuûa baûng. UNIQUE <bt3> TAG <chæ muïc3>] . • FOREIGN KEY <bt4> TAG <chæ muïc4> [NODUP] REFERENCES <baûng2> [TAG <chæ muïc5>] : baûng ñöôïc taïo seõ lieân keát khoùa ngoaïi giöõa <bt4> vôùi <chæ muïc5> cuûa <baûng2>. [. theâm döõ lieäu cuûa baûng. • FREE : baûng ñöôïc taïo ra khoâng ñöôïc ñöa vaøo danh saùch tham chieáu . • PRIMARY KEY : taïo chæ muïc khoùa chính cho vuøng. seõ trôû thaønh khoùa cuûa baûng. • <kích thöôùc1> : kích thöôùc cuûa vuøng thöù nhaát cuûa baûng. huûy boû coät cuûa baûng. [.[PRIMARY KEY | UNIQUE] . • UNIQUE <bt3> TAG <chæ muïc3> : <bt3> laø khoùa cuûa baûng (coù theå goàm nhieàu vuøng). UPDATE. DELETE. • <thaäp phaân1> : soá chöõ soá thaäp phaân cuûa vuøng thöù nhaát. INSERT. Ngay caû moät maãu tin traéng ñöa vaøo cuõng seõ ñöôïc kieåm tra. Ngoaøi ra coøn caùc leänh veà söûa ñoåi caáu truùc baûng. Trigger cuûa moät baûng laø moät haønh ñoäng (töông öùng vôùi 1 thuû tuïc hay chöông trình) ñöôïc ñònh nghóa gaén lieàn vôùi moät thao taùc caäp nhaät döõ lieäu (theâm. • NULL | NOT NULL : cho pheùp / khoâng cho pheùp vuøng laáy giaù trò NULL • CHECK <btL1> : raøng buoäc toaøn veïn treân vuøng thöù nhaát trong baûng. • UNIQUE : taïo chæ muïc khoùa cho vuøng. xoùa döõ lieäu cuûa baûng. söûa.DBF> : teân taäp tin DBF cuûa baûng seõ ñöôïc taïo laäp. • PRIMARY KEY <bt2> TAG <chæ muïc2> : <bt2> laø khoùa chính cuûa baûng (coù theå goàm nhieàu vuøng). • Ñònh nghóa caùc trigger cho moät baûng : môû cöûa soå Table Designer ñeå thieát keá laïi baûng. Delete trigger. Khi ñoù. . Coù theå thöïc hieän thoâng qua leänh DELETE TRIGGER. Gaép doøng ia vaø ñem thaû vaøo doøng ib trong phaàn Indexes cuûa baûng B.Click chuoät vaøo doøng ia trong phaàn Indexes cuûa baûng A. . . Update trigger. • Huûy boû moät trigger : môû cöûa soå Table Designer ñeå thieát keá laïi baûng. trong cöûa soå chính cuûa boä coâng cuï Database Designer seõ xuaát hieän ñöôøng noái theå hieän moái lieân keát giöõa hai baûng A vaø B. Update trigger. • regular index : chæ muïc thoâng thöôøng. • Taïo moái lieân giöõa khoùa ka cuûa baûng A vôùi khoùa kb cuûa baûng B : . LAÄP TRÌNH : 10 . IV. saép xeáp döõ lieäu theo caùc khoùa cuûa baûng. Hai moái quan heä thöôøng gaëp laø : 1-1 vaø 1-n. saép xeáp döõ lieäu theo moät tieâu chuaån naøo ñoù.Click chuoät vaøo doøng ik trong phaàn Indexes cuûa baûng A.Gaép doøng ik vaø ñem thaû vaøo doøng iv trong phaàn Indexes cuûa baûng B. Taïo moái lieân keát giöõa hai baûng : • Taïo moái lieân giöõa khoùa k cuûa baûng A vaø caùc vuøng cuûa baûng B: . Delete trigger. Chæ muïc coù theå ñöôïc chia laøm 4 loaïi : • candidate index : chæ muïc khoùa. moâ taû ñieàu kieän raøng buoäc hoaëc teân thuû tuïc kieåm tra raøng buoäc trong caùc oâ : Insert trigger. • primary index : chæ muïc khoùa chính. Khi ñoù. saép xeáp döõ lieäu theo khoùa chính cuûa baûng. trong cöûa soå chính cuûa boä coâng cuï Database Designer seõ xuaát hieän ñöôøng noái theå hieän moái lieân keát giöõa hai baûng A vaø B.Taïo chæ muïc ia cho khoùa ka vaø chæ muïc ib cho khoùa kb.Taïo chæ muïc ik cho khoùa k vaø chæ muïc iv cho caùc vuøng. • unique index : chæ muïc duy nhaát (caùc sieâu khoùa). choïn trang Table. xoùa ñieàu kieän raøng buoäc hoaëc teân thuû tuïc caàn kieåm tra trong caùc oâ : Insert trigger. saép xeáp caùc döõ lieäu theo caùc sieâu khoùa hay khoùa cuûa baûng. choïn trang Table. Caùc loaïi chæ muïc (index) ñöôïc löu tröõ döôùi 2 loaïi taäp tin : IDX vaø CDX. PRG> | ? [NODEBUG] <. Coù theå choïn Program. • Thöïc hieän chöông trình : Cuù phaùp : DO <chöông trình> | ? <chöông trình> | ? : teân chöông trình muoán thöïc hieän. <bieán2>. <bieán3>.1. Cuù phaùp : PUBLIC <bieán1> [.PRG> | ? : töông töï phaàn soaïn thaûo NODEBUG : khoâng löu soá thöù töï cuûa caùc doøng leänh vaø ngöôøi söû duïng khoâng theå gôõ roái trong quaù trình thöïc hieän chöông trình. Taïo cöûa soå soaïn thaûo chöông trình • Dòch vaø kieåm loãi chöông trình : Cuù phaùp : COMPILE <. …] • Khai baùo maûng : 11 . khoâng cho söûa noäi dung. hay M-> ñaët tröôùc bieán kyù öùc ñeå chuyeån quyeàn öu tieân cho bieán kyù öùc. Qui taéc ñaët teân töông töï nhö vuøng trong baûng. Coù theå dòch chöông trình baèng caùch choïn Program. • Soaïn thaûo chöông trình : Cuù phaùp : MODIFY COMMAND <. caùc loãi sai ñöôïc ñöa vaøo taäp tin coù teân truøng vôùi teân chöông trình vaø coù phaàn môû roäng laø ERR. …] • Leänh LOCAL : Duøng ñeå khai baùo moät daùnh saùch caùc bieán cuïc boä hay bieán cuïc boä. coù phaàn môû roäng laø PRG. Cuù phaùp : LOCAL <bieán1> [. Tröôùc khi söû duïng phaûi khai baùo baèng moät trong caùc leänh sau : • Leänh gaùn : Cuù phaùp : <bieán1> = <bt1> (gaùn giaù trò <bt1> cho <bieán1>) hay : STORE <bt2> TO <bieán2> [. …] (duøng ñeå gaùn cuøng moät giaù trò cho nhieàu bieán) Khi bieán kyù öùc truøng teân vôùi teân moät bieán vuøng. Teân cuûa chöông trình laø teân cuûa taäp tin chöùa noù. Do töø thöïc ñôn heä thoáng.PRG> | ? : chæ ñònh teân taäp tin chöông trình. • Leänh PUBLIC : Duøng ñeå khai baùo moät danh saùch caùc bieán toaøn cuïc.PRG> | ? [NOEDIT] <. Chöông trình : laø moät taäp hôïp caùc leänh seõ ñöôïc thöïc hieän tuaàn töï töø treân xuoáng hoaëc theo caùc caáu truùc ñieàu khieån. NOEDIT : môû chöông trình ra ñeå xem. Complie töø thöïc ñôn heä thoáng. Khi phaùt hieän loãi sai trong chöông trình. <bieán2>. söû duïng M. 2) Bieán kyù öùc (bieán boä nhôù) laø vuøng boä nhôù duøng ñeå löu tröõ taïm thôøi moät döõ lieäu. daáu ? cho pheùp ñaët teân chöông trình trong cöûa soå ñoái thoaïi OPEN. Leänh GATHER coù taùc duïng ngöôïc laïi.MEM> [ALL LIKE <daïng1> | ALL EXCEPT <daïng2>] <. <maûng2>(kíchthöôùc2) …] hay : PUBLIC <maûng3>(<kích thuôùc3>) [. ñaõ coù nhöõng coâng cuï tieän duïng vaø hieäu quaû trong vieäc taïo caùc maøn hình nhaäp lieäu. Giaù trò cuûa bieán kyù öùc ñöôïc löu thaønh moät taäp tin ñeå söû duïng sau naøy coù phaàn môû roäng laø MEM. Cuù phaùp : SCATTER MEMVAR [MEMO] [BLANK] GATHER MEMVAR [MEMO] Leänh SCATTER taïo ra moät boä bieán kyù öùc truøng teân vôùi caùc vuøng cuûa taäp tin DBF vaø töï ñoäng sao cheùp noäi dung cuûa maãu tin hieän haønh cho boä bieán kyù öùc naøy. Vieäc khai baùo bieán coù theå chæ caàn ñaët tröôùc khi söû duïng bieán maø khoâng baét buoäc phaûi ñaët ôû ñaàu chöông trình. Duøng ñeå khai baùo moät daùnh saùch caùc bieán cuïc boä hay bieán cuïc boä. Hieän nay. coù theå söû duïng leänh gaùn ñeå gaùn caùc giaù trò cho maûng. seõ löu tröõ taát caû caùc bieán kyù öùc ñang toàn taïi trong boä nhôù leân taäp tin. ALL LIKE <daïng1> : chæ löu caùc bieán kyù öùc coù teân phuø hôïp vôùi <daïng1> ALL EXCEPT <daïng2> : löu taát caû caùc bieán kyù öùc ngoaïi tröø caùc bieán coù teân phuø hôïp vôùi <daïng2>.MEM> leân. Löu yù leänh naøy khoâng ñöôïc vieát taét thaønh LOCA vì seõ laàm laãn vôùi leänh LOCATE. <maûng4>(kíchthöôùc4) …] hay : LOCAL <maûng5>(<kích thuôùc5>) [. Ngaàm ñònh. Töø khoùa BLANK seõ cho pheùp cheùp moät maãu tin traéng thay vì maãu tin hieän haønh.MEM> : teân taäp tin löu tröõ caùc bieán kyù öùc muoán chuyeån taûi vaøo boä nhôù. kích thuôùc1 : kích thöôùc hay soá phaàn töû cuûa caùc chieàu. vieäc giao tieáp seõ ñöôïc thöïc hieän giaùn tieáp qua caùc oâ ñieàu khieån. Sau khi khai baùo maûng. Töø khoùa MEMO nhaèm sao cheùp caû vuøng kieåu Memo (neáu coù) thaønh caùc bieán kieåu chuoãi. Leänh PUBLIC duøng ñeå khai baùo maûng toaøn cuïc. Noù coù theå thöïc hieän ôû cöûa soå leänh cuõng nhö baát cöù vò trí naøo trong chöông trình.MEM> [ADDITIVE] <. 12 . • Leänh chuyeån taûi caùc bieán kyù öùc töø taäp tin leân boä nhôù : Cuù phaùp : RESTORE FROM <.Cuù phaùp : DIMENSION <maûng1>(<kích thuôùc1>) [.MEM> : teân taäp tin löu tröõ giaù trò cuûa bieán kyù öùc. • Vieäc trao ñoåi döõ lieäu giöõa bieán vuøng vaø bieán kyù öùc thöôøng xuyeân xaûy ra trong quaù trình caäp nhaät döõ lieäu. Leänh SCATTER vaø GATHER seõ thöïc hieän böôùc sao cheùp noäi dung caùc bieán vuøng ra bieán kyù öùc vaø ghi noäi dung caùc bieán kyù öùc ñaõ ñöôïc xöû lyù vaø kieåm tra vaøo maãu tin hieän haønh cuûa DBF. caùc bieán kyù öùc ñang toàn taïi trong boä nhôù seõ bò maát ñi vaø thay vaøo ñoù laø caùc bieán ñöôïc löu tröõ töø taäp tin <. Baáy giôø.MEM> leân. <maûng6>(kíchthöôùc6) …] maûng1 : teân bieán maûng 1 hay 2 chieàu. ADDITIVE : caùc bieán kyù öùc hieän coù trong boä nhôù khoâng maát ñi maø cuøng toàn taïi vôùi caùc bieán ñöôïc chuyeån taûi töø taäp tin <. Leänh LOCAL duøng ñeå khai baùo maûng cuïc boä. Ngaàm ñònh. Leänh DIMENSION duøng ñeå khai baùo caùc bieán maûng 1 hoaëc 2 chieàu. • Leänh löu caùc giaù trò cuûa bieán kyù öùc leân taäp tin : Cuù phaùp : SAVE TO <. Neáu baèng . * Caáu truùc nhieàu ñieàu kieän DO CASE : Cuù phaùp : DO CASE CASE <btL1> <nhoùm leänh1> CASE <btL2> <nhoùm leänh2> … CASE <btLn> <nhoùm leänhn> [OTHERWISE <nhoùm leänh0>] ENDCASE Caáu truùc ñieàu khieån DO CASE seõ laàn löôït kieåm tra caùc ñieàu kieän <btL1>. • Caáu truùc tuaàn töï : laø caáu truùc ñieàu khieån cô baûn cuûa Visual Foxpro. chuyeån ñieàu khieån trôû laïi voøng laëp FOR cho laàn thöïc hieän keá. <btLn> vaø thöïc hieän nhoùm leänh ôû sau ñieàu kieän ñaàu tieân ñöôïc thoaû. 13 . <btL> ñöôïc kieåm tra. caáu truùc laëp. <btL2>. Gaëp töø khoùa EXIT trong thaân voøng laëp seõ thoaùt khoûi caáu truùc ñieàu khieån FOR vaø thöïc hieän tieáp caùc leänh sau ENDFOR. Neáu baèng . seõ thöïc hieän <nhoùm leänh1> töø sau IF ñeán tröôùc ELSE (neáu coù) hoaëc ñeán tröôùc ENDIF (neáu khoâng coù ELSE). seõ boû qua caùc leänh coøn laïi cuûa thaân voøng laëp trong laàn thöïc hieän ñoù.btN3>] … [LOOP] … [EXIT] … ENDFOR Thaân cuûa voøng laëp ñöôïc laëp ñi laëp laïi nhieàu laàn trong khi <bieán kyù öùc> thay ñoåi giaù trò töø <btN1> ñeán <btN2>. coù theå duøng haøm IIF().F. Ñoái vôùi caáu truùc choïn löïa ñôn giaûn. noù seõ ñöôïc thoâng dòch hai laàn tröôùc khi thöïc hieän. thay ñoåi giaù trò <bieán kyù öùc>. …. • Caáu truùc choïn löïa : * Caáu truùc ñieàu kieän ñôn IF : Cuù phaùp : IF <btL> <nhoùm leänh1> [ELSE <nhoùm leänh2>] ENDIF Khi thöïc hieän ñeán caáu truùc naøy. .Macro (&) ñöôïc duøng vôùi caùc bieán kyù öùc kieåu chuoãi. <bieán kyù öùc> ñöôïc theâm <btN3> neáu coù STEP hoaëc töï ñoäng taêng leân 1 neáu khoâng coù STEP. chöông trình seõ ñöôïc tieáp tuïc thöïc hieän phaàn tieáp theo sau ENDIF. • Caáu truùc laëp : * Caáu truùc ñieàu khieån FOR … ENDFOR : Cuù phaùp : FOR <bieán kyù öùc> = <btN1> TO <btN2> [STEP . Neáu taát caû caùc ñieàu kieän ñeàu khoâng thoûa seõ thöïc nhoùm leänh ôû sau OTHERWISE neáu coù. seõ thöïc hieän <nhoùm leänh2> töø sau ELSE ñeán ñeán tröôùc ENDIF (neáu coù) hoaëc boû qua caáu truùc naøy (neáu khoâng coù ELSE). Gaëp töø khoùa LOOP trong thaân voøng laëp. choïn löïa.T. Sau moãi laàn thöïc hieän thaân voøng laëp. Sau ñoù. 3) Caáu truùc ñieàu khieån : tuaàn töï. Leänh coù chöùa macro laø leänh chöa hoaøn chænh. taát caû caùc caáu truùc ñieàu khieån ñaõ neâu coù theå loàng vaøo 14 . thì seõ thoaùt khoûi caáu truùc naøy.* Caáu truùc ñieàu khieån DO WHILE … ENDDO : Cuù phaùp : DO WHILE <btL> … [LOOP] … [EXIT] … ENDDO Thaân cuûa voøng laëp ñöôïc laëp ñi laëp laïi nhieàu laàn trong khi <btL > vaãn coøn laø . ON KEY [LABEL <toå hôïp phím> [leänh2>]] Leänh naøy duøng ñeå moâ taû nhöõng xöû lyù (<leänh2>) khi ngöôøi söû duïng baám toå hôïp phím hay baám chuoät. Haøm ERROR() cho bieát maõ soá töông öùng cuûa loãi sai. Neáu khoâng coù thaønh phaàn leänh keøm theo seõ traû veà caùch xöû lyù ngaàm ñònh neáu coù cuûa toå hôïp phím. Töø khoùa EXIT. Leänh ON ERROR khoâng coù leänh theo sau duøng ñeå traû quyeàn xöû lyù loãi sai veà cho Visual Foxpro. LOOP töông töï nhö treân. <leänh> : leänh seõ thi haønh ñeå xöû lyù loãi sai.F.T. Sau khi <leänh> thöïc hieän xong. ngöôøi laäp trình döïa vaøo ñaây ñeå coù xöû lyù thích hôïp cho töøng loãi sai. Neáu khoâng coù thaønh phaàn leänh keøm theo coù taùc duïng traû veà caùch xöû lyù ngaàm ñònh cuûa Visual Foxpro. con troû maãu tin töï ñoäng dôøi xuoáng maãu tin keá. • Caáu truùc ngaét : * Ngaét khi phaùt hieän loãi sai : Cuù phaùp : ON ERROR [<leänh>] Duøng ñeå kieåm soaùt vaø xöû lyù loãi sai trong quaù trình thöïc hieän chöông trình hay leänh.leänh1>) thay cho caùch xöû lyù ngaàm ñònh cuûa Visual Foxpro. LOOP töông töï nhö treân. Thöôøng laø leänh goïi thöïc hieän moät chöông trình hay thuû tuïc (leänh DO). * Ngaét khi baám phím qui ñònh : Cuù phaùp : ON ESCAPE [<leänh1>] Leänh naøy duøng ñeå thöïc hieän moät xöû lyù khaùc (. Chæ khi naøo <btL>coù giaù trò . Töø khoùa EXIT. seõ tieáp tuïc laøm doøng leänh tieáp theo ngay beân döôùi doøng phaùt sinh loãi hoaëc thöïc hieän laïi doøng phaùt sinh ra loãi neáu trong chöông trình hay thuû tuïc xöû lyù loãi coù chöùa leänh RETRY. * Caáu truùc ñieàu khieån SCAN … ENDSCAN : Cuù phaùp : SCAN [<phaïm vi>] [FOR <btL1>] [WHILE <btL2>] … [LOOP] … [EXIT] … ENDSCAN Caáu truùc naøy duøng ñeå “queùt” taäp tin DBF. • Caáu truùc loàng nhau : Ngoaïi tröø leänh ON ERROR ñöôïc loàng vaøo moät thuû tuïc xöû lyù loãi khaùc. Khoâng caàn ñaët leänh SKIP vaøo trong thaân chöông trình vì sau moãi laàn thöïc hieän voøng laëp. Leänh naøy ñöôïc duøng phoái hôïp vôùi leänh PUSH KEY ñeå ghi nhôù caùch xöû lyù hieän haønh cuûa taát caû caùc phím tröôùc khi duøng ON KEY LABEL vaø phuïc hoài laïi caùch xöû lyù cuûa caùc phím khi keátthuùc chöông trình baèng leänh POP KEY. Kyõ thuaät gioùng haøng ñöôïc aùp duïng nhaèm traùnh caùc loãi sai veà cuù phaùp vaø giuùp deã ñoïc hôn. ñöôïc khai baùo trong chöông trình (hay thuû tuïc) khoâng phaûi baèng leänh PUBLIC hoaëc ñöôïc khai baùo ôû cöûa soå leänh baèng leänh LOCAL. RELEASE <bieán1> [<bieán2>. choïn moät trong caùc nuùt chöùc naêng New hoaëc Add hoaëc Modify (taùc duïng nhö nhau).PRG> trong caùc leänh goïi thöïc hieän thuû tuïc. • Thuû tuïc noäi taïi laø moät daïng thuû tuïc raát ñaëc bieät cuûa Visual Foxpro. ñöôïc khai baùo trong chöông trình (hay thuû tuïc) baèng leänh PUBLIC hoaëc ñöôïc khai baùo ôû cöûa soå leänh khoâng phaûi baèng leänh LOCAL. 4) Thuû tuïc (Procedure) : laø ñoaïn chöông trình con ñeå thöïc hieän moät chöùc naêng naøo ñoù. Cuù phaùp : PROCEDURE <teân thuû tuïc> PARAMETERS <tham bieán1> [.DBC> • Bieán toaøn cuïc (Global) : laø bieán coù theå söû duïng ôû moïi caáp chöông trình (hay thuû tuïc) goïi nhau. <tham bieán2>.nhau theo nhieàu caáp. coù theå môû taäp tin chöông trình naøy baèng leänh SET PROCEDURE TO [<. 15 . • Dòch caùc thuû tuïc noäi taïi : Cuù phaùp : COMPILE DATABASE <. seõ thöïc hieän nhö sau : Cuù phaùp : DO <thuû tuïc> IN <. söûa ñoåi hoaëc xoùa boû moät thuû tuïc ñaõ coù. …] … ENDPROC Toái ña coù 27 tham bieán ñöôïc khai baùo. Khi ñoù xuaát hieän moät cöûa soå chöùa taát caû caùc thuû tuïc noäi taïi hieän coù cuûa CSDL ñeå ngöôøi laäp trình coù theå soaïn thaûo moät thuû tuïc môùi. seõ maát ñi neáu gaëp moät trong caùc leänh : QUIT. …] • Trao ñoåi tham bieán : Coù hai hình thöùc trao ñoåi tham bieán : trao ñoåi theo giaù trò (coù theå thay ñoåi giaù trò cuûa baûn sao nhöng khoâng laøm thay ñoåi giaù trò goác cuûa tham bieán) vaø trao ñoåi theo ñòa chæ (coù theå laøm thay ñoåi giaù trò goác cuûa tham bieán). seõ maát ñi neáu gaëp moät trong caùc leänh : QUIT.PRG>] vaø boû qua phaàn IN <. …] Taïi chöông trình (thuû tuïc) ñöôïc goïi thöïc hieän. Cuù phaùp : PROCEDURE <teân thuû tuïc> … [RETURN] … [ENDPROC] Caùc thuû tuïc coù theå löu chung trong moät chöông trình nhöng phaûi taùch rôøi vaø khoâng ñöôïc loàng nhau. <tham bieán2>. thöôøng laø caùc triggers cuûa CSDL. …] • Bieán cuïc boä (Local) : laø bieán chæ coù theå söû duïng trong chöông trình (hay thuû tuïc) khai baùo noù vaø trong nhöõng chöông trình (hay thuû tuïc) maø noù goïi thöïc hieän. CLEAR MEMORY. Cuù phaùp : DO <thuû tuïc> WITH <tham bieán1> [. Khi goïi thöïc hieän thuû tuïc. CLEAR ALL. CLEAR ALL. Ñeå thöïc hieän vieäc trao ñoåi tham bieán giöõa caùc chöông trình (hay thuû tuïc). phaûi ñaët doøng leänh khai baùo caùc tham bieán nhaän PARAMETERS hay LPARAMETERS ôû ngay sau doøng leänh ñaët teân cuûa thuû tuïc. Choïn muïc Stored Procedures trong cöûa soå öùng duïng. RELEASE <bieán1> [<bieán2>. CLEAR MEMORY.PRG> Neáu caùc thuû tuïc chöùa trong moät taäp tin chöông trình. phaûi chæ ñònh danh sach tham bieán gôûi ñi. Moät thuû tuïc ñaàu baèng chæ thò PROCEDURE ñeå ñaët teân cho thuû tuïc vaø coù theå keát thuùc baèng chæ thò RETURN hoaëc ENDPROC (khoâng baét buoäc). <bieán2>. …] hay : PRIVATE ALL [LIKE <daïng1> | EXCEPT <daïng2>] <bieán1> [. …] : danh saùch caùc tham bieán cuûa haøm. Kieåu döõ lieäu cuûa haøm laø kieåu cuûa giaù trò traû veà. INT(). PRIVATE ALL : che taát caû caùc bieán cuïc boä. chæ khaùc ôû choã haøm seõ traû veà nôi goïi moät vaø chæ moät giaù trò. Cuù phaùp : PRIVATE <bieán1> [.• Che bieán : nhaèm traùnh tình traïng caùc bieán cuïc boä ñöôïc ñaët teân truøng nhau ngoaøi yù muoán khi coù nhieàu ngöôøi cuøng tham gia vieát moät chöông trình öùng duïng. …] : caùc bieán cuïc boä ñöôïc che ñi. PARAMETERS <tham bieán1> [. 16 . … do Visual Foxpro cung caáp. <bieán2>. ñaûm nhieäm vieäc giao tieáp giöõa ngöôøi duøng vaø öùng duïng. Haøm coù saün nhö DATE(). <tham bieán2>. PRIVATE ALL EXCEPT <daïng2> : che taát caû caùc bieán coù teân khoâng phuø hôïp vôùi <daïng2>. <tham bieán2>. 5) Haøm (Function) : töông töï thuû tuïc veà maët chöùc naêng. V. UPPER(). <bt> : giaù trò traû veà nôi goïi. Coù hai loaïi maøn hình giao dieän thoâng duïng : daïng ñôn giaûn lieân keát vôùi moät baûng vaø daïng one – to – many lieân keát vôùi baûng coù thieát laäp moái quan heä vôùi nhau. Haøm do ngöôøi söû duïng ñònh nghóa thì trong phaàn thaân cuûa haøm phaûi coù ít nhaát 1 doøng leänh RETURN ñeå traû giaù trò veà nôi goïi. Khi ñaët \< tröôùc moät kyù töï naøo ñoù thì kyù töï ñoù trôû thaønh phím noùng. daøi toái ña 256 kyù töï. PRIVATE ALL LIKE <daïng1> : che taát caû caùc bieán coù teân phuø hôïp vôùi <daïng1>. …] … [RETURN <bt>] … ENDFUNC <teân haøm> : teân cuûa haøm do ngöôøi duøng ñònh nghóa. Cuù phaùp : FUNCTION <teân haøm> PARAMETERS <tham bieán1> [. MAØN HÌNH GIAO DIEÄN (INTERFACE DISPLAY): Maøn hình giao dieän laø nhöõng cöûa soå coù chöùa caùc ñoái töôïng ñaëc bieät goïi laø caùc ñieàu khieån. Thanh coâng cuï vaø thuoäc tính taïo giao dieän : • Nhaõn (Label): laø ñoaïn vaên baûn coá ñònh. # : chæ nhaäp soá. Daïng nhaäp lieäu cuûa hoäp vaên baûn.Thuoäc tính Caption Name • Hoäp vaên baûn (Text Box) treân moät doøng.T. K : ñaùnh daáu choïn taát caû döõ lieäu trong hoäp ñieàu khieån khi ñieàu khieån nhaän ñöôïc focus. thì maøn hình giao dieän seõ ñoùng laïi sau khi thi haønh nuùt leänh Teân cuûa nuùt leänh Vaên baûn xuaát hieän treân nuùt leänh Hình aûnh xuaát hieän treân nuùt leänh Thuû tuïc seõ ñöôïc thi haønh khi ngöôøi söû duïng choïn nuùt leänh • OÂ kieåm tra (Check Box) : Moät oâ kieåm tra ñöôïc choïn (x) coù yù nghóa ngöôøi söû duïng ñoàng yù vôùi noäi dung moâ taû cuûa oâ kieåm tra. Qui ñònh soá kyù töï toái ña coù theå nhaäp ñöa vaøo hoäp vaên baûn (khoâng haïn cheá neáu = 0) Chuù thích theâm cho hoäp vaên baûn • Hoäp soaïn thaûo (Edit Box) : duøng ñeå hieån thò vaø caäp nhaät döõ lieäu treân nhieàu doøng (thích hôïp vôùi döõ lieäu kieåu Memo hay kieåu Character coù ñoä daøi khaù lôùn). 9 : chæ ñöôïc nhaäp soá vaø daáu. daáu vaø khoaûng traéng. Thuoäc tính TerminateRead Name Caption Picture Click Event YÙ nghóa Giaù trò laø . Thuoäc tính ControlSource Name Format MaxLength ToolTipText YÙ nghóa Vuøng keát noái vôùi hoäp soaïn thaûo Teân cuûa hoäp soaïn thaûo Daïng hieån thò cuûa hoäp soaïn thaûo Qui ñònh soá kyù töï toái ña coù theå nhaäp ñöa vaøo hoäp soaïn thaûo (khoâng haïn cheá neáu = 0) Chuù thích theâm cho hoäp soaïn thaûo • Nuùt leänh (Command Button) : duøng ñeå ñaëc tröng cho moät chöùc naêng seõ ñöôïc thöïc hieän khi ngöôøi söû duïng choïn nuùt leänh naøy. X : cho pheùp nhaäp baát kyø kyù töï. ! : ñoåi chöõ thöôøng thaønh chöõ hoa. 17 . Thuoäc tính ControlSource Name Format YÙ nghóa Noäi dung cuûa nhaõn Teân cuûa nhaõn : duøng ñeå hieån thò vaø caäp nhaät döõ lieäu InputMask MaxLength ToolTipText YÙ nghóa Vuøng keát noái vôùi hoäp vaên baûn Teân cuûa hoäp vaên baûn Daïng hieån thò vaø nhaäp lieäu cuûa hoäp vaên baûn. Z : khoâng hieän 0 neáu giaù trò cuûa ñieàu khieån ñang laø 0. chæ khi click chuoät vaøo muõi teân phía phaûi cuûa hoäp danh saùch keùo xuoáng thì taát caû caùc muïc môùi ñöôïc hieån thò Thuoäc tính BoundColumn ControlSource ColumnCount ListItem ListCount RowSource RowSourceType AddItemMethod RemoveItemMetho d RequeryMethod YÙ nghóa Giaù trò coät thöù maáy ñöôïc traû veà khi choïn moät muïc choïn trong hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng. laø moät baûng coù nhieàu coät vaø nhieàu doøng. Thuoäc tính ControlSource Increment KeyboardHighValu e. Cho bieát soá muïc coù trong hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng. SpinnerLowValue YÙ nghóa Vuøng keát noái vôùi Spinner Böôùc taêng hoaëc giaûm cho Spinner Giaù trò lôùn nhaát vaø nhoû nhaát coù theå ñöa vaøo töø baøn phím cho Spinner. coù theå laø Query.Thuoäc tính ControlSource Caption Picture YÙ nghóa Vuøng keát noái vôùi oâ kieåm tra Vaên baûn xuaát hieän treân oâ kieåm tra Hình aûnh xuaát hieän treân oâ kieåm tra • Hoäp danh saùch (List Box) – Hoäp danh saùch keùo xuoáng (Combo Box) : Hoäp danh saùch laø moät khung chöõ nhaät chöùa danh saùch caùc muïc. thöôøng söû duïng trong maøn hình giao dieän one – to – many. Kieåu döõ lieäu nguoàn. caâu leänh SQL. Bí danh. … Ñöa moät muïc vaøo danh saùch Huûy moät muïc ra khoûi danh saùch Caäp nhaät laïi caùc thay ñoåi trong hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng. noäi dung cuûa löôùi laø döõ lieäu cuûa baûng table vaø caùc döõ lieäu naøy coù quan heä vôùi baûng cha theo moät bieåu thöùc quan heä. Nguoàn döõ lieäu cung caáp caùc cho hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng. Töông töï cho hoäp danh saùch keùo xuoáng nhöng chæ cho hieån thò moät doøng (muïc). • Löôùi (Grid) : duøng ñeå hieån thò döõ lieäu theo daïng löôùi. trong ñoù moãi doøng laø moät muïc vaø coù theå coù nhieàu coät. • Spinner : laø moät ñieàu khieån cho pheùp ngöôøi duøng choïn giaù trò trong moät phaïm vi. Cho pheùp truy caäp ñeán caùc muïc trong hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng. 18 . Soá coät hieån thò treân hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng. Giaù trò lôùn nhaát vaø nhoû nhaát choïn trong Spinner. KeyboardLowValue SpinnerHighValue. Vuøng keát noái vôùi hoäp danh saùch hoaëc hoäp danh saùch keùo xuoáng. * Böôùc 2 : Choïn daïng cuûa maøn hình giao dieän & Choïn daïng maøn hình giao dieän. thì maøn hình nhieàu trang seõ coù Tabs Laø 0 seõ cho pheùp hieån thò nhieàu doøng neáu tabs khoâng ñuû choã treân naøn hình nhieàu trang. & Choïn CSDL. + Choïn nuùt nhaán Form Wizard. coù theå ñoåi thaønh combo box hay oâ kieåm tra). + Ñònh nghóa caáu truùc cuûa maøn hình giao dieän : * Böôùc 1 : Choïn caùc vuøng.T. Laø 1 chæ cho pheùp hieån thò 1 doøng tabs treân maøn hình nhieàu trang. 2) Thieát keá maøn hình giao dieän baèng Form Winzard : • Taïo maøn hình giao dieän ñôn giaûn töø moät baûng : + Choïn nuùt chöùc naêng New trong cöûa soå öùng duïng. Thuoäc tính ActivePage PageCount PageHeight PageWidth Tabs TabStretch YÙ nghóa Soá thöù töï trang hieän haønh Toång soá trang cuûa maøn hình nhieàu trang Ñoä cao cuûa trang Ñoä roäng cuûa trang Laø . & Choïn Next ñeå sang böôùc tieáp theo. thì beân traùi löôùi seõ xuaát hieän theâm moät coät ñeå ñaùnh daáu xoùa maãu tin RecordMark Laø . thì seõ xuaát hieän theâm moät coät chöùa daáu hieäu cho caùc maãu tin ñöôïc choïn. phaân nhoùm theo chuû ñeà. • Maøn hình nhieàu trang : ñöôïc söû duïng trong tröôøng hôïp maøn hình giao dieän coù nhieàu ñieàu khieån vaø caàn toå chöùc. Thuoäc tính ChildOrder LinkMaster RecordSourceT ype RecordSource RelationalExpr YÙ nghóa Teân index Tag cuûa döõ lieäu nguoàn cho löôùi Bí danh cuûa baûng cha Kieåu döõ lieäu nguoàn cuûa löôùi Döõ lieäu nguoàn cuûa löôùi Bieåu thöùc quan heä giöõa baûng cha vaø baûng con ColumnCount Soá coät hieån thò trong löôùi DeleteMark Laø .Moãi coät cuûa löôùi goàm hai thaønh phaàn : tieâu ñeà (Headder) vaø ñieàu khieån cuûa coät (ngaàm ñònh laø hoäp vaên baûn. choïn OK. * Böôùc 4 : Keát thuùc & Ñaët tieâu ñeà cho maøn hình giao dieän 19 . * Böôùc 3 : Thöù töï saép xeáp caùc maãu tin & Choïn thöù töï saép xeáp caùc vuøng neáu caàn.T. baûng vaø caùc vuøng cho maøn hình giao dieän.T. & Choïn Next ñeå sang böôùc tieáp theo. & Choïn Next ñeå sang böôùc tieáp theo. + Choïn doøng Form Winzard. & Choïn Finish ñeå keát thuùc. • Baùo bieåu phaân nhoùm : döõ lieäu ñöôïc phaân thaønh nhieàu nhoùm theo caùc khoùa.SCX> | ? • Söûa ñoåi maøn hình giao dieän : Cuù phaùp : MODIFY FORM <. . • Page Footer : haï muïc xuaát hieän ôû cuoái moãi trang cuûa baùo bieåu. döõ lieäu cuûa baùo caùo laø noäi dung cuûa caùc vuøng thuoäc moät hoaëc nhieàu baûng. Caùc daïng baùo bieåu : • Baùo bieåu khoâng phaân nhoùm : laø nhöõng baùo bieåu ñôn giaûn. choïn OK. 2. * Böôùc 2 : Choïn caùc vuøng cuûa baûng con & Choïn CSDL. Caáu truùc cuûa baùo bieåu : Bao goàm caùc thaønh phaàn : • Title : tieâu ñeà cuûa baùo bieåu. * Böôùc 4 : Choïn daïng cuûa maøn hình giao dieän (töông töï nhö treân) * Böôùc 5 : Thöù töï saép xeáp caùc maãu tin (töông töï nhö treân) * Böôùc 6 : Keát thuùc (töông töï nhö treân) 3) Thieát keá maøn hình giao dieän baèng boä coâng cuï Form Design : • Taïo maøn hình giao dieän : Cuù phaùp : CREATE FORM <.Baùo bieåu daïng 1 .Many : + Choïn nuùt chöùc naêng New trong cöûa soå öùng duïng. baûng cha vaø caùc vuøng cho maøn hình giao dieän. Cuoái moãi doøng coù theå coù caùc doøng tính toaùn. . + Choïn nuùt nhaán Form Wizard. • Taïo maøn hình giao dieän One – to . . * Böôùc 3 : Xaùc ñònh moái quan heä giöõa hai baûng. chæ in ôû trang cuoái cuøng cuûa baùo bieåu.& Choïn Preview ñeå xem tröôùc maøn hình giao dieän môùi taïo. • Summary : toùm taét cuûa baùo bieåu. 20 . & Choïn Next ñeå sang böôùc tieáp theo. Giöõa baûng cha vaø baûng con phaûi coù thieát laäp moái quan heä.n : döõ lieäu theå hieän theo töøng nhoùm trong baûng cha vaø ñoái vôùi moãi nhoùm coù theå coù theâm caùc chi tieát cuûa nhoùm ñoù trong baûng con. + Choïn doøng One – to – Many Form Winzard. & Choïn Next ñeå sang böôùc tieáp theo.Baùo bieåu theo nhoùm vaø toång coäng : döõ lieäu phaân nhoùm vaø coù theå coù toång coäng ôû cuoái moãi nhoùm. REPORT ( Baùo Caùo): 1.Baùo bieåu theo coät : döõ lieäu lieân quan ñeán moät ñoái töôïng ñöôïc theå hieän ôû nhieàu coät treân moät doøng. . ñaët teân maøn hình giao dieän hoäp thoaïi xuaát hieän ôû ñaây. chæ in ôû trang ñaàu tieân cuûa baùo bieåu. • Page Header : tieâu ñeà xuaát hieän ôû ñaàu moãi trang cuûa baùo bieåu. baûng con vaø caùc vuøng cho maøn hình giao dieän.Baùo bieåu theo doøng : döõ lieäu lieân quan ñeán moät ñoái töôïng ñöôïc theå hieän ôû nhieàu coät treân nhieàu doøng. + Ñònh nghóa caáu truùc cuûa maøn hình giao dieän : * Böôùc 1 : Choïn caùc vuøng cuûa baûng cha & Choïn CSDL.SCX> | ? Boä coâng cuï Form Designer coù moät cöûa soå Form bieåu dieãn caáu truùc (goàm caùc ñieàu khieån) cuûa maøn hình giao dieän vaø cöûa soå Propeties ñeå hieån thò caùc thuoäc tính cuûa ñieàu khieån trong maøn hình giao dieän. VI. Thöïc ñôn keùo xuoáng : • Ñònh nghóa thöïc ñôn keùo xuoáng : duøng leänh DEFINE POPUP. VII. duøng leänh SET SYSMENU TO DEFAULT ñeå traû laïi thöïc ñôn heä thoáng cuûa Visual Foxpro. • Group Footer : haï muïc cuoái moãi nhoùm döõ lieäu (chæ coù trong loaïi baùo bieåu ñöôïc phaân nhoùm). thöïc ñôn ngang. • Group Header : tieâu ñeà moãi nhoùm döõ lieäu (chæ coù trong loaïi baùo bieåu ñöôïc phaân nhoùm). Tröôùc khi keát thuùc thöïc hieän chöông trình. thöïc ñôn nhieàu caáp. 1. MENU (THÖÏC ÑÔN) : Caùc thöïc ñôn bao goàm : Thöïc ñôn keùo xuoáng. thöïc ñôn heä thoáng. 3. • Ñònh nghóa caùc muïc choïn cuûa thöïc ñôn keùo xuoáng : duøng leänh DEFINE BAR. Coù theå taïo baùo bieåu baèng boä coâng cuï Report Wizards hoaëc Report Designer. • Khai baùo noäi dung xöû lyù cho thöïc ñôn keùo xuoáng : 21 .• Detail : phaàn noäi dung chi tieát cuûa baùo bieåu. /.Duøng leänh MODIFY MENU ñeå môû taäp tin thöïc ñôn trong cöûa soå cuûa Menu Designer. Thi haønh taäp tin chöông trình thöïc ñôn MPR : DO <. ñaët teân cho taäp tin MPR seõ ñöôïc phaùt sinh va sau ñoù click chuoät vaøo nuùt nhaán Generate. • Khai baùo noäi dung xöû lyù cho thöïc ñôn keùo ngang : * Xöû lyù toaøn cuïc treân thöïc ñôn ngang : duøng leänh ON SELECTION MENU <thöïc ñôn ngang> <leänh> * Xöû lyù cuïc boä töøng muïc choïn ngang cuûa thöïc ñôn : duøng leänh ON SELECTION PAD <muïc choïn ngang> OF <thöïc ñôn ngang> <leänh> • Kích hoaït thöïc ñôn ngang : duøng leänh ACTIVATE MENU.Choïn Menu. 22 .Trong oâ Output File cuûa cöûa soå ñoái thoaïi. • Ñònh nghóa caùc muïc choïn cuûa thöïc ñôn ngang : duøng leänh DEFINE PAD. • Ngöng kích hoaït thöïc ñôn keùo xuoáng : duøng leänh DEACTIVATE POPUP. Generate töø thöïc ñôn heä thoáng. 2. . • Che giaáu thöïc ñôn ngang : duøng leänh HIDE MENU. Thöïc ñôn ngang : • Ñònh nghóa thöïc ñôn ngang : duøng leänh DEFINE MENU. • Hieån thò thöïc ñôn ngang : dung leänh SHOW MENU. . Thöïc ñôn nhieàu caáp : Laø söï keát hôïp cuûa hai thöïc ñôn ôû treân ñeå coù ñöôïc moät heä thoáng thöïc ñôn nhieàu caáp. Dòch taäp tin thöïc ñôn MNX thaønh taäp tin MPR : . • Hieån thò thöïc ñôn keùo xuoáng : dung leänh SHOW POPUP. Thöïc ñôn heä thoáng : laø thöïc ñôn ñöôïc ñònh nghóa baèng leänh DEFINE MENU vaø coù keøm theo vieäc ñaët teân cho thöïc ñôn naøy laø _MSYSMENU. Coù theå taïo thöïc ñôn nhanh choùng hôn baèng boä coâng cuï Menu Designer. • Che giaáu thöïc ñôn keùo xuoáng : duøng leänh HIDE POPUP. • Ngöng kích hoaït thöïc ñôn ngang : duøng leänh DEACTIVATE MENU. 3.MPR> . 4.* Xöû lyù toaøn cuïc treân thöïc ñôn keùo xuoáng : duøng leänh ON SELECTION POPUP <tdkx> <leänh> * Xöû lyù cuïc boä töøng muïc choïn cuûa thöïc ñôn keùo xuoáng : duøng leänh ON SELECTION BAR <btN> OF <tdkx> <leänh> • Kích hoaït thöïc ñôn keùo xuoáng : duøng leänh ACTIVATE POPUP. Documents Similar To Tim Hieu Ngon Ngu Lap Trinh Visual FoxProSkip carouselcarousel previouscarousel nexthuong_dan_sd_spss.pdfBai_giang_CNPM_Chuong_1-5_Hoan_chinh_2007-09-23Gioi Thieu Chi Tiet ERPkienthucpythonFortran_ch1luclaptrinhTai Lieu Giang Day - Hp4 - SQL Server 2000tailieufoxGiao Trinh FORTRANP0167Chuong 8 - Chien Luoc San Xuat Quoc TeTELENUMPascalc8 CNPM Huong Doi Tuong 2758FOX - tai lieu3bSEV_ThietkeNDbaitap2ch9Ch3nsqlGiáo án ngôn ngữ lập trình C++DUONG2DA8 - Design Patternsbai 1Giao Trinh Thuc HanhPhong Cach Lap TrinhdLẬP TRÌNH C CHO PIC BẰNG TIẾNG VIỆT(DOWN THỎA THICH)Ngonngu SQL11-Tim Hieu Simulink Trong MatlabPhan4-chia xe du lieu voi ung dung khac cua win.docMore From bagiacomSkip carouselcarousel previouscarousel nextToàn bộ lệnh CAD113063404-Do-an-Tot-Nghiep-Bao-Ve-Ro-Le-Tram-Bien-AP-110kv-20120729084601-31Toàn bộ lệnh CAD73-Du Thao 01 - Thong Tu HTD Phan Phoi - 25Dec092dFooter MenuBack To TopAboutAbout ScribdPressOur blogJoin our team!Contact UsJoin todayInvite FriendsGiftsLegalTermsPrivacyCopyrightSupportHelp / FAQAccessibilityPurchase helpAdChoicesPublishersSocial MediaCopyright © 2018 Scribd Inc. .Browse Books.Site Directory.Site Language: English中文EspañolالعربيةPortuguês日本語DeutschFrançaisTurkceРусский языкTiếng việtJęzyk polskiBahasa indonesiaSign up to vote on this titleUsefulNot usefulYou're Reading a Free PreviewDownloadClose DialogAre you sure?This action might not be possible to undo. Are you sure you want to continue?CANCELOK
Copyright © 2024 DOKUMEN.SITE Inc.