Sunteți pe pagina 1din 7

II.

FoxPro: prezentare general


Originea limbajului Xbase printele lui FoxPro este legat de un limbaj brevetat la sfritul anilor 1970 i vndut corporaiei Ashton-Tate, sub numele dBASE II. A urmat portarea produsului pe calculatoarele IBM-PC i apariia variantei dBASE III, apoi a variantei III Plus, cu care compania Ashton-Tate domina la sfritul anilor 1980 piaa bazelor de date pentru microcalculatoare. n paralel, alte companii ofer compilatoare i sisteme de dezvoltare de aplicaii 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 ctre ferestre. Ulterior, Ashton-Tate a fost cumprat 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 dispoziia utilizatorilor aplicaii complexe pentru crearea i manipularea bazelor de date, precum i pentru obinerea 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 aplicaiile. De asemenea, are implementat limbajul de cereri SQL pentru utilizatorii neinformaticieni. ncepnd cu varianta 3.0, limbajul procedural FoxPro a devenit un limbaj orientat pe obiecte. Avnd implementat conceptul de colecie de date, el reprezint un depozit central pentru stocarea informaiilor despre tabele. De asemenea, FoxPro pune la dispoziia 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 proiectanii de aplicaii. FoxPro este un produs care poate rula pe platforme DOS, Windows, Unix, MacIntosh. Dei interfaa i structura meniurilor sunt oarecum diferite, un programator poate trece uor de la o variant la alta. FoxPro recunoate i se adapteaz automat la mediile multiutilizator, fr a fi nevoie de o variant special pentru reea. FoxPro permite comunicarea cu alte aplicaii (de exemplu, Excel) prin mecanismul DDE (Dynamic Data Exchange transfer dinamic de date). FoxPro permite schimbul de date ntre tabelele sale i alte aplicaii n calitate de server sau de client, respectiv transmite sau primete informaii ctre 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 aplicaii proprii FoxPro, cum sunt sunetele, imaginile, obiectele spreadsheet etc., create n alte aplicaii Windows. n acest caz, vorbim despre FoxPro ca despre un client. FoxPro import i export date n alte formate (fiiere Microsoft Excel, dBASE, Access, Oracle, Paradox) pe diferite suporturi, local sau la distan. FoxPro a fost conceput n vederea unei depline compatibiliti, att cu versiunile sale anterioare, ct i cu alte produse xBase. Variantele de dup 3.0 permit programarea vizual a aplicaiilor folosind generatoare programe ncadrate n generaia a patra (4GL) care permit proiectarea interactiv a obiectelor cu care lucreaz o aplicaie. 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 operaii de gestiune (cum ar fi crearea structurilor n care se ncarc datele, stabilirea legturilor 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 acelai timp permite i realizarea altor operaii cum ar fi calcule matematice, operaii de sistem, interfee cu utilizatorul etc. Peste limbajul de programare sunt plasate o serie de unelte interactive (vizuale), care

permit realizarea diferitelor elemente ce intr n componena unui sistem informatic (forme, rapoarte, meniuri etc.), fr a mai fi nevoie de scrierea de cod. Toate aceste unelte se nscriu n largul concept de programare vizual", care tocmai asta nseamn: construirea aplicaiilor prin metode vizuale, nlocuind pe ct posibil scrierea de cod cu metodele interactive. Visual FoxPRo este o aplicaie Windows, deci folosete elementele de interfa specifice acestui mediu: lucrul cu ferestrele, meniurile, butoanele, obiectele de control. La intrarea n mediul Visual FoxPro este afiat fereastra sistem cu meniul principal i o fereastr de comenzi (figura 1).

Fig.1. Fereastra sistem a mediului Visual FoxPro Componentele clasice sunt: -"meniul" apare n partea superioar a ecranului, pe prima linie, i reprezint o modalitate de a transmite instruciuni calculatorului prin selectarea acestora dintr-o list coninut n meniu i afiat odat cu activarea acestuia; -"fereastra de comenzi" este poriunea din ecran ncadrat de dreptunghiul din partea dreapt, jos, care permite introducerea liter cu liter a instruciunilor; -"ecranul" reprezint fundalul pe care FoxPro afieaz rezultatele obinute n urma executrii instruciunilor primite de la utilizator; -"cursorul" este acea poziie de pe ecran (n situaia noastr n fereastra de comenzi) unde va fi introdus urmtorul caracter, ca efect al acionrii tastei corespunztoare de ctre utilizator. Observaii: 1. Termenul de "caracter" n textul de mai sus are un sens generic; astfel, n alctuirea unei instruciuni, intr att litere, mari sau mici, ct i cifre i alte semne speciale, pe care le-am inclus toate n acest termen. 2. Ecranul FoxPro se ntinde pe tot ecranul monitorului, inclusiv n spatele meniului i al ferestrei de comenzi. Meniul principal sau meniul Sistem permite: operaii cu fiiere (creare, deschidere, salvare, afiare la imprimant (FILE); operaii legate de editare (EDIT); operaii cu baze de date (DATABASES/TABLE); operaii relative la programe (PROGRAM); utilizarea ferestrelor (WINDOW); obinerea informaiilor de asisten, alte utilitare (HELP). Meniul contextual apare prin clic dreapta pe un item (text, icon, bar de instrumente) i conine comenzi referitoare la itemul respectiv. Ferestrele standard FoxPro sunt ferestre Windows cu aceleai 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 aciuni conform preferinelor utilizatorului; ca exemplu, observai fereastra Open, prin care precizai discul, directorul i fiierul care va fi deschis; - fereastra de mesaje, prin care sistemul avertizeaz sau informeaz asupra efectelor unei aciuni (eronate, riscante) a utilizatorului, solicitnd confirmarea privind modalitatea de continuare sau abandonarea aciunii. Obiectele de control sunt alte elemente de interfa cu funcii 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 instruciuni n fereastra de comenzi. Imediat dup intrarea n FoxPro este selectat implicit cea de-a doua metod. Acest lucru este semnalizat de prezena cursorului n fereastra de comenzi, indicndu-ne posibilitatea introducerii de instruciuni n aceast fereastr. Configurarea mediului FoxPro La instalare, sistemul se autoconfigureaz la parametri implicii, considerai optimi de marea majoritate a utilizatorilor si. Setrile pot fi temporare (sunt anulate la ieirea din Fox) sau permanente (sunt memorate n fiierele speciale de configurare). Configurarea se poate face prin scrierea valorilor dorite a comenzilor SET (de configurare) direct n fereastra de comenzi sau prin folosirea ferestrei Options (figura 2), deschis din meniul principal, selectnd Tools, Options. Fereastra Options are mai multe seciuni (tab-uri) care conin informaii diferite de configurare.

Moduri de lucru
1. Modul de lucru comand Instruciunile sunt introduse ntr-o fereastr de comenzi care funcioneaz 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 folosete

; la sfritul fiecrei linii ce urmeaz a fi continuat. Apsarea tastei Enter lanseaz comanda n execuie. Comenzile FoxPro sunt formate dintr-un verb care indic aciunea i un numr de clauze care particularizeaz efectul comenzii n situaia respectiv. Formatul general al unei comenzi este: <verb> [<clauza1>] [<clauza2>] n general, clauzele nu au o poziie fix n sintaxa comenzii, iar verbul poate fi prescurtat la primele 4 caractere. Exemplu: Pentru afiarea numelui i grupei studenilor care au media cel puin 5 se poate scrie: Browse fields nume, grupa for media>=5 Browse for media>=5 fields nume, grupa 2. Modul de lucru program SGBD-ul FoxPro reprezint un mediu integrat de dezvoltare a programelor utilizator, oferind un editor de texte pentru scrierea textelor surs, depanator, compilator i linkeditor. Programele sunt vzute ca fiiere de comenzi (*.PRG). Editare Program sursa .prg Compilare (conversie binara) Link-editare (task build) Lansare in executie

.fxp

.exe

Apelul editorului se face prin comanda MODIFY COMMAND <fis.prg> Comanda deschide o fereastr de editare, folosit att pentru crearea ct i pentru modificarea programului surs recunoscut prin numele <fis.prg>. Lansarea programului n execuie (automat se face i compilarea) se face prin comanda DO <fis.prg> Programul este executat pn la terminarea fiierului sau pn la ntlnirea comenzii RETURN, care determin revenirea n fereastra de comenzi. Dac un fiier de comenzi este apelat din alt fiier de comenzi spunem c este subprogram. Nu sunt diferene ntre construirea unui program i a unui subprogram. Prin comanda DO se caut fiierul 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 urmtor. Exemple: 1. USE ELEVI Deschide o tabel. 2. IF nume="albu" Test asupra numelui primei persoane. 3. ? prenume Comanda de afiare 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 Afieaz lista fiierelor din directorul curent. 8. run erase salarii.prg Apeleaz comanda de tergere DOS. 3. Modul de lucru asistat (interactiv sau vizual) Acest mod presupune alegerea aciunii dorite prin intermediul interfeei FoxPro, interfa prietenoas, orientat spre ferestre, meniuri, obiecte de control, cunoscute n mare parte din mediul Windows. Este un mod de lucru uor de utilizat pentru operaiile directe ale utilizatorilor asupra datelor, oferind avantajul unei viteze mari de lucru. Instrumentele folosite n mediile Visual sunt generatoarele (designers), asistenii (wizards) sau constructorii (builders). Abordarea vizual a obiectelor face ca Visual FoxPro s fie considerat un mediu de dezvoltare rapid a aplicaiei (RAD Rapid Application Development). Folosind acest mediu realizm o proiectare vizual a interfeei, spre deosebire de abordarea textual din mediile de programare tradiionale.

Gestiunea fiierelor
La lansare, SGBD-ul FoxPro este ncrcat n memoria de lucru de ctre sistemul de operare sub care este instalat i funcioneaz n concordan cu restriciile acestui sistem de operare. Un fiier este descris n sistemul de operare prin: nume, extensie, poziie logic pe disc (calea de directoare), dimensiune, data i ora ultimei actualizri, atributele asociate accesului la fiier, drepturi de acces. Fiierele FoxPro stocheaz date, programe i informaii pentru generatoarele sistemului. Utilitarul Project Builder servete la gestiunea fiierelor dintr-o aplicaie Fox. l putei lansa selectnd File, New, Project din meniul principal sau prin comanda CREATE PROJECT.

Fereastra principal a utilitarului afieaz un arbore de directoare standard, construit dup natura fiierelor ce pot fi gestionate:

1. Data conine subdirectoare pentru baze de date (.DBC), tabele izolate (.DBF), interogri (.QPR). 2. Documents conine subdirectoare pentru formulare (.SCX), rapoarte (.FRX), etichete (.LBX). 3. Classes conine bibliotecile de clase (.VCX). 4. Code conine fiierele de proceduri (.PRG, .FXP). 5. Other conine fiiere auxiliare (.BMP). Pe baza acestui arbore cu fiierele aplicaiei, putei genera o aplicaie executabil, aa cum vei vedea n leciile urmtoare. Din fereastra gestionarului de fiiere putei realiza interactiv operaiile dorite cu fiiere: proiectarea sau crearea unui fiier, deschiderea n vederea consultrii, a execuiei, a modificrii, tergerea fiierului etc. Observaii: 1.Utilitarul nu creeaz structura de directoare! Este doar o grupare pe care o face n funcie de tipul fiierelor. 2.Cnd ncepei s lucrai la o aplicaie, este bine s v creai o structur de directoare asemntoare celei din fereastra Project Manager; astfel vei regsi uor fiierele dup tipul lor! SET DEFAULT TO <director> SET PATH TO <lista directoare> DIR [[ON]<disc>] [<dir>] [<sablon>] [TO PRINTER/TO FILE <fis.txt>] Schimbarea directorului curent Indicarea directoarelor de cutare Afiarea coninutului directorului curent sau a celui specificat n clauza ON. ablonul permite limitarea listei la un grup. Clauza TO indic destinaia comenzii. COPY FILE <fis1.*> TO <fis2.*> Copierea unui fiier identificat unic prin specificatorul de fiier <fis1.*> n alt fiier identificat prin <fis2.*>. RENAME <fis1.*> TO <fis2.*> Redenumirea unui fiier. ERASE <fis.*> sau DELETE FILE tergerea unui fiier sau grup de fiiere <fis.*> CURDIR() Returnarea numelui directorului curent FILE("<fis>") Returnarea lui .T. dac fiierul este gsit pe discul curent GETFILE() / GETDIR() Deschiderea unei ferestre pentru selectarea direct a unui fiier (director). Este returnat numele fiierului (directorului) sau irul vid dac apsai tasta Cancel, Esc sau butonul Close Exemple: 1. set default to d:\fox\elena Poziionare n directorul elena 2. set path to d:\fox, c:\ use studeni Deschide tabela studeni; dac nu se gsete n directorul curent, se va cuta n D:\Fox sau C:\ 3. dir sau dir*.dbf Afieaz bazele de date din directorul curent. 4. dir *.* Afieaz toate fiierele din directorul curent. 5. dir d:\fox\*.txt Afieaz lista fiierelor text din folderul Fox de pe discul D:\ 6. dir m*.prg

Afieaz toate fiierele al cror nume ncepe cu M i care au extensia .prg 7. dir ???.prg Afieaz toate fiierele al cror 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 fiierele text din directorul curent n directorul D:\Fox 10. copy file student.dbf to d:\fox\facultate.dbf Copiaz fiierul STUDENT.DBF din directorul curent n directorul D:\Fox sub numele FACULTATE.DBF 10. !copy *.txt a: Copiaz toate fiierele text pe dischet. 11. erase *.fxp terge fiierele Foxpro din directorul curent. 12. delete file c:\facultate\*.txt terge fiierele text din directorul Facultate de pe discul C 13. rename examen.dbf to student.txt Schimb numele fiierului. 14. ?curdir() Afieaz numele directorul curent. 15. Cd getdir() Poziionare n directorul al crui nume l introducei de la tastatur.