You are on page 1of 34

Limbajul Visual FoxPro.

11.1 Consideraii generale asupra limbajului


11.1.1 Consideraii generale Toate limbajele de programare au n general aceeai structur de principiu a instruciunilor. Sunt unele limbaje de programare care sunt dedicate unui anumit tip de prelucrri de date, motiv pentru care dispun de biblioteci de subprograme care asigur automatizarea anumitor faze de prelucrarea datelor. De exemplu programele dedicate prelucrrii matematice a datelor de tip Matcad sau Matematica. Altele sunt pentru prelucrarea informaiilor care sunt sub form de baze de date, de tip FoxPro, Dbase, Paradox sau SQL, etc. Alte programe sunt de tip general dispunnd de biblioteci de funcii i asigurnd o flexibilitate mare de prelucrare a informaiei att pe ecran pentru jocuri de exemplu C/C++ sau Cod main, precum i altele mai puin flexibile dar cu biblioteci de programe care automatizeaz procesul de prelucrarea datelor de tip Pascal, Visual Basic, Basic4GL, etc. 11.1.2 Alegerea limbajului de programare Diferena ntre programul surs i cel executabil este c n cazul primului este necesar mai nti instalarea i pornirea programului n care se scrie codul surs, n timp ce pentru programul executabil acest lucru nu mai este necesar el rulnd direct fr a mai fi necesar lansarea programului surs. Acest lucru nseamn c utilizatorul nu trebuie s dein licen i pentru programul n care a fost realizat programul executabil el trebuind s dein numai licen pentru programul executabil pe care de fapt l-a achiziionat. Alegerea ntre aceste tipuri de programe se face n faza de tem de proiectare sau cel mai trziu la caietul de sarcini deoarece ulterior este foarte

greu de a se reveni n alegerea altui limbaj de programare acestea ne fiind compatibile unul cu cellalt. Datorit faptului c n domeniul economic se lucreaz mult cu iruri de date organizate tabelar numite i baze de date vom analiza numai programele de acest tip i anume FoxPro i Visual Basic. Dac primul este specific bazelor de date, al doilea este de tip general putnd fi folosite i n alte domenii dect prelucrarea bazelor de date.

11.2 Baze de date, mod de realizare a unui program tip


11.2.1 Consideraii generale Prin Baze de date se nelege un ansamblu de informaii organizate tabelar care are urmtoarele proprieti: - este organizat, pe mai multe niveluri ale informaiei pe suportul de informaie extern uzual hard disc; - este coerent, corespunznd unor proprieti restrictive specifice de integritatea informaiei; - este structurat, astfel nct s corespund unui model de tip baz de date; - este accesibil, putnd fi folosit de mai muli operatori simultan sau succesiv. Realizarea unei baze de date urmrete aceeai pai pe care i-am prezentat la subcapitolul anterior. n acelai timp multe dintre elementele de definire i structur a elementelor de tip baze de date sunt similare cu cele de la Capitolul 6.2 nu vom mai insista asupra lor. i n programul Visual FoxPro sau FoxPro sunt folosite ca elemente de baz tabelele, relaiile dintre tabele, formularele, rapoartele i interogrile. n acelai timp tipurile de date i variabile cu mici diferene sunt identice cu cele de la Capitolul 9.1, motiv pentru care nu vom mai insista asupra acestora. Diferena provine din modul de definire specific bazelor de date pentru acestea. 11.2.2 Program surs Pentru o mai bun nelegere a modului de folosire i utilizare a programului Visual FoxPro vom porni de la o aplicaie economic legat de

desfacerea produselor unei firme de producie. Pentru aceasta trebuie s avem n vedere care sunt elementele economice folosite n aceast faz: - primul i cel mai important este factura de vnzare a produselor, - al doilea avizul de transport al produselor, - al treilea este bonul de livrare a produselor, - n final pentru stingerea obligaiei create elementele de plat a produselor comercializate chitana, fila de CEC sau ordinul de plat. Circuitul economic este urmtorul: pe baza bonului de livrare a mrfii produsele sunt eliberate din magazia de produse finite, dup care cel care efectueaz transportul merge la departamentul economic de livrare marf i ridic avizul de expediere a mrfii i factura corespunztoare. Transport marfa la client unde o descarc i se semneaz exemplarul rou i verde de ctre client, se stampileaz, se ntocmesc formalitile de plat a mrfii i se elibereaz chitana pentru suma de bani primit sau se primete ordinul de plata sau fila CEC pentru suma de bani corespunztoare valorii produselor livrate semnat i tampilat de client pentru a fi ncasat suma prin banc. Din analiza acestora pe fiecare element n parte distingem tipuri de date ir similare pentru fiecare element n parte. Astfel pe factur avem un ir de date care sunt tiprite iniial pe factur, aviz i chitan de identificare a furnizorului produselor. Un al doilea ir de date sunt cele de identificare a clientului. Se poate structura informaia pentru utilizare ntr-un tabel din care de fiecare cnd este necesar aceasta s poat fi apelat. Tabelul are structura din figura 11.1 n tabel pe prima linie cu culoare gri am trecut tipul de celul corespunztoare informaiei i lungimea acestei celule. Este foarte important o alegere optim pentru aceste celule pentru a fi satisfcute cele dou cerine importante, definirea ct mai clar i exact a elementului ct i o lungime ct mai mic i egal pentru celule astfel nct s fie utilizat la maxim aceasta iar mrimea bazei de date s fie ct mai mic. O lungime mare mrete dimensiunile bazei de date nejustificat de mult iar o lungime prea mic face ca elementele s nu poat fi difereniate ntre ele. n partea central fiecare factur are un al doilea ir de date care pot fi organizate n tabelul din figura 11.2. Se observ c elementul de legtur ntre tabelul de clieni i cel de facturi/avize este cmpul nume client. Aa dup cum se poate presupune aceste celule trebuie s aib obligatoriu aceeai lungime i s fie de acelai tip.

