+ All Categories
Home > Documents > Limbajul Visual FoxPro

Limbajul Visual FoxPro

Date post: 05-Aug-2015
Category:
Upload: raisa
View: 80 times
Download: 4 times
Share this document with a friend
49
11. 11.Limbajul Visual FoxPro. .1 Consideraţii generale asupra limbajului .1.1 Consideraţii generale Toate limbajele de programare au în general aceeaşi structură de principiu a instrucţiunilor. Sunt unele limbaje de programare care sunt dedicate unui anumit tip de prelucrări de date, motiv pentru care dispun de biblioteci de subprograme care asigură automatizarea anumitor faze de prelucrarea datelor. De exemplu programele dedicate prelucrării matematice a datelor de tip Matcad sau Matematica. Altele sunt pentru prelucrarea informaţiilor care sunt sub formă de baze de date, de tip FoxPro, Dbase, Paradox sau SQL, etc. Alte programe sunt de tip general dispunând de biblioteci de funcţii şi asigurând o flexibilitate mare de prelucrare a informaţiei atât pe ecran pentru jocuri de exemplu C/C++ sau Cod maşină, precum şi altele mai puţin flexibile dar cu biblioteci de programe care
Transcript
Page 1: Limbajul Visual FoxPro

11.

11.Limbajul Visual FoxPro.

11.1 Consideraţii generale asupra limbajului

11.1.1 Consideraţii generale

Toate limbajele de programare au în general aceeaşi structură de principiu a instrucţiunilor. Sunt unele limbaje de programare care sunt dedicate unui anumit tip de prelucrări de date, motiv pentru care dispun de biblioteci de subprograme care asigură automatizarea anumitor faze de prelucrarea datelor. De exemplu programele dedicate prelucrării matematice a datelor de tip Matcad sau Matematica. Altele sunt pentru prelucrarea informaţiilor care sunt sub formă de baze de date, de tip FoxPro, Dbase, Paradox sau SQL, etc. Alte programe sunt de tip general dispunând de biblioteci de funcţii şi asigurând o flexibilitate mare de prelucrare a informaţiei atât pe ecran pentru jocuri de exemplu C/C++ sau Cod maşină, precum şi altele mai puţin 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

Diferenţa între programul sursă şi cel executabil este că în cazul primului este necesară mai întâi instalarea şi pornirea programului în care se scrie codul sursă, în timp ce pentru programul executabil acest lucru nu mai este necesar el rulând direct fără a mai fi necesară lansarea programului sursă. Acest lucru înseamnă că utilizatorul nu trebuie să deţină licenţă şi pentru

Page 2: Limbajul Visual FoxPro

2 Calculatoare personale. Iniţiere în utilizare

programul în care a fost realizat programul executabil el trebuind să deţină numai licenţă pentru programul executabil pe care de fapt l-a achiziţionat.

Alegerea între aceste tipuri de programe se face în faza de temă de proiectare sau cel mai târziu 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 celălalt.

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 putând fi folosite şi în alte domenii decât prelucrarea bazelor de date.

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

11.2.1 Consideraţii generale

Prin Baze de date se înţelege un ansamblu de informaţii organizate tabelar care are următoarele proprietăţi:

- este organizat, pe mai multe niveluri ale informaţiei pe suportul de informaţie extern uzual hard disc;

- este coerent, corespunzând unor proprietăţi restrictive specifice de integritatea informaţiei;

- este structurat, astfel încât să corespundă unui model de tip bază de date;

- este accesibil, putând fi folosit de mai mulţi operatori simultan sau succesiv.

Realizarea unei baze de date urmăreşte aceeaşi paşi pe care i-am prezentat la subcapitolul anterior. În acelaşi 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, relaţiile dintre tabele, formularele, rapoartele şi interogările. În acelaşi timp tipurile de date şi variabile cu mici diferenţe sunt identice cu cele de la Capitolul 9.1, motiv pentru care nu vom mai insista asupra acestora. Diferenţa provine din modul de definire specific bazelor de date pentru acestea.

Page 3: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 3

11.2.2 Program sursă

Pentru o mai bună înţelegere a modului de folosire şi utilizare a programului Visual FoxPro vom porni de la o aplicaţie economică legată de desfacerea produselor unei firme de producţie. Pentru aceasta trebuie să avem în vedere care sunt elementele economice folosite în această fază:

- primul şi cel mai important este factura de vânzare a produselor,- al doilea avizul de transport al produselor, - al treilea este bonul de livrare a produselor,- în final pentru stingerea obligaţiei create elementele de plată a

produselor comercializate chitanţa, fila de CEC sau ordinul de plată.

