Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna




category
Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
FOX PRO - comenzi si functii Fox Pro



FOX PRO - comenzi si functii Fox Pro


FOX PRO


Modificarea structurii unei BD: MODIFY STRUCTURE, comanda permite modificarea BD active


Ex1: nume camp tip dimensiune

SEX C 1

SALAR N 7

COPII L

SECTIE N 3

FUNCTIE C 10


Ex2: Adaugati in BD Agenda un camp Obs, de tip Memo, care sa contina informatii suplimentare despre persoanele inregistrate in BD


Adaugarea unui articol in BD: APPEND - pemite adaugarea unui articol la sfarsitul BD. APPEND BLANK - permite adaugarea unui singur articol gol




Ex3: Adaugati in Personal informatii despre alti 2 angajati in asa fel incat salariul lor sa depaseasca valoarea de 500 000. Campul Copii se completeaza cu una din valorile T sau F afisand pe ecran continutul BD

Ex4: Adagati in BD Biblio informatii despre inca un titlu. Afisarea contine Obs (de tip memo) se realizeaza cu comanda LIST OBS


=Comenzi si functii Fox Pro=

A. Functii - returneaza o valoare si pot fi de tip sistem sau create de utilizatoi. Sunt caracterizate de nume si o pereche de paranteze rotunde care le diferentiaza de comenzi. Niciodata pe linia de comanda nu vom avea unctii de sine statatoare. Functiile pot sa apara numai in combinatie cu comenzile Fox Pro.

Ex: funcii sistem: DATE( ) - returneaza o valoare de tip data calendaristica (data curenta)  

Pentru afisarea datei curente folosim comanda ? si functia DATE: ?DATE( ) sau ?TIME( )

Obs: Comanda '?' are rolul de a afisa pe ecran rezultatul functiei cu care se combina


B. Comenzile - executa o actiune: Use, List, Display, ?, …


=Sintaxa comenzilor Fox Pro=

Comenzile Fox Prosunt alcatuite din una sau mai multe componente care determina modul in care poate fi folosia comanda respectiva. Comanda Fox pro este un sir de maxim 254 de caractere care incepe obligatoriu cu numele comenzii (un verb in limba engleza sau un caracter special), eventual (nu obligatoriu) urmat de parametrii.

Obs: In Fox Pro este permisa prescurtarea unei comenzi la primele 4 litere.

Ex: Display - Disp

List Structure - List stru


=Sintaxa generala a unei comezi Fox Pro=

Nume comanda[<domeniu>][<lista de expresii>]

Ex: Sintaxa maxima a comenzii display este:

DISPLAY [[field]<field-list>]

[<scope>]

[FOR<expL1>]

[WHILE<expL1>]

[OFF]

[TO PRINTER|TO FILE]

[NOCONSOLE|TO FILE <file>]

[NOOPTIMIZE]

Conventii de scriere: cuvintele cheie rezervate de sistemul Fox Pro pentru uzul propriu se sciu cu majuscule. Fiecare comanda contine cel putin un cuvant cheie (numele comenzii sau functiei). Exemple de cuvinte cheie: Display, For, While, Off (se mai numesc clauze)

< > - indica informatile care trebuie introduse de utilizatori la scrierea comenzii. Parantezele nu se scriu

( ) - apar in sintaxa functilor si sunt obligatorii

[ ] - indica partile optionale ale comenzilor si functiilor Fox Pro

Continutul parantezelor poate sa apara sau nu la scrierea comenzii in functie de scopul urmarit de utilizator.

| - bara verticala, separa2 optiuni care nu pot sa apara in acelasi timp pe linia de comanda

exp - poate fi inlocuita cu o expresie de orice tip

expN - poate fi inlocuita numai cu o expresi numerica


a) Domeniul - cand operam asupa unei BD avem posibilitatea sa specificam numai o parte a articolelor din baza asupra careia sa aiba efect comanda. Aceste articole formeaza un domeniu. Delimitarea domeniului se poate face utilizand clauzele Scop, For si While

SCOPE - poate fi inlocuit cu urmatoarele cuvinte cheie:

All - are efect asupra tuturor articolelor din BD. Ex:Display All

Next <expN> - are efect asupra urmatoarelor expNarticole incepand cu articolul curent. Ex: Display Next 3

Obs: La Display, domeniul e implicit Next 1

Rest - comanda va avea efect asupra tuturor articoleor din BD, incepand cu cel curent pana la sfarsit

Record <expN> - comanda va avea efect asupra inegistrrii cu nr. expN. Ex: Display Record 4

Clear - curata ecranul

FOR - in prezenta acestei clauze, comanda va afecta toate articolele din BD care indeplinesc conditia logica specificata. Ex: Display For salar> 500 000

WHILE - se va executa comanda atata timp cat este respectata conditia logica impusa de clauza While

Testarea expresiei logice incepe cu articolul curent. Eefctul comenzii inceteaza la primul articol pentru care valoarea expresiei nu este adevarata, chiar daca dupa acest articol mai exista altele care indeplinesc conditia data. Ex: display While salar>500 000

b)Lista de expresii - o expresie Fox Pro reprezinta o combinatie de valori ale campurilor BD, functii, valori ale variabilelor de memorie, constante si operatori. Elementele unei liste de expresii se delimiteaza cu virgula. Exista 4 tipuri de expresii Fox Pro: <expC>, <expN>, <expD>, <expL>

Intr-o expresie pot aarea urmatoarele elemente (operatii): campuri ale BD, functii, valori ale variabilelor de memorie, siruri.

Toti operanzii unei expresii trebuie sa fie de acelasi tip de date, in caz contrar, Fox Pro va afisa un mesaj de eroare

Expresii de tip caracter <expC>

campuri de tip caracter ale BD

functii care returneaza valoarea de tip caracter

valori ale variabilelor de memorie care contin date de tip caracter

constante de tip caracter (siruri de caractere)

Obs: Sirul de caractere e delimitat de ghilimele sau apostrof. Ex: 'Cluj' sau 'Cluj'

Expresii de tip numeric <expN>

campuri ale BD de tip numeric

functii care returneaza valori numerice

variabile de memorie care contin valori numerice

constante de tip numeric nume cu sau fara semn)

Expresii de tip data calendaristica <expD>

idem <expN>

variabile de memorie care contin data calendaristica

Expresii de tip logic <expL>

idem <expN>

variabile de memorie de tip logic. Contine valorile .T. sau .F. sau .Y. sau .N.

In expresii pot interveni oeranzi si operatori. Ex: 2+3. 2,3 - operanzi; + - operator.

Operanzii pot fi:

1.     Nume de campuri. Ex: Display Nume, Data nasterii

2.     Functii - functiile utilizate in expresii pot fi: sistem sau definite de utilizator. Intre paranteele rotunde se pot transmite paramerii. Ex: ?DATE(), ?TIME(), ?RECNO() - returneaza numarul articolului curent

3.     Variabile - reprezinta locatii de memorie in care se pastreaza anumite valori

4.     Constante - cele 4 tipuri tratate mai sus: N, C, L, D.


SET HEADING OFF - inhiba afisarea numelor campului


Operatori - se impart pe caregorii in functie de tipul datelor asupa carora opereaza

1. Operatori aritmetici - actioneaza asupra datelor de tip numeric

^ ** - ridicare la putere

* - inmultirea

/ - impartirea

% - modulo (restul impartirii intregi)

+ - adunare/scadere

Prioritatea operatorilor incepand de la cei mai prioritari: ** ^, */, %, +-

Ex: 23 - ?2**3

2. Rationari - sunt utilizate in expresii care returneaza o valoare logica. Opereaza cu date de orice tip: <, >, =, <>, #, <=, >=, $

Obs: $ si = = se foloseste numai entru siruri de caractere

3. Operatori logici - .NOT.(negatie), .AND. (si logic), .OR. (sau logic)

