CATEGORII DOCUMENTE |
FOX PRO
Fig1
Ecranul principal din FoxPro
Tipul sir de caractere (character) precizeaza ca valorile din acel camp sunt de tipul alfanumeric. Valorile introduse in aceste campuri vor fi interpretate ca succesiuni de simboluri din codul ASCII. Introducerea valorii 1256 nu are in acest caz semnificatia unui numar ci este pur si simplu o insiruire de caractere:1,2,5 si 6.
Tipul numeric (numeric,integer,float).Datele vor fi numere. In acest caz se poate preciza si numarul de zecimale. Se realizeaza validarea automata a datelor introduse in campuri de acest tip (nu se poate introduce intr-un camp declarat de tipul numeric valoarea "Popescu")
Tipul logic (logical). In campurile declarate de tip logic pot fi introduse numai valorile logice de adevarat (TRUE) sau fals (FALSE). In FoxPro valoarea logica de adevar se reprezinta prin litera .T. iar valoarea logica de fals se reprezinta prin litera .F. (ambele cuprinse intre doua puncte). Se realizeaza validarea automata (se accepta numai T sau F), iar lungimea maxima pentru valorile din aceste campuri este implicit 1.
Tipul data calendaristica(date).Valorile introduse se refera la o astfel de data. In functie de setari se va utiliza un anumit format de data (ZZ/LL/AA, ZZ-LL-AA, LL/ZZ/AA s.a.). Si in acest caz se realizeaza validarea automata a datelor introduse (pentru luna se accepta numai valori intregi cuprinse in intervalul 1-12, pentru zi se pot introduce numai valori cuprinse in intervalul 1-31). Se tine cont si de numarul zilelor din luna respectiva (data 30/02/2004 nu este validata).In mod similar se utilizeaza si tipul data calendaristica si ora . (DateTime)
Exemplu:
Se va crea un tabel cu urmatoarea structura a articolului:
Numele campului |
Tipul |
Lungime maxima |
PROD |
Sir de caractere | |
PRET |
Numeric | |
CST |
Logic |
Pentru campul CST (conditii speciale de transport), de tipul logic, se considera urmatoarea conventie:
Valoarea logica de adevar (T): sunt necesare conditii speciale de transport
Valoarea logica de fals (F): nu sunt necesare conditii speciale de transport
Valorile introduse in campul PRET se exprima in EURO.
Ĭn aplicatiile reale se considera pentru campurile referitoare la numele si prenumele unor persoane sau la denumirile unor produse valori mai mari pentru proprietatea lungime maxima (WIDTH).Fiind prezentat un exemplu didactic, am limitat la 10 caractere denumirea produselor din tabel
Dupa descrierea structurii articolului se introduc doua inregistrari in acest tabel:
Mouse |
T |
|
Tastatura |
F |
|
Carcasa |
F |
|
Floppy |
T |
Dupa introducerea comenzii CREATE in Command window se cere un nume pentru tabelul care urmeaza a fi creat. Tabelul a fost denumit PRODUSE. Devine vizibil apoi ecranul in care este precizata structura articolului( figura 2)
FIG 2
Dupa precizarea structurii articolului se selecteaza butonul OK. Utilizatorul este intrebat daca doreste sa introduca primele inregistrari in baza de date. Daca se raspunde afirmativ apare un ecran in care sunt introduse primele inregistrari in baza de date.(Fig 3)
fig3
Cuvinte cheie:
Camp
Numele campului
Tipul campului
Tipul logic
Structura articolului
Inregistrǎri
Capitolul 5 Consultarea unei baze de date. Comenzi si clauze utilizate in consultarea bazelor de date.
list for sal<4000000
list for nume="Ion"
list for starecivila=.T.
Listarea poate fi filtrata dupa mai multe criterii prin utilizarea si-ului logic (AND) respectiv sau logic (OR) Ex:
list for denprod="calculator" and pretv < 20000000
list for denprodus ="imprimanta" or pretv <50000
Exemplu:
Ĩn cazul tabelului folosit ca exemplu, comanda list determina, in functie de clauzele utilizate :
a)list
b)list for pret = 15
c)list for pret<17
d)list for prod = "mouse"
e)list for cst=.t.
f)list for cst=.t. or nume="tastatura"
g)list fields pret,prod
Ĭn acest caz nu este afisat campul CST, fiind schimbata si ordinea afisarii.
Comanda list permite si afisarea unor date construite pe baza unor valori ale campurilor din tabelul activ. De exemplu putem afisa campurile nume si pret, acesta din urma fiind exprimat in euro(valorile existente in baza de date ) si in lei.
h)List prod, pret, pret*40000
Pentru formatarea campurilor declarate de tipul sir de caractere se pot folosi urmatoarele functii:
Functia upper , avand sintaxa upper(<nume_camp>).Functia primeste ca parametru un sir de caractere si returneaza acel sir scris cu litere mari.
Functia lower, avand sintaxa lower(<nume_camp>).Functia primeste ca parametru un sir de caractere si returneaza acel sir scris cu litere mici.
Functia proper , avand sintaxa proper(<nume_camp>).Functia primeste ca parametru un sir de caractere si returneaza acel sir formatat astfel: primul caracter de la inceputul fiecarui cuvant este transformat in litera mare, restul caracterelor fiind transformate in litere mici .
i)List prod,upper(prod),proper(prod)
j) In cazul in care inregistrarea cu campul prod ="mouse" a fost marcata pentru stergere logica:
list
Ĭnregistrarea este precedata de caracterul "* "
Browse
Clauza font precizeaza tipul de caractere utilizat ( Times New Roman, Arial, etc) si dimensiunea acestora. (Ex: browse fields nume,sal font 'arial',20 )
Clauza style este urmata de unul sau mai multi parametri (b,u sau i), avand urmatoarea semnificatie:
B - inregistrarile for fi afisate cu caractere ingrosate (bold)
U - subliniere (underline)
I - scrierea se realizeaza cu caractere inclinate (italic)
Ex: browse fields nume,sal style'bui' sau browse fields nume style'bi'
Cele doua clauze se pot utiliza simultan.
Ex: browse fields nume,sal font 'arial',20 style'bui'
Exemple:
a) browse
b) browse for cst=.t.
c) browse for pret<17
d) browse for prod="mouse"
e) browse style "ui"
f) browse fields pr=upper(prod), prlei=pret*40000
g) browse fields prod, p=proper(prod), pret, pr=pret*40000 style"bi" font"arial",24
Pentru a marca una sau mai multe inregistrari pentru stergere logica prin intermediul comenzii browse se selecteaza (cu mouse-ul) celulele din stanga respectivelor inregistrari .Pentru anularea marcarii pentru stergere logica se vor deselecta respectivele celule.
Acest mod de a marca inregistrari pentru stergere logica este eficient numai in cazul in care se marcheaza un numar mic de inregistrari care nu au o caracteristica comuna. Ĭn caz contrar se foloseste comanda delete pentru marcare si comanda recall pentru demarcare.
Zona unde se realizeaza marcarea (demarcarea) pentru stergere logica
Cuvinte cheie: Vizualizare, list, browse, clauza for,clauza fields,clauza freeze.
Capitolul 6 Actualizarea bazei de date. Comenzi legate de adǎugarea si modificarea inregistrǎrilor. Stergerea logicǎ si stergerea fizicǎ a inregistrǎrilor.
Append
Comanda permite adǎugarea de inregistrǎri la sfarsitul bazei de date.
Comanda determina aparitia unei ferestre care contine denumirile campurilor. In acest ecran (fereastra) se introduc inregistrarile care se adauga in baza de date.
Inregistrǎrile vor respecte structura articolului(caracteristicile fiecǎrui camp)
append
Au fost adaugate doua inregistrari. Noul continut al bazei de date poate fi vizualizat cu comanda list sau cu comanda browse
List
browse
Comanda realizeaza marcarea pentru stergere logicǎ a inregistrǎrilor.
Inregistrarile nu sunt sterse fizic din baza de date, ele putand fi recuperate ulterior prin comanda recall (sau prin comanda browse, prin comanda edit).
In urma stergerii logice a uneia sau mai multor inregistrari, inregistrarile ramase in baza de date nu sunt renumerotate.
Se poate utiliza impreunǎ cu clauzele for si all
Ex: delete for <nume_camp> <criteriu>. In aceasta situatie vor fi marcate pentru stergere logica numai acele inregistrari care corespund criteriului.
Ex: delete for denprodus="imprimanta"
Urmarea executiei acestei comenzi este stergerea logica din baza de date a tuturor inregistrarilor care au in campul denprodus valoarea (textul in acest caz) -"imprimanta"
Utilizarea clauzei all determinǎ marcarea pentru stergere logicǎ a tuturor inregistrǎrilor din baza de date:
Ex: delete all
Ĭnregistrarile care sunt marcate pentru stergere logica sunt evidentiate prin prezenta caracterului "*" in cazul vizualizarii continutului tabelului prin comanda list, sau printr-un marcaj negru in cazul vizualizarii inregistrarilor prin comanda browse sau comanda edit .
Exemplu:
Delete for pret>19
List
Delete for pret>19
browse
Delete for pret>19
edit
Recall
Comanda permite demarcarea inregistrǎrilor marcate pentru stergere logicǎ
Se poate utiliza impreunǎ cu clauzele for si all
Ex: recall for <nume_camp> <criteriu>. In aceasta situatie vor fi demarcate acele inregistrari care corespund criteriului.
Ex: recall for denprodus="imprimanta"
Utilizarea clauzer all determina demarcarea de la stergere logica a tuturor inregistrarilor marcate pentru stergere logicǎ (cu delete sau browse)
Ex: recall all
Exemple:
Recall for pret>250
Browse
recall all
browse
Pack
Comanda realizeaza stergerea definitiva (fizica) a inregistrarilor marcate pentru stergere logica.
Inregistrarile ramase in baza de date se renumeroteaza.
Practic se creeaza o noua baza de date care contine numai inregistrarile care nu sunt marcate pentru stergere logica. SGBD copiaza toate inregistrarile marcate pentru stergere logica intr-un fisier temporar apoi este sters fisierul original, actiune urmata de redenumirea fisierului temporar cu numele fisierului original, din acest motiv nu este posibila recuperarea inregistrarilor sterse.
Aceasta actiune nu este realizata in urmatoarele situatii:
Nu exista loc pe HDD pentru crearea fisierului temporar
In timpul procesului utilizatorul apasa tasta ESC.
Exemplu:
Delete for prod="floppy"
Browse
A fost marcata pentru stergere logica inregistrarea cu campul numit prod avand valoarea "floppy"
Pack
Browse
Ĩnregistrarea marcata pentru stergere logica a fost stearsa definitiv din baza de date.
Zap
Comanda realizeaza stergerea fizica, definitiva, a tuturor inregistrarilor din baza de date.
Se pastreaza numai structura articolelor (caracteristicile fiecarui camp)
Comanda este echivalenta cu succesiunea de comenzi :
Delete all (sunt marcate pentru stergere logica toate inregistrarile din baza de date)
Pack (sunt sterse fizic din baza de date inregistrarile marcate pentru stergere logica)
Edit
Se afisazǎ inregistrǎrile din baza de date sub forma unui tabel
Permite editarea si modificarea inregistrǎrilor din baza de date, precum si marcarea acestora pentru stergere logica.
Se poate utiliza impreunǎ cu clauzele for,fields semnificatia acestora fiind cea descrisa anterior. ( comanda list)
Modul de afisare al inregistrǎrilor se controleaza prin intermediul clauzelor font si style (vezi comanda browse)
Exemple:
Edit
Edit style"iu"
Ĩnregistrarile din baza de date au fost afisate cu caractere inclinate ( i ) si cu subliniere (u)
edit fields afi_maj=upper(prod)
Prin utilizarea clauzei fields a fost afisat un singur camp din baza de date (campul numit prod), functia upper realizand afisarea cu majuscule.
Cuvinte cheie: actualizare, adǎugare de inregistrǎri, modificare, stergere logicǎ, stergere fizicǎ ,append, delete, recall, pack, zap, edit.
Capitolul 7 Alte comenzi FoxPro legate de exploatarea bazelor de date. Sortarea bazelor de date. Crearea ferestrelor de consultare (form) in FoxPro.
Permite calcularea valorilor minime, maxime, calculul mediei sau a sumelor valorilor unor campuri.
Comanda calculate se va utiliza impreuna cu una dintre urmatoarele functii: min(), max(), sum(), avg()
Calculate Min(<nume_camp>) - returneaza cea mai mica valoare a inregistrarilor aflate in campul respectiv. Aceasta valoare se afiseaza pe ecran sau este stocata intr-o variabila. Campurile pot fi de tip numeric, sir de caractere, data calendaristica, etc.
Calculate Max(<nume_camp>) - returneaza cea mai mare valoare a inregistrarilor aflate in campul respectiv. Aceasta valoare se afiseaza pe ecran sau este stocata intr-o variabila. Si in acest caz campurile pot fi de tip numeric, sir de caractere sau data calendaristica.
Calculate Sum(<nume_camp>) - returneaza suma valorilor inregistrarilor aflate in campul respectiv. Este necesar ca aceste inregistrǎri sǎ fie de tipul numeric.
Calculate Avg(<nume_camp>)-in acest caz se va returna media aritmeticǎ a valorilor din campul respectiv. Si in acest caz este necesar ca aceste inregistrǎri sǎ fie de tipul numeric.
Exemple
a)Calculate min(pret)
S-a calculat si afisat cea mai mica valoare gasita in campul pret
b)Calculate min(pret),max(pret)
S-au calculat si au fost afisate cea mai mica si cea mai mare valoare a inregistrarilor din campul pret.
c)calculate sum(pret)
d)calculate avg(pret)
S-a calculat si afisat media aritmetica simpla a valorilor numerice aflate in campul pret.
e) calculate min(prod),max(prod)
Datele din campul prod sunt de tipul sir de caractere. Ĩn acest caz se considera ordinea in care sunt reprezentate caracterele in codul ASCII (a<b<c.etc)
f) calculate sum(prod)
Ĩn cazul in care se incearca utilizarea datelor de tipul sir de caractere ca parametrii pentru functii care pot lucra numai cu tipul numeric se genereaza un mesaj de eroare.
use
Comanda USE permite inchiderea respectiv deschiderea unei baze de date.
Sintaxa comenzii: USE <nume_baza_de_date>
Daca baza de date este cea activa in memorie ea va fi inchisa.
Daca baza de date nu era cea activa in memorie ea va fi deschisa.
Obs. Toate comenzile se refera la baza de date activa in memorie;
La un moment dat putem avea o singura baza de date activa in memorie;
clear
Este sters continutul ecranului principal al aplicatiei FOX PRO
Nu sunt sterse comenzile din fereastra de comenzi.(Command window)
Comanda nu afecteaza in nici un fel inregistrarile din baza de date. (nu exista nici o legatura intre comenzile legate de stergerea inregistrarilor DELETE, PACK, ZAP si comanda CLEAR)
Comanda CLEAR este echivalenta ca si actiune cu comanda MSDOS CLS.
list structure
Aceasta comanda afiseaza pe ecranul principal al FOX PRO-ului informatii legate de baza de date activa (tabelul activ)
Vor fi astfel afisate structura articolului (nume camp, tip, lungime maxima.), va fi afisat numarul de inregistrari din baza de date, ultima accesare a acestora, precum si calea spre baza de date.
Exemplu
Consideram un tabel cu urmatoarea structura a articolului:
C1- sir de caractere, lungime maxima 3
C2- numeric, lungime maxima 2
C3- logic, , lungime maxima 1 (implicit)
Comanda list structure va afisa
Comanda are acelasi rol cu list structure
sort
Pentru a putea sorta elementele unei multimi este necesar ca pe multimea respectivǎ sa avem definita o relatie de ordine.
Sortarea presupune aranjarea elementelor respectivei multimi fie in ordine crescatoare, fie in ordine descrescatoare.
In cazul campurilor de tipul sir de caractere se va utiliza drept criteriu de sortare reprezentarea caracterelor in codul ASCII.
Ĩn cazul unui tabel (baza de date) sortarea presupune rearanjarea inregistrarilor in functie de valorile unuia sau a mai multor campuri, aceste campuri putand fi sortate atat crescator cat si descrescator.
In urma operatiei de sortare se va crea o noua baza de date cu un nume diferit de baza de date sortata.
Pentru a putea vizualiza rezultatul sortarii este necesar sa inchidem baza de date initiala si sa deschidem noua baza de date creata in momentul sortarii (aceste operatii vor fi realizate prin intermediul comenzii USE)
Sintaxa comenzii SORT este urmatoarea:
SORT TO <baza_sortata> ON <nume-camp1><parametru>, , <nume-camp n>
<baza-sortata> reprezinta numele bazei de date care se creeaza in momentul sortarii
<nume-camp 1, n> reprezinta campurile din baza de date initiala dupa care se realizeaza sortarea
<parametru> poate avea una din urmatoarele valori: /a, /d
/a = ASCENDING - se utilizeaza pentru sortarea crescǎtoare (aranjarea in ordine crescatoare a valorilor din campul respectiv)
/d=DESCENDING - precizeaza ca sortarea se realizeaza in ordine descrescatoare a valorilor din campul respectiv.
Daca nu este specificat nici unul din cei doi parametri sortarea se consodera implicita crescatoare.
Exemplul 1
Se considera baza de date cu structura:
C1- sir de caractere, lungime maxima 3
C2- numeric, lungime maxima 2
C3- logic, , lungime maxima 1 (implicit)
Baza de date exista pe HDD si este salvata sub numele de baza1. Se cere:
Crearea unei baze de date cu numele baza1s sortata crescator dupa valorile campului c1(cel care contine date de tipul sir de caractere). Initial baza1 contine urmatoarele inregistrari:
use baza1 (este deschisa baza nesortata)
sort to baza1s on c1/a (se creeaza baza1s sortata crescator dupa valorile campului c1)
use baza1s (este deschisa baza sortata)
list (este listat continutul tabelului sortat)
Ex.emplul 2.
Sa se sorteze aceasta baza de date baza1 (cu structura descrisa mai sus) in felul urmator:
-crescator dupa campul C2
-descrescator dupa campul C1
Se va crea baza de date cu numele baza2s
Sintaxa comenzii este urmatoarea:
use all (inchide baza de date activa)
use baza1
sort to baza 2s on c2, c1/d
use baza1
use baza2s
browse
Ca rezultat se va afisa pe ecran:
Obs. Al doilea criteriu de sortare este luat in considerare numai in cazul in care avem valori egale in primul camp precizat ca criteriu de sortare (in acest caz inregistrarile care au in campul C2 valoarea 23 sunt afisate in ordinea descrescatoare a valorilor din campul C1 ;
Daca toate valorile inregistrarilor din primul camp sunt diferite, al doilea criteriu nu intervine deloc.
Obs:
SORT TO BAZA2S ON C1, C2/D
SORT TO BAZA2S ON C2/D, C1
Rezultatul executiei celor doua comenzi difera
Quit
Comanda QUIT se utilizeaza pentru a iesi din FoxPro
Crearea formularelor in FoxPro
O forma este o fereastra in care se gasesc mai multe elemente care permit accesarea si modificarea (actualizarea) inregistrarilor dintr-o baza de date . Elementele dintr-o forma pot fi:
a) Etichete - (labels) Etichetele pot contine text. Ĩn mod implicit textul din etichetele prezente in formele create in FOX se va referi la numele campurilor din baza de date activa.
b) Ferestre de editare - (text box), acestea continand inregistrarile din baza de date.
c) Butoane de comanda - (command button), fiecare dintre aceste butoane fiind legat de o actiune posibila in contextul utilizarii bazei de date.
d) Elementele comune - oricarei ferestre din Microsoft Windows (butoane de maximizare, minimizare, inchidere)
Etichete TextBox Butoane de comanda
Crearea formelor se poate realiza foarte rapid urmand o succesiune de pasi cu selectarea pentru fiecare etapa a optiunilor dorite.
Presupunem creatǎ o baza de date cu structura cunoscuta, baza de date fiind deschisa succesiunea este urmatoarea:
Din meniul TOOLS se selecteaza optiunea WIZARDS.
Din lista care apare se selecteaza FORM
Ĩn continuare se selecteaza in acest exemplu FORM WIZARD
Apare un ecran din care se selecteaza acel tabel de care va fi legata forma.
Sunt selectate campurile din tabel care vor fi vizibile in FORM.
Urmatoarea etapa permite doua actiuni:
se alege stilul in care va fi realizata forma
se precizeaza setarea butoanelor de comanda
Se trece la urmatoarea etapa prin apasarea optiunii NEXT . In aceasta noua faza sunt precizate :
campurile dupa care va fi sortata baza de date (unul sau mai multe campuri, cu posibilitatea sortarii crescatoare sau descrescatoare).
Se precizeaza campul dupa care se realizeaza indexarea bazei de date.
Urmatoarea etapa se refera la precizarea numelui formei si salvarea acesteia Daca nu se precizeaza alt nume forma va avea implicit numele tabelului de care a fost legata si extinsa SCX. Tot in aceasta etapa se poate opta fie pentru lansarea imediata a formei , fie pentru salvarea ei in vederea unei folosiri ulterioare.
OBS. Pentru a lansa in executie o forma salvata se va folosi in fereastra de comenzi:
DO FORM nume.SCX
Pe forma avem urmatoarele butoane de comanda:
I. Butonul cu textul TOP. Acesta afiseaza in forma prima inregistrare din baza de date
Obs. Prima inregistrare rezultata in urma eventualei sortari, nu prima inregistrare din baza de date precizata la inceputul crearii formei)
II. BOTTOM Acesta afiseaza in forma ultima inregistrare
III. NEXT Acest buton afiseaza urmatoarea inregistrare din baza de date,
Butonul nu este activ daca suntem pozitionati pe ultima inregistrare.
IV. PREV Acest buton afiseaza inregistrarea anterioara
V. ADD - permite adaugarea unei noi inregistrari in baza de date.
Campurile trebuie sa respecte structura articolului;
Adaugarea tine cont de optiunea sortarii bazei de date;
VI. EDIT - Butonul permite modificarea valorilor inregistrarilor din baza de date
VII. DELETE - butonul realizeaza stergerea inregistrarilor din baza de date.
VIII. FIND - determina aparitia unui ecran in care se pot construi expresii. Acest ecran are urmatoarea structura:
FIELD OPERATOR VALUE
FIELS - poate fi orice camp din baza de date activa;
OPERATOR -pot fi:
Operatori relationali (=, >, <, <=)
Operatorul Between - permite selectarea campurilor cuprinse intre doua valori, Ĩn acest caz in dreptul campului VALUE sunt date doua valori separate prin virgula.
Operatorul Contains - este utilizat preponderent pentru gasirea inregistrarilor ( campuri de tipul sir de caractere ) care contin o anumita litera sau un grup de litere.
In dreptul campului VALUE sunt introduse valorile dupa care se realizeaza cautarea.
OBS. Ĩn cazul campurilor de tipul sir de caractere, spre deosebire de sintaxa de la comenzile BROWSE, LIST, EDIT, valorile cautate nu se introduc intre ghilimele duble (").
IX. EXIT Se iese din forma.
Cuvinte cheie: calculate, sortare crescǎtoare, sortare descrescǎtoare, buton de comandǎ, etichetǎ, fereastrǎ de editare.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 3223
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved