Visual FoxPro are o istorie lungă şi glorioasă, fiind cunoscut drept cea mai flexibilă şi mai puternică aplicaţie de pe piaţă în domeniul bazelor de date. Plecând de la originile sale ca FoxBASE, produs de Fox Sftware, "Fox" cum este denumit în comunitatea internaţională a programatorilor, a fost cunoscut întotdeauna pentru viteza, flexibilitatea şi eficacitatea s aca produs de programare pentru bazele de date.
La sfârşitul anilor '80, FoxBASE a apărut pe piaţă ca o copie a produsului dBASE, fiind proiectat să fie mai rapid şi mai bun decât dBASE şi mai ales, compatibil cu dBASE III.
FoxPro 1.0 a marcat desprinderea de dBASE. A introdus noi concepte în proiectarea interfeţei grafice cu utilizatorul (GUI) şi a unor metode noi de dezvoltare a programelor, care l-au propulsat în faţa dBASE-ului.
FoxPro şi-a dobândit adevărata identitate odată cu versiunea 2.0. Odată cu această versiune au fost incluse câteva tehnologii noi, care au revoluţionat piaţa dezvoltării bazelor de date pentru calculatoarele personale.
Introducerea algoritmului Rushmore a avut un efect neaşteptat. Dintr-o dată, tabele de milioane de înregistrări puteau fi implementate în sistemele de baze de date pentru PC fără a recurge la alte tehnologii mai costisitoare.
Instrucţiunile SQL au fost un alt element revoluţionar. Pentru prima dată, utilizatorii de Fox foloseau instrucţiuni singulare care înlocuiau proceduri întregi. SQL era, şi încă este, limbajul datelor.
Foxpro 2.0 a mai adăugat o modalitate de realizare a rapoartelor şi afişărilor prin adăugarea proiectanţilor de rapoarte şi de desenare. Screen Designer genera cod sursă, dar deschidea o nouă cale în dezvoltarea interfeţelor GUI într-un mediu bazat pe text.
În concluzie, FoxPro 2.0 a fost apariţia hotărâtoare care a dus la posibilităţile de azi ale Visual FoxPro. Caracteristicile care îl făceau puternic erau: modul de proiectare a interfeţei cu utilizatorul, limbajul SQL şi viteza mare de acces la date.
Suportul pentru Windows a fost introdus odată cu FoxPro 2.5. Suportul pentru schimbul dinamic de date (Dynamic Data Exchange) era în curs de implementare dar, aşa cum o pot confirma cei care au lucrat cu el, FoxPro 2.5 pentru Windows era mai degrabă o aplicaţie DOS, cu aspect de Windows.
Următoarea revoluţie majoră a trebuit să aştepte apariţia versiunii 3.0 a Visual FoxPro. Încă o dată, Fox a revoluţionat lumea programării bazelor de date. Versiunea 3.0 a adăugat o serie de caractersitici, dintre care enumerăm câteva:
Containerul de baze de date (Database Container - DBC) care aducea suportul pentru proceduri memorate, reguli ataşate la tabel şi o mulţime de funcţii suplimentare pentru lucrul cu datele.
Vizualizările (Views) care sunt cursoare SQL actualizabile. Acestea au introdus o metodă cu totul nouă de acces la date în vederea prelucrării, a reprezentării GUI şi a realizării rapoartelor. Erau două tipuri de vizualizări, locale şi îndepărtate. O vizualizare locală este bazată pe orice sursă de date ODBC, inclusiv SQL Server, Oracle, Acces etc. Această implementare revoluţionară a făcut din Visual FoxPro instrumentul cel mai de seamă în accesul la datele locale şi îndepărtate. Crearea aplicaţiilor la nivel de întreprindere, cu utilizarea datelor din surse îndepărtate, devenise acum o sarcină la fel de uşoară ca şi utilizarea tabelelor proprii programului Visual FoxPro.
O implementare robustă, deplină, a orientării spre obiect a deschis calea utilizării din ce în ce mai largi a acestui mod de programare, bazat pe modelul-obiect şi pe posibilitatea construirii propriilor clase şi subclase.
Versiunea 5.0 era o actualizare a versiunii 3.0, cu rezolvarea multor nereguli şi conţinând trăsături noi şi interesante. S-a introdus posibilitatea creării şi utilizării serverelor COM. S-au adăugat câteva comenzi şi funcţii noi şi se pot observa începuturile legării mediului Visual FoxPro de facilităţile Internetului.
3.1.3.1. Interfaţa Visual FoxPro
În ultimii ani, un număr tot mai mare de aplicaţii complexe au fost construite cu sisteme de baze de date pentru microcalculatoare cum este FoxPro. Dar chiar cu instrumentele oferite de aceste sisteme - cum sunt generatoatele de rapoarte şi vizualizări, bibliotecile, administratorul de proiecte - timpul total cerut de realizarea multor aplicaţii a crescut. Mai mult, utilizatorii doresc să aibă acces la date memorate în alte formate şi nu doar la datele de pe calculatorul local, ci şi la cele din serverele centrale de date. FoxPro a evoluat de la XBASE pentru DOS la un mediu de dezvoltarea aplicaţiilor cu interfaţă GUI vizuală, în numai câţiva ani. O dată cu apariţia pachetului Visual Studio, FoxPro a devenit un membru al familiei de produse Microsoft şi o componentă vitală a comunităţii instrumentelor de programare a aplicaţiilor. Scopul pachetului este de a furniza instrumentele de programare şi de lucru cu bazele de date pentru realizarea programelor care să îndeplinească funcţiunile arătate.
La prima vedere, interfaţa Visual FoxPro pare neinteresantă: un meniu, o bară de instrumente (toolbar) şi o fereastră goală numită "Command".
Fereastra de comandă
Această fereastră este una dintre cele mai interesante caracteristici ale Visual FoxPro. Fereastra foloseşte la introducerea comenzilor care spun Visual FoxPro-ului ce să facă. Nu trebuie folosită la orice; există opţiuni în meniu care corespund multor sarcini comune. Dar se observă un control mai bun asupra comenzilor precum şi o flexibilitate mai mare, deoarece meniurile sunt limitate în scopuri şi în adâncime.
Interfaţa Visual FoxPro este un mediu de dezvoltare complet (sau IDE - Integrated Development Environment). Permite crearea, depanarea, testarea, compilarea şi navigarea în întreaga aplicaţie prin intermediul IDE - nu sunt necesare unelte adiţionale. Spre deosebire de alte unelte din Visual Studio, Visual FoxPro IDE îndeplineşte două funcţii:
♦ se poate utiliza Visual FoxPro în lucru cu bazele de date locale; se pot deschide tabele, adăuga, edita şi şterge date, sorta şi interoga, se pot realiza rapoarte. Desigur, este copleşitor să se folosească Visual FoxPro doar în acest scop, şi pentru cei mai mulţi utilizatori este probabil dificilă utilizarea strict interactivă. Alte instrumente, ca Microsoft Acces, sunt de departe mai potrivite pentru gestionarea bazelor de date personale.
♦ permite accesarea datelor prin comenzile din fereastra de comandă, şi în plus, se poate executa virtual fiecare comandă şi returna valoarea fiecărei expresii din fereastra de comandă (excepţie fac comenzile de bază care fac parte dintr-o structură logică, ca IF sau DO CASE).
3.1.3.1.1. Crearea formularelor
Formularul este o clasă-container, capabilă să includă oricât de multe alte controale sau containere, cum ar fi casetele de text, butoanele de comandă, casetele de vallidare, cadrele de pagini sau grile. Deoarece, formularul esteo clasa container specializată, el admite oricare din aspectele modelului exhaustiv al programării orientate spre obiect. Formularele au peste 100 de proprietăţi de bază şi 60 de metode de bază şi permit adăugarea a oricât de multe proprietăţi şi metode definite de utilizator pentru a le extinde funcţionalitatea. Formularele se pot moşteni din subclase de formulare specializate sau pot servi ca superclase pentru alte formulare. Există două diferenţe majore între formulare şi majoritatea celorlalte clase-container:
♦ Formularele îşi manifestă prezenţa virtuală pe ecran
♦ Formularele îşi pot extrage informaţiile dintr-o sesiune privată de date.
Formularul, în sine, constă din fundal, pe care va fi aşezată cea mai mare parte a conţinutului funcional al formularului. Formularul însuşi răspunde la un set de evenimente Windows: clicuri de mouse, activare, redimensionare şi mutare. Dar,în cele mai multe cazuri, funcţionalitatea principală, care interesează utilizatorul este concentrată în controalele din interiorul formularului.
Nume control Descriere
Casetă de validare (Check box) Un control cu 2 stări:activă şi inactivă.
Casetă combinată (Combo box) Un control care pezintă o listă. Indică doar valoarea curent selectată, dar restul listei poate fi expandat de utilizator.
Buton de comandă (Command Button) Un buton la care pe clic se întâmplă ceva.
Grup de butoane de comandă (Command Button Group) Un grup de butoane de comandă care lucrează împreună.
Casetă de editare (Edit Box) O casetă care permite utilizatorului să introducă şiruri lungi.
Grilă (Grid) Un control care permite o căutare într-un tabel pe un formular.
Imagine (Image) Un control care afişează o imagine pe un formular.
Etichetă (Label) Un control care afişează text.
Linie (Line) O linie desenată pe un formular.
Casetă cu listă (List Box) O casetă care prezintă o listă de elemente.
Control legat OLE (OLE Bound Control) Un control care are ca sursă un câmp general dintr-un tabel.
Control container OLE Un control pentru obiecte şi controale OLE.
Grup de opţiuni (Option Group) O serie de opţiuni din care se alege una singură.
Cadru de pagini (Page Frame) Un control care permite alegerea uneia sau mai multor pagini, fiecare conţinând alte controale.
Formă (Shape) O formă desenată.
Casetă de modificare valorică (Spinner) O combinaţie de casetă de text cu controale "sus" şi "jos" care permite incrementarea şi decrementarea unei valori numerice.
Casetă de text (Text Box) Unu control care permite introducerea de informaţii, pentru a fi salvate într-un câmp de tip caracter, numeric sau dată calendaristică.
Timer Un control care execută o comandă sau o serie de comenzi la intervale prestabilite.
Crearea formularelor
Pentru a crea un formular apelăm la comanda:
CREATE FORM nume_formă
sau din Project Manager cu comanda Add.
Rularea formularelor
Comanda de rulare este:
DO FORM nume_formă
Modificarea formularelor
Comanda de modificare este:
MODIFY nume_formă
3.1.3.1.2. Crearea meniurilor
Interfaţa grafică cu utilizatorul este o parte importantă a unei aplicaţii; este elementul pe
care îl vor vedea clienţii. În ultimii câţiva ani, utilizatorii s-au obişnuit cu interfeţe ingenioase, sensibile la evenimente, iar Visual FoxPro a ţinut pasul cu aceste cerinţe prin diferitele sale instrumente de proiectare de tip GUI.
Visual FoxPro include un Menu Designer (proiectant de meniuri) uşor de folosit, care oferă posibilitatea ca aplicaţia să se bazeze pe un sistem standard de meniuri Windows.
Teminologia meniurilor
Bara de meniu se referă la nivelul superior de meniu, lista elementelor care rămân vizibile pe parcursul celor mai multe aplicaţii.
Opţiunea de meniu (Menu pad ) este următorul nivel al ierarhiei. Fiecare element din bara de meniu reprezintă o opţiune de meniu. Făcând clic pe o opţiune, aceasta desfăşoară o listă de sub-opţiuni sau poate declanşa o acţiune.
Un prompt de meniu este o sub-opţiune care apare într-un meniu pop-up. Făcând clic pe un prompt de meniu, se poate decalnşa o acţiune sau se poate ajunge la un submeniu cu alte prompturi.
Pentru crearea unei noi opţiuni de meniu se introduce textul care trebuie să apară în coloana Prompt. Se observă că se poate specifica o tastă de activare pentru acest prompt, precedând unul dintre caracterele textului cu \\