4. Operatori de concatenare - sunt utilizati in expresii de tip caracter si opereaza cu operatii de tip caracter. Sunt de 2 tipuri: simplu (+ realizeaza concatenarea a doua siruri de caractere) si special (- Realizeaza concatenarea de caractere cu mutarea spatiilor de la sfasitul primului sir la sfarsitul celui de-al doilea)

ex: ?'Cluj' + 'Napoca' - Cluj Napoca

?'Cluj' + '-' + 'Napoca' - Cluj-Napoca


Display nume+prenume - POP ANA

Display nume-prenume - POPANA


Ex 1: Afisati varsta salariabilor din BD Personal

Display All nume prenume 'Varsta' , year (DATE()) - year (datan)

Ex2: Afisati toti salariatii sub 40 ani

Display All For year (DATE())

Ex3: Afisati toti salariatii care au salar mai mic de 800 000 si au copii


=Comenzi pentru intretinerea unei BD. Pozitionarea in BD=

Fiecare articol al unei BD este caracterizat de un numar (Record Number); articolul curent este articolul celei carei informatii sunt disponibile la un moment dat. Numarul curent este returnat de functia RECNO( )

Articolele unei BD sunt inregistrate astfel:

BOF (Begin Of File)

EOF (End Of File)

Functia BOF returneaza valoarea rue, ca sunt conditionat e inceputul fisierului de BD inaintea primului articol. In orice alta situatie, valoarea returnata de functia BOF este False.

Funcita EOF returneaza valoarea True daca sunt pozitionat la sfarsitul articolului de BD (dupa ultimul articol). Valoarea returnaa de funcia EOF este False.

Exista 3 modalitati de pozitionare intr-o BD:

a) Pozitionarea absoluta GOT<expN>

GO TOP - pozitionare pe primul articol

GO BOTTOM - ozitionare pe ultimul articol

GO 5 - pozitionare pe articolul 5

b) Pozitioarea relativa - permite pozitionarea fata de articolul curent. SKIP [+][-][expN>]

c) Pozitionarea conditionata - permite pozitionarea e primul articol care indeplineste o anumita conditie. LOCATE FOR <expL>[WHILE <expL2>]. Daca a gasit un articol care indelineste conditia o afiseaza pe ecran. In aceasta situatie, functia FOUND( ) returneaza coloana True. Initierea urmatorului articol care sa indeplineasca conditi se face cu comanda CONTINUE.

Ex: Sa se afiseza numele primului angajat care are un salar de 500 009


=Stergerea logica a unui articol din BD=

DELETE - comanda marcheaza articolul pentru stergere. Stergerea realizaa de comanda Delete este doar o stegere logica, stegerea nu are loc definitiv

Sintaxa comenzii: DELETE [<domeniu>] sau [FOR<expL1>] sau [WHILE<expL2>]

Obs: Domeniul implicit al comenzii Delete este articolul curent

Ex: Marcati pentru stergere toti angajatii care nu au copii, apoi afisati pe ecran numele si prenumele tuturor angajatilor.

DELETE FOR copii=.F.

LIST FIELDS nume, prenume, copii


=Anularea marcajului pentru stergere=

Se face cu comanda RECALL. Domeniul implicit al acestei comezi este articolul curent.

Sintaxa comenzii: RECALL [<domeniu>][FOR<expL1>][WHILE <expL2>]

Ex1: Anulati marcajul pentru stergere al primului angajat care nu are copii

LOCATE FOR copii=.F.

RECALL

LIST FIELDS nume, prenume, copii

Ex2: Anulati marcajul pentru stergere al tuturor articolelor marcate cu comana Delete. RECALL ALL


=Stergerea fizica =

Se realizeaza cu comanda PACK, comanda care sterge toate articolele marcate cu comanda Delete.

Ex: marcati pentru stergere toti angajatii care au salarul de 850 000

DELETE FOR SALAR=850000

LIST FIELDS nume, salar


=Comanda ZAP=

Realizeaza stergerea fizica a tuturor articolelor din BD. Practic, aceasta comanda goleste BD obtinand o baza cu vechea structura, dar fara nici un articol.

Ex: Afisati continutul BD Agenda. Stergeti fizic toae articolele din BD


=Modificarea unui articol din BD. Comanda EDIT=

EDIT [FIELDS <fields, list>][<scope>][FOR<expL1>][WHILE<expL2>]

Ex1: Modificati articolul 3 din BD Personal.

EDIT RECORD 3

Ex2: Modificati articolul din BD care inndeplineste o conditia logica

EDIT FOR copii=.T.


Comanda CHANGE - se utilizeaza in acelasi mod ca si Edit


=Comanda BROWSE=

Este una din cele mai puternice comezi Fox pro. Permite:

deschiderea unei feestre numite Browse cu asect de tabel bidimensional in care ca antet apar numele campurilor BD, iar in fiecare linie apare continutul unui articol.

afisarea articolelor BD

editarea articolelor existente (modificare, stergere)

adaugarea unor articole noi

Dupa activarea ferestrei Browse in meniul principal apare o noua otinue care permite opraii speciale comenzii browse (modificare, maracre pentru stergere, mutarea campurilor, modiicarea dimensiunii pentru afisare campuri…)


=Navigarea in ferestre=

↑/↓ - deplasarea in sus/jos cu un articol

Page Up/Down - deplasarea in sus/jos cu o pagina

TAB - deplasarea de la un camp la altul

Shift+TAB - deplasarea la stanga


=Adaugarea unui articol nou=

CTRL+W

BROWSE

APPEND RECORD (ALT+B)


=Stergerea unui articol din BD=

CTRL+T

Click pe butonul stang al mouseului in extremitatea stanga a art

Prin Browse comanda Toggle Delete


In fereastra BROWSE avem posibilitatea de a schimba ordinea si dimensiunea campurilor BD cu ajutorul mouse-ului.



=Iesirea =

cu salvarea modificarilor: CTRL+W sau CTRL+End

fara salvarea modificarilor Esc sau CTRL+Q


=Sintaxa comenzii BROWSE=

BROWSE [FIELDS <field-list>] [FOR <expL1>] [FREEZE<field-name>] [NOOAPPAND] [NODELETE] [NOEDIT|NOMODIFY] [TITLE <expC>] [VALID [:F] <expL2>] [WHEN <expL3>] [WIDTH <expN1>]