Clieni
Nr_f
Num7 1234567

Nume_cl
Text20 Popescu

Localit
Text32 Timisoara

Cod
Num6 334561

Adresa
Text64 Negrutzi, nr.1

Telef
Num16 0741122334

Banca
Text32 BCR Timisoara

Cont
Text32 2511.1/ROL

Figura 11.1 Structur tabel clieni

Facturi/Avize/Bon expediie
Nr_f
Num7 1234567

Nr_av
Num7 1234567

Nr_bon
Num7 1234567

Data
Dat zz/mm 22/04

Nume_cl
Text20 Popescu

Valoare_ Totala
Num16 1.190.000

Valoare_ Neta
Num16 1.000.000

Valoare_ TVA
Num16 190.000

Figura 11.2 Structur tabel facturi/avize/bon consum

Produse
Nr_pr
Num7 1234567

Nume_p
Text20 Furtun

UM
Text6 M

Cantitate
Num12 10

Valoare
Num16 1.000.000

TVA
Num16 190.000

Nr_f
Num7 1234567

Figura 11.3 Structur tabel produse

Date transport
Nume
Text32 Pop Ion

Localitate
Text20 Timisoara

Bulet
Text10 TM345689

Numar_m
Text12 TM08XXL

Nr_f
Num7 1234567

Ora
Orahh/mm 10/30

Figura 11.4 Structur tabel mijloc de transport

Stoc produse
Nume_p
Text20 Furtun Furtun

Valoare_Neta
Num16 100.000

Cantitate_int
Num16 50

Cantitate_ies
Num16 10

Nr_bon
Num7 1234567

Sold_n
50 40

Figura 11.5 Structur fi magazie

Elementul central al facturii este cel care cuprinde elementele de identificare fizic i cantitativ valoric a acestora. n figura. 11.3 sunt centralizate aceste elemente pentru fiecare produs n parte. Elementul de legtur este cmpul numr factur. n partea inferioar se gsesc elementele de identificare ale persoanei i mijlocului de transport cu care s-a efectuat transportul produselor. Acestea

vor fi centralizate n tabelul din figura 11.4 unde se observ c elementul de legtur este tot cmpul numr factur. Pe baza bonului de consum se descarc la magazie fia de magazie pe produs care se debiteaz pe baza stocului din luna anterioar sau a bonului de transfer din secia de producie. n figura 11.5 este prezentat structura unei fie de magazie unde se observ c cmpul de legtur este bonul de expediie. Din cele prezentate se observ c tabelul din figura 11.5 trebuie s fie individualizat pe fiecare tip de act n parte. Acesta este i rolul acestei faze care de fapt face parte din schema logic fiind faza de definire a mrimilor care intr n program. Un pas important n aceast faz de realizare a schemei logice o constituie definirea modului de interconectare a tabelelor mai sus definite i succesiunea de etape care asigur funcionarea programului. Pentru aceasta vom reveni la nceputul exemplului i vom ncerca organizarea fluxului informaiilor astfel nct s se poat lucra ct mai uor cu acest program. O prim decizie care trebuie luat este cea de a crea la fiecare nceput de lun fiele de magazie sau o dat pe an sau la nceputul lucrului cu programul dac am nceput activitatea n mijlocul perioadei calendaristice a anului. Aceeai decizie trebuie luat i n ce privete evidena livrrilor de produse i a situaie livrrilor i ncasrilor pe clieni. Din ambele puncte de vedere este cel mai bine ca s existe opiunea de a avea evoluia stocurilor de produse zilnic, lunar sau pe o anumit perioad de timp, n timp ce pentru situaia clienilor este necesar ca s se poat obine situaia la finele unei perioade calendaristice, iar situaia livrrilor de produse pe produs sau pe facturi pe client ntr-o anumit perioad de timp. Cel care va lua decizia este beneficiarul de comun acord cu cel care realizeaz programul. Aceste opiuni sunt cele de tiprire pe ecran i respectiv la imprimant a acestor rapoarte. Pe baza acestor observaii a fost realizat schema bloc cu legturile dintre toate tabelele care fac obiectul bazei de date. n figura 11.6 este prezentat schema relaional. 11.2.3 Depanarea i finalizarea programului Faza de terminare a programului se ncheie cu nchiderea tuturor bazelor de date deschise, finalizarea rapoartelor la care se lucreaz i nchiderea lor i oprirea funcionrii programului.

Clieni Nr_f Nume_cl Localit Cod Adresa Telef Banca Cont

Factur Nr_f Nr_av Data Nume_cl Val_Tot Val_net Val_TVA Date_trans Nr_f Nume Bulet_s Localit_s Numar_m Ora

Aviz Nr_f Nr_av Nr_bon Data Nume_cl Val_net Produse Nr_f Nr_bon Nr_pr Nume_pr UM Cantit Val Val_net Val_TVA

Bon exped Nr_av Nr_bon Data Nume_cl Val_net

Stoc_prod Nr_pr Nume_pr Nr_bon Data Val_net Cant_int Cant_ies Sold_p

Figura 11.6 Schema tabelar cu legturile dintre tabele

11.3 Limbajul de programare Visual FoxPro


