visual foxpro-curs-borza.pdf

Upload: randy-langley

Post on 02-Jun-2018

286 views

Category:

Documents


5 download

TRANSCRIPT

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    1/163

    MMeeddiiiiddeePPrrooggrraammaarreeNote de Curs

    CCoonnff..ddrr..iinngg..SSoorriinnBBoorrzzaa

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    2/163

    Introducere2

    INTRODUCERE

    Modelul relaional al bazelor de date a fost formulat i publicat de ctrecercettorul american dr. Edgar Cood la nceputul anilor 70. Model criticat la nceputdatoritunor imperfeciuni ale sale, s-a impus treptat pe piaa bazelor de date, astfelc n prezent ocup cel mai important segment din aceasta. Datele i relaiile suntreprezentate printr-o structurlogicnumitrelaie. O relaie poate fi reprezentatsubforma unei tabele bidimensionale sau a unui fiier cu nregistrri. Modelul relaional a

    fost definit riguros din punct de vedere matematic, el constituind un mediu permanentde studiu al proprietilor logice ale unui sistem de baze de date. Edgar F. Codd apublicat un set de 13 reguli care determindacun Sistem de Gestiune a Bazelor deDate(SGBD) este relaional. Ulterior pn n anii 90, Codd apublicat un numr deaproximativ 100 de reguli. n general nici un SGBD pus n vnzare nu respect ntotalitate aceste reguli, ci doar un numr mai mic sau mai mare al lor, dar acest lucrunu mpiedicataarea proprietii relaional, produsului respectiv.

    Visual FoxPro face parte din acea categorie de aplicaii cunoscute sub numelede Sisteme de Gestiune a Bazelor de Date Relaional Obiectuale (SGBDRO).

    Acesta este ultimul tip de baze de date n care suprtul de memorare al datelor esterelaional iar limbajul de programare este obiectual. Visual FoxPro pune la dispoziiautilizatorilorutilitare complexe care ajutla crearea relaiilor (tabelelor), a indecilor,la introducerea datelor i la obinerea rapoartelor pe baza lor. FoxPro ofer unmecanism rapid i flexibil de manipulare a fiierelor de date (fiierele cu extensiaDBF) sau a bazelor de date compuse din mai multe fiiere cu extensia DBF.

    Vechiul FoxPro sub DOS sau sub Windows este un dialect a ceea ce estecunoscut ca limbajul Xbase. Limbajul procedural din Foxpro, care este i elementulsu central, este puternic i flexibil avnd de asemenea un nalt grad compatibilitate

    cu aplicaiile Xbase.Visual FoxPro nu pune la dispoziie numai un compilator i un mecanism demanipulare a bazelor de date, ci furnizeaz i un set bogat de utilitare puternice de

    proiectare, ncorporate ntr-un mediu omogen, att de puternic i de comod nctmajoritatea proiectanilor de aplicaii FoxPro prefer s-i realizeze aplicaiile ninteriorul su.

    Limbajele de programare Xbase, din care face parte i FoxPro, reprezint ofamilie de limbaje de programare descendente ale limbajului dBase II produs de firmaAshton-Tate. Limbajul este caracterizat printr-o sintaxuor de nsuit, apropiatde

    engleza curent i printr-un bogat set de comenzi, orientate pe nregistrri, pentrumanipularea la nivel nalt al datelor. Originea limbajului Xbase este legat de unlimbaj brevetat de manipulare a datelor pe calculatoare, creat pentru Laboratorul de

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    3/163

    Introducere 3

    Propulsie cu Reacie (JPL Jet Propulsion Laboratory) din cadrul NASA la sfritulanilor 70. Acest limbaj a fost cunoscut sub numele JPLDIS, fiind ulterior portat subnumele de Vulcan, pe sistemul de operare CP/M. Sesiznd posibilitile comercialeale produsului, Wayne Ratliff a prsit JPL i a trecut la firma Ashton-Tate unde a

    elaborat programul dBase II care a fost o realizare deosebit ajutnd la dovedireautilitii microcalculatoarelor. n momentul n care a aprut calculatorul IBM PC,dBase II a fost portat pe aceastplatformde ctre echipa lui Ratliff, aprnd astfel

    produsul dBase III, o versiune cu mult mai performantdect ceea ce exista pe piaabazelor de date n acel moment. n jurul anilor 80 produsul firmei Aston-Tatedomina aproximativ 75% din piaa bazelor de date pe microcalculatoare. Pe msurce aplicaiile Xbase au devenit mai complexe, a crescut, ca o cerin, i viteza delucru a produsului. Firma Ashton - Tate a fost la nceput indiferent la acest aspect,

    permind altor companii care au nceput simite limbajul dBase III sse dezvolte peaceastdirecie.

    Una dintre aceste companii a fost Fox Software din Perrysburg Ohio. Primullor produs FoxBase, a fost o imitaie dBase II. Fox i-a creat rapid o reputaie bazat

    pe vitez i pe maxima compatibilitate cu limbajul dBase. Un alt productor,Nantucket, a produs compilatorul Clipper care a pus mai mult accentul pe creareaprogramelor executabile pure, urmnd propria lor cale, cu extensii nestandard alelimbajului.

    n anul 1988, Ashton-Tate ncepea spiardpiaa nu numai fade produseleimitaie, dar i fade numrul din ce n ce mai mare de sisteme de baze de date non-dBase. n acest timp Fox Software lucra pe cont propriu la un nou produs, cunoscutsub numele de FoxPro. La trgul Fall Comdex din 1989, Ashton-Tate a anunatlansarea oficial a produsului dBase IV, care a fost aproape imediat caracterizat decritici ca avnd deficiene iremediabile. Tot la acest trg demonstraiile care sau fcutau scos n eviden faptul cprodusul care urma sfie lansat, FoxPro 1.0, era multmai rapid i avea o serie de avantaje majore asupra proasptului lansat dBase IV.

    La cteva zile dup aceste evenimente firma Ashton-Tate a intentat procesmpotriva produsului Fox, n sensul cprodusul nclca dreptul de copyright al firmeiAshto-Tate asupra produsului dBase III. Acest proces a avut ca efect distrugereafirmei Ashton-Tate i o mare publicitate pentru firma Fox Software. Firma BorlandInternaional a achiziionat Ashton-Tate i produsul su principal dBase IV, trecnd lamodificarea i mbuntirea produsului.

    FoxPro i-a dobndit propria sa personalitate o datcu versiunea 2.0, aprutn iulie 1991. Cu versiunea 2.0 Fox i-a consolidat poziia sa de lider n inovaiatehnologicdin domeniul Xbase. n vara anului 1992, compania Fox Software a fostachiziionat de ctre concernul Microsoft. Produsul FoxPro a continuat s fiedezvoltat sub mediul Dos, aprnd versiunile 2.5 i 2.6. Sub patronajul Microsoft

    produsul FoxPro a migrat n primul rnd spre mediul Windows prin versiunileFoxPro 2.6 for Windowsi ulterior Visual FoxProversiunile 3.0, 5.0, 7.0, 8.0 i n

    curnd 9.0.

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    4/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    5/163

    Introducere 5

    b)limbaje bazate pe calcul relaional, n care interogrile se bazeazpe diverse condiii puse asupra tuplelor existente n relaii.

    SQL este un limbaj standard de descriere a datelor i acces la informaiile dinbazele dedate, ulterior dezvoltndu-se ca o adevrat tehnologie dedicat

    arhitecturilor client/server.Utilizat iniial de ctre firma I.B.M pentru produsul DB2, S.Q.L a devenit lamijlocul deceniului trecut un standard de facto n domeniul bazelor de date. n aceast

    perioad au fost realizate apte versiuni ale standardului S.Q.L, trei dintre acesteafiind concepute de ctre Institutul National American de Standarde (ANSI), iarcelelalte de ctre firmele de software IBM, Microsoft Borland. n prezent, ANSIlucreaz la standardul S.Q.L 3 care va introduce bazele de date orientate pe obiect.Primul standard SQL a fost creat n 1989 de ctre ANSI fiind revizuit n 1992.Proliferarea diverselor implementri ale limbajului SQL a determinat formareaconsoriului SAG (The SQL Access Group), care are drept scop conceperea destandarde SQL, avnd la bazstandardul ANSI-SQL89.

    n timp, diveri membrii ai SAG i-au dezvoltat propriile standarde SQL,astfel:

    Microsoft a dezvoltat produsul ODBC (Open DatabaseConnectivity);

    Borland a dezvoltat standardul IDAPI (Integrated DatabaseApplication Programming Interface)

    n capitolele urmtoare se va face referire la limbajul VisualFoxPro i la

    comenzile SQL incorporate n acest produs. La prezentarea comenzilor i funciilorVisual FoxPro se vor folosi o serie de convenii, preluate de la firma productoare icare sunt prezentate n continuare:

    cuvintele cheie ale limbajului sunt prezentate cu majuscule i ngroat.Cuvintele cheie sau cuvintele rezervate sunt construcii sintactice propriimediului Visual FoxPro;

    parantezele unghiularencadrnd text scris cu litere mici indico poriunece trebuie furnizat de programator, aceasta fiind simbolizat prin textuldintre paranteze;

    parantezele rotunde, virgula, egalul, vor fi trecute n instruciune,comandsau funcie, exact n poziia n care apar n definiie;

    parantezele ptratencadreazo poriune opional; bara verticalindicalegerea unei opiuni i numai a uneia, din mai multe

    posibile; trei puncte de suspensie, indic faptul c funcia, comanda sau

    instruciunea se continun mod asemntor.

    Exemplu sintaxDIMENSION

    ([,])[,( [,)]FOR = TO [STEP ]

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    6/163

    Introducere6

    [instruciuni][EXIT]

    [LOOP]ENDFOR|NEXT

    Exemplu programUSE SALARIATDISPLAY

    DISPLAY ALL OFF

    GO RECORD 3DISPLAY FIELDS NUME,PRENUME,SALARDISPLAY FIELDS SALAR RESTGO TOP

    DISPLAY ALL FOR STARE_CIVL=.F.

    DISPLAY ALL TO FILE SALAR.TXTNOCONSOLECLOSE ALL

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    7/163

    INTRODUCERE N VISUAL FOXPRO

    1.1 Folosirea mediului propriu Visual FoxPro

    Mediul Visual FoxPro versiunea 7 se prezint n figura 1.1. Visual FoxProdefinete ecranul ca o classpecialdenumitScreen. Visual Fox este un mediu de

    programare orientat obiect. ncepnd cu versiunea 6.0 existposibilitatea de a declarabaza de date, tabela, vederea sau legtura ntre tabele ca i o clasde obiecte, putndastfel gestiona datele ca i obiecte. Din acest punct de vedere, Visual Fox se comportca o bazde date relaonal obiectual.

    Visual FoxPro este un mediu orientat pe evenimente, adicse poate trece de lao activitate la alta, aproape n orice moment. De exemplu dacsuntem ntr-o fereastrde editare a unui fiier de date, frsnchidem aceastfereastrse poate deschide o

    fereastr de editare program. Se poate sri oricnd napoi la fereastra de editare afiierului de date fra nchide fereastra de editare program. Principalele elemente alemediului Visual FoxPro (VFP) sunt :

    Meniul mediului VFP sau meniul sistem; Bara cu butoane (Toolbars) Fereastra de comand(Command).

    1.1.1 Bara de meniuri

    Bara de meniuri se prezintn figura 1.1. Fiecare cuvnt care apare n bara demeniuri reprezinto opiune barsau simplu opiune. Meniul se mai numete i

    Capitolul

    1

    Fi 1.1 Mediul inte rat VFP

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    8/163

    8 Capitolul 1

    meniu principal sau meniul sistem.Prile componente ale sistemului de meniuri sunt prezentate n figura 1.2.

    Pentru a selecta o anumit opiune se apas tastaA n combinaie cu tastasubliniat a numelui opiunii respective. Pentru apelarea opiunii File se apas

    concomitent tasteleA+f. Submeniul, este lista care apare atunci cnd selectai oopiune bar. Pentru a selecta o opiune a unui submeniu se deplaseaz cursorul cuajutorul tastelor poziionale pe opiunea doriti se tasteazEnter (j). Se poate deasemenea tasta litera subliniat (sau supraluminat) asociat unei opiuni a unuisubmeniu.

    Unele selecii din submeniuri au o cale directde apelare de la tastatur, afiatn dreapta opiunii. De exemplu apelarea opiunii Help se poate face prin apsareatastei funcionale1.

    Unele opiuni sunt urmate de trei puncte (). Acestea reprezint o indicaie

    vizuala faptului c, dupselectarea lor urmeazo fereastrde dialog.Opiunile meniului sistem vor fi explicate pe parcursul acestei cri n funciede capitolul n care vor fi tratate.

    1.1.2 Configurarea mediului Visual Fox

    Visual Fox permite utilizatorului individual s realizeze configurareaparticularizat a mediului de lucru funcie de dorina acestuia. Acest lucru se poaterealiza folosind meniul Tools i opiunea Options a acestuia. Fereastra care apare(fig. 1.3) permite definirea n totalitate a caracteristicilor mediului de lucru n VFP.

    Fig 1.2 Meniuri n mediul VFP

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    9/163

    9 Introducere n Visual FoxPro

    Ea conine 13 pagini distincte care mpart setul de comenzi n urmtoarele grupuri: Controls stabilete legturile cu bibliotecile de clasele vizuale i cu

    controalele OLE; Datadefinete accesul regsirea i afiarea datelor;

    Editordefinete caracteristicile editorului de text VFP; File Locationsdefinete cile de localizare a diferitelor fiiere existente nVFP;

    Formsdeterminconfigurarea proiectantului de formulare; General permite dfinirea anumitor opiuni ale mediului VFP care nu se

    regsesc n celelalte pagini ale ferestrei Options; Regionaldefinete modul de formatare al datei sau al numerelor funce de

    zona geografic; Projectsdefinete opiunile managerului de proiect;

    Remote data stabilete modul de legtural VFP cu datele nderptate, ncazul lucrului n reea; Viewdefinete trsturile barei de stare i posibilitatea de a folosi proiectele

    recent folosite; Field Maping permite definirea n cazul folosirii proiectantului de

    formulare (Form Designer), care obiect clas de baz este asociat cu unanumit tip de dat;

    IDEpermite definirea caracteristicilor de sintaxprecum i a ferestrelor saumeniurilor;

    Debug definete caracteristicile depanatorului de programe din mediulVFP.

    n continuare vom prezenta cteva dintre cele mai uzuale paginifolosite la configurarea mediului.

    Fi 1.3 Fereastra "O tions" a meniului Tools

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    10/163

    10 Capitolul 1

    Pagina Dataa ferestrei Optionsdin meniul Toolseste prezentatn figura 1.4.Ea permite stabilirea unor caracteristici cu caracter global referitoare la dateleexistente n entitile de memorare VFP.

    Butonul: Open exclusivepermite stabilirea modului de deschidere a unui fiier ntr-

    un mediu partajat. n mod exclusiv controlul este cedat n totalitateutilizatorului care a deschis fiierul;

    Ignore deleted records permite ignorarea nregistrrilor marcate pentru

    tergere n toate comenzile Visual Fox care fac referire la ele; Rushmore optimisation permite folosirea tehnicii de cutare rapideRushmore. Uneori se poate renuna la aceasttehnic. n general comenzileVFP care o folosesc au i opiuni separate de dezactivare;

    SET NEAR stabilete ce face VFP atunci cnd o cutare eueaz. Dacopiunea nu este selectatpointerul de nregistrri este poziionat pe sfritde fiier. Dac opiunea este selectat atunci pointerul de nregistrri se

    poziioneaz pe urmtoarea nregistrare n ordine alfabetic de la poziiaunde ar fi trebuit sexiste valoarea cutat;

    SET EXACT se referla modul n care sunt evaluate criteriile de cutare.Dacaceastopiune este setatcutarea se realizeazcaracter cu caracterpe toat lungimea irului de caractere. Dac opunea nu este selectatevaluarea se face caracter cu caracter pe lungimea termenului din parteadreapta expresiei de cutare;

    SET ANSI definete modul n care se realizeazn SQL comparaiile ntreiruri. Cnd opiunea este selectat, se complecteaz irul mai scurt cu

    blancuri pentru a egaliza cele douiruri. Apoi se comparcele douiruricaracter cu caracter pentru a vedea dacele coincid. Dacopiunea nu este

    selectat comparaia se face caracter cu caracter, pe lungimea irului maiscurt;

    Fig 1.4 Pagina Data a ferestrei Options

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    11/163

    11 Introducere n Visual FoxPro

    Grupul de comenziLocking and buffering are ca scop lucrul cu buferelentr-un mediu partajat, adic gospodrirea datelor ntr-un mediumultiutilizator.

    Pagina File Locations (fig 1.5), permite localizarea unor anumite grupe defiiere:

    Default Directorypermite definirea folderului de lucru curent; Din aceast fereastrpot fi definite locaiile pentru alte categorii de fiiere

    ca de exemplu: fiierul Help, fiierul de resurse, care pstreaz informaiidespre modul n care lucrai, generatorul HTML, corectorul ortografic etc

    1.1.3 Fereastra de comand

    n figura 1.1 se pune n eviden un element al mediului Visual FoxProdenumit fereastra de comenzi (Command). Aceasta interacioneaz direct cusistemul, n ea se poate scrie orice fel de comand specific produsului VisualFoxPro. O instuciune introdus n fereastra Command rmne acolo pn la

    prsirea mediului, astfel nct fereastra funcioneaz i ca un istoric al comenzilorintroduse. Prin deplasarea cu ajutorul tastelor direcionale se poate alege comandaanterioartastat. Cu ajutorul opiunilor din meniul Edit:

    copy;

    cut; paste;se pot copia, sau muta blocuri de informaii, n diverse ferestre Fox active.

    Fig 1.5 Pagina File Locations

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    12/163

    12 Capitolul 1

    1.2 Editorul de texte din Visual FoxPro

    Programele scrise de un programator sunt denumite fiiere program, ele suntfiiere text care conin instruciuni ale limbajului Visual FoxPro. Aceste fiiere au

    extensia PRG i deseori sunt denumite fiiere PRG sau fiiere surs. n mediul VisualFoxPro exist dou tipuri de fiiere program generate de sistem. Acestea suntprezentate n tabelul 1.2.

    Tabelul 1.2Generat de Extensia

    Constructorul de meniuri .MPRInterogri relaionale (RQBE) .QPR

    Fiierele program, precum i fiierele text generate de sistem, pot fi scrise imodificate cu ajutorul editorului propriu al mediului Visual FoxPro.

    Editorul mediului Visual FoxPro se poate porni n mai multe moduri. Dinsubmeniul File, opiunea Newsau Open, apoi se specificProgram (pentru a editaun fiier program) sau File (pentru editarea unui fiier text obinuit). Visual FoxProva solicita numele fiierului.

    Dacse pornete editorul Visual FoxPro dintr-un program sau din fereastra decomenzi, atunci se vor folosi instruciunile:

    MODIFY FILE pentru editarea oricrui tip de fiiertext;

    MODIFY COMMAND pentru editarea unui fiierprogram.

    Instruciunea (comanda) MODIFY COMMAND se deosebete deinstruciunea MODIFY FILE sub douaspecte. n primul rnd dacnu se specificoanumit extensie, comanda MODIFY COMMAND creaz implicit pentru fiierul

    program extensia PRG, pe cnd MODIFY FILE creazimplicit un fiier cu extensiaTXT. n al doilea rnd, Visual FoxPro ine evidena modificrilor fcute cuMODIFY COMMAND,executnd ntodeauna versiunea cea mai nou, modificat.

    Dac se tasteaz MODIFY COMMAND se va deschidefereastra editorului de texte. Textul se introduce caracter cu caracter de la tastatur, lasfritul fiecrei linii se tasteazEnter. Pentru a muta cursorul n cadrul ferestrei sefolosesc tastele sau combinaiile de taste conform tabelului 1.1.

    Tabelul 1.3Combinaie Taste MutCursorul

    Sgeatdreaptar Un caracter la dreaptaSgeatstngal Un caracter la stnga

    Sgeatsust O linie n susSgeatjosb O linie n josPage Upu O fereastr(pagin) de text n sus

    Page Downd O fereastr(pagin) de text n jos

    Homeh La nceputul liniei curenteEnde La sfritul liniei curenteC+r Un cuvnt la dreapta

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    13/163

    13 Introducere n Visual FoxPro

    C+l Un cuvnt la stngaC+h La nceputul textuluiC+e La sfritul textului

    O facilitate importanta editorului Visual FoxPro este posibilitatea de a selectaun numr variabil de caractere. Dac se ine tastaS apsat i se deplaseaz

    cursorul n cadrul textului cu ajutorul tastelor sau combinaiilor de taste (tabelul 1.3)se selecteaznumrul de caractere dorit. Acelai efect se obine dac se ine apsat

    butonul stng al mouse-ului i se deplaseazcursorul acestuia peste caracterele carese doresc a fi selectate. Dac se dorete selectarea unei linii de text, atunci se

    poziioneazcursorul la nceputul rndului, se apastastaS i una dintre tastelet sau b. Acelai efect se poate obine cu ajutorul mouse-ului. Se poziioneazcursorul acestuia la nceputul unei linii sau pe un caracter al unei linii care se doretea fi selectate i se face clic de trei ori.

    tergerea unui caracter sau a unei poriuni de text selectat selectat se face cu

    ajutorul tastelorDsauB: Delete terge caracterul pe care este poziionat cursorul; Backspace terge caracterul aflat imediat n stnga cursorului.Dacexistun text selectat la apsarea uneia dintre aceste taste textul se terge.

    CombinaiaC+Bterge cuvntul deasupra cruia se aflcursorul.Textul selectat poate fi mutat sau copiat n diferite locuri ale fiierului cu

    ajutorul opiunilor meniului Edit: Cut ncarc textul selectat n clipboard(zon de memorie folosit la

    transferurile de date), eliminndu-l din textul surs; Copy ncarc textul selectat n clipboard fr a-l elimina din textul

    surs; Paste Introduce textul ncrcat anterior n clipboard, n textul surs, la

    poziia cursorului.Selectarea caracteristicilor editorului de texte se face prin opiunea Properties

    a meniului Edit (fig 1.6).

    Opiunile acestei ferestre sunt prezentate n tabelul 1.4

    Fig 1.6 Opiunile ferestrei Edit Properties

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    14/163

    14 Capitolul 1

    Tabelul 1.4Opiune Explicaii

    Drag and drop editing Editare drag and dropWord wrap Determin saltul automat la linie nou cnd se ntlnete marginea

    dreapta ferestrei de editare.

    Automatic ident Saltul la linia urmtoare se face sub primul caracter al liniei precedente.Make backup copy Pstrezo copie a versiunii anterioare a fiierului de editat, actualizarea

    acesteia fcndu-se la fiecare salvare a fiierului.Save with line feeds Fiierul este salvat folosind carriage return (ntoarcere la nceputul

    liniei) i line feed (salt la linie nou) la sfritul fiecrei linii.Show line/column

    position

    Permite vizualizarea numrului de coloansau rnd n cadrul editorului

    Save with and of file

    marker

    Adaug caracterul Ctrl+Z la sfritul fiierului indicnd terminarealogica acestuia.

    Alignment Specificmodul de aliniere al textului n fereastr: la stnga, la dreapta,

    n centrul ferestrei.Tab size Indicmarimea pe ecran a caracterului Tab. Valoarea impliciteste 4, el

    putnd lua valori ntre 0-50.Indent size Mrimea spaiului de identare

    Compile befor saving La salvarea ferestrei de editare se face i compilare automatUse these preferences

    as default for .PRG

    files

    Setrile efectuate se folosesc implicit pentru fiierele program

    Font Alegerea fontului doritSyntax coloring Folosete diverse culori pentru textul care nsoete editarea

    Save preference Salveazsetrile stabiliteDisplay white space Vizualizarea spaiului care nu conine caractereApplay to .PRG files Se aplicfisierelor text cu extensia .PRG

    Ok Butonul de validare al ferestrei PreferenceCancel Butonul de invalidare a setrilor efectuate n fereastra PreferenceHelp Apelarea programului de ajutoe n explicarea opiunilor ferestrei

    Celelalte opiuni ale meniului Edit (fig 1.7) sunt prezentate n tabelul 1.5.Aceste opiuni sunt folosite pentru a aciona asupra textului tastat ntr-o fereastrde

    Fig 1.7 Meniul Edit

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    15/163

    15 Introducere n Visual FoxPro

    editare.Tabelul 1.5

    Opiune ExplicaiiUndo Anuleaz ultima aciune asupra unui text dintr-o fereastr de editare, care

    pot fi tergerile cu tastele sau , nlocuiri de blocuri prin

    selectare.Redo Aceast opiune este opus lui Undo i ea poate fi aleas repetat pentru

    anularea unor comenzi Undorepetate.Clear Determintergerea textului selectat, frncrcarea sa n clipboard.

    Select All Selecteaztot textul existent n fereastra de editare.Go to Line Are ca efect activarea ferestrei din figura 1.8, prin care se poziioneaz

    cursorul pe linia dorit.Find Se utilizeazpentru cutarea unui ir de caractere n fereastra de editare i

    eventual nlocuirea acestuia cu un alt ir de caractere. Are ca efect apariiaferestrei din figura 1.9.

    Cut, Copy, Paste Comenzille clasice Windows de copiere i mutare folosind Clipboard.Paste Special Se folosete pentru inserarea obiectelor OLEdin alte aplicaii ntr-un cmp

    de tip "General".Replace nlocuiete irul gsit cu irul specificat prin opiunea Find, dupcare caut

    o nouapariie a irului cutat. Se folosete frecvent pentru nlocuirea unuiir cu altul, cele dou iruri fiind definite anterior n fereastra de dialog aopiunii Find

    Quick Info Informaii despre diverse entiti folosite n programBookmarks Jaloane care pot fi puse n diverse faze ale editrii unui fiier text

    Insert Object Opiunea este asemntoare cu Paste Special, doar c nu se face

    presupunerea cobiectul existdeja i este memorat n Clipboard. Opiuneapermite nglobarea obiectelor ntr-un cmp de tip "General". Aceasta este ometodde a introduce obiecte multimedia ntr-un fiier de date

    Object Pemite editarea unui obieect OLEselectat.Links Permite editarea tuturor obiectelor legate.

    List Members Afieazcomponentele obiectului selectat.Properties Activeazfereasta cu acelai nume a meniului care a fost prezentatn

    tabelul 1.4

    Fig 1.8 Fereastra Go To Line

    Fig 1.9 Fereastra de cutare Find

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    16/163

    16 Capitolul 1

    Opiunile ferestrei de dialog Find sunt prezentate n tabelul 1.6.Tabelul 1.6

    Opiune ExplicaiiLook For Cmp de editare text n care se introduce irul de caractere cutat.Replace Buton care activeazcmpul de editare, folosit pentru a specifica irul de

    caractere cu care va fi nlocuit irul de caractere cutat.Search backward Buton radio care determindirecia de cutare a irului de caractere dorit,

    de la cursor spre nceputul fiierului.Find Next Buton care determincutarea nainte a irului de caractere dorit

    Math wholee word Comutator care dac este activ, consider cuvntul (irul de caractere)gsit numai atunci cnd acesta este de sine stttor i dac este inactivatunci cuvntul (irul de caractere) cutat poate sfacparte dintr-un altcuvnt.

    Match case Cutarea irului de caractere se face indiferent de formatul caracterelor(mici sau mari)

    Use wildcards Buton radio care permite folosirea caracterelor wildcard adic acaracterelor care permit definirea unor anumite actiuni, de exemplu:"

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    17/163

    17 Introducere n Visual FoxPro

    acestuia permit lucrul rapid, att n activitatea de programare, ct i n cea dentreinere de date.

    Configurarea mediului Visual Fox, este o activitate important, care poate fiefectuat aa cum s-a artat din meniul Tools subopiunea Options. Aceasta este

    prima activitate care se desfoaratunci cnd se ncepe lucrul cu oricare mediu deprogramare.

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    18/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    19/163

    19 Memorarea datelor n Visual FoxPro

    date definim CMPURILE care compun structura iTIPUL fiecrui cmp. Toatearticoleledintr-un fiier, care se mai numesc inregistrri au aceeai structur.

    Dacfacem analogie cu o relaie definitde Codd, atunci fiecare fiier de dateeste o relaie, fiecarenregistraresau articoleste o tupl, iar fiecare relaieare unul

    sau mai multe atribute, deci unul sau mai multe cmpuri care alctuiesc structurafiierului.Baza de date este o entitate care se creazcu comanda:

    CREATE DATABASE Baza de date se poate crea din menoul File, opiunea New(fig 2.1)Baza de date poate fi creat automat ntr-un mod predefinit propriu VFP

    (Wizard) sau prin aciunea manual a utilizatorului (New File). n aceast vomprezenta realizarea interactiv, manual a entitilor, modul Wizard fiind prezentatnumai n cazurile n care autorul consideracest lucru util.

    n fereastra proprie bazei de date, pot fi realizate mai multe aciuni: crearetabel, adugare de tabel, creare vedere la distan sau local, etc.. Acestea se potactiva din meniul contextual care apare, acionnd asupra butonului drept al mouse-

    ului (fig 2.2).Asupra tabelelor create n baza de date se pot ntreprinde o serie de aciuni, activnd

    opiunea Table a meniului principal (fig. 2.3).

    Fig. 2 2 Meniul contextual al ferestrei Database Designer

    Fig. 2 3 Meniul Table prin care pot fi ntreprinse diverse aciuni asupra tabelelor din baza de date

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    20/163

    20 Capitolul 2

    Opiunile meniului Table au denumiri identice cu comenzi Visual Fox, deaciune asupra nregistrrilor dintr-o tabel, care vor fi explicate n acest capitol.

    Aa cum s-a menionat anterior, o tabelpoate exista n mediul VFP n doumoduri:

    Independent, frsaparinunei baze de date; Aparine unei baze de date;

    Indiferent de modul de creare a unei tabel, tipurile de date care pot exista nnregistrrile tabelei sunt aceleai (fig 2.4).

    2.1.2 Tipuri de date ale cmpurilor FoxPro

    Fiecare cmp (atribut) dintr-un fiier de date este destinat memorrii unuielement individual de date. Tipurile de cmpuri acceptate de Visual FoxPro sunt:

    caracter (character); uniti monetare (currency); datcalendaristic(Date, Date Time); numeric (Numeric, Float, Double, Integer); logic (Logical); memo; general ; character (binary); memo (binary).

    Cmpurile character sunt cele mai flexibile i cele mai utilizate. Ele conincaractere de tip ASCII, limita de lungime impuspentru acest tip de cmp este 254caractere.

    Fig. 2 4 Tipuri de date n tabele Visual Fox

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    21/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    22/163

    22 Capitolul 2

    De exemplu considerm numrul 0.345000000E+05, n care 0.345000000reprezint mantisa, iar 05 reprezint exponentul. Valoarea acestui numr seinterpreteaz0.345*105.

    Tipul

    cmpului

    Descriere Mrime Rang

    DoublePrecizie dubln virgulmobil

    8 bytes+/-2.94065645841247E-324 la +/-8.9884656743115E307

    Float

    La fel ca i cmpulnumeric numai creprezentarea este nvirgulmobil

    8 bytes nmemorie;

    - .9999999999E+19 la.9999999999E+20

    Integer Valoare ntreag 4 bytes -2147483647 la 2147483647

    Cmpul de tiplogic are ntodeauna lungimea de un caracter, el putnd memora

    doar douvalori adevrat sau fals. Litera T mare n cmp reprezintvaloarea logicadevrat, iar litera F mare este interpretatca valoarea fals.Cmpurile memo sunt cmpurile din Visual FoxPro n care se pot memora

    informaii de diverse tipuri: text, informaii binare cum ar fi fiiere executabile DOS,imagini, bii de sunet sau orice altceva care nu se potrivete cu un alt tip de cmp.Aceste cmpuri sunt practic nelimitate, singura limitare referindu-se la spaiuldisponibil pe memoria auxiliar. Infomaiile dintr-un cmp memo nu sunt memoraten fiierul de date DBF. Ele sunt memorate ntr-un fiier separat, fiier care areextensia FPT i acelai nume cu al fiierului DBF. Cmpurile memo sunt cele mai

    vulnerabile cmpuri ale sistemului FoxPro. Un cmp memo se poate distruge prinsimpla ntrerupere de curent i face imposibil folosirea fiierului cu extensie FPT.De aceea n practic, dacse lucreazcu astfel de cmpuri se impune lucrul cu maimulte copii de siguran.

    Cmpurile de tip General sunt folosite pentru a introduce obiecte de tipulOLE. Acestea pot fi cmpuri multimedia sau entiti Windows ca de exemplu foaie decalcul Excel sau document Word.

    Cmpurile Character (Binary) i Memo(Binary) sunt folosite n cazul n care selucreazn reea.

    Tipul cmpului Descriere Mrime Rang

    Character (Binary)

    La fel cu tipul Character, dar valorile nusunt translatate atunci cnd se schimbcodul de pagin, de exemplu parolele unorutilizatori stocate ntr-o tabeli folosite ndiverse ri

    1 la 254caractere

    Orice caracter

    Memo (Binary)

    La fel cu tipul Memo, dar valorile nu sunttranslatate atunci cnd se schimbcodul de

    pagin, de exemplu scriptul de logare alunui utilizator (n diverse ri)

    Tipul de datVariant, nu apare la crearea fiierelor de date, dar ele exist nmediul VFP.

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    23/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    24/163

    24 Capitolul 2

    tastarea numelui fiierului, se va aciona butonul Savepentru crearea fiierului.Se poate folosi n acelai scop sistemul de meniuri, selectnd meniul File,

    subopiuneaNew. Pe ecran va apare fereastra de dialog pentru selectarea tipului defiier (figura 2.6).

    Se va alege butonul Table din lista entitlor afiate.Oricare din cele doumetode va deschide fereastra de dialog din figura 2.7.

    Aceasta este o fereastrde naturmodal, adicpentru a selecta o altoperaieaceast fereastr trebuie nchis, prin butonul OK de terminare a operaiei de crearetabelsau prin butonulCancelde anulare a operaiei. n pagina Fieldssunt definitecmpurile fiierului de date.

    Modul de lucru este simplu. Se introduce numele cmpului (atributului) dorit,

    maxim 10 caractere, n caseta Name, se alege tipul cmpului i mrimea acestuia.Tipurile cmpurilor sunt cele enunate anterior.

    Fig. 2. 6 Ferastra NEW

    Fig. 2. 7 Fereastra Table Designer pentru definirea structurii unui fiier de date

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    25/163

    25 Memorarea datelor n Visual FoxPro

    Prin fereastra de dialog se poate naviga folosind tastatura sau mouse-ul. Dacse folosete tastatura atunci cu ajutorul tastei TAB se poate selecta obiectul dorit ntr-un sens sau combinaia Shift+Tabpentru selectarea obiectului cu deplasare n sensinvers. Dac se folosete mouse-ul, se face clic pe obiectul care se dorete a fi

    selectat.Dup definirea tuturor cmpurilor, am definit structura fiierului DBF.Structura unui fiier de date poate fi oricnd modificat. tergerea unui cmp dinstructur are ca efect pierderea irecuperabil a datelor din acel cmp. Dac semodificlungimea unui cmp atunci datele sale vor fi modificate astfel:

    dac lungimea cmpului se mrete atunci informaiile memorate suntcompletate la dreapta cu spaii;

    dac lungimea cmpului este micorat, atunci se va face o trunchiere adatelor originale i se vor elimina caracterele cele mai din dreapta.

    n pagina Indexes sun definii indecii ataai fiierului (fig 2.8). n acest cazpot fi definii doar indexi de tip Regulari Candidate.Asupra noiuni "index" se vareveni pe parcursul acestui capitol.

    Pagina Tableafieazn cazul fiierelor de date independente date referitoarela fiierul creat (fig. 2.9).

    Fig. 2. 8 Crearea indexilor in fiierele de date independente

    Fig. 2. 9 Pagina Table

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    26/163

    26 Capitolul 2

    2.2.2 Crearea fiierelor de date din program sursPRG

    Crearea unor fiiere de date din program sursVisual FoxPro se realizeazcu

    comanda:CREATE TABLE| DBF < nume > [FREE](/[[] ),[... ][NULL |NOT NULL] [CHECK lExpresie1 [ERROR TextEroare1]] [DEFAULTeExpresie1] [PRIMARY KEY | UNIQUE] [REFERENCES NumeTabel2 [TAG

    NumeEticheta1]] [NOCPTRANS] [, NumeCmp2 ...] [, PRIMARY KEY eExpresie2TAG NumeEticheta2 |, UNIQUE eExpresie3 TAG NumeEticheta3] [, FOREIGNKEY eExpresie4 TAG NumeEticheta4 [NODUP] REFERENCES NumeTabela3[TAG NumeEticheta5]] [, CHECK lExpresie2 [ERROR TextEroare2]])| FROM

    ARRAY NumeMatriceAceasta este de fapt o comanda limbajului SQL implementat n mediul VFP.Semnificaia parametrilor comenzii este prezentatn tabelul 2.1.

    Tabelul 2.1Parametru Comand Semnificaie

    Table sau DBF Parametrii sinonimi ai comenziiNume Numele fiierului de date care se creaz.

    Nume lung Numele lung al fiierului poate conine 128 de caractere ipoate fi specificat doar n cazul n care fiierul de dateaparine unei baze de date

    FREE Specific faptul c tabela este independent n cazul ncare o bazde date este activ. n cazul n care nici o bazde date nu este deschisacest parametru poate lipsi, dacse dorete crearea unei tabele indepandente.

    Nume cimp1 Numele primului cmp din structura fiierului.Tip Tipul primului cmp definit.

    Lungime Lungimea cmpului definit.Zecimale Numrul de zecimale al cmpului, n cazul n care acesta

    este cmp numericNume cimp2 Numele celorlalte cmpuri care se introduc

    NULL Permite introducerea valorii null n cmp. Dacunul dintrecmpuri conine valoarea null atunci numrul de cmpuricare poate fi creat ntr-un fiier de date se reduce de la 255la 252.

    NOT NULL Nu permite existena valorilor null n cadrul cmpului.Aceasta este valoarea implicitla crearea fiierului de date

    CHECK Permite specificarea unor reguli de validare pentru cmpERROR Afieaz un mesaj de eroare n cazul n care regula de

    validare pentru cmp nu este ndeplinitDEFAULT Specificvaloarea iniala cmpului

    PRIMARY KEY Creazun index primar pentru cmpul specificatUNIQUE Creazun index candidat pentru cmpREFERENCES Stabilete numele tabelei printe cu care se realizeaz o

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    27/163

    27 Memorarea datelor n Visual FoxPro

    legturpersisentNOCPTRANS Previne translatarea cmpurilor memo i caracter cu cod de

    pagindiferitFOREIGN KEY Crearea unui index extern

    NODUP Crearea unui index candidat extern

    FROM ARRAY Reprezint numele unei matrici existente care coninenumele, tipul, lungimea i numrul de zecimale pentrufiecare cmp .

    Aceastcomandeste deosebit de utilpentru a crea ntr-o aplicaie fiiere dedate temporare adic acele fiiere care dup o anumit faz a aplicaiei sau dupterminarea execuiei aplicaei pot sfie terse.n cazul acestei comenzi tipurile cmpului sunt date de ctre urmtoarele litere:

    C ir de caractere de o anumitlungime;

    N numeric, de o anumit lungime i cu un anumit numr dezecimale; F virgul mobil de o anumit lungime i cu un anumit numr de

    zecimale; I integer; B double; Y currency L logic; M memo;

    D datcalendaristic; T date time; G general

    Exemplul 2.1Sse creeze fiierul de date SALARIAT.dbf cu urmtoarea structur:

    Matr N(6) numrul matricol al salariatului; Nume C(12) numele salariatului; Prenume C(20) prenumele salariatului; Data_nast D data naterii salariatului; Sex L dac salariatul este de sex masculin valoarea

    cmpului este T (true); Stare _civil L dacsalariatul este cstorit valoarea cmpului

    este T (true); vrsta N(3) vrsta salariatului.Se deschide fereastra de editare n care se va scrie urmtoarea comand:CREATE TABLE salariat(nume C(12), prenume C(20), data_nast D, sex

    L, stare_civilL, vrsta N(3))

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    28/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    29/163

    29 Memorarea datelor n Visual FoxPro

    ^ Vizualzeazdatele numerice folosind notaia tiinific.A Permite folosirea doar a caracterelor alfabetice.D Folosete setarea curentpentru SET DATE.E Editeazdata calendaristicn formatul British.

    Pentru masca de intrare principalele caractere folosite sunt prezentate n tabelul2.3

    Tabelul 2.3Caracterfolosit

    Descriere

    ! Convertete literele mici n litere mari.# Permite folosirea caracterelor numerice a spaiului i a semnului.$ Permite folosirea simbolului monetar ntr-o pozie fix.

    $$Permite folosirea simbolului monetar ntr-o pozie aleatoare dupvaloareanumeric.

    9 Permite folosirea valorilor numerice i a semnului "-".A Permite folosirea numai a caracterelor alfabetice.L Permite folosirea numai a valorilor logice .t. (true), .f. (False).N Permite folosirea numai a caracterelor alfanumerice.X Permite folosirea oricrui caracter.Y Permite folosirea caracterelor Y, y, N i n pentru valorile logice true respectiv false

    n caseta Captionpot fi introduse caractere care vor nlocui denumireacmpului ntr-o comandVFP.

    Se considerbaza de date Facultate (fig 2.11) n care se creaztabela Student

    a) Cmpul "np" apare n comenzile VFP cu denumirea Nume si Prenume(caseta Caption);

    b) n caseta Format s-a folosit caracterul "!" pentru ca informaia din cmp sfie scriscu litere mari indiferent de caracterul introdus n cmp.

    n zona Field Validation, pot fi introduse restricii asupra cmpului. Acestease introduc sub forma unor expresii, n caseta Rule, unde se apeleaz ExpressionBuilder (fig. 2.12)

    Fig. 2 11 Baza de date "Facultate" i tabela "Student"

    Exem lul 2.2

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    30/163

    30 Capitolul 2

    Expression Builder este apelat de la butonul "" situat n dreapta caseteiRule. El are rolul de a forma o expresie. O expresie, este o entitate care con ineoperanzi i operatori. Asupra acestui aspect, se va reveni n aceastcarte cnd vomdiscuta despre limbajul de programare VFP. Expression Builder permiteintroducerea ntr-o expresie a cmpurilor existente n tabel, a unei funcii predefiniteVFP sau a unei variabile de memorie VFP. Din figur, se observca fost introdusrestricia: valoarea cmpului anuls sfie mai mare dect 0 i mai micsau egalcu 5.n cazul n care regula de validare impusasupra cmpului, nu este ndeplinit, apareun mesaj predefinit sau un mesaj scris de ctre utilizator, n caseta Message. Valoareainial a cmpului poate fi definit n caseta Default Value. Pentru exemplul

    prezentat valoarea inialeste 1.Un comentariu de cmp este o not care clarific semnificaia sau scopul

    cmpului. VFP stocheazacest element ca un cmp Memo, de aceea poate fi orict delung. Toate acestea pot fi introduse n caseta Field comment.

    Zona Map field to classespermite alegerea unei clase sau a unei biblioteci declase pentru un cmp n cazul n care acesta este introdus ntr-un formular.

    n caseta Table (fig 2.13), este permis introducerea unor restricii la nivel de

    Fig. 2 12 Introducerea restriciilor n caseta Rule i Expression Builder

    Fi . 2 13 Pa ina Table entru fi ierul de date Student

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    31/163

    31 Memorarea datelor n Visual FoxPro

    nregistrare ntr-un fiier de date.

    Validarea la nivel de nregistrare, nseamn, modificarea unor valori dincmpurile nregistrrii i mutarea ntr-o nounregistrare. Codul de validare nu poatemodifica un cmp din nregistrarea curent, nu poate modifica contorul de nregistrrisau pointerul de nregistrare dar poate compara valoarea unui cmp cu a altuia sau

    poate executa o validare prin cutare ntr-un alt fiier. Orice expresie de validaretrebuie s returneze un rezultat de tip logic. Pentru aceasta se folosete o funcieutilizator scrisn caseta Rule, din zona Record validation. Caseta Messageconneun mesaj care nsoete validarea. Pentru a realiza o funcie de validare se folosetefuncia VFP, GETFLDSTATE, care stabilete dac un cmp dintr-un tabel s-aschimbat n timpul comenzii curente sau dac starea de tergere s-a modificat, prinvalorile pe care le poate returna (tabelul 2.3).

    Tabelul 2.3Valoare

    returnatDescriere

    1 Cmpul i indicatorul de tergere nu i-au modificat valoarea2 S-a modificat valoarea cmpului i a indicatorului de tergere3 Cmpul i indicatorul de tergere nu i-au modificat valoarea ntr-o

    operaie de adugare4 S-a modificat valoarea cmpului i a indicatorului de tergere ntr-o

    operaie de adugare

    Zona Triggersdefinete declanatorii (trigerii) care se executatunci cnd seadaug (Insert Trigger), se modific (Update Trigger) sau se terge (DeleteTrigger) o nregistrare din tabel. Ca i n cazul validrii la nivel de cmp i la nivelde nregistrare, codul surs al triggeru-lui se stocheaz n baza de date. ntodeaunacnd se execut o operaie de adugare, modificare sau tergere ntr-o tabel, VFPverificdacexistun declanator aferent tabelei i n cazul n care acesta existesteapelat codul program surs, al respectivului trigger.

    2.2.3 Legturi ntre tabelele bazei de date

    Tabelele existente nr-o baz de date pot fi legate ntre ele prin diversecmpuri. Un index primar a unui cmp sau o cheie primardintr-o tabel, are o cheiede cutare sau o cheie extern, care poate fi un index regular al unui cmp, ntr-o alttabel. Pentru exemplul prezentat n figura 2.3 legtura dintre tabela Studenti tabelaNote se realizeaz ntre cheia primar Nrl care este un undex primar n tabela

    Fig. 2 14 Legtura ntre tabele (Relationship)

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    32/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    33/163

    33 Memorarea datelor n Visual FoxPro

    3. Sunt modificate automat toate nregistrrile din tabela copil care au avutaceeai valoare a cheii printe vechi cu noua valoare a cheii. De exemplu unstudent i modific numrul de legitimaie, atunci n tabela copil Note,cmpul nr_legse modificautomat cu noua valoare (Cascade).

    n cazul n care se dorete tergerea unei nregisrri n tabela printe(Student)

    legatla tabela copil(Note), apar trei cazuri:1. Permite tergerea n nregistrarea din tabela printe indiferent dacn tabela

    copil exist sau nu nregistrri legate cu nregistrarea din tabela printe(Ignore);

    2. Apare un mesaj de eroare atunci cnd tergerea se face pe o nregistrare ntabela printe pentru care exist nregistrri corespunztoare n tabela copil(Restrict);

    3. Se terg automat, toate nregistrrile din tabela copil, legate de nregistrareadin tabela printe tears(Cascade).

    n VFP, integritatea referenial poate fi definit automat folosindConstructorul de integritate referenial (Referential Integrity Builder). Acesta

    poate fi apelat fie de la butonul Referenial Integrity, din fereastra de editare alegturii sau din meniul Database al ferestrei Database Designer. Fereastra careapare permite definirea restriciilor definite anterior (fig 2.15).

    2.3 Activarea fiierelor de date

    Fig. 2 15 Constructorul de integritate referenal

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    34/163

    34 Capitolul 2

    2.3.1 Deschiderea / nchiderea unui fiier de date VisualFoxPro ntr-o zonde lucru

    Deschiderea fiierului de date presupune rezervarea n memoriea intern a

    calculatorului a unei zone n care Visual FoxPro va memora toate informaiilenecesare utilizrii acestui fiier. Aceste zone se numesc zone de lucru ele fiindnumerotate de la 1-32767 n versiunea Visual FoxPro 7.0 standard. Numrul de zonede lucru care pot fi deschise n acelai timp, diferfuncie de versiunea VFP cu carese lucreaz. Primele 10 zone de lucru pot fi marcate cu literele de la A-J.

    Manipularea fiierelor de date este la ndemna programatorului pe bazacomenzilor specializate n acest scop.n aceastcarte se prezintmodul de lucru peun calculator nelegat n reea, de aceea o serie de parametrii ai comenzilor,care serefer la modul de lucru n reea sunt omii.Dupdeschiderea fiierului de date se

    trece la lucrul efectiv cu aceasta, adic: prelucrarea datelor din fiierul de date (citire); modificarea datelor (scriere de date noi peste cele existente); adugarea datelor noi la cele existente (scriere de date noi); tergerea informaiilor existente n fiierul de date.

    Dupterminarea lucrului cu fiierul de date urmeaznchidereaacestuia, operaie ceconstn :

    desfacerea legturii dintre zona de lucru i fiierul de date ; eliberarea memoriei alocate la deschidere (eliberarea zonei de lucru); nchiderea fiierului de date memornd modificrile efectuate de la deschidere,

    pnn acest moment.Pentru a deschide un fiier de date a crui structura fost creati n care au

    fost sau nu introduse date se folosete comandaUSEcu sintaxa:USE[ | ?]

    [IN][AGAIN][INDEX | ?

    [ORDER[

    | | [TAG] [OF][ASCENDING | DESCENDING]]]]

    [ALIAS ][EXCLUSIVE][SHARED][NOUPDATE]

    USEnume _fis

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    35/163

    35 Memorarea datelor n Visual FoxPro

    este cea mai uzualforma comenzii pentru deschiderea fiierului de date n zona delucru activsau curent. Implicit aceastzoneste zona 1.

    Opiunea IN definete zona de lucru n care fiierul de date estedeschis. , este o expresie numericavnd valoarea cuprins ntre 1-225. ncazul n care n zona de lucru existun fiier deja activ acesta este nchis i devineactiv fiierul deschis ultima dat.

    Opiunea AGAIN se folosete pentru a deschide acelai fiier de date n maimulte zone de lucru.

    Exemplul 2.3USE salariat

    USE salariat IN 2 AGAINse deschide fiierul de date Salariat n zona 1 i n zona 2 de lucru

    Opiunea[INDEX | ?[ORDER [| | [TAG] [OF ][ASCENDING | DESCENDING]]]] se folosete pentru a

    deschide fiierele indexate. Se va explica opiunea n subcapitolul referitor laindexarea fiierelor de date.

    Opiunea ALIAS se refer la aliasul atribuit de utilizator unui fiier de date.Aliasul este un nume oarecare atribuit la deschiderea fiierului. n unele cazuri aliasul

    poate fi definit de ctre mediul FoxPro.

    Exemplul 2.4USE salariat IN 3 ALIAS s n zona de lucru 3 fiierul salariat are aliasul s.Opiunile EXCLUSIVE iSHAREDsunt specifice modului de lucru n reea,

    caz n care mai muli utilizatori au acces la acelai fiier n acelai timp. n cazullucrului n reea dacla un fiier de date au acces mai muli utilizatori acesta trebuiedechis NOEXCLUSIVE n caz contrar un singur utilizator avnd acces la fiierul dedate.

    Opiunea NOUPDATE se refer la faptul c fiierul este deschis numai ncitire, deci datele din fiier nu pot fi modificate.

    Exemplul 2.5USEpers NOUPDATEnchiderea unui fiier activ ntr-o zonde lucru se poate face folosind comanda

    USE frnici o opiune sau folosind alte comenzi specifice ca de exemplu CLOSEALL. Spre deosebire de comanda USE care nchide doar fiierul din zona de lucruactivcomanda CLOSE ALL nchide toate fiierele active la un moment dat n maimulte zone de lucru.

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    36/163

    36 Capitolul 2

    2.3.2 Selectarea unei zone de lucru n FoxPro

    La pornirea Visual FoxPro zona de lucru curenteste 1 sau zona A . n cazul n

    care lucrm cu mai multe fiiere de date atunci zona de lucru se poate schimbafolosind instruciunea:SELECT | reprezintnumrul zonei de lucru ce va fi activat; reprezintnumele zonei de lucru care va fi activat, acesta poate

    fi o literA-J sau un alias definit de utilizator.

    Exemlul 2.6Presupunem cdorim s lucrm cu trei fiiere Cu denumirile Fisa, Fisb, Fisc,

    pe care vrem sle deschidem n trei zone de lucru diferite.SELECT1USEFisaSELECT2USEFisbSELECT3USEFisc

    n continuare apelul la unul dintre fiiere se face folosind doar instruciuneaSELECT. Astfel, pentru a lucra cu Fisc este suficient a selecta numai zona de lucru

    3: SELECT 3Implicit aliasul, adic numele asociat fiierului este chiar numele acestuia.Selectarea fiierului Fisc ca fiier de lucru se poate face prin comanda:

    SELECTFisc

    Exemplul 2.7Presupunem c dorim s deschidem fiierul Salariati n zona de lucru 2

    atribuindu-i aliasul salar.USEsalriati INb ALIASsalar

    SELECTsalar se selecteaz zona de lucru 2 prin aliasul salar alfiierului din aceastzonde lucru.n Visual FoxPro pentru majoritatea comenzilor se pot folosi doar primele 4

    caractere din comand.Pentru a obine numrul zonei de lucru curentse folosete funcia:

    SELECT ()Aceasta returneazun numr ce reprezintnumrul zonei de lucru curente sau

    numrul ultimei zone de lucru nefolosite. SELECT() sau SELECT (0) returneaz numrul zonei de lucru

    curente; SELECT(1)returneaznumrul ultimei zone de lucru nefolosite

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    37/163

    37 Memorarea datelor n Visual FoxPro

    2.2. Accesul la fiierele de date

    2.2.1 Accesul la structura unui fiier de date

    Pentru a modifica structura unui fiier de date se folosete comandaMODIFY STRUCTURE

    este numele fiierului cruia i se modific structura. Dacnumele fiierului nu este specificat apare o fereastr de dialog care cere s sespecifice numele fiierului dorit.

    Fereastra de dialog care apare este prezentatn figura 2.7 sau 2.10. n aceastfereastr se pot modifica numele cmpurilor, dimensiunile acestora, se pot adugacmpuri noi sau se pot terge cmpuri existente. tergerea i inserarea de cmpuri se

    realizeaz prin poziionarea cursorului pe indicatorul de nregistrri i acionareatastelor Insert sau Delete.

    Vizualizarea structurii unui fiier de date se realizeazcu comanda:DISPLAY STRUCTURE

    [IN | ][TO PRINTER [PROMPT]| TO FILE][NOCONSOLE]

    specificzona de lucru n care se gsete fiierul, iar specific

    numele fiierului. Implicit afiarea se face pe ecran. Acest lucru poate fi inhibat prinfolosirea opiunii NOCONSOLE. Structura fiierului poate fi copiat ntr-un fiier(opiunea TO FILE) sau la imprimant (opiunea TO PRINTER). OpiuneaPROMPTeste specificmediului Window.

    Comanda LIST STRUCTURE este identiccu precedenta comand, singuradeosebire constnd n faptul c instruciunea DISPLAY STRUCTURE face pauzdupumplerea unui ecran cu informaii.

    Informaia afiatare urmtorul coninut:- pe prima linie se afieazfiierul de date la care se refercomanda;

    pe a doua linie se afieaznumrul de nregistrri din fiierul DBF; pe a treia linie se afieaz data calanderistic cnd s-a scris ultima

    informaie n baza de date; pe urmtoarele linii se afieaz cmpurile ce alctuiesc structura

    fiierului de date cu caracteristicile acestora (nr.cmp, nume, tip,lime).

    Un alt mod de a crea un fiier de date este acela de a copia structura unui fiierexistent n unul nou, care va avea iniial structura identic cu a fiierului surs.Comanda de copiere a structurii este:

    COPY STRUCTURE TO FIELDS

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    38/163

    38 Capitolul 2

    este numele noului fier n care s-a copiat structura. Dac nu se doretecopierea tuturor cmpurilor, atunci cmpurile care se doresc a fi copiate se potspecifica cu opiunea FIELDS.

    Exemplul 2.8Se copiazdin structura fiierului Pers.dbf cmpurile Nume i Prenume n noulfiier Pers_1.dbf.

    USEPERSCOPY STRU TOPERS_1 .DBF;

    FIELDSNUME, PRENUMEUSEPERS_1.DBFLIST STRUCLOSE ALL.

    Se mai poate copia structura unui fiier de date n nregistrrile unui nou fiierde date, folosind comanda:

    COPY TOSTRUCTURE EXTENDEDAceast fiier de date are o structur fix format din 4 cmpuri iar cmpurilefierului de date activ devin nregistrri. Cmpurile fixe au urmtoarea semnificaie:

    Field_name (nume cmp) de tip ir de caractere, n care se depoziteaznumele cmpurilor structurii;

    Field_type (tip cmp) de tip ir de caractere, de lungime 1, n care sedepoziteazun caracter ce corespunde tipului cmpului structurii( C-ir decaractere,N-numeric, D-dat calendaristic, F-virgul mobil, L-logic, M-memo);

    Field_len(lungime cmp), de tip numeric, memoreaz lungimea fiecruicmp al structurii;

    Field_dec (numr de zecimale din cmp), de tip numeric, n care sememoreaznumrul de zecimale pentru un cmp numeric al structurii.

    Exemplul 2.9Se execut comanda COPY STRUCTURE asupra fiierului

    SALARIAT.DBF.USESALARIAT.DBFCOPY STRU EXTENDED TOTEMPFiierul TEMP va avea structura:

    NR FIELD_NAME FIELD_TYPE FIELD_LEN FIELD_DEC1 MATR N 12 ---2 NUME C 12 ---3 PRENUME C 20 ---4 DATA_NAS D

    5 SEX L6 ST_CIVIL L 37 VRSTA N

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    39/163

    39 Memorarea datelor n Visual FoxPro

    Structura fiierului SALARIAT.DBF devine nregistrare pentru TEMP.DBF.Ulterior se poate crea un nou fiier de date folosind nregistrrile fiierului Temp.dbfcu comanda:

    CREATE PERS1 FROM TEMP se creeaz fiierul de date PERS1.DBF cunoua structur.

    2.2.2 Accesul la cmpurile unui fiier de date

    Accesul la cmpurile unui fiier de date este controlat de comanda SETFIELDScu sintaxa

    SET FIELDS TO[][]/ALL

    SET FIELDS ON /OFFDacSET FIELDS este ON atunci FIELDSreprezintlista cmpurilor ce pot

    fi accesate. Accesul la toate cmpurile unui fiier de date se poate face prin comandaSET FIELDSTO ALL

    Numrul cmpurilor dintr-o bazde date este dat de funcia FCOUNT().Exemplul 2.10ExplicaiiA)Se determinnumrul de nregistrri din fiierul specificat;B)Se determinmrimea cmpului Nume din fiierul pers;C)Se determinnumele unui cmp din fiierul de date identificat printr-un numr.

    Semnul ? se folosete pentru listarea pe ecran a rezultatului unei funcii. Se varevenii pe larg n capitolul

    2.2.3 Accesul la nregistrrile unui fiier de date

    Accesul la coninutul unui fiier de date se poate face n doumoduri:1. secvenial cnd pentru obinerea unei informaii se parcurg nregistrrile

    una dupcealaltn ordinea fireasca lor;

    2. directcnd putem stabili unde anume pe suport este nregistrarea vizati outilizm frsne preocupm de nregistrrile anterioare.

    Fiecare nregistrare (articol) din fiier are ataat un numr, care poartdenumirea de indicator de nregistrare. Fiierul cu extensia Dbf are dou caracterespeciale care marcheaz, nceputul i sfritul unui fiier, bof, eof. Corespunztoracestor doucaractere speciale, existfunciile:

    USEPERS?FCOUNT()6?FSIZE('NUME')12?FIELD(1)

    NUME

    A

    B

    C

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    40/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    41/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    42/163

    42 Capitolul 2

    2.2.4 Domeniul nregistrrilor

    n limbajul Visual FoxPro exist comenzi care acioneaz asupra mai multornregistrri dintr-un fiier de date. Alegerea nregistrrilor se face folosind n

    comand condiia de selectare, din mulimea nregistrrilor unui fiier se aleg doaracelea care ndeplinesc condiia de selecie. n Visual FoxPro condiiile de selecie serealizeaz prin cuvintele rezervate FOR i WHILE care sunt clauze a mai multorcomenzi ale limbajului.

    Clauza FOR(" Pentru") se folosete pentru selectarea nregistrrilor n funciede o condiie logic. Se selecteazacele nregistrri pentru care expresia logicesteadevrat.

    Expresia logic este acea expresie care ntoarce un singur rezultat: adevrat(true) sau fals (false).

    Clauza WHILE ("ct timp") realizeaz selecia asemntor cu clauza FOR,aceasta fcndu-se n funcie de valoarea adevrata expresiei logice. Spre deosebirede clauza FOR care dup gsirea unei nregistrri care nu respect condiia logic,continu testarea celorlalte nregistrri, clauza WHILE ntrerupe cutareanregistrrilor cnd o nregistrare nu respectcondiia logic.

    Datorit faptului cviteza de prelucrare este mult mai mare cnd se foloseteclauza FOR este recomandabil s se foloseasc aceast clauz ori de cte ori este

    posibil.Numrul nregistrrilor care se testeaz printr-o condiie de selecie este

    variabil i el constitue domeniul de selecie. Acesta constitue o clauzdistinctpentruo mulime de comenzi FoxPro.Clauza domeniu inclusntr-o astfel de comandva avea urmtoarele forme:

    ALL selecteaztoate nregistrrile din fiierul de date; NEXT se referla urmtoarele nregistrri, ncepnd

    de la nregistrarea curent; RECORD aciuneaznumai asupra nregistrrii cu numrul

    ; REST selecteaz toate nregistrrile de la cea curent i pn la

    sfritul fiierul de date.

    2.5 Operaii asupra nregistrrilor

    Asupra nregistrrilor dintr-un fiier de date se pot face urmtoarele operaiiprincipale:

    adugare; modificare; tergere.

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    43/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    44/163

    44 Capitolul 2

    ExplicaiiA)Se seteazcmpul SEX, pentru a fi identic cu nregistrarea precedent. Se va scrie

    automat caracterul T n toate nregistrrile care vor fi scrise dup nregistrareacurent.

    B)Cnd se termin introducerea datelor se tasteazSET CARRY OFFprin care serevine la starea iniial n care fiecare cmp dintr-o nregistrare noupoate aveavalori diferite.

    O anumitlistde cmpuri poate fi extinsprin folosirea clauzei ADDITIVE,care permite ca la o anumitlistde cmpuri existente n comanda SET CARRYsse adauge una nou.

    ComandAPPEND BLANKadaugo nregistrare "blank", adico nregistraren care toate cmpurile sunt vide, la sfritul fiierului de date urmnd ca mai trziusse ncarce informaia utilprin alte comenzi FoxPro.

    Comanda APPEND FROM[FIELDS][FOR][TYPE]

    adaug nregistrri dintr-un alt fiier de date n fiierul de date curent. Dac sedorete ca n fiierul de date s fie introduse numai anumite cmpuri atunci sefolosete opiunea FIELDS n care se vor introduce cmpurile care se vor copia,separate prin virgul. Pentru a prelua doar anumite nregistrri se va folosi opiuneaFOR. Clauza TYPE se folosete pentru a specifica tipul fiierului din care vor fi

    preluate datele. Acesta este diferit de tipul DBF i aparine altor medii de programare.Adugarea unei nregistrri noi dup nregistrarea curent, se realizeaz cu

    comanda INSERT care are sintaxa:INSERT [BEFORE][BLANK].

    Dac se folosete clauza opional BEFORE atunci se adaug nainteanregistrri curente, o nregistrarea nou. Clauza opionalBLANKeste analoagcuaceeai clauzde la comanda APPEND. Fereastra care apare n urma acestei comanzieste identiccu aceea de la comanda APPEND. n general este o comandmai puinfolosit deoarece introducerea de nregistrri noi printre cele vechi se folosete mairar cu aceastcomand, existnd alte tehnici prin care se realizeazacest lucru.

    2.5.2 Modificarea nregistrrilor unui fiier de date

    Modificarea informaiilor stocate ntr-un fiier de date se poate face cu una dincomenzile :

    CHANGE

    EDITBROWSEREPLACE

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    45/163

    45 Memorarea datelor n Visual FoxPro

    Primele trei comenzi nu modificpropriu-zis coninutul unui fiier de date, cideschid o fereastrde editare n care utilizatorul va modifica informaiile dorite.Comenzile CHANGE i EDIT sunt identice , ele fiind diferite de comandaBROWSEnumai prin modul n care sunt aranjate cmpurile n fereastra de editare.

    n timp ce la comenzile EDITi CHANGE cmpurile sunt aezate pe vertical, lacomanda BROWSEcmpurile sunt aezate pe orizontal.

    2.5.2.1 Comanda BROWSE

    Sintaxa comenzii este:BROWSE

    [FIELDS]

    [FONT [, ]][STYLE][FOR][FORMAT][FREEZE][KEY [, ]][LAST | NOINIT][LEDIT][REDIT]

    [LOCK][LPARTITION][NOAPPEND][NOCLEAR][NODELETE][NOEDIT | NOMODIFY][NOLGRID] [NORGRID][NOLINK][NOMENU]

    [NOOPTIMIZE]

    [NOREFRESH][NORMAL][NOWAIT][PARTITION][PREFERENCE][REST][SAVE][TIMEOUT][TITLE]

    [VALID[:F] [ERROR]][WHEN][WIDTH][[WINDOW][IN [WINDOW]| IN SCREEN]]

    Fig. 2 17 Fereastra Browse i meniul Table aferent acesteia

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    46/163

    46 Capitolul 2

    [COLOR SCHEME | COLOR]

    Comanda BROWSE frnici o opiune, afieaz toate cmpurile din fiierulde date oferind utilizatorului, accesul cu toate drepturile la informaiile existente (fig

    2.5). La tastarea comenzii BROWSE, n meniul principal apare meniul Tablecarepermite configurarea ferestrei de editare a fiierelor.

    OpiuneaFontpermite schimbarea fontului de editare.

    Opiunea Properties deschide fereastra cu acelai nume (fig 2.18).

    Fereastra afieaznumele fiierului activ n fereasta Browse, permite blocareaarticolelor n cazul lucrului n reea (Lock records), permite definirea unui filtruasupra datelor n caseta Data filter, permite deschiderea fiierului indexat prinalegerea indexului dorit din caseta Index order, permite accesul la toate articolele dinfiier sau numai la cele specificate de ctre filtru, prin alegerea butonului dorit dinzona Allow access to. Butonul Field Filter permite activarea anumitor cmpuri dincadrul tabelei.

    Opiunea Go to Record permite poziionarea pe anumite articole din cadrulfiierului de date.

    Opiunea Append New Record permite adugarea unui articol nou dinfereastra Browse.Opiunea Toggle Deletion Markpermite marcarea pentru tergere articolului

    sau a grupului de articole doritOpiunea Resize Partitions este similar cu opiunea PARTITIONS a

    comenzii BROWSE. Aceasta activeazbutonul de mprire al ferestrei de editare ndou zone distincte. Cu ajutorul tastelor direcionale sau al mouse-ului se definesccele douregiuni denumite partiii.

    Opiunea Size Field permite redimensionarea cmpului activ (cmpul n care

    se aflcursorul) cu ajutorul tastelor sgei sau al mouse-lui.Opiunea Move Field, permite schimbarea ordinii de afiare a cmpurilor, nfereastra de afiare.

    Fig. 2 18 Fereastra Browse - Properties

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    47/163

    47 Memorarea datelor n Visual FoxPro

    Opiunea Remove Deleted Records permite refacerea articolelor terse. Opiunea Recall Records permite demarcarea articolelor marcate pentrutergere

    Opiunea Delete Records, permite marcarea pentru tergere a unor nregistrri

    din fiierul de date.Opiunea Append Record, permite adugarea de articole noi n fiierul de datedintr-un alt fiier de date.

    Opiunea Rebuild Indexes, permite refacerea fiierelor de index ataatefiierului de date sau refacerea etichetelor index ataate fiierului de date.

    n continuare vom prezenta opiunile comenzii BROWSE.Opiunea FIELDS a comenzii BROWSE,oferutilizatorului posibilitatea de

    a afia doar anumite cmpuri ale fiierului de date activ, n fereastra de editare.Numele cmpurilor care se doresc a fi afiate se vor scrie n lista de cmpuri,desprite de virgul. Opiunile de editare ale cmpurilor sunt prezentate n tabelul 2.2

    Tabelul 2.2Opiuni de editare a cmpurilor Explicaii

    [:P = ] Se poate specifica un cod PICTURE specificcomenzilor de intrare ieire (Capitolul ??????)

    [:R] [:mrime cmp] Cmpul se poate vizualiza pe un numr decaractere.

    [:V = [:F] [:E = ]] Permite validarea cmpului introdus. Dup cecmpul sa modificat i se iese din editareaacestuia se evalueaz i dacvaloareaei este .T. (adevrat) atunci data introdus estecorect.[:F] se folosete pentru a fora validarea[:E] se folosete pentru a schimba mesajul deeroare n cazul n care, valoarea expresiei este fals.

    [:B = , [:F]] Reprezint intervalul n care trebuie s segseasc cmpul dup editare. reprezint limita inferioar, iar reprezintlimita superioar.

    [:H = ] Schimb numele cmpului care se afiaz n

    fereastra de editare.[:W = ] Se permite editarea cmpului doar dacexpresia

    logic are valoarea adevrat.

    Exemplu 2.14USESALARIATBROWSE FIELDSNUME:R:10, MATR:H=MATRICOLBROW FIELDSVIRSTA:V=VIRSTA>15 AND VIRSTA200000

    A

    B

    C

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    48/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    49/163

    49 Memorarea datelor n Visual FoxPro

    Tabelul 2.4Opiune Semnificaie

    FONT i STYLE Opiuni pentru alegerea tipului fontului de editare specifice mediuluiWindow.

    FORMAT Informeaz comanda Browse c trebuie s foloseasc variabile dinfiierul format activ. n aceastcarte nu se vor folosi fiierele format

    FREEZE Limiteazeditarea doar la un singur cmp din fereastra de editare.LAST Preia ultima configuraie de fereastrde editare Browsesalvat.

    LEDIT i REDIT Comutpartiiile stngsau dreaptn modul Change.LOCK Specificnumrul de coloane care rmn fixate n poziia lor iniial

    n fereastra de editare.LPARTITION Plaseaz iniial cursorul n fereastra din stnga n cazul n care

    fereastra de editare este partiionat.NOLINK Opiunea nu coreleazpartiiile. Deplasarea cursorului ntr-o partiie

    nu implicdeplasarea cursorului i n cealaltpartiieNOOPTIMIZE Dezactiveaz tehnica Rushmore de cutare a nregistrrilor ntr-un

    fiier de date. Aceasta este cea mai rapid tehnic de cutareexistentn mediul VFP.

    NOREFRESH Comandfolositdoar n mediu multiutilizator.NORMAL Fereastra de editare este setatla atributele normale.NOWAIT Se poate folosi n cazul n care din program se apeleaz comanda

    Browse i are rolul ca dup afiarea ferestrei de editare programulutilizator se continu.

    PARTITION mparte fereastra de editare n doupartiii.

    PREFERENCE Salveazatributele ferestrei pentru o utilizare ulterioarREST Se utilizeazmpreuncu clauza FORi impune comenzii scaute

    nregistrrile de la nregistrarea curentpnla sfritul fiierului.SAVE Se folosete ntr-un program i foreazpstrarea pe ecran a ferestrei

    i a cmpurilor memo asociate.TIMEOUT Specific ct timp ateapt comanda Browse ca utilizatorul s

    introducdatele, nainte de a nchide automat fereastra de editare.TITLE Oferposibilitatea de a da un titlu ferestrei de editare.

    WIDTH Definete limea maxima unei coloane din fereastra de editare.WINDOW Afiazfereastra de editare n interiorul unei ferestre definitanterior

    COLOR Permite sse indice o configuraie de culori prestabilite sau o listdeatribute pentru culoare.

    2.5.2.2 Comanda REPLACE

    Modificarea cmpurilor unui fiier de date poate fi efectuat i cu comandaREPLACE care spre deosebire de comenzile prezentate anterior nu deschide ofereastrde editare. Sintaxa acestei comenzi este:

    REPLACE WITH [ADDITIVE][, WITH[ADDITIVE]] ...

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    50/163

    50 Capitolul 2

    [][FOR][WHILE][NOOPTIMIZE]

    Comanda nlocuiete vechea valoare din cmpul1 cu valoarea rezultatn urmaevalurii expresiei expr1, cmpul2 cu expr2 i aa mai departe. Pentru cmpurilememo se folosete clauza ADDITIVEprin care cmpul memo nu este ters, valoareaexpresiei fiind ataatla sfritul cmpului.

    Comanda REPLACEse folosete n general cu comanda APPEND BLANKpentru a introduce nregistrri noi ntr-un fiier.

    Exemplul 2.16

    ExplicaiiA)Pentru nregistrarea cu numrul 4 se nlocuiete coninutul cmpurilor Nume,

    Prenume, Matr;B)Se adaug o nou nregistrare la sfritul fiierului, n care se vor complecta

    cmpurile: Nume, Prenume, Natr, Sex, Stare_civl;C)Se modific cmpul Salar pentru trei nregistrri ncepnd de la nregistrareacurent;

    D)Se modificcmpul Salar pentru nregistrarea care conine n cmpurile Nume iPrenume, expresiile IONESCU i ION.

    2.5.3 tergerea nregistrrilor dintr-un fiier de date.

    tergerea unei nregistrri dintr-un fiier de date se poate realiza la dounivelei anume:

    USESALARIATGO RECORD4REPLACE NUME WITH IONESCU, PRENUME WITH ION, MATR;WITH1012

    APPE BLANKREPLACE NUME WITH POPESCU, PRENUME WITH ION, MATR;WITH1011REPLACESEX WITH.T., STARE_CIVL WITH .F.GO TOPREPLACESALAR WITH1000000 NEXT3REPLACE SALAR WITH 150000 FOR NUME=IONESCU AND;PRENUME=IONCLOSE ALL

    A

    B

    C

    D

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    51/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    52/163

    52 Capitolul 2

    tergerea efectiva nregistrrilor dintr-un fiier de date se face cu comandaPACK. Dupaplicarea acestei comenzi nregistrrile nu mai pot fi refcute.

    Toate nregistrrile dintr-un fiier pot fi terse global prin comanda ZAP.Aceast comand activeaz o fereastr de dialog care valideaz sau nu comanda.Informaiile terse din fiier sunt distruse definitiv, fr posibiliti de refacere.Comanda ZAP este echivalentcu comenzile: DELETE ALL i PACK.

    n limbajul Visual Fox, existo comandprin care, frtergere sau marcarepentru tergere, se poate nhiba accesul la unele nregistrri. Aceastcomandeste:

    SET FILTER TO []Ca efect al acestei comenzi n fiierul de date vor apare doar nregistrrile carendeplinesc condiia expL.

    Exemplul 2.18

    ExplicaiiA)Se aleg din fiierul de date numai acele nregistrri care au n mpul Stare_civl

    valoarea adevrat.B)Se vizualizeazcondiia de filtrare cu ajutorul funciei FILTER().

    2.6 Vizualizarea coninutului unei fiier de date

    Vizualizarea coninutului unui fiier de date se poate face folosind una dintrecomenzile pentru modificarea nregistrrilor fiierului de date, prezentate n

    paragraful precedent. n acest caz, pentru a avea o vizualizare stricta fiierului dedate este necesar inhibarea posibilitilor de scriere n cmpurile nregistrrilor i

    tergerea acestora.Comenzile specifice pentru vizualizare nregistrrilor sunt comenzileDISPLAYi LIST.Comanda DISPLAYare sintaxa:

    DISPLAY[[FIELDS] | FIELDS LIKE| FIELDS EXCEPT][]

    [FOR][WHILE][OFF]

    USESALARIATSET FILTER TOSTARE_CIVL=.T.BROW?FILTER()CLOSE ALL

    A

    B

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    53/163

    53 Memorarea datelor n Visual FoxPro

    [TO PRINTER[PROMPT]| TO FILE][NOCONSOLE][NOOPTIMIZE]

    Afiarea informaiilor se face astfel : pe prima linie se reprezintlista cmpurilor; pe urmtoarele linii se reprezint nregistrri din fiierul de date. Pe prima

    poziie se afieaznumrul de ordine al nregistrrii din fiierul de date.Opiunea FIELDS specific lista de cmpuri pentru afiare. Dac lipsete se

    afieaz toate cmpurile. Opiunile FIELDS LIKE i FIELDS EXCEPT afieazsau nu mai multe cmpuri dupo anumitmascde identificare.

    Opiunile FOR i WHILE sunt cele specifice domeniuluinregistrrilor.

    Opiunea OFF, inhib apariia n formatul de afiare, a informaiei de pecoloana 0 reprezentnd numrul de ordine al nregistrrilor.

    Opiunile TO PRINTER i TO FILE, permite transmiterea rezultatelorvizualizrii la imprimantsau ntr-un fiier ASCII.

    Opiunea NOCONSOLEinhibvizualizarea coninutului fiierului pe ecranulvideoterminalului calculatoruluiImplicit dacn [domeniu] nu se specificnimic atunci cu DISPLAYse vizualizeaznregistratrea curent.

    Exemplul 2.19ExplicaiiA)Vizualizarea primei nregistrri din fiierul Salariat;B)Vizualizarea tuturor nregistrrilor din fiier, fr afiarea pe coloana 0 a

    indicatorului de nregistrri;

    USE SALARIATDISPLAY

    DISPLAY ALL OFFGO RECORD3DISPLAY FIELDSNUME,PRENUME,SALAR

    DISPLAY FIELDSSALAR RESTGO TOPDISPLAY ALL FORSTARE_CIVL=.F.

    DISPLAY ALL TOFILE SALAR.TXT NOCONSOLECLOSE ALL

    A

    B

    C

    D

    E

    F

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    54/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    55/163

    55 Memorarea datelor n Visual FoxPro

    apeleazdin meniul Window.

    Aceastfereastrafiazo listderulabilde zone de lucru, aliasurile tabelelordeschise i o schema tuturor relaiilor stabilite ntre fiierele de date.

    n tabelul 2.5 sunt descrise funciile butoanelor din partea centrala ferestrei.Tabelul 2.5

    PROPERTIES Activeazfereastra Work Area Properties(fig 2.18)RELATIONS Activeazfereastra de setare a legturilor dintre fiierele de date.

    BROWSE Activeazfereastra de editare cu acelai nume corespunztoare unui fiierde date.

    OPEN Activeazun fiier de date.CLOSE nchide un fiier de date.

    nregistrrile dintr-un fiier pot corespunde uneia sau mai multor nregistrridin alt fiier, caz n care se spune c ntre cele dou fiiere existo legtur sau n

    terminologia relaional a bazelor de date, o relaie. Aa cum s-a artat anterior nacest capitol, fiierul de unde se stabilete relaia se numete fiier printe, iarfiierul copil este fiierul n care s-a stabilit relaia. Pentru stabilirea unei relaiintre doufiiere de date, trebuie ca ambele sfie deschise n cte o zonde lucru. Se

    poate stabili o relaie, numai ntre cmpuri care memoreazdate comune.Pentru a stabili interactiv o relaie ntre doufiiere, acestea se deschid n dou

    zone de lucru diferite. Zona curent de lucru este zona n care este deschis fiierulprinte. Se acioneazapoi butonul Relation, pe ecran va apare fiierul printe cu osgeat ndreptat n jos i spre dreapta. Se stabilete fiierul copil din zonele de

    lucru i relaia de legturcu ajutorul constructorului de expresii.

    2.8 Ordonarea unui fiier de date

    Ordonarea nregistrrilor n Visual FoxPro se poate realiza n doumoduri ; prin ordonarea propiu-zis a fiierului de date n ordinea dorit a

    nregistrrilor. Se creeazpractic un nou fiier de date care conine aceleainregistrri ca i primul, dar de data aceasta nregistrrile sunt ordonate

    dupunul sau mai multe cmpuri, numite cheie de ordonare. prin indexarea fiierului de date, aceasta presupunnd crearea unui fiier

    care conine informaii cu privire la ordinea nregistrrilor n fiierul dedate. AceastaNU CONINE nregistrrile fiierului de date, fiierul indexine evidena articolelor din fiierul de date ntr-o anumitordine.

    2.8.1 Sortarea fiierelor de date

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    56/163

    56 Capitolul 2

    Sortarea fiierelor de date, adicaranjarea nregistrrilor ntr-o anumitordine,funcie de unul sau mai multe cmpuri ale fiierului de date, se realizeazcu comandaSORTa crei sintaxeste:

    SORT TO

    ON[/A][/D][/C],[Cmp 2][/A][/D][/C]...[ASCENDING][DESCENDING][][FOR][WHILE][FIELDS][NOOPTIMIZE]

    Comanda creeazun nou fiier de date, al crui nume este dat de ctre clauzaTO. Cmpul sau cmpurile dupcare se face sortarea sunt denumite chei de sortare,numele acestora fiind dat de ctre clauza ON. ParametriiA i D se folosesc pentru a

    realiza ordonarea cresctoare sau descresctoare a nregistrrilor din fiier i suntsimilari cu clauzele ASCENDING i DESCENTING. Parametrul C se folosetepentru a compara iruri de caractere i pentru a nu face deosebire ntre literele marisau mici. Clauza ASCENDING este implicit. Fiierul de date rezultat n urmaoperaiei de sortare poate avea toate cmpurile fiierului de date iniial sau poate aveanumai anumite cmpuri carepot fi specificate n clauza FIELDS.Dacnu se dorete ordonarea tuturor nregistrrilor dintr-o bazde date atunci se potfolosi clauzele :

    prin care se poate selecta un anumit numr de nregistrri

    din fiierul de date; FOR sau WHILEprin care, nregistrrile se selecteazn funcie de oanumitcondiie logic

    Se considerfiierul de date Salariat.dbf.CLEACLOSE ALLDELE FILEMATRICOL.DBFDELETE FILEALFAB.DBF

    DELETE FILESALAR.DBFDELETE FILESALNUM.DBFUSESALARIAT

    Exemplu 2.20

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    57/163

    57 Memorarea datelor n Visual FoxPro

    ExplicaiiA)aranjarea nregistrrilor din fiierul de date dup cmpul Matr n fiierul

    Matricol n ordine ascendent;B)aranjarea nregistrrilor din fiierul de date dup cmpurile Nume i

    Prenume n fiierul Nume n ordine ascendent;C)aranjarea nregistrrilor din fiierul de date care ndeplinesc condiia logic

    salar>500000, n ordine descendent, dupcheia Matr, n fiierul Salar;D)aranjarea nregistrrilor n ordie ascendentdupcmpurile Salar i Nume,

    n fiierul Salnum. Noul fiier de date are doar cmpurile Nume i Salar.

    2.8.2 Indexarea fiierelor de date

    Indexii sunt structuri de date care au drept unic scop, creterea vitezei deaccesare a articolelor. La crearea structurii fiierelor de date am prezentat tipurile deindecsi care pot fi create. n afarde metoda prezentat, fiierele index pot fi create

    prin comenzi tastate n fereastra de comand. Fiierele de index sunt fiiere auxiliarepe disc, ele sunt diferite de fiierele de date, cutarea se face dupvalorile anumitorcmpuri care poartdenumirea de cheie de indexare. Indexul este definit asupra unuicmp unic din fiier, el conine valorile cmpului de indexare, ordonate astfel nct sse poat face o cutare liniar asupra lor. Indexul mai conine un cmp n care segsesc pointeri sau adrese la blocuri sau nregistrri din fiierul de date. Dimensiunile

    fiierului index sunt mai mici dect dimensiunile fiierului de date, de aceea cutarease face mult mai rapid. Indexarea se poate face pe un cmp care are valori distincte ncadrul fiierului de date, caz n care indexul se numete index primar. Indexarea se

    SORT TOMATRICOL ON MATRSELE2USEMATRICOLBROWSELE1SORT TOALFAB ON NUME,PRENUME

    SELE3USE ALFABBROWSELE 1SORT TOSALAR ONMATR FORSALAR >500000 DESCSELE4USESALARBROWSELE1

    SORTTO SALNUM ONSALAR,NUME FIELDS NUME,SALARSELE5USESALNUMBROWCLOSE ALL

    A

    B

    C

    D

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    58/163

    58 Capitolul 2

    poate face dupo cheie de indexare (unul sau mai multe cmpuri) care nu are valoridistincte n tot fiierul, caz n care fiierul se numete index prin clusterizare. Unfiier mai poate avea mai multe fiiere de index secundare, care pot fi specificate peun cmp oarecare din fiier, n afarde cmpurile principale de indexare.

    n limbajul Visual FoxPro existdoutipuri de fiiere index: fiierele cu extensia IDXcare conin un singur index; fiierele cu extensia CDX, care sunt fiiere index compuse.

    Numrul de indeci dintr-un fiier index compus este limitat doar decapacitatea memoriei disponibile; fiecare index poart denumirea de etichet (tag).Un fiier index compus care are acelai nume cu fiierul de date DBF i care estelegat de acesta poartdenumirea de fiier index compus structurat. Fiierele CDX auavantaje fa de fiierele IDX prin faptul c ele conin mai muli indeci nglobai.Deschiderea unui fiier de date care are ataai mai muli indeci simpli, poate durafoarte mult. De asemenea fiierele indexate compuse asigur o integritate sporitfiierelor index, prin legarea strns a fiierelor de date de indecii care i suntasociai.

    Fiierele index att cele simple ct i cele compuse se prezintsub forma unorarbori B+. Fiierele indexate compuse au cte un arbore B+pentru fiecare etichetdeindexare.

    Fiierele index trebuie sfie deschise ori de cte ori se deschide i fiierul dedate DBF i se realizeaz modificri ale articolelor din el. Altfel apar anomalii nfuncionarea fiierelor index. n cazul fiierelor compuse structurale acest lucru poatefi neglijat deoarece aceste fiiere de index se deschid automat la deschiderea fiieruluide date DBF.

    Fiierele index simple se recomanda se crea atunci cnd dorim screem unindex temporar care existun timp limitat de timp, dupcare se terge cu o comandDELETE FILE. n cazul n care se creeazfiiere index carevor fi folosite n mod frecvent, un timp mai ndelungat, soluia cea mai buneste de afolosi fiiere index compuse, adicfiierele index CDX, deoarece etichetele de indexntr-un astfel de fiier sunt actualizate n mod permanent.

    Indecii pot fi creai cu comanda INDEX, iar cu comanda REINDEX, poate firefcut un index alterat. Comanda INDEX de creare a unui fiier index simplu saucompus are sintaxa:

    INDEX ON TO | TAG[OF][FOR][COMPACT][ASCENDING | DESCENDING][UNIQUE][ADDITIVE]

    Cheia de indexare este descrisde ctre expresia aflatn clauzaON. Aceastexpresie poate fi de tip: ir de caractere, numeric, logic, dat calendaristic, funcie

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    59/163

    59 Memorarea datelor n Visual FoxPro

    definit de utilizator. Aceast ultim noiune va fi explicat pe larg n capitolulProceduri i funcii. Cheie de indexare nu poate fi un cmp de tip memo. Lungimeaunei expresii a unei chei de indexare poate fi de 100 de caractere pentru fiierele IDXi 240 de caractere pentru fiierele CDX.

    Dac se specificclauza TO se creazun fiier index de tip IDX, iar dacsespecific clauza TAG se creaz un fiier compus. Fiierele compuse sunt de doucategorii:

    structurale, caz n care au acelai nume cu fiierul de date, fra maifi specificat un alt nume de fiier indexat n clauza OF a comenziiINDEX;

    nestructurale, adicele poartalt nume dect cel al fiierului de date,nume care este specificat n clauza OF a comenzii INDEX

    Clauza COMPACT se refer doar la fiierele index simple i ofer

    posibilitatea de a realiza fiiere index compactate, adic fiiere index cu dimensiunimai reduse dect un fiier index obinuit. Totodataccesul la nregistrri n fiierelecompactate este mai rapid. Fiierele index compuse sunt totdeauna compactate.

    n cazul n care se dorete indexarea numai a anumitor nregistrri din fiierulde date se folosete clauza FOR. Aceast clauz poate fi specificat numai atuncicnd este creat o etichet a unui fier index compus. Expresia logic din clauzaFORpoate conine variabile de memorie, funcii definite de utilizator sau cmpuri aleunor alte fiiere DBF, deschise n alte zone de memorie.

    Daceste specificatclauza UNIQUEla crearea unui fiier index, atunci doarprima nregistrare pentru care valoarea cheii de indexare este aceeai, este introdusn fiierul index.

    Clauza ASCENDING este implicit i semnific ordonarea nregistrrilor nordine cresctoare. Clauza DESCENDING se refer doar la fiierele indexatecompuse.

    Deschiderea unui fiier index se realizeaz cu comanda USE a crei sintaxeste:

    USE[ | ?][IN][AGAIN][INDEX | ?

    [ORDER[| | [TAG] [OF][ASCENDING | DESCENDING]]]]

    [ALIAS ][EXCLUSIVE][SHARED][NOUPDATE]

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    60/163

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    61/163

    61 Memorarea datelor n Visual FoxPro

    A)crearea unui fiier indexat simplu cu numele inume.idx;B)crearea unui fiier indexat simplu cu numele matricol.idx;C)crearea unui fiier indexat compus cu acelai nume cu numele fiierului de date,

    Salariat.cdx, cu cheia de indexare nume i eticheta nume;D)adugarea etichetei matricol, corespunztoare cheii de indexare matr, n fiierul

    Salariat.cdx;E)adugarea etichetei Salar, corespunztoare cheii de indexare Salar n fiierul

    Salariat.cdx, pentru nregistrrile care ndeplinesc condiia logicsalar>500000 ,aranjarea nregistrrilor fcnd-se descresctor;

    F)deschiderea fiierului indexat simplu inume.idx;G)deschiderea fierului indexat simplu matricol.idxH)deschiderea fiierului indexat compus Salariat.cdx, cu selectarea etichetei Nume;I) se selecteazeticheta Matricol din fiierul indexat compus Salariat.cdx;J) se selecteazeticheta Salar din fiierul indexat compus Salariat.cdx.

    Asupra fiierelor indexate pot aciona o serie de funcii care returneazinformaii despre fiierele indexate:

    NDX() returneaznumele fierelor indexate simple deschise ntr-o anumitzonde lucru;

    CDX() returneaz numele fierelor indexate compuse deschise ntr-oanumitzonde lucru;

    TAG(), SYS(21) returneaz numele fiierului simplu sau al etichetei unuifiier indexat compus, dintr-o listexistent;

    KEY(), SYS(14)returneaznumele cheii de indexare specificatla creareafiierului index simplu sau al etichetei unui fiier indexat compus;

    ORDER() returneaznumele fiierului index simplu activ sau al eticheteiactive.

    n cazul n care cheia de indexare este format din mai multe cmpuri estenecesarformarea unei expresii de indexare de tip ir de caractere. Daccmpurile

    sunt de tipuri diferite, este obligatorie folosirea unor funcii specifice mediului VisualFox pentru conversia datelor dintr-un tip de datn alt tip de dat.n figura 2.20 esteprezentat realizarea unui index folosind o cheie de indexare format din doucmpuri de tipuri diferite. Cmpul de tip numeric este convertit n tip ir de caracterefolosind funcia STR. Formarea cheii de indexare din cele doucmpuri se realizeazfolosind operatorul de concatenare "+".

    Acelai index se poate realiza folosind comanda de indexare n fereastra decomand:

    INDEX ON STR(anuls)+np TAGSTUD_DIS

    Deschiderea fiierului se realizeazcu comanda:

    USE STUDENT ORDER TAGSTUD_DISn general n mediul Visual Fox folosirea fiierelor de index de tip Idx, nu este

    interzisdar se folosesc mai rar. Efectul prin care se creazun fiier de index att din

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    62/163

    62 Capitolul 2

    fereastra Table Designersau prin comanda INDEX, este identic, un fiier cuextensia CDX, care are eticheta de index STUD_DIS

    Concluziin mediul Visual Fox suportul de memorareal datelor este relaia sau tabela

    sau fiierul de date, care poate exista independent sau ntr-o bazde date. Existenatabelei ntr-o baz de date VFP, este soluia recomandat de ctre autor datoritfacilitilor pe care le ofer.

    Din punct de vedere obiectual, o bazde date poate fi considerato clasde tipcontainer cu numele Data Environment, clas care conine obiecte de tip Cursor,care sunt tabelele bazei de date, vederile acesteia sau legturile dintre fiierele de

    date, ale bazei de date. Despre toate acestea vom discuta n capitolul referitor laprogramarea orientatobiect n mediul Visual Fox.

    Fig 2. 20 Index care are cheia de indexare formatdin doucmpuri deti diferit

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    63/163

    VARIABILE, CONSTANTE, EXPRESII, FUNCIISPECIFICE TIPURILOR DE DATE N LIMBAJUL VISUAL

    FOX

    3.1 Obiecte de date

    Variabilele reprezint informaia pe care o poate manipula un limbaj deprogramare. Limbajul Visual Fox oferdoutipuri de variabile scalare:

    cmpurile, care constitue elementele constructive ale fiierelor dedate DBF i au un caracter permanent;

    variabile de memorie, care existtemporar, pe durata execuiei unuiprogram. Ele pot fi salvate ntr-un fiier i aduse n memoria

    calculatorului, n funcie de dorina utilizatorului.Variabilele scalare se mai numesc n mediul Visual Fox obiecte de date.Spre

    deosebire de alte limbaje n Visual Fox, variabilele nu sunt definite n program ntr-ozon anume i pstreaz tipul cu care au fost definite pe toat durata programului.Lungimea i tipul unei variabile de memorie sunt ajustabile pe durata execu iei unui

    program.Un program Visual Fox este o niruire de instruciuni care au trei pri

    distinctive i anume: semanticasau semnificaia instruciunii; sintaxasau modul de scriere al instruciunilor; lexicasau regulile pe baza crora se formeazelementele sintaxei.

    Totalitatea instruciunilor unui program formeaz programul surs. Pentru caacesta s poat fi neles de ctre mediul Visual Fox, este necesar s fie compilatadic s fie transformat n instruciuni main, instruciuni care sunt interpretate dectre calculator. Programul surs se tiprete ntr-o fereastr special denumitfereastra de program i care poate fi apelatprin comanda MODIFY COMMANDnume_program din fereastra de comand, sau din meniul principal opiunea File,subopiunea New i opiunea Program din lista care apare n fereastra de dialog

    New. n general la nceputul unui program se inializeaz variabilele globale,constantele i variabilele care vor fi folosite n program, far ca acest lucru s fie

    Capitolul

    3

  • 8/10/2019 VISUAL FOXPRO-CURS-BORZA.pdf

    64/163

    64 Capitolul 3

    obligatoriu, alocarea tipului variabilei se realizeazdinamic prin program. Alocareadinamic nseamn c tipul este atribuit pe parcursul executrii programului nmomentul crerii variabil