[[WINDOW <window name 1>] [IN [WINDOW] [<window name 2>|IN SCREEN]] [COLOR SCHEME <expN2>] [COLOR <color-pair list>]

FIELDS - permite afisarea selectiva a campurilor BD (cele specificate in lista de campuri) Ex: BROWSE FIELDS nume, prenume

FOR - ermite afisarea articolelor pentru care conditia logica data de <expL1> este adevarata. Ex: BROWSE FIELDS nume, prenume, functie FOR salar>800000

FREEZE <field name> - permite modificarea numai a campului specificat de field name. Celelalte campuri afisate in fereastra vor fi de ip Read Only. Campul pe care dorim sa-l modficam trebuie sa apara in lista de campuri afisate in fereastra.

Ex: Afisati in Browse campurile nume, prenume, functie si salar cu restrictia ca umai coninutul campului functie poate fi modificat.

BROWSE FIELDS nume, prenume, functie, salar FREEZE functie

NOAPPEND - nu permite adaugarea unor noi articole in BD prin Browse. Ex: BROWSE NOAPPEND

NODELETE - nu permite marcarea articolelor pentru stegere in fereastra Browse

NOEDIT|NOMODIFY - nu permite modificarea articolelor existente in BD. In aceasta situatie este posibila stergerea unor articole si adaugarea unor articole noi

TITLE <expC> - permite modificarea numelui ferestrei Browse cu noul text introdus cu <expC>. Ex: BROWSE FIELDS nume, prenume, TITLE BD…

VALID[:F] - permite introducerea unei conditii de validare a datelor la nivel de arhiva. Se executa numai dupa ce am modificat continutul unui articol si trecem folosind sagetile la un alt articol. Nu se executa daca singurul camp modificat este de tip Memo. A nu se confunda cu optiunea :V la nivel de camp. Folosind optiunea [:F] fortez validarea datei introduse inaintea trecerii la un nou articol. Ex: BROWSE FIELD nume, prenume, salar VALID :F salar>600000

WIDTH - permite limitarea dimensiunii tuturor campurilor afisate in fereastra Browse. Se modifica numai dimensiunea de afisare a campurilor. In structura BD dimensiunea campurilor ramane asa cum s-a stabilit la crearea structurii. Daca informatia inregistrata intr-un camp nu se vede in intregime, cu sageata spre dreapta se poate face sa defileze continutul campului respectiv.

IN[WINDOW] - permite afisarea tastei browse intr-o fereastra creata de utilizator cu numele specificat dupa aceasta clauza

COLOR SCHEME / COLOR - permite afisarea ferestrei Browse intr-o anumita schema de culori. Ex: BROWSE WIDTH 4 COLOR SCHEME 5


=Operatii specifice pentru Browse=

campuri calculate - contin date de tip Read Only , expresii de orice tip valide in Fox Pro

Ex: Afisati in fereastra Browse numele, prenumele si varsta din BD Personal

- campuri Read Only - nu este permmisa decat afisarea lor si nu pot fi decat modificate

Ex: BROWSE FIELDS nume, prenume, salar:R

BROWSE FIELDS nume:R, prenume:R

- validarea valorii introduse intr-un camp

Ex1: Modificati salarul angajatilor avand in vedere ca salarul minim pe economie este de 800 000

BROWSE FIELDS nume, prenume, salar:V=salar>800000

Ex2: Fortarea validarii valorilor introduse in camp chiar atunci cand se trece u cursorul prin camp

BROWSE FIELDS nume, prenume, salar:V=salar>800000:F

Ex3: Afisarea unui mesaj propriu in cazul introducerii in camp al unei valori necorespunzatoare

BROWSE FIELDS nume, prenume, salar:V=salar>800000:F:E 'salarul minim este de 800000'

Ob: daca dorim scrierea unei comenzi pe mai multe linii, fiecare linie de comanda trebuie delimitata cu ;


- schimbarea numelui anumitei coloane <nume camp>:H=<expC>

Ex: Afisati campul copii al BD Personal intr-o coloana numele Angajatul are copii?

BROWSE



=Ordonarea unei BD=

a)     prin indexare: ordonare logica

b)     prin sortare: ordonare fizica


=Indexarea unei BD=

Inseamna ordonarea logica a articolelor logice dupa criterii. Ordonarea fizica a articolelor din BD nu se modifica, in urma indexarii se creaza un fisier auziliar fisierului de BD cu extensia .IDX sau .CDX, in functie de tipul insdexului creat. Numarul de fisiere index al unei BD nu este limitat, dar ordinea de accesare a BD la un moment dat necontrolata de un fisier tip Master Index File sau Mater Tag. Numarul de fisiere index deschise la un moment dat este limitat numai de dimensiunea memoriei si de resursele sistemului in acel moment. La modificarea unei BD toate fisierele index deschise sun modificate automat.

Tipuri de indecsi:

1.     index simplu - Bd este ordonata dupa o singura cheie. Fisierul index are extensia .IDX. se deschide cu o observatie specifica la deschiderea BD

2.     index compus - poate fi structural sau nestructural. BD este ordonata dua mai mule chei (tag-uri). Daca este structural, fisierul de indexare are numele BD si se deschide automat la deschiderea BD. Fisierul de indexare compus are extensia .CDX. fisierul tag are nume propriu de maxim 10 caractere; incepe de la o litera, cifra sau caracter-underscare

Cheile de indexare sunt campuri ale BD sau expresii vlide Fox Pro


=Crearea unui index=

Pentru o BD deschisa se face cu comanda INDEX.

Index Simplu: INDEX ON <cheia>TO<nume fisier>[FOR<expL>]

Index Compus: INDEX ON <cheia> TAG <tag nume> [FOR <expL>] [ASCENDING]|[DESCENDING][ADDITIVE]

Articolele BD indexate vor fi afisate si accesate in ordinea stabilita de cheia specificata


=Activarea indecsilor=

1.     La deschiderea BD

index simplu - USE<nume baza> INDEX<nume fisier index>

index compus - se activeaza automat fisierul .CDX al sructurii USE<nume baza> ORDER TAG<tag name> [OF<cdx file>] se foloseste daca dorim deschiderea unui alt tag

2. Dupa deschiderea BD

SET INDEX TO <lista fisiere index>


REINDEX - actualizarea inecsilor activi

CLOSE INDEX - inchiderea indecsilor activi. Comanda include toate fisierele index deschise in zona de lucru curenta in afara de cel structural.

Obs1: Index deschis nu inseamna ca BD este ordonata

Obs2: Ordonarea la un moment dat se face dupa o singura cheie daca sunt activi toti indecsi creati.

Obs3: Ordonarea dupa un index structural (.cdx) se face numai cu comanda SET ORDER TO AG <tag name>


=Functii de transformare=

- CTOD transforma o expresie de tip sir de caractere intre expresie de tip data calendaristica

CTOD( )

DTOC( )


- STR(<expN1>[,<expN2>[,<expN3>]) - transforma expresia numerica in sir de caractere

expN1 - este expresia numerica evaluata

expn2 - lungimea sirului de caractere

expN3 - nuaraul de zecimale din sirul returnat


Ex1: Ordonati BD Personal dupa numele angajatilor

INDEX ON nume TO inume ROS inume:inume.idx

LIST FIELDS nume

Ex2: Ordonati BD Personal dupa prenume

INDEX ON prenume To ipren

LIST FIELDS prenume

Ex3: Ordonati BD ersonal dupa salar

INDEX ON salar O isalar

LIST

Ex4: deschideti BD Personal si indecsi

USE PERSONAL INDEX inume, ipren, isalar; Inume - index Master dupa care va fi ordonata BD

=Crearea de indecsi compusi=

Ex5: Indexati baza dupa nume+salar

INDEX ON nume+str(salar) TAG INS; str(salar) - cheia se converteste in fisier tip C ca sa se poata aduna

Obs: se creaza fisierul Personal.cdx care se deschide automat ori de cate ori deschidem BD

SET ORDER TO TAG ins

LIST FIELDS nume, prenume, salar


=Sortarea unei BD=

Ordonarea fizica a articolelor unei BD se realizeaza cu comanda SORT

SORT TO <nume fisier> ON <camp1> [/A] [/D] [/C] [,camp2 [/A] [/D] [/C] [ASCENDING/DESCENDING] [<scope>] [FOR <expL1>] [WHILE <expL2>] [FIELDS<field list>]

Dupa executarea comenzii se creaza un nou fisier in care articolele vor fi ordonate dupa cheile precizate.

Daca dorim sa sortam numai anumite articole din BD folosim clauzele For si While, sau precizam un anumit domeniu (scope).

Daca dorim ca noua BD sa contina numai anumite campuri din BD initiala folosim clauza Fields

Un camp de tip Memo saugeneral nu poate fi folosit ca si cheie de indexare

Ex: creati o noua BD cu numele Spers.dbf in are articolele sa fie ordonate decrescator dupa campurile nume si prenume si sa contina numai campurile nume, prenume, salar si functie. Noua BD sa contina toate articolel BD Personal.

SORT TO spers ON nume/D, pren/D FIELDS nume, pren, salar & functie


=Programe Fox Pro=

Def: Un program este un fisier de tip text care contine comenzi Fox Pro

Avantaje: programele executa automat o secventa de comenzi salvand timp atunci cand este necesara executarea repetata a unei secvente de comenzi. Se pot obtine programe noi prin modificarea unor programe existente asemanatoare. Prin intemediuol unor programe se pot rula si alte programe. Anumite structuri de comenzi pot fi utilizate numai in programe. Programele permit refolosirea variabilelor cu scopul parametrarii aplicatiei create.

Crearea unui index: INDEX ON <cheie> TO<nume index>

INDEX ON <cheie> TAG <nume tag>

Activare: USE <nume baza> INDEX <nume index>

USE<nume baza> ORDER TAG <nume tag>

Actualizare: REINDEX

Inchidere: CLOSE INDEX

Stabilire index Master: SET ORDER TO <nume index>TAG<nume tag>


=Crearea unui program=

File/New/Program

Modify Command <nume program>


In urma executarii comenzii de creare a unui program pe ecran apare o fereastra de editare avand numele programului in care vom introduce comanzile asa cum le-am introduce pe linia de comanda in fereastra de comenzi. Comenzile se executa secvential (in ordinea scrierii lor in fisier linie cu linie)


=Iesirea din fereastra de editare=

Cu salvare: CTRL+W sau Save as

Fara salvare: Esc


Lansarea in executie a programului: DO <nume program>


=Exemple de programe=

- se intra cu Modify Command F1


=Program 1=

* afiseaza lista angajatilor in BD Personal

* F1

* Orice program necesita deschiderea fisierelor din BD folosite

USE PERSONAL

CLEAR

? 'Am deschis fisierul personal'

WAIT - && - (comentariu pe o linie de program oreste programul pana apasam o tasta)

CLEAR

? 'Lista angajatilor'


DISPLAY ALL nume, prenume, salar

USE


? 'OK! Am terminat!'

WAIT

Obs1: * - introduce o linie de comentariu in textul program

Obs2: && - introduce un comentariu in interirul unei linii de programe


MODIFY COMMAND F1


CLEAR

WAIT [<expC>][WINDOW]


Wait - se foloseste pentru oprirea temporara a executiei programului. Se poate folosi numai in program


WAIT - opreste executia programului si afiseaza pe ecran mesajul 'Press any key to continue'

WAIT 'Apasati o tasta' - opreste executia programului si afiseaza mesajul 'Apasati o tasta'

Wait 'Apasati o tasta' WINDOW - opreste executia programului si afiseaza pe ecran in fereastra de mesaje a sisemului textul 'apasati o tasta'


=Progam 2=


*F2


*Stabilirea conditiilor de lucru

SET TALK OFF

SET HEADING OFF

*Deschiderea bazei de date

USE PERSONAL

CLEAR

*Afisarea persoane fara copii si salar>800000

? 'Nu au copii si au salar pre mare'


LIST FIELDS nume, prenume, salar FOR .not. copii

WAIT

CLEAR

*Afisare persoane angajate inainte de 11 ianuarie 1980

LIST FIELDS nume, prenume, functie, dataa<

WAIT 'Cei angajati inainte de 01/01/80

*Afisare persoane nascute azi

LIST FIELDS nume, prenume, functie FOR MONTH(datan)=MONTH(date()) .and. DAY(datn)=DAY(date))

WAIT 'Cei nascuti azi' WINDOW

*Afisati persoanele cu prenume ION

LIST FIELDS nume, prenume, FOR UPER (prenume)='ION'

WAIT

CLEAR

USE

*Refacerea conditiilor de lucru

SET TALK ON

SET HEADING ON


SET TALK ON/OFF - activeaza/inhib aparitia pe ecran a mesajelor care apar in urma executarii unor comenzi

SET HEADING ON/OFF - activeaza/inhiba aparitia pe ecran a capului de coloana afisat de comenzile Display sau List

UPPER(<expC>) - transforma toate listerele din sirul de caractere <expC> in majuscule

OWER (<expC>) - transforma toate literele sirului de caractere <expC> in litere mici


=Executatea conditionata a unei secvente de program=

Exista comenzi care nu au sens in lucrul interactiv, ci numai in programe. Dintre acestea face pate mecanismul de programare structurata care permite executarea selectiva a anumitor secvente de comenzi.

IF …. ELSE …. ENDIF

Sintaxa

IF <expL>

<comenzi1>

ELSE

<comenzi2>

ENDIF


La intalnirea comenzii IF se evalueaza expresia logica <expL> si in functie de rezultat daca <expL> are valoarea True se executa secventa de comenzi <comenzi 1>, daca este False se executa secventa <comenzi 2>


Executarea unei secvente de comenzi atata timp cat este satisfacuta o conditie

DO WHILE <expL>

<comenzi>

[LOOP]

[EXIT]

ENDDO

Se incepe cu evaluarea expresiei <expL>. Daca valoarea este True se executa secventa <comenzi> pana la ENDDO dupa care se reevalueaza <expL> si se executa sau nu secventa <comenzi> in functie de vloarea logica a <expL>

LOOP - intrerupe executarea comenzilor din corpul ciclului DO WHILE si sare la o noua evaluare a expresiei logice <expL> de la inceput.

EXIT - intrerupe executarea comenzilor din corpul ciclului DO WHILE si sare in afara ciclului DO WHILE executand urmaoarea comanda de dupa ENDDO


=Program 3=

*F3

*Afiseaza numele si renumele clientilor

*Stabilirea parametrilor de lucru

SET TALK OFF

SET HEADING OFF

CLEAR

*deschid BD

USE PERSONAL

GO TOP && Pozitionare pe primul articol

*Afisare antet tabel


? 'Nume Prenume'


*Afisare linii de tabel

DO WHILE .not. EOF( )

DISP nume, prenume

SKIP

ENDDO

USE

SET TALK ON

SET HEADING ON


LOCATE

IF….ENDIF

DO WHILE


=Program 4=

*F4

*Afiseaza toti salariatii care incep cu litera 'P'

SET TALK OFF

SET HEADING OFF

CLEAR

*Deschid BD

USE PERSONAL

GO TOP

LOCATE FOR UPPER (nume)='P'

IF FOUND( )

DO WHILE .not. EOF( )

DISP nume, prenume, salar OFF

CONTINUE

ENDDO

ELSE

WAIT   WINDOW 'Nu Exista'

ENDIF

USE

SET TALK ON

SET HEADING ON


Implicit SET EXACT este OFF

REPLACE - inlocuieste datele dintr-un camp cu valoarea unei exresii

<camp1> WITH<expr1>[ADDITIVE]

<camp2> WITH<expr2>[ADDITIVE]

[<SCOPE>]

[FOR<EXPL1>][WHILE<EXPl2>]


ADDITIVE - se aplica numai campurilor de tip memo. Daca apare in sintaxa comenzii in campul memo rezultatul expresiei se adauga la sfarsitul textului existent. Daca nu apare rezultatul expresiei se scrie peste textul existent

NEXT 1


=Program 5=


*F5


*Modificarea salarului tuturor cu 20%

SET TALK OFF

SET HEADING OFF

CLEAR

USE PERSONAL

REPLACE ALL SALAR WITH salar*1.2

WAIT 'OK!Am marit salarul!'

BROWSE FIELDS nume, prenume, salar

REPLACE ALL functie WITH 'maistru' FOR funcie='muncitor' .and. salar>600000

WAIT WINDOW 'OK!muncitorii I-am facut maistrii!'

REPLACE ALL salar WITH salar+50000 FOR functie='secretara' .and. copii=.T.


Copii=.F. =>.not. copii

Copii=.T.=>copii


=Gestiunea memoriei de lucru=

Memoria de lucru este impartita in locatii variabilelor de memorie. Variabilele se incarca temporar cu valori. Variabila ste identificata printr-un nume dat de programator

NrCrt - numar curent


In functie de durata de viata, variabilele sunt de doua tipuri: locale si globale


A. Variabile locale - durata de viata a unei variabile locale este durata de executie a unui program sau a unei proceduri. Se definesc prin initializare (nu este necesara declararea lor). Aceste variabile isi inceteaza existenta la iesirea din program / procedura. Continutul unei variabile locale poate fi utilizat in programul / procedura curenta si in programele care sunt apelate de acestea.

B. Variabile globale durata de viata a unei variabile globale este duraa de executie a aplicatiei din care face parte programul sau procedura in care apare variabila. Se definesc prin declarare PUBLIO <lista variabile. Isi inceteaza existenta in doua situaii: la inchiderea aplicatiei din care face parte programul si la anularea ei deliberata prin comana RELEASE <lista variabile>. Continutul unei variabile globale de memorie este deosebit de eficienta la validarea datelor de intrare intr-o plicatie asigurandu-se astfel si integritatea BD. Valorile introduse de utilizator vor fi incarcate in variabile de memorie, iar campurile din BD vor fi actualizate cu continutul acestor variabile doar dupa ce utilizatorul a verificat si confirmat corectitudinea acestor informatii.


1.     STORE<expr>TO<lsta variabile><variabila de memorie>=<expr>

Comanda ncarca rezultatul evaluarii sau toate variabilele unei liste. Daca variabilele nu exista, ele sunt create si initializate.

Ex: STORETO mdata1

STORE DATE( ) TO madata2

STORE 'SALUT' TO mcar

STORE 150 TO mnr

STORE .T. TO mlog


2. INPUT [<expC>] TO <variabila de memorie>

Comanda permite introducerea datelor preluate de la tastatura in variabila de memorie specificata. Datele introduse de la tastatura pentru a fi tratate ca siruri de caractere trebuie introduse intre apostrofuri ' ' sau ghilimele ' '

Ex: INPUT 'Introduceti numele angajatului:' TO nume

!!!Numele se pune intre apostrof !

INPUT 'Data nasterii' TO mdatan

Comanda INPUT este similara cu conda ACCEPT care insa nu cere ca datele introduse sa fie curpinse intre ' ', ele fiind intotdeauna tratate ca siruri de caractere

[<expC>] TO <variabila de memorie>

Ex: ACCEPT 'Introduceti numele' TO mnume Popescu


3.DISPLAY MEMORY

LIST MEMORY [LIKE<m*>]

Comenzile afieaza numele, tipul, continutul si starea tuturor variabilelor de memorie curent definite


4.CLEAR MEMORY

RELEASE ALL

Cele doua comenzi realizeaza stergerea vriabilelor de memorie. Comanda CLEAR MEMORY sterge din memoria toate variabilele locale si globale. Variabilele sistem nu sunt afectate


5. PUBLIC<lista variabile> - se foloseste pentru a declara variabile globale

6. RELEASE <lista variabile>

Ex: RELEASE mcar, mr


=Program 6=

- afiseaza numele, prenumele si salarul persoanelor cu numele introdus

- programul se poate obtine din modificarea rograului 4

F4.prg

Modi comm F4



*F6


SET HEAD OFF

SET TALK OFF

SET EXACT ON

ACCEPT 'Introduceti numele cautat:' TO mnume

USE PERSONAL

GO TOP

LOCATE FOR UPPER (nume)=UPPER (mnume)

IF FOUND ( )DO WHILE .not. EOF( )

DISP nume, prenume, salar

CONTINUE

ENDDO

ELSE

WAIT WINDOW 'Nu exista'

ENDIF

USE

SE T HEAD ON

SET TALK ON

SET EXACT OFF


=Program 7=

- marcheza pentru stergere tot al doilea articol din BD



*F7


SET TALK OFF

USE PERSONAL

CLEAR

DISPLAY ALL nume, prenume, salar

WAIT 'Tastati orice…'

GO TOP

DO WHILE .not. EOF ( )

DELETE

SKIP +2

ENDDO

CLEAR

DISP ALL nume, prenume, salar

WAIT 'Lista salariatilor' WINDOW

ACCEPT 'Doriti stergere efectiva (s) sau nu (n)' TO rasp

rasp=ALLTRIM (rasp)

if rasp='s' .or. rasp='s'

PACK

ELSE

If rasp $ 'Nn'

RECALL ALL

ENDIF

ENDIF

DISP ALL nume, prenume, salar

WAIT WINDOW 'Lista salariatilor ramasi'

USE

SET TALK ON


Alltrim - elimina spatiul de la inceputul si de la sfarsitul unui sir de caractere

CTRL+F10 - mareste fereastra


=Functii si proceduri=

=Proceduri

- intr-un program anumite rutine (secvente de intructiuni) se repeta frecvent. Acestea se pot plasa in proceduri pentru a reduce dimensiunea programului si a usura intretinerea si depanarea lui.

Structura unei proceduri: PROCEDURE <nume procedura>

PARAMETERS <lista de parametrii formali>

<corp procedura>

RETURN


Declararea procedurii: PROCEDURE <nume procedura>

Obs: <nume procedura. Poate avea maxim 10 caractere>

Declararea listei de parametri formali:

PARAMETERS <lista de parametri formali>

Obs1: Lista parametrilor formali indica numele parametrilor care pot fi utilizat in corpul procedurii si ordinea apartiei parametrilor la apelul procedurii

Obs2: Transmiterea parametrilor se poate face prin:

- referinta: valoarea parametrilor este trecuta programelor apelate (implicit)

- valoare: valoarea parametrilor nu este trecuta programelor apelate

Obs3: Numarul maxim de parametrii este de 24

Corpul procedurii - este o secventa de comenzi care pot utiliza parametrii formali ca operanzi ai expresiilor

Terminarea procedurii: RETURN - incheie executia unei proceduri dand controlul programului apelat la comanda care urmeaza apelului procedurii

Apelul procedurii: DO <nume procedura> [WITH<lista parametrii efectivi>] [IN <nume fisier>]

Procedurile si functiile pot fi continute in fisierul in care se gaseste programul apelat sau in alte fisiere

SET PROCEDURE TO <nume fisier>


=Functii=

- functia este o procedura care returneaza o valoare prin numele ei

Strucura unei functii: FUNCTION <nume functie>

PARAMETERS <lista parametri formali>

<corp functie>

RETURN [<expr>]

Declarare functie: nume functie poate avea maxm 10 caractere. Declararea listei parametrilor formali se face cu PARAMETERS <lista parametri formali>

Transmiterea parametrilor: de referinta si de valoare(implicit) , ca la procedura. Numarul maxim de parametrii e de 24

Corpul functiei: secventa de comenzi care pot utiliza parametri formali ca operanzi ai expresiilor

Terminarea functiei: RETURN[<expr>] - incheie executia functiei, reda controlul programului apelat si returneaza valoarea calculata in corpul functiei

Apelul functiei: se poate apela in cadrul unei expresii sau intr-o comanda = in cazul in care nu intereseaza valoarea returnata de catre functie

=<nume functie>(<lista parametri efectivi>)


=Structura DO CASE…END CASE=

Executa primul grup de comenzi dintre cuvintele cheie. DO CASE si END CASE pentru care expresia logica asociata este adevarata

Sintaxa comenzii

DO CASE

CASE<expL1>

<comenzi1>

[CASE<expL2>

<comenzi2>


CASE <expLn>

<comenzi n>

[OTHERWISE

<comenzi>]

ENDCASE


=Program pentru exemplifcarea unei functii=


*TESTF.PRG

*Aiseaza in ce trimestru al anului se situeaza data calendaristica introdusa de utilizator

CLEAR

INPUT 'Introduceti data' To mdata

? TRIMESTRU (mdata)

? 'In data de azi trimestrul este…'

? TRIMESTRU (DATE())

FUNCTION trimestu

PARAMETERS datacalend


DO CASE

CASE MONTH (datacalend)>9

RETURN 'Trimestrul4'

CASE MONTH (datacalend)>6

RETURN 'Timestrul3'

CASE MONTH (datacalend)>3

RETURN'Trimestrul1'

OTHERWISE

RETURN 'Trimestrul1'


=Diferenta intre o functie si o procedura=

Functia             

primeste un set de parametrii de la programul apelant si returneaza acestuia o valoare

poate intra in componenta unei expresii ca operand

apelul unei functii se face prin numele acestuia urmat intre ( ) de parametrii


Procedura

primeste de la programul apelat un grup de parametrii, realizeaza anumite prelucrri dupa care revine in programul apelant

o procedura definita de utilizator este similara cu comenzile standard Fox Pro

se executa prin comanda DO urmata de numele procedurii, iar parametrii se introduc in lista clauzei WITH


=Comenzi pentru editarea si prelucrarea ecranelor (formelor)=


Comanda @…SAY - afiseaza iesirea la opozitie (linie, coloana) si intr-un format specificat

Sintaxa comenzii:

@<linie, coloana> SAY,expr>

[FUNCTION<expC1>]

[PICTURE<expC2>]

[SIZE <expN1>,<expN2>]

[COLOR SCHEME<expN3>|COLOR<color pair list>]


- linia poate lua valori de la 0-24

- coloana poate lua valori de la 0-80


Comanda  @…GET - creaza o regiune de editare pe ecran pentru editarea unei variabile sau camp al BD

Sintaxa comenzii:

@<linie, coloana>GET<vrmem>|<field>

[FUNCION<expC1>]

PICTURE<expC2>]

[DEFAUL<exp1>]

[ENABLE|DISABLE]

[MESSAGE<expc3>]

[[OPEN]WINDOW<window name>]

[RANGE[<exp2>][<exp3>]]

[SIZE<expN1>,<expN2>]

[VALID<expL1>|<expN3>[ERROR<expC4>]]

[WHEN<exp2>]

[COLOR SCHEME<expN4>|COLOR<color pair list>]


FUNCTION<expC1> - modifica formatul datelor prelucarate in functie de valoarea lui <expC1>; actioneaza asupra tuturor caracterelor din formatul de afisare

Expresia de tip caracter poate lua urmatoarele valori:

A - permite numai introduceea carcacterelor alfabetice (fara spatii si simboluri)

B - aliniaza la stanga datele numerice din interiorul campului

D - utilizeaza formatul curent setat cu comanda SET DATE

E - editeaza data calendaristica in format British (dd/mm/yy) indiferent de setarea facuta cu SET DATE

I - centreaza textul ininteriorul campului

J - aliniaza la dreapta textul din interiorul campului

K - selecteaza un camp intreg pentru editare atunci cand ursorul se pozitioneaza pe acel camp

M<lista> - creaza mai multe posibilitati de alegere prestabilie afisate intr-o lista. (lista este o colectie de elemente separate prin virgula).Daca variabilele memoriei sau campului relucrate de @…GET nu contin nici unul din elementele listei, atunci afiseaza primul element al listei. Deplasarea in lista se face cu bara de spatiu sau tastand prima listera a unui element din lista. Alegerea unui element se face cu enter. Se utilizeaza numai cu date de tip caracter

S<n> - limiteaza latimea de afisare a zoeni de editare la n caractere. Daca datele sunt mai lungi, dimensiunea zonei de editare se poate vizualiza cu sageti stanga-dreapta

T - anuleaza spatiile din variabila sau campul prelucrat cu comanda @…GET

Z- afiseaza variabila de memorie sau campul din BD prelucrat cu @…GET care au valoae nula ca spatiu

! - transforma toate literele in majuscule(se foloseste numai pentru date de tip caracter)


PICTURE<expC2> - modifica formatul datelor prelucrate in functie de valoarea <expC2>. Se refera doar la un anumit caracter din formatul de afisare.

Expresiile tip caracter pot lua urmatoarele valori;

A - permite numai introduceea carcacterelor alfabetice (fara spatii si simboluri)

L - permite numai introducerea datelor e tip logic

N - permite numai introducerea literelor si cifrelor

X - permite introducerea oricarui tip de caracter

Y - permite numai introducerea caracterelor Y,y,N,n (de la yes si no)

9 - permit numai introducerea cifrelor in datele de tip caracter. Permite numai introducerea cifrelor cu semn in datele de tip numeric

# - permite introducerea cifrelor, spatiilor, si a se mnelor + si -

! - converteste toate literele in majuscule

- speifica pozitia punctului zecimal

- separa cifrele de la stanga punctului zecimal


DEFAULT<expr1> - daca o variabila de memorie specificata in comanda @…GET nu exista, ea este creata si initializata automat

<expr1> - detemina tipul de valoare a variabiliei create


ENABLE|DISABLE - conroleaza accesul al zona de editare; valoarea implicita este Enable; Disable implica accesul in zona de editare


MESSAGE<expC3> - afiseaza mesajul continut in <expC3> pe ultima linie a ecranului (linia 24)


[OPEN] WINDOW <window name> - indica fereastra in care apare zona de editare; daca exista si clauza Open, fereastra de editare a campului memo este deschisa automat in momentul pozitionarii pe acel camp


RANGE[<expr2>[<expr3>]] - specifica domeniul in care trebuie sa se incadreze valorile introduse in zona respectiva. In cazul introducerii unro valori invalide se afiseaza un mesaj de eroare


SIZE<expN1>,<expN2> - controleaza inaltimea si lungimea zonei de editare


VALID <expL1>|<expN3> [ERROR <expC4>] - permite validarea datelor introduse in regiune de editare. Datele sunt validate in momentul iesirii din regiunea de editare prin evalurea expresiei logice <expL1>. Ca expresie de validare poate apare si o functie creata de utilizator. <expN3> indica numarul campului la care se trece dupa iesirea din zona de editare. <expn3> poate lua urmatoarele valori:

0 - ramane pe campul curent

1-     trece la punctul urmator

+n - sare inante cu n campuri

-n - sare inapoi cu n campuri


WHEN<expL2> - se executa inaine de a se acorda accesul la zona de editare. Daca <expL2> are valoarea .F. se trece la urmatoarea zona de editare

COLOR SCHEME<expN4> - stabileste culoarea regimului de editare


READ [CYCLE] - declanseaza citirea campurilor GET definite in acel moment. Trecerea la urmatorul camp se face cu tastele Enter, Tab si Sageata in jos. Trecerea la campul GET anterior are loc la actionarea tastelor Shift+Tab sau Sageata in sus. Iesierea din comanda se realizeaza fie dua ce a fost citit si ultimul camp GET, fie la apasarea tastei Esc sau CTRL+W. Clauza CYCLE determina continuarea comenzii READ chiar si dupa iesirea din ultimul camp GET, saltul facandu-se la primul camp GET definit.


Comanda @…BOX

@…TO

- permit desenarea unui chenar

Sintaxa comenzii:

@<l1,c1>,<l2,c2>BOX[<expc>]

@<l1,c1>TO<l2,c2>[DOUBLE|PANEL|<border string>]


Ex: @ 5,5,   10,10 BOX

@2,5, 12,55 BOX ''

@2,5 TO 12,55 DOUBLE


Comanda @…CLEAR - sterge o zona a ecranului sau a unei ferestre

Sintaxa comenzii:

@<l1,c1>[CLEAR|CLEAR TO <l2,c2>] 


Ex: @2,3 - sterge linia 2 de la coloana 3

@2,3 CLEAR - sterge incepand din punctul de coordonate 2,3 pana in coltul din dreapta jos al ecranului

@2,3 CLEAR TO 5,7 - sterge de la linia 2, coloana 3 pana la linia 5 coloana7


Comanda @…FILL - schimba culorile intr-o regiune desemnata

Sintaxa comenzii

@<l1,c1> FILL TO <l2,c2>[COLOR SCHEME<expN>|COLOR<color pair list>]


Ex: @ 15,25 FILL TO 20,50 COLOR SCHEME 8


Comanda SHOW GET <var>

SHOW GETS

-SHOW GET-  reafiseaza un obiect GET

-SHOW GETS - reafiseaza toate obiectele GETS

Ambele comenzi se folosesc in urma modificarii continutului sau caracteristicilo obiectelor GET


Ex1: Stergeti tot continutul BD Personal. Verificati daca BD are structura urmatoare:      MARCA N 3

SCOALA 1 C 15

SCOALA2 C 15

Ex2: Creati pentru BD Personal un fisier Index cu numele npers dupa campul nume

Ex3: Creati pentru BD Scoli un fisier Index cu numele ms dupa campul marca

=Program8=


*F8 - Program de adaugare a unui nou angajat in BD Personal


*Deschid BD Personal indexata dupa nume

USE PERSONAL INDEX mpers

*adauga articol gol

APPEND BLANK

CLEAR

*Titlu operatie

@ 1,10 SAY 'Adaugare angajati' COLOR SCHEME

*Detalii

@3,5 SAY 'Marca:' GET marca PICTURE '999'

@4,5 SAY 'Prenume:' GET prenume PICTURE '! !!!'

@5,5 SAY 'Nume:' GET nume PICTURE '! !!!'

@6,5 SAY 'Data nasterii:' GET datan FUNCTION 'D'

@7,5 SAY 'Data angajarii:' GET dataa FUNCTION 'D'

@8,5 SAY'Salar:' GET salar PICTURE '9999999999' RANGE 200000, 900000

@9,5 SAY 'Functie:' GET functie PICTURE 'xxxxxxxxxx'

@10,5 SAY 'Copii:' GET copii PICTURE 'L'

@2,2 TO 11,75 DOUBLE

READ

CLEAR

CLOSE INDEXES

USE


FUNCTION FVAng

*Functie e valiare a angajarii

IF YEAR dataa)>YEAR(datan)+16