11.3.1 Interfaa general cu Visual FoxPro n cazul acestui program utilizatorul poate lucra n dou variante distincte: - prima cu ajutorul meniului sistem pe baz de comenzi, - a doua prin comenzi ntr-o fereastr separat. Dac prima dintre acestea este cea standard pentru sistemul WINDOWS figura 11.8 permind numai modificri ale ecranului de lucru de tip restaurare, mutare, dimensiune, micorare, mrire i n final nchidere fereastr, a doua bar cea de meniu este mai complex figura 11.9 fiind prezentat pe etape funcie de rolul fiecrui element al meniului principal.

11.3.2 Funciile meniului principal ale Visual FoxPro Prima dintre acestea este cea denumit File, ea se poate lansa cu grupul de taste Alt + F, moment n care se activeaz bara vertical cu instrumentele specifice grupate pe 5 blocuri prezentate n figura 11.9: - primul este cel specific operaiilor de lucru cu fiierele (fiier nou, deschidere fiier existent, nchidere fiier deschis), - al doilea este cel de salvarea fiierelor, - al treilea de import i export de fiiere, - al patrulea de tiprire i expediere fiier ctre alte surse de salvare diferite de cea a hard discului, - al cincilea de ieire din program i nchiderea ecranului de lucru. n figura 11.7 se prezint ecranul de lucru care apare la lansarea programului de baz cu cele dou ferestre cea de comand mai mic dispus n partea dreapt i cea mare care este prevzut la rndul ei cu o bar de titlu, o bar de meniu i o bar de unelte.

Figura 11.7 Ecranul principal Visual FoxPro

La apsarea butonului New, sau a tastei N se va nchide fereastra File i se va deschie o fereastr nou cea din mijloc din figura 11.9 care se observ c este mprit n dou coloane, dintre care prima este la rndul ei mprit n 5 blocuri orizontale structurate funcie de tipul acestora care sunt:

proiect nou primul bloc, elemente noi de tip Baz de date, Tabel, Relaii, Legturi, Vizualizare, etc, blocul trei se refer la modul de introducere i afiarea rezultatelor de tip: Format, Raport i Label, al patrulea se refer la programe i clase, iar ultimul la fiiere text i meniuri.

Figura 11.8 Comenzi ale barei de titlu Visual FoxPro

11.3.3 Funcia meniu File a Visual FoxPro

Figura 11.9 Comenzi ale barei de meniu funciile FILE ale Visual FoxPro

Figura 11.10 Ecran principal creare tabel n Visual FoxPro

n figura 11.10 se observ ce se ntmpl la acionarea butonului fiier nou tabel. n partea stng se deschide o fereastr care n partea de sus permite alegerea locului n care s se salveze tabela baz de date cerat, n partea de jos se introduce numele tabelei pentru cazul nostru client iar n partea dreapt se gsesc trei butoane de validare care asigur primul salvarea tabelei, al doilea prsirea acestei ferestre deoarece se dorea deschiderea altui tip de fereastr, al treilea este cel de ajutor i ultimul este un buton special

inactiv. n fereastra de comand apare introdus instruciunea CREATE . La apsarea butonului salvare se deschide o nou fereastr prezentat n figura 11.11 n care se poate introduce datele pentru tabelul client.

Figura 11.11 Ecran principal desenare tabel n Visual FoxPro iniial

Figura 11.12 Ecran principal desenare tabel n Visual FoxPro dup introducere date

n figura 11.12 se vede cum arat tabelul complectat cu datele preluate din schema logic. Se observ c s-a ales indexarea tabelului dup

numrul de factur, lucru vizibil prin acionarea tabelului Indexes. Validarea final se ace prin apsarea butonului OK.

Figura 11.13 Ecran principal i de comand pentru apelarea unui tabel proiectat

n figura 11.13 se observ cum se poate apela un tabel creat pentru a fi vizualizat sau modificat att pe varianta meniu ct i pe cea a ferestrei de comand. Vom insista de aceast dat pe cea de-a doua variant deoarece prima este deja intuit. Se observ c pentru apelarea unei tabele: - mai nti trebuie s se introduc comanda de creare iniial general CREATE, - urmeaz instruciunea de folosire USE urmat de calea pe care trebuie s o urmeze programul pentru a gsi fiierul (OBS. Este de dorit ca aceasta s fie scurt i pentru un program dat unic, deoarece se vor tasta al fiecare apelare multe taste) i instruciunea SHARED, - urmeaz instruciunea BROWSE LAST, care are rolul de a arta ultima structur a tabelei selectate,

iar n final se activeaz instruciune MODIFY STRUCTURE, care are rolul de a activa comanda de modificare a structurii iniial create. 11.3.4 Funcia meniu Edit i Format a Visual FoxPro

Funcia meniu Edit se apeleaz direct cu succesiunea de taste Alt + E este o funcie prezentat n figura 11.14 care asigur efectuarea a 6 blocuri de instruciuni de lucru n general n modul text: - primul bloc cuprinde comenzile de tergere sau revenire n cazul unor operaii nedorite de tergere, - al doilea bloc se ocup cu tipurile de instruciuni de tiere, copiere, trecere normal sau special i tergere, - al treilea se ocup cu selectarea tuturor elementelor, - al patrulea bloc se ocup cu cutarea n cadrul unui program a unei lini, a cutrii unice sau repetitive i a nlocuiri unei comenzi din program, - al cincilea bloc grupeaz funciile de inserare obiect i legturi, - ultimul este cel de editare a proprietilor.

Figura 11.14 Comenzi ale barei de meniu Edit i Format din Visual FoxPro

Funcia meniu Format se apeleaz direct cu succesiunea de taste Alt + F este o funcie prezentat n figura 11.14 care asigur efectuarea a 3 blocuri de instruciuni de lucru n general n modul text: - primul bloc cuprinde comenzile de alegerea caracterului i a dimensiunilor acestuia, - al doilea se refer la spaiul dintre linii fiind de tip selecie, - ultimul fiind un set de instruciuni speciale. 11.3.5 Funcia meniu Tools i Program a Visual FoxPro Funcia meniu Tools se apeleaz direct cu succesiunea de taste Alt + T este o funcie prezentat n figura 11.15 care asigur efectuarea a 4 blocuri de instruciuni de apelare a interfeelor i instrumentelor specifice:

primul bloc cuprinde comanda de ajutor care este structurat pe tipurile de fiiere prezentate n partea de definire a unui fiier nou subcapitolul 3, al doilea bloc este cel care se refer la automatizarea procesului de lucru cu programe prin crearea de macrouri, galerii de componente i n final rularea documentului activ, al treilea bloc care este unic se ocup de faza de verificare a unui program scris n Visual FoxPro din punct de vedere al programului surs, ultimul bloc care este de asemenea singular este cel care se ocup de setrile implicite ale elementelor care constituie comenzile de lucru i lansare salvare ale interfeei.

Figura 11.15 Comenzi ale barei de meniu Tools i Program din Visual FoxPro

Funcia meniu Program se apeleaz direct cu succesiunea de taste Alt + P este o funcie prezentat n figura 11.15 care asigur efectuarea a 2 blocuri de instruciuni de lansare i oprire: - primul bloc cuprinde funciile care permit lansarea n execuie a unui program, prsirea, suspendarea execuiei acestuia sau rezumarea execuiei lui,

al doilea bloc unic este cel care are rolul de a verifica funcionare programului. Un rol aparte l are aa dup cum am artat sub funcia Options din funcia meniu Tools. n figura 11.15.a se prezint ecranul care apare ca urmare a accesrii acestei opiuni. Primul lucru se selecteaz tabela File Locations dup care va aprea o niruirea de instruciuni i locaii. Se va face dublu clic cu mausul pe Default Directory moment n care se activeaz urmtoarea fereastr Change File Location n care se bifeaz butonul radio Use default directory dup care prin apsarea cu mausul a butonului de cutare se activeaz o nou fereastr cea numit Select Directory n care se selecteaz calea n care se gsesc fiierele de lucru ale programului. Dup validarea butoanelor Select, Ok, Set As Default, Ok se va realiza ncrcarea cii n care sunt salvate fiierele de lucru.

Figura 11.15.a Comanda barei de meniu Tools sub comanda Options

11.3.6 Funcia meniu Window i Help a Visual FoxPro Funcia meniu Window se apeleaz direct cu succesiunea de taste Alt + W este o funcie prezentat n figura 11.16 care asigur efectuarea a 3 blocuri de instruciuni de setare a parametrilor ferestrelor de lucru: - primul bloc cuprinde comanda de unic de aranjare a tuturor ferestrelor ntr-o anumit ordine vertical, orizontal, etc., - al doilea bloc se ocup de ascunderea, tergerea sau succesiunea ferestrelor, - ultimul se ocup de comanda ferestrelor i sesiunea de date. Funcia meniu Help se apeleaz direct cu succesiunea de taste Alt + H este o funcie prezentat n figura 11.16 care asigur generarea instruciunilor specifice oricrui program WINDOWS.

Figura 11.16 Comenzi ale barei de meniu Windows i Help din Visual FoxPro

11.3.7 Modul de lucru prin comenzi n Visual FoxPro Acest mod de lucru este diferit de cel anterior permind realizarea a metode de abordare a utilizrii programului total diferite: - prima este de tip interpretare care asigur posibilitatea de a introduce o comenzi i prin validarea cu tasta Enter se verific corectitudinea acesteia. Acest mod de lucru permite: o verificarea unor idei de program, o efectuarea unor operaiuni manuale n baza de date, o folosirea comenzilor SQL,

o o o o

o o o o

apelarea unor comenzi necuprinse iniial n program pentru generarea de rapoarte sau formulare, ntreinerea structurii bazei de date, relansarea n execuie a unei comenzi anterioare prin selectarea ei i apsarea tastei Enter. a doua este cea de a verifica programele scrise n cod surs deci un lucru de compilare a unui program, subprogram sau funcie care se va utiliza ulterior ntr-un program executabil. Succesiunea etapelor parcurse la realizarea unui program este prezentat n figura 11.17 unde prima faz este cea de scriere a programului ( se poate realiza prin scriere n Notpad sau cu editorul de texte ncorporat n program care asigur printr-o fereastr specific scrierea programului, lansarea acestuia se realizeaz prin tastarea n fereastra de comanda a comenzii MODI COMM ) i salvarea acestuia cu extensia .prg, dup care urmeaz faza de compilare a programului care se lanseaz din meniul sistem (DO)fiind generat fiierul cu extensia .fxp pentru ca n final se realizeaz fiierul cu extensia .exe, ( el se obine prin lansarea din fereastra de comand a instruciunii RUN TIME (BULID EXE)) acest stil permite: dezvoltarea programelor n vederea realizrii unor aplicaii flexibile, utilizarea tuturor comenzilor i funciilor speciale, utilizarea comenzilor din nucleul SQL, apelarea unor subprograme special create de programator i ne introduse n programul iniial.

Figura 11.17 Succesiunea fazelor de realizarea unui program n Visual FoxPro

OBS. Din meniul sistemului prin intermediul comenzii DO din Program se poate lansa n execuie un program generndu-se fiierul cu extensia .fxp dar dup executarea acestuia fiierul executabil nu se va pstra ci el va fi ters. NU acelai lucru se ntmpl i cu fiierul compilat. 11.3.8 Instruciuni de crearea i modificarea unei baze de date n mod uzual elementul central al unei baze de date este cel al realizrii unui tabel. El poate fi n prim faz creat pentru ca ulterior s poat fi dac este necesar modificat prin adugare de cmpuri, modificare de cmpuri existente ca i dimensiune, tip sau respectiv tergerea de cmpuri. Este foarte important ns ca modificrile s fie fcute nainte de a lansa n utilizare baza de date deoarece orice modificare a tabelelor poate produce pierderea de date prin tergere sau lipsa unor date din tabele prin adugare de cmpuri ulterioare. Comanda pentru crearea unei tabele este: - tastnd CREATE produs prin care se creeaz o baz de date cu extensia .dbf intrndu-se n faza de editare a tabelei. Obs. Cmpurile din Table Designer au anumite restricii specifice: - cel de tip Name nu poate fi mai lung de 10 caractere ncepnd cu o liter, - pentru cele de tip Type dac sunt: o Character nu au voie s fie mai luni de 254 caractere, o Numeric nu mai lungi de 20 caractere inclusiv +/-,

Logic maxim un caracter, Data maxim 8 caractere cu forma implicita ll/zz/aa, format care se poate schimba prin lansarea comenzii SET DATE TO, o Memo admite implicit 10 caractere dar pot fi introduse oricte caractere. - pentru cele de tip With se introduce valoarea numeric selectat din schema logic tabelar, - pentru cele tip Decimal se va introduce numrul de cifre dup zero dorite, - pentru cmpul Index se poate selecta modalitatea de indexare a tabelei la introducerea datelor n aceasta, lucru care permite din start o ordonare a tabelei fr a fin necesar o sortare ulterioar a acesteia. Exist ns i alte modaliti de a crea o tabel: - crearea unei noi tabele cu structura unei tabele existente n director, bucla de comand fiind: o o USE client COPY STRUCTURE TO clientn Varianta complet a instruciunii este: COPY STRUCTURE TO nume-tabel FIELDS list-cmpuri WITH CDX / WITH PRODUCTION DATABASES nume-baz de date NAME nume-tabel unde: nume-tabel este numele tabelei nou create; list-cmpuri este lista cmpurilor din noua tabel; nume-baz de date este numele bazei de date; nume-tabel este numele tabelei.

Avantajul copierii structuri unei baze de date tabelar n alt baz de date este dat de faptul c nu se pot face greeli de dimensiuni de cmpuri sau tip de caracter care la legarea tabelelor poate s produc erori. De aceea una dintre metodele pe care le considerm a fi bine a se utiliza este de a crea o tabel iniial unic cu toate cmpurile de legtur dintre tabele numit surs

urmnd ca dup aceea prin copierea structurii acesteia n celelalte tabele i adugarea cmpurilor ne comune s se evite eventualele erori mai sus menionate. Comanda pentru crearea unei baze de date este: - CREATE DATABASE produs prin care se creeaz o baz de date cu extensia .dbc Comanda pentru modificarea unei baze de date este: - MODIFY STRUCTURE prin care se deschide o fereastr de dialog care permite modificarea structurii prin selectarea unei baze de date tip tabelar. Exist dou modaliti: o prima prin folosirea buclei program i alegerea tabelului, USE MODIFY STRUCTURE o a doua pe baza buclei cnd tim tabelul, USE client1 MODIFY STRUCTURE 11.3.9 Deschiderea i nchiderea unei baze de date Aceast operaie este necesar pe ntreg parcursul lucrului cu bazele de date uzual de tip tabelar. Aceasta face parte din cadrul manevrelor de manipulare a bazelor de date.

Figura 11.18 Adugarea unei nregistrri cu comanda APPEND

Prima dintre acestea este cea de adugare de noi nregistrri ntr-o baz de date nou creat sau una n care s-au mai ncrcat date, instruciunile fiind cele de mai jos: USE client APPEND n Acest caz se deschide o nou fereastr care este prezentat n figura 11.18 cu activarea primului cmp liber din tabel. A doua este cea de modificare a unor nregistrri dintr-o tabel existent. Exist mai multe instruciuni, fiecare dintre acestea avnd anumite caracteristici: - prima dintre acestea este comanda CHANGE care permite modificarea unei tabele cu ajutorul unei ferestre figura 11.19 de editare n interiorul creia cu ajutorul cursorului luminos i a sgeilor sus jos se poate ajunge la nregistrarea care se dorete a se modifica . Se poate modifica ns i o anumit nregistrare caz n care trebuie specificat de exemplu cmpul Nr_f (numr factur) caz n care instruciunea este urmtoarea: CHANGE FIELDS Nr_f

Aceast variant are un dezavantaj c trebuie reinut denumirea cmpurilor

Figura 11.19 Modificarea unei nregistrri cu comanda CHANGE

a doua comand este cea BROWSE care asigur afiarea i editarea nregistrrilor dintr-o tabel situaie prezentat n figura 11.20, n care se observ c informaia este organizat pe orizontal pentru fiecare nregistrare i nu pe vertical ca n cazul anterior pentru prima comand. n capul tabelului se gsesc denumirile cmpurilor i succesiv fiecare nregistrare. Cu ajutorul sgeilor se poate realiza deplasarea pe vertical sau orizontal, iar cu pg_up sau pg_dn ntre pagini. i pentru aceast comand exist posibilitatea modificrii unui anumit cmp ca i pentru cealalt comand.

Figura 11.20 Modificare unei nregistrri cu comanda BROWSE

