Documente Academic
Documente Profesional
Documente Cultură
Curs 2
Curs 2
Originea limbajului Xbase – părintele lui FoxPro – este legată de un limbaj brevetat la sfârşitul
anilor 1970 şi vândut corporaţiei Ashton-Tate, sub numele dBASE II. A urmat portarea produsului pe
calculatoarele IBM-PC şi apariţia variantei dBASE III, apoi a variantei III Plus, cu care compania
Ashton-Tate domina la sfârşitul anilor 1980 piaţa bazelor de date pentru microcalculatoare.
În paralel, alte companii oferă compilatoare şi sisteme de dezvoltare de aplicaţii compatibile cu
dBASE, dar optimizate conform nevoilor utilizatorilor. Astfel, firma Fox Software lanseazã în paralel cu
firma Ashton- Tate produsul FoxPro compatibil cu dBASE IV, dar mult mai rapid şi cu o interfaţă mai
prietenoasă, orientată către ferestre.
Ulterior, Ashton-Tate a fost cumpărată de firma Borland care a creat produsul dBASE V cu
variante pentru sistemele DOS şi Windows, iar firma Fox Software a fuzionat cu Microsoft şi a
dezvoltat variantele FoxPro pentru Windows, DOS, UNIX, MacIntosh etc.
FoxPro este un SGBD (sistem de gestiune a bazelor de date) care pune la dispoziţia
utilizatorilor aplicaţii complexe pentru crearea şi manipularea bazelor de date, precum şi pentru
obţinerea rapoartelor din aceste date. Dispune de un limbaj de programare propriu, limbaj
procedural foarte puternic şi flexibil, prin care programatorii îşi pot descrie datele şi aplicaţiile.
De asemenea, are implementat limbajul de cereri SQL pentru utilizatorii neinformaticieni.
Începând cu varianta 3.0, limbajul procedural FoxPro a devenit un limbaj orientat pe obiecte.
Având implementat conceptul de colecţie de date, el reprezintă un depozit central pentru stocarea
informaţiilor despre tabele.
De asemenea, FoxPro pune la dispoziţia programatorilor nu numai un compilator şi un
mecanism performant de accesare a datelor (tehnologia Rushmore), ci şi un set de utilitare
puternice de proiectare, încorporate într-un mediu integrat şi omogen. Acest mediu este foarte
confortabil pentru proiectanţii de aplicaţii. FoxPro este un produs care poate rula pe platforme
DOS, Windows, Unix, MacIntosh. Deşi interfaţa şi structura meniurilor sunt oarecum diferite, un
programator poate trece uşor de la o variantă la alta. FoxPro recunoaşte şi se adaptează automat
la mediile multiutilizator, fără a fi nevoie de o variantă specială pentru reţea.
FoxPro permite comunicarea cu alte aplicaţii (de exemplu, Excel) prin mecanismul DDE
(Dynamic Data Exchange – transfer dinamic de date). FoxPro permite schimbul de date între tabelele
sale şi alte aplicaţii în calitate de server sau de client, respectiv transmite sau primeşte informaţii către
şi de la programele care ruleazã sub Windows. FoxPro are facilitatea OLE (Object Linking and
Embedding – legarea şi încorporarea obiectelor). Limbajul suportă legarea obiectelor şi încorporarea
lor în aplicaţii proprii FoxPro, cum sunt sunetele, imaginile, obiectele spreadsheet etc., create în alte
aplicaţii Windows. În acest caz, vorbim despre FoxPro ca despre un client. FoxPro importă şi exportă
date în alte formate (fişiere Microsoft Excel, dBASE, Access, Oracle, Paradox) pe diferite suporturi,
local sau la distanţă. FoxPro a fost conceput în vederea unei depline compatibilităţi, atât cu versiunile
sale anterioare, cât şi cu alte produse xBase.
Variantele de după 3.0 permit programarea vizuală a aplicaţiilor folosind generatoare –
programe încadrate în generaţia a patra (4GL) care permit proiectarea interactivă a obiectelor cu care
lucrează o aplicaţie. Astfel, FoxPro a evoluat în decursul timpului, vechile versiuni de FoxPro fiind
înlocuite de Visual FoxPro.
Mediul Visual FoxPro are disponibile toate uneltele interactive pentru realizarea diverselor
operaţii de gestiune (cum ar fi crearea structurilor în care se încarcă datele, stabilirea legăturilor între
date, extragerea datelor după diferite criterii etc.). Desigur că el este orientat spre sarcinile de prelucrare
a datelor (de regulă în volume mari), în acest domeniu fiind foarte performant, dar în acelaşi timp
permite şi realizarea altor operaţii cum ar fi calcule matematice, operaţii de sistem, interfeţe cu
utilizatorul etc. Peste limbajul de programare sunt plasate o serie de unelte interactive (vizuale), care
permit realizarea diferitelor elemente ce intră în componenţa unui sistem informatic (forme, rapoarte,
meniuri etc.), fără a mai fi nevoie de scrierea de cod. Toate aceste unelte se înscriu în largul concept de
„programare vizuală", care tocmai asta înseamnă: construirea aplicaţiilor prin metode vizuale,
înlocuind pe cât posibil scrierea de cod cu metodele interactive.
Visual FoxPRo este o aplicaţie Windows, deci foloseşte elementele de interfaţă specifice acestui
mediu: lucrul cu ferestrele, meniurile, butoanele, obiectele de control. La intrarea în mediul Visual
FoxPro este afişată fereastra sistem cu meniul principal şi o fereastră de comenzi (figura 1).
Meniul principal sau meniul Sistem – permite: operaţii cu fişiere (creare, deschidere, salvare, afişare
la imprimantã (FILE); operaţii legate de editare (EDIT); operaţii cu baze de date
(DATABASES/TABLE); operaţii relative la programe (PROGRAM); utilizarea ferestrelor
(WINDOW); obţinerea informaţiilor de asistenţă, alte utilitare (HELP).
Meniul contextual apare prin clic dreapta pe un item (text, icon, bară de instrumente) şi conţine
comenzi referitoare la itemul respectiv.
Ferestrele standard FoxPro sunt ferestre Windows cu aceleaşi caracteristici. Tipurile de ferestre sunt:
- fereastra de comenzi, care permite introducerea directă a comenzilor;
- fereastra de proiectare, care permite editarea programelor, a machetelor, a rapoartelor etc.;
- fereastra de dialog, care permite completarea unei acţiuni conform preferinţelor utilizatorului; ca
exemplu, observaţi fereastra Open, prin care precizaţi discul, directorul şi fişierul care va fi deschis;
- fereastra de mesaje, prin care sistemul avertizează sau informează asupra efectelor unei acţiuni
(eronate, riscante) a utilizatorului, solicitând confirmarea privind modalitatea de continuare sau
abandonarea acţiunii.
Obiectele de control sunt alte elemente de interfaţă cu funcţii şi aspect recunoscut din mediul
Windows.
Pentru lucrul în FoxPro se folosesc două procedee distincte ca aspect exterior, dar identice ca
efect, şi anume:
- folosind selectarea comenzilor din sistemul de meniuri
- folosind metoda introducerii de instrucţiuni în fereastra de comenzi.
Imediat după intrarea în FoxPro este selectată implicit cea de-a doua metodă. Acest lucru este
semnalizat de prezenţa cursorului în fereastra de comenzi, indicându-ne posibilitatea introducerii de
instrucţiuni în această fereastră.
Moduri de lucru
1. Modul de lucru comandă
Instrucţiunile sunt introduse într-o fereastră de comenzi care funcţionează ca un istoric al
comenzilor introduse. Lungimea maximă a unei comeni este de 2048 caractere. Comenzile introduse în
fereastra de comenzi sunt comenzi linie; dacă o comandă se scrie pe mai multe linii, atunci se foloseşte
„;” la sfârşitul fiecărei linii ce urmează a fi continuată. Apăsarea tastei Enter lansează comanda în
execuţie.
Comenzile FoxPro sunt formate dintr-un verb care indică acţiunea şi un număr de clauze care
particularizează efectul comenzii în situaţia respectivă. Formatul general al unei comenzi este:
<verb> [<clauza1>] [<clauza2>]
În general, clauzele nu au o poziţie fixă în sintaxa comenzii, iar verbul poate fi prescurtat la
primele 4 caractere.
Exemplu:
Pentru afişarea numelui şi grupei studenţilor care au media cel puţin 5 se poate scrie:
Browse fields nume, grupa for media>=5
Browse for media>=5 fields nume, grupa
Apelul editorului se face prin comanda MODIFY COMMAND <fis.prg> Comanda deschide
o fereastră de editare, folosită atât pentru crearea cât şi pentru modificarea programului sursă
recunoscut prin numele <fis.prg>. Lansarea programului în execuţie (automat se face şi compilarea)
se face prin comanda DO <fis.prg>
Programul este executat până la terminarea fişierului sau până la întâlnirea comenzii RETURN,
care determină revenirea în fereastra de comenzi. Dacă un fişier de comenzi este apelat din alt fişier de
comenzi spunem că este subprogram. Nu sunt diferenţe între construirea unui program şi a unui
subprogram. Prin comanda DO se caută fişierul de comenzi indicat, se deschide, se execută liniile
acestuia, se închide şi se revine în programul apelant sau în fereastra de comenzi. În programe şi numai
în acest context se pot folosi şi comenzile multilinie cum ar fi comanda IF din exemplul următor.
Exemple:
1. USE ELEVI
Deschide o tabelă.
2. IF nume="albu"
Test asupra numelui primei persoane.
3. ? prenume
Comanda de afişare a prenumelui.
4. ENDIF
Închide structura.
Dacă este necesară fragmentarea comenzii, se va folosi semnul „;“ (punct şi virgulă). Nu există
separatori între comenzi. Lungimea maximă a unei linii de comandă este de 1024 de caractere.
Comentariile sunt introduse într-un program fie prin caracterul asterisc (*) la începutul liniei
fie prin dublu ampersand (&&) în continuarea comenzii propriu-zise. FoxPro poate să apeleze comenzi
DOS prin comanda ! / RUN
Exemple:
5. MODIFY COMMAND Salarii
Deschide ecranul de proiectare Salarii.prg.
6. DO SALARII
Compilează şi execută Salarii.prg.
7. ! DIR
Afişează lista fişierelor din directorul curent.
8. run erase salarii.prg
Apelează comanda de ştergere DOS.
Gestiunea fişierelor
La lansare, SGBD-ul FoxPro este încărcat în memoria de lucru de către sistemul de operare sub
care este instalat şi funcţionează în concordanţă cu restricţiile acestui sistem de operare. Un fişier este
descris în sistemul de operare prin: nume, extensie, poziţie logică pe disc (calea de directoare),
dimensiune, data şi ora ultimei actualizări, atributele asociate accesului la fişier, drepturi de acces.
Fişierele FoxPro stochează date, programe şi informaţii pentru generatoarele sistemului.
Utilitarul Project Builder serveşte la gestiunea fişierelor dintr-o aplicaţie Fox. Îl puteţi lansa
selectând File, New, Project din meniul principal sau prin comanda CREATE PROJECT.
Observaţii:
1.Utilitarul nu creează structura de directoare! Este doar o grupare pe care o face în funcţie de
tipul fişierelor.
2.Când începeţi să lucraţi la o aplicaţie, este bine să vă creaţi o structură de directoare
asemănătoare celei din fereastra Project Manager; astfel veţi regăsi uşor fişierele după tipul lor!
Exemple:
1. set default to d:\fox\elena
Poziţionare în directorul elena
2. set path to d:\fox, c:\
use studenţi
Deschide tabela studenţi; dacã nu se găseşte în directorul curent, se va căuta în D:\Fox sau C:\
3. dir sau dir*.dbf
Afişează bazele de date din directorul curent.
4. dir *.*
Afişează toate fişierele din directorul curent.
5. dir d:\fox\*.txt
Afişează lista fişierelor text din folderul Fox de pe discul D:\
6. dir m*.prg
Afişează toate fişierele al căror nume începe cu M şi care au extensia .prg
7. dir ???.prg
Afişează toate fişierele al căror nume este format din maxim 3 caractere şi care au extensia .prg
8. set default to c:\fox
Schimbă directorul curent la C:\Fox
9. copy file *.txt to d:\fox
Copiază fişierele text din directorul curent în directorul D:\Fox
10. copy file student.dbf to d:\fox\facultate.dbf
Copiază fişierul STUDENT.DBF din directorul curent în directorul D:\Fox sub numele
FACULTATE.DBF
10. !copy *.txt a:
Copiază toate fişierele text pe dischetă.
11. erase *.fxp
Şterge fişierele Foxpro din directorul curent.
12. delete file c:\facultate\*.txt
Şterge fişierele text din directorul Facultate de pe discul C
13. rename examen.dbf to student.txt
Schimbă numele fişierului.
14. ?curdir()
Afişează numele directorul curent.
15. Cd getdir()
Poziţionare în directorul al cărui nume îl introduceţi de la tastatură.