Circuitul economic este următorul: pe baza bonului de livrare a mărfii 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 mărfii şi factura corespunzătoare. Transportă marfa la client unde o descarcă şi se semnează exemplarul roşu şi verde de către client, se stampilează, se întocmesc formalităţile de plată a mărfii şi se eliberează chitanţa pentru suma de bani primită sau se primeşte ordinul de plata sau fila CEC pentru suma de bani corespunzătoare 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 tipărite iniţial 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 informaţia pentru utilizare într-un tabel din care de fiecare când 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ă corespunzătoare informaţiei şi lungimea acestei celule. Este foarte importantă o alegere optimă pentru aceste celule pentru a fi satisfăcute cele două cerinţe importante, definirea cât mai clară şi exactă a elementului cât şi o lungime cât mai mică şi egală pentru celule astfel încât să fie utilizată la maxim aceasta iar mărimea bazei de date să fie cât mai mică. O lungime mare măreşte dimensiunile bazei de date nejustificat de mult iar o lungime prea mică face ca elementele să nu poată fi diferenţiate î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 legătură între tabelul de clienţi şi cel de facturi/avize este câmpul nume client. Aşa după

Page 4: Limbajul Visual FoxPro

4 Calculatoare personale. Iniţiere în utilizare

cum se poate presupune aceste celule trebuie să aibă obligatoriu aceeaşi lungime şi să fie de acelaşi tip.

ClienţiNr_f Nume_cl Localit Cod Adresa Telef Banca ContNum7 Text20 Text32 Num6 Text64 Num16 Text32 Text321234567 Popescu Timisoara 334561 Negrutzi,

nr.10741122334 BCR

Timisoara2511.1/ROL

Figura 11.1 Structură tabel clienţi

Facturi/Avize/Bon expediţieNr_f Nr_av Nr_bon Data Nume_cl Valoare_

TotalaValoare_Neta

Valoare_ TVA

Num7 Num7 Num7 Dat zz/mm Text20 Num16 Num16 Num161234567 1234567 1234567 22/04 Popescu 1.190.000 1.000.000 190.000

Figura 11.2 Structură tabel facturi/avize/bon consum

ProduseNr_pr Nume_p UM Cantitate Valoare TVA Nr_fNum7 Text20 Text6 Num12 Num16 Num16 Num71234567 Furtun M 10 1.000.000 190.000 1234567

Figura 11.3 Structură tabel produse

Date transportNume Localitate Bulet Numar_m Nr_f OraText32 Text20 Text10 Text12 Num7 Orahh/mmPop Ion Timisoara TM345689 TM08XXL 1234567 10/30

Figura 11.4 Structură tabel mijloc de transport

Stoc produseNume_p Valoare_Neta Cantitate_int Cantitate_ies Nr_bon Sold_nText20 Num16 Num16 Num16 Num7Furtun 50 50Furtun 100.000 10 1234567 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 legătură este câmpul număr factură.

Page 5: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 5

În partea inferioară se găsesc 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 legătură este tot câmpul număr factură.

Pe baza bonului de consum se descarcă la magazie fişa de magazie pe produs care se debitează pe baza stocului din luna anterioară sau a bonului de transfer din secţia de producţie. În figura 11.5 este prezentată structura unei fişe de magazie unde se observă că câmpul de legătură este bonul de expediţie.

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 mărimilor 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ă funcţionarea programului. Pentru aceasta vom reveni la începutul exemplului şi vom încerca organizarea fluxului informaţiilor astfel încât să se poată lucra cât mai uşor cu acest program.

O primă decizie care trebuie luată este cea de a crea la fiecare început de lună fişele de magazie sau o dată pe an sau la începutul lucrului cu programul dacă am început activitatea în mijlocul perioadei calendaristice a anului.

Aceeaşi decizie trebuie luată şi în ce priveşte evidenţa livrărilor de produse şi a situaţie livrărilor şi încasărilor pe clienţi.

Din ambele puncte de vedere este cel mai bine ca să existe opţiunea de a avea evoluţia stocurilor de produse zilnic, lunar sau pe o anumită perioadă de timp, în timp ce pentru situaţia clienţilor este necesar ca să se poată obţine situaţia la finele unei perioade calendaristice, iar situaţia livrărilor 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 opţiuni sunt cele de tipărire pe ecran şi respectiv la imprimantă a acestor rapoarte. Pe baza acestor observaţii a fost realizată schema bloc cu legăturile dintre toate tabelele care fac obiectul bazei de date.

În figura 11.6 este prezentată schema relaţională.

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 funcţionării programului.

Page 6: Limbajul Visual FoxPro

6 Calculatoare personale. Iniţiere în utilizare

Figura 11.6 Schema tabelară cu legăturile dintre tabele

11.3 Limbajul de programare Visual FoxPro

11.3.1 Interfaţa 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 permiţând numai modificări ale ecranului de lucru de tip restaurare, mutare, dimensiune, micşorare, mărire şi în final închidere fereastră, a doua bară cea de meniu este mai complexă figura 11.9 fiind prezentată pe etape funcţie de rolul fiecărui element al meniului principal.

Page 7: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 7

11.3.2 Funcţiile 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 operaţiilor de lucru cu fişierele (fişier nou, deschidere fişier existent, închidere fişier deschis),

- al doilea este cel de salvarea fişierelor,- al treilea de import şi export de fişiere,- al patrulea de tipărire şi expediere fişier către alte surse de salvare

diferite de cea a hard discului,- al cincilea de ieşire 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 prevăzută la rândul ei cu o bară de titlu, o bară de meniu şi o bară de unelte.

Figura 11.7 Ecranul principal Visual FoxPro

La apăsarea 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 împărţită în două coloane, dintre care prima este la rândul ei împărţită în 5 blocuri orizontale structurate funcţie de tipul acestora care sunt:

- proiect nou primul bloc,

Page 8: Limbajul Visual FoxPro

8 Calculatoare personale. Iniţiere în utilizare

- elemente noi de tip Bază de date, Tabel, Relaţii, Legături, Vizualizare, etc,

- blocul trei se referă la modul de introducere şi afişarea rezultatelor de tip: Format, Raport şi Label,

- al patrulea se referă la programe şi clase,- iar ultimul la fişiere text şi meniuri.

Figura 11.8 Comenzi ale barei de titlu Visual FoxPro

11.3.3 Funcţia meniu File a Visual FoxPro

Figura 11.9 Comenzi ale barei de meniu funcţiile FILE ale Visual FoxPro

Page 9: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 9

Figura 11.10 Ecran principal creare tabel în Visual FoxPro

În figura 11.10 se observă ce se întâmplă la acţionarea butonului fişier nou tabelă. În partea stângă 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 găsesc trei butoane de validare care asigură primul salvarea tabelei, al doilea părăsirea 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ă instrucţiunea CREATE . La apăsarea 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 iniţial

Page 10: Limbajul Visual FoxPro

10 Calculatoare personale. Iniţiere în utilizare

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ă numărul de factură, lucru vizibil prin acţionarea tabelului Indexes. Validarea finală se ace prin apăsarea butonului OK.

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

Page 11: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 11

În figura 11.13 se observă cum se poate apela un tabel creat pentru a fi vizualizat sau modificat atît pe varianta meniu căt ş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 întâi trebuie să se introducă comanda de creare iniţială

generală CREATE, - urmează instrucţiunea de folosire USE urmată de calea pe care