a treia variant de nlocuire a datelor este comanda REPLACE care modific nregistrrile tabelei curente prin nlocuire cu datele coninute n cmpul de nlocuire. n figura 11.21 este prezentat fereastra de comand i la partea superioar prin folosirea comenzii BROWSE rezultatul nlocuirii numrului de factur pentru toate nregistrrile cu valoarea 1. Liniile de comand utilizate sunt cele de mai jos:

Figura 11.21 Modificare prin nlocuire a nregistrrilor cu comanda REPLACE

USE client REPLACE ALL Nr_f WITH 1 Rezult c aceast instruciune poate nlocui datele dintr-un tabel cu valorile dorite noi. Din punctul de vedere al comenzilor ca i structur complet acestea au urmtoarea sintax: CHANGE FIELDS list-cmpuri scope FOR expL1 WHILE expL2 FONT expC1, expN1 STYLE expC2 FREEZE camp KEY expr1, expr2 LAST LEDIT REDIT LPARTITION NOAPPEND NOCLEAR NODELETE NOEDIT NOMODIFY NOLINK NOMENU NOOPTIMIZE NORMAL NOWAIT PARTITION expN2 PREFERENCE expC3 REAT SAVE TIMEOUT expN3 TITLE expC4 VALID :F expL3 ERROR expC3 WHEN expL4 WIDTH expN4 WINDOW nume-fer1 IN WINDOW nume-fer2 / IN SCREEN COLOR SCHEME expN5 / COLOR lista-culori unde: list-cmpuri afieaz numai cmpurile din list; scope este clauza care definete condiiile de selecie; expL1, expL2 sunt condiiile pentru care expresiile sunt adevrate; camp permite modificarea la un singur cmp i afiarea acestuia; exp reprezint expresii sau condiii care trebuie ndeplinite; nume-fer reprezint activat n fereastra iniial; lista-culori stabilete lista de culori.

BROWSE FIELDS list-cmpuri FONT expC1, expN1 STYLE expC2 FOR expL1 FREEZE camp KEY expr1, expr2 LAST LEDIT REDIT LPARTITION NOAPPEND NOCLEAR NODELETE NOEDIT NOMODIFY NOLINK NOMENU NOOPTIMIZE NORMAL NOWAIT PARTITION expN2 RES PREFERENCE expC3 TITLE expC4 SAVE VALID expL2 ERROR expC5 WHEN expL3 WIDTH expN5 WINDOW nume-fer1 IN WINDOW nume-fer2 / IN SCREEN COLOR SCHEME expN5 / COLOR lista-culori

unde:

list-cmpuri afieaz numai cmpurile din list; scope este clauza care definete condiiile de selecie; expL1, expL2 sunt condiiile pentru care expresiile sunt adevrate; - camp permite modificarea la un singur cmp i afiarea acestuia; - exp reprezint expresii sau condiii care trebuie ndeplinite; - nume-fer reprezint activat n fereastra iniial; - lista-culori stabilete lista de culori. Comenzile de nchidere sunt de mai multe tipuri: - nchide toate tipurile de fiiere: CLOSE ALL; - nchide fiierele de tipul definit: CLOSE ALTERNATE; - nchide toate tabelele: CLOSE DATABASE; - nchide toate fiierele tip format: CLOSE FORMAT; - nchide toate fiierele index: CLOSE INDEX; - nchidere fiiere de proceduri: CLOSE PROCEDURE. 11.3.10 Comenzi de gestionare a fiierelor n VisualFoxpro Lucrul cu fiiere se bazeaz pe mai multe tipuri de operaii: - copiere: Copy file nume to nume1, - redenumire: Rename nume to nume1, - tergere: Erase nume, sau Delete file nume, - afiarea coninutului unui fiier: Type nume to printer, Type nume to file nume1, - afiarea coninutului unui director: Dir C:/ to printer. Un set special de lucru este cel de adugare de nregistrri n tabele. Sintaxa comenzii este:

APPEND FROM nume-fiier ? FIELDS list-cmpuri FOR exprlog TYPE DELIMITED WITH TAB / WITH BLANK / WITH delimitator DIF

unde: nume-fiier este numele fiierului de unde se import datele; ? va determina apariia ferestrei de dialog Directory din care se va alege tabela surs;

list-cmpuri reprezint cmpurile ale cror valori vor fi adugate n tabela nou creat; - expr-log este condiia de realizare a importului; - TYPE definete extensia fiierului surs care poate fi: o DIF extensie folosit de Visicalc; o XLK extensie folosit de Microsoft Excel ver.2.0; o PDOX extensie folosit de Paradox, etc. O alt variant este cea de APPEND GENERAL. Este de urmtoarea structur:
APPEND GENERAL cmp-general FROM nume-fiier DATA CEXp LINK CLASS clas_OLE

unde: cmp-general conine numele cmpului de tip general care va fi memorat; nume-fiier este fiierul din care se extrage coninutul unui obiect OLE; clas_OLE specific n mod explicit clasa de obiecte OLE.

De exemplu importul unei foi de calcul EXCEL ntr-un cmp de tip general:
APPEND GENERAL EXCELCHART OBIECTOLE FROM FOAIE1.XLC CLASS

O alt comand de este cea de adugare a unei noi nregistrri ntr-o tabel care este activ. Dac lucreaz mai muli utilizatori simultan, n momentul activrii introducerii datelor tabela este blocat pentru ali utilizatori, urmnd ca acetia s o poat activa numai dup terminarea nregistrrii. Sintaxa este:
APPEND FROM ARRAY var-matrice FOR expr-log FIELDS listcmpuri / FIELDS LIKE ablon / FIELD EXCEPT ablon

unde: var-matrice este numele masivului care va alimenta tabela; expr-log este condiia de realizare a importului;

list-cmpuri reprezint cmpurile ale cror valori vor fi adugate n tabela nou creat; expr-log este condiia de realizare a importului;

11.3.11 tergerea datelor dintr-o baz de date Este o operaie important ea putnd anula o nregistrare greit introdus de exemplu s-a emis un aviz dar pe el s-a greit o valoare constat la faza de facturare, n acest moment avizul se restituie integral se anuleaz prin barare nregistrarea fcut se terge. Nu acelai lucru se ntmpl dac o factur a fost nregistrat n contabilitate ntr-o anumit zi i la o alt dat se constat greeala. n acest moment se emite o factur n rou care anuleaz factura iniial urmnd ca apoi s se emit o factur nou. Exist mai multe variante de tergere funcie de scopul urmrit: - prima dintre acestea este comanda DELETE. Ea asigur marcarea articolelor n vederea tergerii. Dac cumva se dorete recuperarea lor se poate folosi comanda RECALL. tergerea fizic se face dup comanda DELETE prin folosirea comenzii PACK. - a doua variant este cea care este dat de comanda ZAP. Aceasta asigur tergerea fizic a tuturor articolelor din tabela curent. Ea este echivalent cu comanda DELETE ALL urmat de comanda PACK dar ca durat de timp este mai scurt deoarece nu mai exist pasul intermediar de marcare i pasul de verificare nregistrare cu nregistrare dac este marcat sau nu pentru tergerea definitiv. - a treia variant este cea care asigur tergerea tuturor tabelelor care se realizeaz cu comanda DELETE FILE. Fiierele terse cu aceast comand nu mai sunt recuperabile!!!. a patra variant este cea dat de comanda SET DELETED ON/OFF care se folosete pentru a arta dac comenzile marcate vor fi terse sau nu.

11.3.12 Sortarea, ordonarea, indexarea unei baze de date Una dintre fazele cele mai importante ale lucrului cu o baz de date este cea de sortare i ordonare dup un anumit criteriu. Aceast faz poate uura foarte mult lucru cu o baz de date n vederea gsirii unei informaii sau grup de informaii. Lucrul este cu att mai necesar deoarece ncrcarea datelor ntr-o baz de date se face n mare msur aleatoriu fr a se face o ordonare a actelor. Sortarea unei tabele se face cu ajutorul comenzii SORT. Ea se poate realiza la nivelul unui cmp sau la nivel de tabel. Pentru sortarea la nivelul unui cmp instruciunile de comand care sunt necesare sunt: USE client SORT ON Nume_cl /A TO client1 La nivel de cmp se observ c dup apelarea tabelei care se dorete a se sorta se trece la introducerea liniei de comand care are mai multe caracteristici. Prima este c dup instruciunea tipic SORT ON se va introduce numele cmpului care se va supune procesului de sortare urmat de unul din cele dou moduri de sortare a cmpului: - cresctor comand simbolizat cu /A, - descresctor comand simbolizat cu /D. Urmeaz introducerea numelui nou al tabelei n care se va trece rezultatul tabelei sortate. Rezult deci c avem un avantaj c prin folosirea acestei comenzi se gsesc n calculator ambele tabele. tergerea tabelului rezultat dup sortare se poate face cu seria de comenzi: DELETE FILE client1 PACK

Tabelul iniial

Sortarea tabelului dup mai multe cmpuri se face prin selectarea succesiv a ordini dup care s se realizeze sortarea n modul dorit. Liniile de comand sunt: USE client SORT ON Nume_cl /A, Nr_f /A

TO client1

n aceast situaie tabelul fiind sortat ascendent dup numele clientului i pentru acelai client n ordinea cresctoare dup numrul de factur.

Figura 11.21 Sortarea tabelului client dup cmpul Nume_cl cu comanda SORT

Un alt mod de sortare este cel dup o anumit condiie. Liniile de comand folosite sunt: USE client SORT ON Nume_cl /A

TO client1 FOR gigi

O alt modalitate de ordonare a unei tabele se poate realiza cu ajutorul comenzii INDEX care este o comand de indexare a unui tabel. Pentru un tabel cu dimensiuni mari comanda de sortare dureaz mult motiv pentru care se recomand sortarea prin indexare. Un alt dezavantaj al sortrii este c dup orice introducere de date este necesar o nou sortare care implic continuu ca spaiul folosit s creasc dublu fa de dimensiunile iniiale. Comanda de indexare se poate folosi numai pentru un cmp. O modalitate eficient de

lucru este i aceea de a defini la nceputul lucrului cu tabele la faza de creare a tabelei o cheie de indexare pe criteriul dorit n acest moment apare un fiier suplimentar cu extensia .cdx i acelai nume cu cel iniial. Acest lucru face ca baza de date s fie indexat automat la introducerea datelor. Pentru buna funcionare a comenzii INDEX este necesar setarea comenzii SET TALK la valoarea ON. Linia de comand este urmtoarea: USE client INDEX ON Nume_cl

TO client1.idx

O alt modalitate este cea de indexare dup mai multe cmpuri a crei linii de comand sunt prezentate mai jos:
USE client INDEX ON Nume_cl +Localit TO client1.idx UNIQUE

Indexarea se face dup nume client i localitate simultan fr a admite nregistrri duble. Deoarece comanda nu tie s lucreze n paralel cu variabile text i numerice pentru a transforma o variabil numeric n una text se va folosi instruciunea STR(Nr_f, 7). O alt modalitate este indexarea dup un anumit criteriu dat prin intermediul comenzii FOR. De exemplu se va face selectarea dup criteriul Localiat Timioara. Liniile de comand sunt:
USE client INDEX ON Nume_cl FOR Localit=Timisoara TO client1.idx ?? NDX(1) && Afieaz primul fiier indexat ? RECOUNT() && Afieaz numrul de nregistrri indexate CLOSE ALL