RETURN .T.

ELSE

RETURN .F.

ENDIF


=Elemente de control Fox Pro=

Reprezinta elemente afisate pe ecran prin intermediul carora se pot introduce sau solicita informatii sau se pot alege, contine sau anula executarea anumitor comenzi.

Cele mai utilizate elemente de control Fox Pro:

CHECK BOXES (comutatoare) [x][ ]

RADIO BUTTONS (butoane radio)(.) ( )

POPUPS (meniuri vericale)

PUSH BUTTONS (declansatoare) <<OK>> <CANCEL>


Elementele de construire se creaza cu variante comenzi @…GET

Activarea elementelor de control se face cu READ sau READ CYCLE


CHECK BOXES - pe ecran apare un patrat cu un text alaturat gol [ ] sau cu x [x] (este un comutator cu doua pozitii). Acest tip de element de control ofera posibilitatea bascularii intre 2 stari

LISTA - lista verticala in interiorul unui dreptunghi care da posibilitatea de a se alege mai multe optiuni. Se foloseste in special pentru afisarea directoarelor si fisierelor atunci cand doresc sa aleg un fisier dintr-o lista

POPUPS - dreptunghi care contine setui de optiuni. La selectarea unui Popup, Fox Pro afiseaza o lista de optiuni din care poate alege una singura