trebuie să o urmeze programul pentru a găsi fişierul (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 instrucţiunea SHARED,

- urmează instrucţiunea BROWSE LAST, care are rolul de a arăta ultima structură a tabelei selectate,

- iar în final se activează instrucţiune MODIFY STRUCTURE, care are rolul de a activa comanda de modificare a structurii iniţial create.

11.3.4 Funcţia meniu Edit şi Format a Visual FoxPro

Funcţia meniu Edit se apelează direct cu succesiunea de taste Alt + E este o funcţie prezentată în figura 11.14 care asigură efectuarea a 6 blocuri de instrucţiuni de lucru în general în modul text:

- primul bloc cuprinde comenzile de ştergere sau revenire în cazul unor operaţii nedorite de ştergere,

- al doilea bloc se ocupă cu tipurile de instrucţiuni de tăiere, copiere, trecere normală sau specială şi ştergere,

- al treilea se ocupă cu selectarea tuturor elementelor,- al patrulea bloc se ocupă cu căutarea în cadrul unui program a

unei lini, a căutării unice sau repetitive şi a înlocuiri unei comenzi din program,

- al cincilea bloc grupează funcţiile de inserare obiect şi legături,- ultimul este cel de editare a proprietăţilor.

Page 12: Limbajul Visual FoxPro

12 Calculatoare personale. Iniţiere în utilizare

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

Funcţia meniu Format se apelează direct cu succesiunea de taste Alt + F este o funcţie prezentată în figura 11.14 care asigură efectuarea a 3 blocuri de instrucţiuni de lucru în general în modul text:

- primul bloc cuprinde comenzile de alegerea caracterului şi a dimensiunilor acestuia,

- al doilea se referă la spaţiul dintre linii fiind de tip selecţie,- ultimul fiind un set de instrucţiuni speciale.

11.3.5 Funcţia meniu Tools şi Program a Visual FoxPro

Funcţia meniu Tools se apelează direct cu succesiunea de taste Alt + T este o funcţie prezentată în figura 11.15 care asigură efectuarea a 4 blocuri de instrucţiuni de apelare a interfeţelor şi instrumentelor specifice:

Page 13: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 13

- primul bloc cuprinde comanda de ajutor care este structurată pe tipurile de fişiere prezentate în partea de definire a unui fişier 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 setările implicite ale elementelor care constituie comenzile de lucru şi lansare salvare ale interfeţei.

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

Funcţia meniu Program se apelează direct cu succesiunea de taste Alt + P este o funcţie prezentată în figura 11.15 care asigură efectuarea a 2 blocuri de instrucţiuni de lansare şi oprire:

- primul bloc cuprinde funcţiile care permit lansarea în execuţie a unui program, părăsirea, suspendarea execuţiei acestuia sau rezumarea execuţiei lui,

- al doilea bloc unic este cel care are rolul de a verifica funcţionare programului.

Page 14: Limbajul Visual FoxPro

14 Calculatoare personale. Iniţiere în utilizare

Un rol aparte îl are aşa după cum am arătat sub funcţia Options din funcţia meniu Tools. În figura 11.15.a se prezintă ecranul care apare ca urmare a accesării acestei opţiuni. Primul lucru se selectează tabela File Locations după care va apărea o înşiruirea de instrucţiuni şi locaţii. Se va face dublu clic cu mausul pe Default Directory moment în care se activează următoarea fereastră Change File Location în care se bifează butonul radio Use default directory după care prin apăsarea cu mausul a butonului de căutare se activează o nouă fereastră cea numită Select Directory în care se selectează calea în care se găsesc fişierele de lucru ale programului. După validarea butoanelor Select, Ok, Set As Default, Ok se va realiza încărcarea căii în care sunt salvate fişierele de lucru.

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

11.3.6 Funcţia meniu Window şi Help a Visual FoxPro

Funcţia meniu Window se apelează direct cu succesiunea de taste Alt + W este o funcţie prezentată în figura 11.16 care asigură efectuarea a 3 blocuri de instrucţiuni de setare a parametrilor ferestrelor de lucru:

Page 15: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 15

- 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.Funcţia meniu Help se apelează direct cu succesiunea de taste Alt +

H este o funcţie prezentată în figura 11.16 care asigură generarea instrucţiunilor specifice oricărui 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 permiţând realizarea a metode de abordare a utilizării 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 operaţiuni manuale în baza de date,o folosirea comenzilor SQL,o apelarea unor comenzi necuprinse iniţial în program

pentru generarea de rapoarte sau formulare,o întreţinerea structurii bazei de date,o relansarea în execuţie a unei comenzi anterioare prin

selectarea ei şi apăsarea tastei Enter.o a doua este cea de a verifica programele scrise în cod

sursă deci un lucru de compilare a unui program,

Page 16: Limbajul Visual FoxPro

16 Calculatoare personale. Iniţiere în utilizare

subprogram sau funcţie 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 fişierul cu extensia .fxp pentru ca în final se realizează fişierul cu extensia .exe, ( el se obţine prin lansarea din fereastra de comandă a instrucţiunii RUN TIME (BULID EXE)) acest stil permite:

o dezvoltarea programelor în vederea realizării unor aplicaţii flexibile,

o utilizarea tuturor comenzilor şi funcţiilor speciale,o utilizarea comenzilor din nucleul SQL,o apelarea unor subprograme special create de programator

şi ne introduse în programul iniţial.

Page 17: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 17

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 execuţie un program generându-se fişierul cu extensia .fxp dar după executarea acestuia fişierul executabil nu se va păstra ci el va fi şters. NU acelaşi lucru se întâmplă şi cu fişierul compilat.

11.3.8 Instrucţiuni de crearea şi modificarea unei baze de date

În mod uzual elementul central al unei baze de date este cel al realizării unui tabel.

El poate fi în primă fază creat pentru ca ulterior să poată fi dacă este necesar modificat prin adăugare de câmpuri, modificare de câmpuri existente ca şi dimensiune, tip sau respectiv ştergerea de câmpuri. Este foarte important însă ca modificările să fie făcute î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 adăugare de câmpuri ulterioare.

Comanda pentru crearea unei tabele este:- tastând CREATE produs prin care se creează o bază de date cu

extensia .dbf intrându-se în faza de editare a tabelei.Obs. Câmpurile din Table Designer au anumite restricţii specifice:- cel de tip Name nu poate fi mai lung de 10 caractere începând 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 +/-,o Logic maxim un caracter,o 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 oricâte caractere.

- pentru cele de tip With se introduce valoarea numerică selectată din schema logică tabelară,

- pentru cele tip Decimal se va introduce numărul de cifre după zero dorite,

Page 18: Limbajul Visual FoxPro

18 Calculatoare personale. Iniţiere în utilizare

- pentru câmpul Index se poate selecta modalitatea de indexare a tabelei la introducerea datelor în aceasta, lucru care permite din start o ordonare a tabelei fără a fin necesară o sortare ulterioară a acesteia.

Există însă şi alte modalităţi de a crea o tabelă:- crearea unei noi tabele cu structura unei tabele existente în

director, bucla de comandă fiind:

USE clientCOPY STRUCTURE TO clientn

Varianta completă a instrucţiunii este:

COPY STRUCTURE TO nume-tabel FIELDS listă-câmpuri WITH CDX / WITH PRODUCTION DATABASES nume-bază de date NAME nume-tabelă

unde: - nume-tabel este numele tabelei nou create;- listă-câmpuri este lista câmpurilor 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 greşeli de dimensiuni de câmpuri sau tip de caracter care la legarea tabelelor poate să producă erori. De aceea una dintre metodele pe care le considerăm a fi bine a se utiliza este de a crea o tabelă iniţială unică cu toate câmpurile de legătură dintre tabele numită sursă urmând ca după aceea prin copierea structurii acesteia în celelalte tabele şi adăugarea câmpurilor ne comune să se evite eventualele erori mai sus menţionate.

Comanda pentru crearea unei baze de date este:- CREATE DATABASE produs prin care se creează o bază de

date cu extensia .dbcComanda 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ă modalităţi:

o prima prin folosirea buclei program şi alegerea tabelului,

Page 19: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 19

USEMODIFY STRUCTURE

o a doua pe baza buclei când ştim tabelul,

USE client1MODIFY STRUCTURE

11.3.9 Deschiderea şi închiderea unei baze de date

Această operaţie 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 Adăugarea unei înregistrări cu comanda APPEND

Prima dintre acestea este cea de adăugare de noi înregistrări într-o bază de date nou creată sau una în care s-au mai încărcat date, instrucţiunile fiind cele de mai jos:

USE clientAPPEND

În Acest caz se deschide o nouă fereastră care este prezentată în figura 11.18 cu activarea primului câmp liber din tabel.

Page 20: Limbajul Visual FoxPro

20 Calculatoare personale. Iniţiere în utilizare

A doua este cea de modificare a unor înregistrări dintr-o tabelă existentă. Există mai multe instrucţiuni, fiecare dintre acestea având anumite caracteristici:

- prima dintre acestea este comanda CHANGE care permite modificarea unei tabele cu ajutorul unei ferestre figura 11.19 de editare în interiorul căreia cu ajutorul cursorului luminos şi a săgeţilor sus jos se poate ajunge la înregistrarea care se doreşte a se modifica . Se poate modifica însă şi o anumită înregistrare caz în care trebuie specificată de exemplu câmpul Nr_f (număr factură) caz în care instrucţiunea este următoarea:

CHANGE FIELDS Nr_f

Această variantă are un dezavantaj că trebuie reţinută denumirea câmpurilor

Figura 11.19 Modificarea unei înregistrări cu comanda CHANGE

- a doua comandă este cea BROWSE care asigură afişarea şi editarea înregistrărilor dintr-o tabelă situaţie prezentată în figura 11.20, în care se observă că informaţia este organizată pe orizontală pentru fiecare înregistrare şi nu pe verticală ca în cazul anterior pentru prima comandă. În capul tabelului se găsesc denumirile câmpurilor şi succesiv fiecare înregistrare. Cu ajutorul săgeţilor se poate realiza deplasarea pe verticală sau orizontală, iar cu pg_up sau pg_dn între pagini. Şi pentru această comandă

Page 21: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 21

există posibilitatea modificării unui anumit câmp ca şi pentru cealaltă comandă.

Figura 11.20 Modificare unei înregistrări cu comanda BROWSE

- a treia variantă de înlocuire a datelor este comanda REPLACE care modifică înregistrările tabelei curente prin înlocuire cu datele conţinute în câmpul de înlocuire. În figura 11.21 este prezentată fereastra de comandă şi la partea superioară prin folosirea comenzii BROWSE rezultatul înlocuirii numărului de factură pentru toate înregistrările cu valoarea 1. Liniile de comandă utilizate sunt cele de mai jos:

Page 22: Limbajul Visual FoxPro

22 Calculatoare personale. Iniţiere în utilizare

Figura 11.21 Modificare prin înlocuire a înregistrărilor cu comanda REPLACE

USE clientREPLACE ALL Nr_f WITH 1

Rezultă că această instrucţiune poate înlocui datele dintr-un tabel cu valorile dorite noi.

Din punctul de vedere al comenzilor ca şi structură completă acestea au următoarea sintaxă:

CHANGE FIELDS listă-câmpuri 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ă-câmpuri afişează numai câmpurile din listă;- scope este clauza care defineşte condiţiile de selecţie;- expL1, expL2 sunt condiţiile pentru care expresiile sunt

adevărate;- camp permite modificarea la un singur câmp şi afişarea acestuia;- exp reprezintă expresii sau condiţii care trebuie îndeplinite;- nume-fer reprezintă activată în fereastra iniţială;- lista-culori stabileşte lista de culori.

BROWSE FIELDS listă-câmpuri 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ă-câmpuri afişează numai câmpurile din listă;

Page 23: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 23

- scope este clauza care defineşte condiţiile de selecţie;- expL1, expL2 sunt condiţiile pentru care expresiile sunt

adevărate;- camp permite modificarea la un singur câmp şi afişarea acestuia;- exp reprezintă expresii sau condiţii care trebuie îndeplinite;- nume-fer reprezintă activată în fereastra iniţială;- lista-culori stabileşte lista de culori.Comenzile de închidere sunt de mai multe tipuri:- închide toate tipurile de fişiere: CLOSE ALL;- închide fişierele de tipul definit: CLOSE ALTERNATE;- închide toate tabelele: CLOSE DATABASE;- închide toate fişierele tip format: CLOSE FORMAT;- închide toate fişierele index: CLOSE INDEX;- închidere fişiere de proceduri: CLOSE PROCEDURE.

11.3.10 Comenzi de gestionare a fişierelor în VisualFoxpro

Lucrul cu fişiere se bazează pe mai multe tipuri de operaţii:- copiere: Copy file nume to nume1,- redenumire: Rename nume to nume1,- ştergere: Erase nume, sau Delete file nume,- afişarea conţinutului unui fişier: Type nume to printer,

Type nume to file nume1,- afişarea conţinutului unui director: Dir C:/ to printer.Un set special de lucru este cel de adăugare de înregistrări în tabele. Sintaxa comenzii este:

APPEND FROM nume-fişier ? FIELDS listă-câmpuri FOR expr-log TYPE DELIMITED WITH TAB / WITH BLANK / WITH delimitator DIF

unde:- nume-fişier este numele fişierului de unde se importă datele;- ? va determina apariţia ferestrei de dialog Directory din care se

va alege tabela sursă;- listă-câmpuri reprezintă câmpurile ale căror valori vor fi

adăugate în tabela nou creată;- expr-log este condiţia de realizare a importului;- TYPE defineşte extensia fişierului sursă care poate fi:

Page 24: Limbajul Visual FoxPro

24 Calculatoare personale. Iniţiere în utilizare

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 următoarea structură:

APPEND GENERAL câmp-general FROM nume-fişier DATA CEXp LINK CLASS clasă_OLE

unde:- câmp-general conţine numele câmpului de tip general care va fi

memorat;- nume-fişier este fişierul din care se extrage conţinutul unui

obiect OLE;- clasă_OLE specifică în mod explicit clasa de obiecte OLE.

De exemplu importul unei foi de calcul EXCEL într-un câmp de tip general:

APPEND GENERAL OBIECTOLE FROM “FOAIE1.XLC” CLASS EXCELCHART

O altă comandă de este cea de adăugare a unei noi înregistrări într-o tabelă care este activă. Dacă lucrează mai mulţi utilizatori simultan, în momentul activării introducerii datelor tabela este blocată pentru alţi utilizatori, urmând ca aceştia să o poată activa numai după terminarea înregistrării. Sintaxa este:

APPEND FROM ARRAY var-matrice FOR expr-log FIELDS listă-câmpuri / FIELDS LIKE şablon / FIELD EXCEPT şablon

unde:- var-matrice este numele masivului care va alimenta tabela;- expr-log este condiţia de realizare a importului;- listă-câmpuri reprezintă câmpurile ale căror valori vor fi

adăugate în tabela nou creată;- expr-log este condiţia de realizare a importului;

Page 25: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 25

11.3.11 Ştergerea datelor dintr-o bază de date

Este o operaţie importantă ea putând anula o înregistrare greşit introdusă de exemplu s-a emis un aviz dar pe el s-a greşit o valoare constată la faza de facturare, în acest moment avizul se restituie integral se anulează prin barare înregistrarea făcută se şterge. Nu acelaşi lucru se întâmplă dacă o factură a fost înregistrată în contabilitate într-o anumită zi şi la o altă dată se constată greşeala. În acest moment se emite o factură în roşu care anulează factura iniţială urmând ca apoi să se emită o factură nouă.

Există mai multe variante de ştergere funcţie de scopul urmărit:- prima dintre acestea este comanda DELETE. Ea asigură

marcarea articolelor în vederea ştergerii. Dacă cumva se doreşte 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.

Fişierele şterse cu această comandă nu mai sunt recuperabile!!!.

- a patra variantă este cea dată de comanda SET DELETED ON/OFF care se foloseşte pentru a arăta 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 uşura foarte mult lucru cu o bază de date în vederea găsirii unei informaţii sau grup de informaţii. Lucrul este cu atât mai necesar deoarece încărcarea datelor într-o bază de date se face în mare măsură aleatoriu fără a se face o ordonare a actelor.

Page 26: Limbajul Visual FoxPro

26 Calculatoare personale. Iniţiere în utilizare

Sortarea unei tabele se face cu ajutorul comenzii SORT. Ea se poate realiza la nivelul unui câmp sau la nivel de tabel. Pentru sortarea la nivelul unui câmp instrucţiunile de comandă care sunt necesare sunt:

USE clientSORT ON Nume_cl /A TO client1

La nivel de câmp se observă că după apelarea tabelei care se doreşte a se sorta se trece la introducerea liniei de comandă care are mai multe caracteristici. Prima este că după instrucţiunea tipică SORT ON se va introduce numele câmpului care se va supune procesului de sortare urmat de unul din cele două moduri de sortare a câmpului:

- crescător comandă simbolizată cu /A,- descrescător 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 găsesc în calculator ambele tabele. Ştergerea tabelului rezultat după sortare se poate face cu seria de comenzi:

DELETE FILE client1PACK

Tabelul iniţial

Sortarea tabelului după mai multe câmpuri se face prin selectarea succesivă a ordini după care să se realizeze sortarea în modul dorit. Liniile de comandă sunt:

USE clientSORT ON Nume_cl /A, Nr_f /A TO client1

Page 27: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 27

În această situaţie tabelul fiind sortat ascendent după numele clientului şi pentru acelaşi client în ordinea crescătoare după numărul de factură.

Figura 11.21 Sortarea tabelului client după câmpul Nume_cl cu comanda SORT

Un alt mod de sortare este cel după o anumită condiţie. Liniile de comandă folosite sunt:

USE clientSORT 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 sortării este că după orice introducere de date este necesară o nouă sortare care implică continuu ca spaţiul folosit să crească dublu faţă de dimensiunile iniţiale. Comanda de indexare se poate folosi numai pentru un câmp. 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 fişier suplimentar cu extensia .cdx şi acelaşi nume cu cel iniţial. Acest lucru face ca baza de date să fie indexată automat la introducerea datelor. Pentru buna funcţionare a comenzii INDEX este necesară setarea comenzii SET TALK la valoarea ON. Linia de comandă este următoarea:

USE clientINDEX ON Nume_cl TO client1.idx

Page 28: Limbajul Visual FoxPro

28 Calculatoare personale. Iniţiere în utilizare

O altă modalitate este cea de indexare după mai multe câmpuri a cărei linii de comandă sunt prezentate mai jos:

USE clientINDEX ON Nume_cl +Localit TO client1.idx UNIQUE

Indexarea se face după nume client şi localitate simultan fără a admite înregistrări 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 instrucţiunea 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 Timişoara. Liniile de comandă sunt:

USE clientINDEX ON Nume_cl FOR Localit=Timisoara TO client1.idx ?? NDX(1) && Afişează primul fişier indexat? RECOUNT() && Afişează numărul de înregistrări indexateCLOSE ALL

Se observă apariţia faţă de variantele anterioare a trei linii suplimentare. Prima aşa după cum se observă şi în partea dreaptă din mesajul text de ajutor afişează numele primului fişier indexat, operaţie necesară pentru a determina apoi numărul de înregistrări indexate în linia a patra din setul de instrucţiuni. În final sunt închise toate tabelele deschise în linia de instrucţiune cinci.

OBS. - Indexarea după câmpuri numerice multiple poate să nu ofere

acelaşi rezultat dorit,- Probleme pot să apară şi dacă se uită să se activeze un anumit

tabel index şi se folosesc instrucţiuni care lucrează numai cu tabelele index active.

11.3.13 Instrucţiuni de acces la o bază de date

Un alt set de instrucţiuni 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.

Page 29: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 29

Prima dintre acestea este comanda GO. Ea poziţionează punctul de acces în tabel pe înregistrarea fizică specificată. Liniile de comandă sunt:

USE client GO 3

În acest caz se poziţionează cursorul pe înregistrarea a treia din tabelă.Pentru a vedea pe care înregistrare este poziţionat cursorul se poate

folosi instrucţiunea RECON(). Se poate realiza şi poziţionarea pe prima înregistrare din tabel cu instrucţiunea GO RECON(0).

O altă comandă care se poate utiliza este SKIP care permite poziţionarea cursorului pe o anumită înregistrare faţă de cea curentă. Linia de comandă este:

USE clientSKIP-3 IN client

Cursorul se va poziţiona pe înregistrarea situată cu trei linii înaintea celei curente.

O altă comandă este cea LOCATE. Ea permite căutarea într-o tabelă pentru o anumită condiţie fără a fi necesară indexarea tabelului. Sistemul găseşte prima înregistrare care satisface condiţia impusă şi abandonează căutarea celorlalte chiar dacă satisfac condiţia. Liniile de comandă sunt:

USE clientLOCATE FOR Nr_f’=1234

O altă serie de comenzi este cea SEEK şi FIND. Aceste comenzi

USE clientINDEX ON Nr_f TO IDBEN FIND 1234DISPCLOSE ALL

lucrează numai cu fişiere indexate. Liniile de comandă pentru aceste instrucţiuni sunt:

USE client

Page 30: Limbajul Visual FoxPro

30 Calculatoare personale. Iniţiere în utilizare

INDEX ON Nr_f TO IDBEN W=1234SET INDEX TO INDENSEEK W sau SEEK 1234DISPCLOSE ALL

11.3.14 Instrucţiuni de vizualizare a datelor dintr-o bază de date

În afară de crearea, căutarea şi prelucrarea datelor dintr-o tabelă mai avem şi afişarea înregistrărilor dintr-o tabelă. Există două modalităţi. Prima este comanda LIST care permite vizualizarea tuturor înregistrărilor şi nu face pauză pentru liste mai mari de un ecran şi nu sunt afişate înregistrările marcate pentru ştergere dacă comanda SET DELETED este setată pe ON. Comanda specifică este de mai multe tipuri:

- pentru afişarea structurii tabelei:

USE clientLIST STRUCTURE

- pentru

USE clientLIST

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 funcţionarea corespunzătoare a programului.

Primele sunt cele de starea sistemului (cu litere îngroşate 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,- afişare rezultat comenzi: Set Talk On/Off,- setare director curent: Set Default to C:/,- setare afişare ceas pe ecran: Set clock to [x,y],

Page 31: Limbajul Visual FoxPro

11 Limbajul Visual FoxPro 31

- setare afişare oră pe ecran: Set Hours to [12/24],Pentru configurarea tipului de date:- număr de zecimale: Set Decimals to [2], stabileşte numărul de

zecimale la 2,Pentru controlul ieşirilor de informaţii:- ieşirea către ecran: Set Console On/Off,- ieşirea către imprimantă: Set Printer On/Off,- ieşirea spre un fişier: Set Printer to [nume fi;ier]

11.3.16 Modalităţi de legare a tabelelor dintr-o bază de date

Legăturile servesc la manipularea informaţiilor între tabelele unei baze de date. Această manipulare se poate realiza atât la nivelul limbajului de programare, cât şi la nivelul instrucţiunilor 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 conţine comenzi la apelarea cărora se efectuează realizarea automată a anumitor faze de prelucrare a tabelelor de date.

Crearea unui program sursă se face prin intermediul instrucţiunii MODIFY COMMAND, care apelează editorul de texte propriu al sistemului.

11.3.18 Tipuri de extensii ale limbajului Visual FoxPro

Există câteva extensii standard recunoscute de sistem: .dbf – tabele bază de date; .dbc – fişier bază de date; .prg – fişier de comenzi program; .fpt – fişier care conţin câmpuri memo; .idx – fişier care conţine indecşi; .cdx – fişier care conţine indecşi;

Page 32: Limbajul Visual FoxPro

32 Calculatoare personale. Iniţiere în utilizare

Bibliografie

1. Mirela Munteanu, ş.a. – Dezvoltarea aplicaţiilor cu baze de date în Visual FoxPro. Editura BIC ALL, Bucureşti, 2001.

2. Dima Gabriel şi Mihai – Fox 2.7 sub Windows Editura Teora, Bucureşti, 2002.


Recommended