Se observ apariia fa de variantele anterioare a trei linii suplimentare. Prima aa dup cum se observ i n partea dreapt din mesajul text de ajutor afieaz numele primului fiier indexat, operaie necesar pentru a determina apoi numrul de nregistrri indexate n linia a patra din setul de instruciuni. n final sunt nchise toate tabelele deschise n linia de instruciune cinci. OBS.

Indexarea dup cmpuri numerice multiple poate s nu ofere acelai rezultat dorit, Probleme pot s apar i dac se uit s se activeze un anumit tabel index i se folosesc instruciuni care lucreaz numai cu tabelele index active. 11.3.13 Instruciuni de acces la o baz de date

Un alt set de instruciuni importante este cel de acces la date care sunt cuprinse n tabel. Exist comenzi care lucreaz numai cu tabele indexate i respectiv comenzi care lucreaz numai cu tabele indexate. Prima dintre acestea este comanda GO. Ea poziioneaz punctul de acces n tabel pe nregistrarea fizic specificat. Liniile de comand sunt: USE client GO 3 n acest caz se poziioneaz cursorul pe nregistrarea a treia din tabel. Pentru a vedea pe care nregistrare este poziionat cursorul se poate folosi instruciunea RECON(). Se poate realiza i poziionarea pe prima nregistrare din tabel cu instruciunea GO RECON(0). O alt comand care se poate utiliza este SKIP care permite poziionarea cursorului pe o anumit nregistrare fa de cea curent. Linia de comand este: USE client SKIP-3 IN client Cursorul se va poziiona pe nregistrarea situat cu trei linii naintea celei curente. O alt comand este cea LOCATE. Ea permite cutarea ntr-o tabel pentru o anumit condiie fr a fi necesar indexarea tabelului. Sistemul gsete prima nregistrare care satisface condiia impus i abandoneaz cutarea celorlalte chiar dac satisfac condiia. Liniile de comand sunt: USE client LOCATE FOR Nr_f=1234

O alt serie de comenzi este cea SEEK i FIND. Aceste comenzi USE client INDEX ON Nr_f FIND 1234 DISP CLOSE ALL

TO IDBEN

lucreaz numai cu fiiere indexate. Liniile de comand pentru aceste instruciuni sunt: USE client INDEX ON Nr_f TO IDBEN W=1234 SET INDEX TO INDEN SEEK W sau SEEK 1234 DISP CLOSE ALL 11.3.14 Instruciuni de vizualizare a datelor dintr-o baz de date n afar de crearea, cutarea i prelucrarea datelor dintr-o tabel mai avem i afiarea nregistrrilor dintr-o tabel. Exist dou modaliti. Prima este comanda LIST care permite vizualizarea tuturor nregistrrilor i nu face pauz pentru liste mai mari de un ecran i nu sunt afiate nregistrrile marcate pentru tergere dac comanda SET DELETED este setat pe ON. Comanda specific este de mai multe tipuri: - pentru afiarea structurii tabelei: USE client LIST STRUCTURE - pentru USE client LIST

11.3.15 Sintaxa comenzilor de configurarea mediului Visual FoxPro Exist o serie de comenzi care se recomand s fie setate la nceperea lucrului cu programul de calcul. Rolul acestora este de a asigura funcionarea corespunztoare a programului. Primele sunt cele de starea sistemului (cu litere ngroate este reprezentat comanda, iar cu On sau Off modul de lucru cuplat sau decuplat): - sunet: Set Bell On/Off, - ceasul: Set Clock On/Off, - bara de stare: Set Status Bar On/Off, - clipirea ecranului: Set Blink On/Off, - afiare rezultat comenzi: Set Talk On/Off, - setare director curent: Set Default to C:/, - setare afiare ceas pe ecran: Set clock to [x,y], - setare afiare or pe ecran: Set Hours to [12/24], Pentru configurarea tipului de date: - numr de zecimale: Set Decimals to [2], stabilete numrul de zecimale la 2, Pentru controlul ieirilor de informaii: - ieirea ctre ecran: Set Console On/Off, - ieirea ctre imprimant: Set Printer On/Off, - ieirea spre un fiier: Set Printer to [nume fi;ier] 11.3.16 Modaliti de legare a tabelelor dintr-o baz de date Legturile servesc la manipularea informaiilor ntre tabelele unei baze de date. Aceast manipulare se poate realiza att la nivelul limbajului de programare, ct i la nivelul instruciunilor printr-o comand special. La nivelul programului se face prin scrierea unei proceduri care este specific limbajului de programare. 11.3.17 Realizarea programelor n Visual FoxPro Limbajul de programare specific conine comenzi la apelarea crora se efectueaz realizarea automat a anumitor faze de prelucrare a tabelelor de date.

Crearea unui program surs se face prin intermediul instruciunii MODIFY COMMAND, care apeleaz editorul de texte propriu al sistemului. 11.3.18 Tipuri de extensii ale limbajului Visual FoxPro Exist cteva extensii standard recunoscute de sistem: .dbf tabele baz de date; .dbc fiier baz de date; .prg fiier de comenzi program; .fpt fiier care conin cmpuri memo; .idx fiier care conine indeci; .cdx fiier care conine indeci;

Bibliografie 1. Mirela Munteanu, .a. Dezvoltarea aplicaiilor cu baze de date n Visual FoxPro. Editura BIC ALL, Bucureti, 2001. 2. Dima Gabriel i Mihai Fox 2.7 sub Windows Editura Teora, Bucureti, 2002.

You might also like