PUSH BUTTONS - texte descriptive ce pot fi selectate

RADIO BUTTONS - ofera posibilitatea selectarii unor optiuni. Doar o singura optiune din lista poate fi seletata la un moment dat. In momentul selectarii unei optiuni toate celelalte vor fi deselectate


=Modul de lucru=

Crearea elementelor de control setate cu comenzi @…GET. Folosind clauzele PICTURE si FUNCTION se stabileste tipul butonului pe care-l definim. Majoritatea elementelor de control lanseaza o actiune specifica folosind clauza VALID. Activitatea buoanelor se face cu comenzile READ si READ CYCLE


HOT KEYS - se pot defini chei rapide pentru Check Boxes, Radio Buttons, Push Buttons, Popups. Ele ofera o cale mai rapida de alegere a unei optiuni. De obicei, se foloseste prima litera a optiunii. Aceasta apare cu o culoare.se definesc cu caracteul < inaintea caracterului dorit


Elemente de control

Coduri FUNCTION

Coduri PICTURE

Optiuni aditionale


DEFAULT

Caractere speciale

Check Box

* C

@*C

N

T

N

<Hot Key

<Disable

Liste

&

@&

N

T

N

_____

Popup



N

T

N

<Hot Key

<Disable

Push Button



NN

T V

N

V

<Hot Key

<Disable

?Escape

!Default

Radio Button

*R

@*R

NH

T V

N

V

<Hot Key

<Disable


N - nonterminating (nu termina comanda READ sau READ CYCLE)

T - terminating (termina comanda READ sau READ CYCLE)

H - horizontal

V - vertical


Ex: Check Box:

FUNCTION '*C Nume'

PICTURE '@*C Nume'

sau

PICTURE '@*C' FUNCTION 'Nume'


Ex: Popup:

…FUNCTION '^Mar; Caisa; Portocala'



Mar

Caisa

Portocala


Ex: Push Button

…FUNCTION '* Urmator; Precedent; OK; Anulare'

<URMATOR>

<PRECEDENT>

<OK>

<ANULARE>


Ex:Radio Button

…FUNCTION '*R Nimic; Simplu; Dublu'

) Nimic

( ) Simplu

( ) Dublu    


Empty - testeaza daca e gol campul


Functia REPLICATE - in sir prin multiplicarea unui subsir de un numar dat de ori. Ex: REPLICATE ('!',15)

CLEAR READ - iese din comanda READ activa


Comanda SHOW GETS - reafiseaza obiectele sau elementele de control eclarate cu comenzi @…GET SELECT <expN>|<expC>

<expN> - poate lua valori de la 1-25

<expC> - poate fi o litera de la A-J sau de al W1-W25


Comanda SELECT - permite deschderea mai multor zone de lucru; fiecare BD este deschisa intr-o zona de lucru. Practic, zona de lucru reprezinta o zona de memorie in care este un fisier activ. <expC> poate fi si numele BD descisa in zona respectiva


Comanda SET RELATION - stabileste o relatie intre doua BD deschise in zone de lucru diferite. BD parinte trebuie deschisa in zona curenta de lucru, iar BD cu care se stabileste relatia trebuie sa fie deschisa intr-o alta zona (cu SELECT). Cele doua BD trebuie sa aiba un camp identic, iar BD cu care se stabileste relaia trebuie sa fie indexata dupa acel camp. Dupa ce relatia este definita cu SET RELATION, schimbarea pozitiei in BD parinte determina pozitionarea in a doua B pe articolul corespunzator. Daca nu se gaseste nici un articol corespunzator, ozitionarea in a doua BD se face cu EOF

Sintaxa comenzii:

SET RELATION TO [<expr1> INTO<expN1>|<exprC1>

[,<expr2> INTO<expN2>|<expC2>…

Ex: SET RELATION TO marca INTO scoli


=Ferestre (Windows)=

Interfata Fox Pro consta din meniuri, ferestre, dialoguri si alte facilitati menite sa usureze comunicatia dintre Fox Pro si utilizator.

Fereastra este o zona strict delimitata de ecran in care se afiseaza informati. Pe ecran pot aparea mai multe ferestre simultan, dar numai una e fereastra curenta. Ferestrele pot fi de doua feluri: definite de utilizator sau ferestre ale sisemului (ferestre de comenzi, debug…)

Operatii pentru lucrul cu feestre definite de utilzator:

A.Definirea DEFINE WINDOWS <nume fisier>

1.     Stablire limite afisare(colt stanga sus - dreapta jos: FROM <line1, col1> TO <line2, col2>

2.     Fereastra utilizator se poate defini in alta fereatra specificata [IN [WINDOW] <nume fisier2> | IN SCREEN]

3.     Titlul ferestrei apare pe marginea de sus a ferestrei: [TITLE <expC1>]

4.     Definirea tipului margnii ferestrei [DOUBLE | PANEL | NONE | SYSTEM | <lista chenar>]

5.     Permite sau nu inchiderea ferestrei din aplicvatie[CLOSE |NOCLOSE]

6.     Permite sau nu schimbarea dimensiunii ferestrei din aplicatie [GROW | NOGROW]

7.     Umbrirea ferestrei [SHADOW]

8.     [COLOR SCHEME<expN1>]


B. Activarea ferestrei

1.     ACTIVATE WINDOW [<nume fereatrs 1> [,<nume ferestra2>…] | ACTIVATE WINDOW ALL [IN [WINDOW <nume fereastra3> | SCREEN]

2.     SHOW WINDOW <nume fereastra 1>|,<nume fereastra2>] - afiseaza fereastra fara a o activa


C. Dezactivarea ferestrei

1.     DEACTIVATE WINDOW <nume fereastra1> [,<nume fereastra2>] | ALL

2.     HIDE WINDOW <nume ferestra1> [,<nume fereastra2>] - ascunde fereastrele fara a le dezactiva


D. Stergerea din memorie e ferestrei (se sterge si definitia ferestrei)

1.     CLEAR WINDOW - sterge toate ferestrele

2.     RELEASE WINDOWS - sterge ferestrele menionate <lista ferestre>


=Meniul=

Contine de obicei o linie (bara orzontala) numita bara de meniu cu Popup-uri (meniuri verticale) corespunzatoare fiecarei etichete (Pad) din bara de meniu

Operatii pentru utilizarea unui meniu:

A.     Definirea barei de meniu DEFINE MENU <nume meniu>

1.     Creaza o bara de meniu similara cu bara sistem Fox Pro. Se poate simplifica linia pe care va apare bara de meniu [BAR [AT LINE <expN1>]

2.     Se poate specifica o anumita fereastra in care sa apara bara de meniu implicit in bara principala Fox Pro [IN [WINDOW] <nume fereastra> | IN SCREEN]

3.     Stabileste un mesaj care se afiseaza ori de cate ori e selectat un Pad. Apare pe ultima linie a ferestrei (linia 24) [MESSAGE <expC1>]

4.     Implicit, se plaseaza un spatiu la stanga si la dreapta fiecarui ad al meniului. Clauza anuleaza aceste spatii [NOMARGIN]

5.     [COLOR SCHEME <expN2>]


B.     Definirea etichetelor meniului

1.     Specifica textul care apae pe bara de meniu corespunzator eticheei; se pune <inaintea caracterului care va desemna tasta directa DEFINE PAD <nume pad> OF <nume meniu> PROMPT <expC1>

2.     Unde se plaseaza eticheta, relaiv la coltul stanga sus al meniului (implicit pe linia 0) [AT <linie, coloana>]

3.     Specifica locul in care sa apara eticheta fata de alta eticheta; implicit etichetele se afiseaza in ordinea definirii lor [BEFORE <nume pad> | AFTER <nume pad>

4.     O eticheta poate fi de zactivata in anumite conditii (daca se indeplineste o conditie logica) [SKIP [FOR <expL>]]

5.     Efineste mesajul care apare la selectarea padului [MESSAGE <expC2>]

6.     [COLOR SCHEME <expN>]


<nume pad> - numele etichetei

<nume meniu> - nume meniu din care face parte eticheta


C.     Definirea actiunii care se executa la selectarea etichetei

1.     Specifica un anumit meniu vertical (opup) sau meniu( menu) care se executa la selectarea etichetei (pad) ON PAD <nume pad> OF <nume meniu> {ACTIVATE POPUP<nume popup>|ACTIVATE MENU <nume meniu>]

2.     Se executa comanda se selectarea padului ON SELECTION PAD <nume pad> OF <nume meniu> [<comanda>]


D.    Activare sau lansare in meniu ACTIVATE MENU <nume meniu>. La activarea meniului se selecteaza implicit primul pad


E.     Dezactivare meniu DEACTIVATE MENU <nume meniu1>, <nume meniu2>,…


=Meniul vertical (Popup)=

Meniul vertical contine o lista de optiuni selectabile (Bar)

Operatii pentru utiliarea unui Popup:

A.     Definire popup:

DEFINE POPUP <nume popup>

[FROM <lin1, col1>]

[TO<lin2, col2>]

[IN [WINDOW]<nume fereastra>| IN SCREEN]

[MESSAGE <expC1>]

[PROMPT FIELD <expr>| PROMPT FILES [LIKE <macheta>] | PROMPT STRUCTURE]

[TITLE <expC2>][SHADOW]

[COLOR SCHEME <expN>]


Clauza PROMPT FIELD - specifica un nume de camp dintr-o BD deschisa ale carui valori sunt afisate in Popup

Clauza PROMPT FILES - se creaza un popup care afiseaza fisierele care se conformeaza machetei. Ex: *.txt

Clauza PROMPT STRUCTURE - afiseaza in popup numele campurilor BD curente


B. Definirea optiunii (Bare) DEFINE BAR <expN1> OF <nume popup>

1.     Defineste textul care se afiseaza e bar-ul respectiv PROMPT <expC1>

2.     Specifica o cheie directa pentru apelul optiunii [KEY <eticheta cheie>]

3.     [MESSAGE <expC2>

4.     Permite dezactivarea unui bar pentru o anumita conditie logica [SKIP [FOR <expL1>]]

5.     [BEFORE <expN2>|Aafter <expN3>]

6.     [COLOR SCHEME <expN4>]


C. Definire actiune pentru fiecare bara

1.     ON BAR <expN> OF <nume popup1> [ACTIVATE POPUP<nume popup2> | ACTIVATE  MENU <nume meniu>]

2.     ON SELECETION BAR <expN> OF <nume popup> [<comana>]


D. Definire actiune la nivel de popup

ON SELECTION POPUP <nume popup>|ALL [<comanda>]

ALL - la selectarea oricarei optiuni din popup se executa comanda


E. Activare popup

ACTIVATE POPUP <nume popup>

[AT<linie, coloana>]

[BAR<expN>]


AT - popup-ul apare in pozitia indicata

BAR - la aparitia popup-ului este selectat implicit barul mentionat


F.     Dezactivare popup

DEACTIVATE POPUP <nume popup-uri>


G.    Stergere popup din memorie

RELEASE POPUP <lista popup-uri>

Popup-ul trebuie dezactivat inainte de a fi stes din memorie.


RELEASE MENUS[<lisa meniuri>] - necesita dezactivarea in prealabil a meniurilor de sters


Functia BAR returneaza numarul ultimei optiuni selectate intr-un popup definit cu DEFINE POPUP.

Dupa executarea comenzii DEACTIVATE MENU se excuta comanda mediat urmatoare celei dezactivate (aici este vorba de RELEASE MENU)


=Rapoarte de listare=

Pentru extragerea datelor se folosesc rapoarte. Generatorul de raoarte (Report Writer) este o unealta puternica pentru generarea formelor de listare, acesta creaza un fisier .FRX si un fisier memo asociat .FRT. un raport se poate realiza pornind de la una sau mai multe BD deschise.


A.     Crearea raportului: CREATE REPORT <nume fisier>

B.     Modificarea raportului: MODIFY REPORT <nume fisier>

C.     Apelarea raportului: RECORD FORM <nume fisier> [PREVIEW] [NOCONSOLE] [TO PTINTER | TO FLE<fisier>]


Clauza PREVIEW permite afisarea raportului pe ecran

Clauza NOCONSOLE interzice afisarea raportului pe ecran atunci cand este tiparit sau listat inr-un fisier.

Clauza TO PRINTER|TO FILE listeaza raportul la imprimanta sau in fisier


Ex: create report listang

Title: lista angajatilor

PgHead: Marca Nume Prenume Functie Salar Studii

- dupa fiecare cuvant se da Enter

PgFoot: date ( )




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright