CATEGORII DOCUMENTE |
Lansarea in executie a VFP |
Definirea ferestrelor utilizator
DEFINE WINDOW [<nume_fereastra>] [FROM <rand,coloana>] [TO <rand,coloana>]
[TITLE <titlu - sir de caractere sau alte tipuri transformate in carcater>]
[FLOAT]
[GROW]
- sufiect daca se folosesc primele patru litere din cuvintele cheie: exemplu:
DEFI WIND FEREASTRA FROM 10,10 to 24,50 TITL 'Fereastra noua' FLOA
- pentru numele ferestrei utilizatorul poate folosi
maxim 10 caractere, numere sau linia de subliniere, insa nu pot exista spatii
- un ecran are 24 randuri si 79 coloane
- titlul ferestrei (care apare in partea de susu la afisarea ferestrei) este
incadrat de ghilimele sau apostrofuri
- FLOAT = fereastra se poate muta (fara atribut este fixa)
- GROW = se pot modifica dimensiunile ferestrei (fara atribut este fixa)
- activarea ferestrelor utilizator se face cu ajutorul comenzii:
ACTIVATE WINDOW <nume_fereastra>
- toate comenzile careincep cu ? se vor afisa in fereastra activa (1 la un moment dat)
- dezactivarea ferestrelor se face cu comanda:
DEACTIVATE WINDOW <nume_fereastra> ce are ca efect stergerea fereastrei de pe ecran
- stergerea din memorie se face cu comanda:
RELEASE WINDOW <nume_fereastra>
- la toate comenzile pentru lucrul cu ferestre se poate schimba <nume_fereastra> cu ALL
si efectul va fi la toate ferestrele vizibile sau din memorie, dupa caz.
VARIABILE DE MEMORIE
www.atestate-informatica.tk
Initializarea variabilelor in VFP se face astfel:
STORE <valoare> TO <nume_variabila>
sau
<nume_variabila> = <valoare>
Comanda DISPLAY MEMORY LIKE [<sablon>]
face ca toate variabilele din memorie sa fie listate la ecran
LIKE [<sablon>] - afiseaza sellectiv doar variabilele care corespund sablonului
DISP MEMO LIKE curs*
- variabilele de memorie pot fi salvate intr-un fisier cu extensia *.mem
de unde pot fi restaurate in memorie sau sterse
SALVARE / STERGERE / RESTAURARE variabile de memorie
a) salvare
SAVE TO <nume_fisier.mem> [LIKE | EXCEPT <lista_variabile>]
b)restaurare
RESTORE FROM <nume_fisier.mem>
c)stergere
RELEASE <lista_variabile> | ALL | LIKE | EXCEPT
Afisarea variabilelor pe ecran sau la imprimanta
? - afiseaza lista_variabile
?? - afiseaza lista_variabile din locul unde a ramas cursorul
[PICTURE <sablon>] [FUNCTION <sablon>]
[AT <expresie_numerica>]
[FONT <nume_font>] <marime_caracter>
[STYLE <cod_style>] - poate fi: B,U,I
unde:
PICTURE
- restrange domeniul de afisare la sablon
9 = numeric
. = pozitia marcii zecimale
x = orice caracter
ex.:
nume='Popescu'
salariu=2500000
? nume picture 'xxxxxxxxx' => Popescu__
? 'salariu:'+salariu picture '999999999.99' => salariu:__2500000.00
FUNCTION
'$' afiseaza simbolul monetar implicit
'E' afiseaza data in mod european
?'Data: ',date() funct 'E' => Data:
AT
- afiseaza 'ceva' la o anumita pozitie <rand,coloana>
Modul de lucru cu compilatorul
MODIFY COMMAND <nume_program>
- deschide fereastra unde putem scrie comenzile VFP
- iesirea se face cu CTRL+W pentru salvare => comnpilarea programului in cod masina
- sau File -> New -> Program
DO <nume_program>
- lanseaza in executie un program cu extensia *.prg (contine coemnzi visual fox pro)
- versiunea inteleasa de VFP este compilata in fisier.fxp
Comenzi SET
- schimba setarile imlpicite:
SET DEFAULT TO <cale>
SET POINT TO <marca_zecimale>
SET CURRENCY TO <simbol_monetar>
SET CURRENCY RIGHT
Introducerea datelor de la tastatura
ACCEPT <comentariu> TO <nume_variabila> - ptr. caractere
INPUT <comentariu> TO <nume_variabila> - ptr. date de tip numeric
Exemplu:
MODI COMM FACTURA
CLEAR
SET POINT TO ','
SET CURR TO 'lei'
SET CURR RIGHT
NUME=SPACE(12)
ADR='NATURII 11'
U_CIT=128.12
LEIKW=1409
CLEAR
DEFI WIND F FROM 1,1 TO 15,70 TITLE 'FACTURA DE ENERGIE ELECTRICA' FLOAT GROW
ACTI WIND F
? 'NUME CONSUMATOR: ',NUME 'ARIAL',20 STYLE 'B,I'
? 'ADRESA: ', ADR
? 'ULTIMA CITIRE: ', U_CIT PICT '9999.99', 'Kw/ora'
ACCEPT 'CITIRE CURENTA: ' TO CIT_C
? 'PRET KW: ',LEIKW PICT '9999.99' FUNC '$'
??'VALOARE FACTURA: ',(CIT_C-U_CIT)*LEIKW PICT '9999999.99' FUNC '$'
? 'DATA PLATII: ',DATE()+' ' FUNC 'E'
??'TERMEN SCADENT: ',DATE()+30 FUNC 'E'
WAIT ''
CLEAR
DEACTI WIND F
CANCEL
STRUCTURI ALTERNATIVE
Exemplu:
MODI COMM AB.PRG
CLEAR
INPUT 'A=' TO A
INPUT 'B=' TO B
IF A>B
?'A ESTE MAI MARE DECAT B'
ELSE
?'B ESTE MAI MARE DECAT A'
ENDIF
CTRL+W
DO AB
testeaza o conditie si dupa cum conditia este adevarata sau falsa programul continua pe una din cele
doua ramuri: ramura de adevarat sau ramura de fals. Schematic IF se reprezinta intr-un romb. Sa se scrie secventa de program care sa introduca de la tastatura un A si un B stiind ca acestia sunt coeficientii unei ecuatii de gradul 1 cu 1 necunoscuta. (ax+b=0) sa se testeze daca a=0, caz in care este o ecuatie imposibil de rezolvat. In caz contrar se va afisa x.
MODI COMM ECUATIE
DEFI WIND A FROM 10,10 TO 60,60 TITLE 'ECUATIA ax + b = 0'
ACTI WIND A
INPUT 'A=' TO A
INPUT 'B=' TO B
IF A=0
?'ECUATIA NU SE POATE REZOLVA'
ELSE
?'X=B/A=',B/APICT '9999.99'
ENDIF
WAIT WIND 'oK !'
DEACTI WIND A
clear
CANCEL
comanda DO CASE
descrie o structura alternativa generalizata. Formatul general:
DO CASE
CASE conditie1
COMENZI
CASE conditie2
COMENZI
CASE conditie3
COMENZI
CASE conditie4
COMENZI
CASE conditie5
COMENZI
CASE conditie6
COMENZI
OTHEWISE
COMENZI
ENDCASE
Sa se scrie secv. de program care intr-o fereastra sa introduca una din zilele saptamanii. In functie de ZIUA ALEASA trebuiesc afisate urmatoarele treburi:
Luni - la piata
- la servici
Marti - la cinema
- la servici
Miercuri- ziua lui Ion
Joi - la servici
Vineri - la servici
- la picnic
MODI COMM ZILE
CLEAR
DEFI WIND A FROM 10,10 TO 60,60 TITLE 'ECUATIA ax + b = 0'
ACTI WIND A
INPUT 'In ce zi suntem ?' to Z
DO CASE
CASE Z='LUNI'
?'- la piata'
?'- la servici'
CASE Z='MARTI'
?'- la cinema'
?'- la servici'
CASE Z='MIERCURI'
?'- ziua lui Ion'
CASE Z='JOI'
?'- la servici'
CASE Z='VINERI'
?'- la servici'
?'- la picnic'
OTHERWISE
?'N-AI NIMIC DE FACUT ?!!!'
ENDCASE
WAIT WIND 'oK !'
DEACTI WIND A
clear
CANCEL
O baza de date contine mai multe tabele (tabele.dbf)
| tabel.dbf |
cod nume adresa structura tabelei
c1 ion
c2 vasile
c3 gheorghe
camp1 camp2 camp3
Campul este cea mai mica unitate adresabila.
Campul poate fi :
- modificat
- sters
- inlocuit
MOD DE LUCRU: - INTERACTIV (PRIN BROWSE)
- PRIN COD (LIMBAJ VFOX)
PRELUCRAREA INTERACTIVA:
CREAREA unei tabele:
-> click pe new
-> nume
-> structura campurilor
-> introducerea inregistrarilor
DESCHIDEREA tabelelor
-> butonul open
-> butonul radio 'exclusive' bifat permite orice modificari,
altfel tabela se deschide readonly.
Fereastra browse permite madoficarea inregistrarii curente.
Inregistrarea curenta cea pe care se pozitioneaza la un momemt dat
INDICATORUL DE INREGISTRARI.
MENIUL TABLE apare doar cand avem o tabela deschisa (activa) si fereastra browse e activa. Comanda GO TO RECORD localizeaza o anumita inregistrare functie de o anumita conditie.
In practica este nevoie sa indexam inregistrarile unui tabel dupa mai multe criterii -> index compus. Ca regula in cadrul indecsilor compusi trebuie sa amintim faptul ca toate campurile trebuie sa fie de acelasi tip -> functii de conversii. Totul se converteste in tipul caracter.
exemplu:
codcurs + str(nrmatr,5)
Indexul trebuie creat inainte de accesare. Comanda de acesare a tabelei este :
use tabel.dbf order codcurs + str(nrmatr,5)
browse
trasformarea datei in caracter se face pentru index cu :
dtos (
DESCHIDEREA UNUI TABEL
USE NUMETABEL
FUNCTII
EOF() - permite detectarea sfarsitului de tabel
BOF() - permite detectarea inceputului de tabel
FOUND() - constata daca cautarea unui articol a avut sau nu succes
COMENZI care schimba pozitia contorului de inregistrari
GO TO TOP / BOTTOM / <nr record>
SKIP - sare la urmatoarea inregistrare
LOCATE - cauta un articol care indeplineste conditia din dreapta lui
FOr. Cautarea se opreste in momentul in care se gaseste primul articol
care satisface acesta conditie:
LOCATE FOR <conditie> <domeniu> WHILE <conditie>
unde:
<conditia> - conditia de cautare
<domeniu> - domeniu de cautare - all (tot tabelul)
- next n (de la pozitia cursorului la n inregistrari)
- rest (de la pozitia cursorului la sfarsitul tabelei)
Obs.: Daca LOCATE nu gaseste nici un articol care sa satisfaca conditia
indicatorul de inregistrari va fi pe EOF.
use reg_cat
locate for nume='ionel'
locate for codcurs='ajut' and nume='ion'
locate for codcurs='prog' and nume='dan'
locate for codcurs='ajut'
locate for nume='dan' while codcurs='ajut'
CONTINUE - executa in continuare cautarea dupa conditia precedentului
LOCATE()
SET EXACT OFF - localizeaza pe toti pe rand
cursanti .dbf
pope popescu
pop popici
ion popa
popey
ana
SET EXACT OFF
locate for nume='pop'
display pope
continue
disp pop
continue
disp popey
continue
disp popescu
Sa se scrie o secventa de program care intr-o fereastra sa introduca un nume din tabelul reg_cat, sa il caute si sa afiseze datele personale ale acestuia.
MODI COMM CAUTARE
CLEAR
DEFI WIND A FROM 10,10 TO 50,50
ACTI WIND A
USE REG_CAT
ACCEPT 'Pe cine cauti ?' TO MNUNE
LOCATE FOR NUME=MNUME
IF FOUND()
?'Datele cursantului'
? repl('=',18)
? 'NUME SI PRENUME', NUME
? 'DATA NASTERII', DATAN FUNC 'E'
? 'COD CURS', CODCURS
? 'NOTA DOS:', ND PICT '99.99'
ELSE
? 'NU EXISTA CURSANTUL CU NUMELE ',MNUME
ENDIF
WAIT WIND ''
DEACTI WIND A
CANCEL
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1049
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved