laborator-vfp-nr.-4
DESCRIPTION
xTRANSCRIPT
-
Baze de date n Visual Fox Pro Vizualizarea, introducerea i afiarea datelor Universitatea de Stat Alecu Russo, Bli 2013
-
Obiective:
Studentul va fi capabil de a:
Vizualiza coninutul bazei de date;
Afia neformatat expresii, valori ale variabilelor, nregistrri;
Introduce i afia formatat datele.
Indicaii:
Vizualizarea coninutului unui fiier de date
Afiarea informaiilor dintr-un fiier de date poate fi realizat prin diverse comenzi. Cele
mai simple fiind ns DISPLAY/ LIST
LIST / DISPLAY [] [] [FOR ] [WHILE]
[TO PRINTER/TO FILE ] [OFF]
n absena oricrei clauze, comanda LIST va afia ntreaga tabel, iar DISPLAY
nregistrarea curent.
enumer expresiile care se vor afia. n lipsa acestei clauze se va ine seama
de selectarea anterioar a cmpurilor. Implicit sunt afiate toate cmpurile tabelei.
TO PRINTER permite trimiterea coninutului fiierului la imprimant, iar TO FILE -
ntr-un fiier text. Aceste dou opiuni se exclud reciproc.
OFF inhib afiarea numrului de ordine fizic a nregistrrilor naintea primului cmp.
Clauza poate avea una din valorile:
ALL - specific toate nregistrrile fiierului;
NEXT - urmtoarele nregistrri fa de nregistrarea curent;
REST - toate nregistrrile pn la sfritul fiierului;
RECORD - selecteaz doar nregistrarea cu numrul .
Clauza FOR - permite selectarea nregistrrilor care verific condiia.
Clauza WHILE - permite selectarea nregistrrilor ct timp condiia este
adevrat
Exemple:
use produs && fiierul cu date despre produse
list && LIST are domeniul implicit ALL
list "*", id_produs, "*", denumire while cantitate=1 && Clauza WHILE verifica condiia la
nceputul domeniului precizat sau implicit
pn cnd se obine valoarea fals.
&& observai rspunsul sistemului
list [*], id_produs, [*], denumire for tip =1 && Condiia din clauza FOR este verificat
pe ntreg domeniul
-
&& observai rspunsul sistemului
Comenzile DISPLAY i LIST se deosebesc prin:
DISPLAY ALL afieaz toate nregistrrile bazei de date ecran cu ecran (paginat), n
timp ce LIST realizeaz o afiare cu defilare;
Clauza ALL pentru LIST este implicit.
Celelalte clauze ale acestor dou comenzi sunt similare.
SET HEADING ON/OFF reglementeaz afiarea sau inhibarea afirii numelor de cmpuri
n comenzile LIST/DISPLAY.
Exemplu:
set heading off
list denumire off for cantitate=1 while tip=1 && Clauza WHILE este prioritara clauzei FOR
Utilizarea construciei @ rnd,coloni SAY text pentru afiarea formatat a datelor
Comanda utilizat pentru afiarea la monitor, a unei variabile/constante de tip
caracter sau numeric este:
@, SAY [PICTURE ] | [FUNCTION ]
[FONT [,]] [STYLE ]
unde:
@, - caracterul @ fixeaz coordonatele de afiare, date sub
form de linie i coloan.
SAY - comanda de afiare pe ecran, la coordonatele fixate, a unei
expresii sau a unei funcii.
PICTURE - formatul de afiare (se utilizeaz codurile din tabel
indicndu-se formatul ntre apostrof: 9999.99, pentru date de tip numeric).
FUNCTION - ofer o alternativ la stabilirea formatului.
exp_c2 :
A Caractere alfabetice
L Date de tip logic (.T., .F., .Y., .N.)
-
N Litere i cifre
X Orice caractere
9 Cu date de tip caracter permite numai numere. Cu date de tip numeric
permite numere i semne algebrice
# Permite cifre, semne algebrice i spaii
$ Afieaz semnul curent al monedei (definit cu SET CURRENCY)
FONT [,] specific numele tipului de liter (font) utilizat
i mrimea acesteia.
STYLE - definirea stilului de afiare (B bold, I italic, N
normal, U - subliniat).
Exemplu:
@1,1 SAY 'TEST' FUNCTION 'A' FONT 'ARIAL',14 STYLE 'BIU'
&& afieaz n spaiul de lucru, n linia 1, coloana 1,
&& cuvntul TEST (ngroat, nclinat, subliniat)
S=10
@3,1 SAY S PICTURE '99.99' && afieaz n linia 3, coloana 1, valoarea
&& variabilei S cu formatul ales
WAIT WINDOW && afiarea unei ferestre de continuare
CLEAR
Afiarea imaginilor
@, SAY BITMAP| [STYLE ]
[CENTER] [ISOMETRIC] | [STRETCH] [SIZE ,] Permite afiarea
n spaiul de lucru sau tiprirea obiectelor de tip BMP (imagini).
unde:
BITMAP| - clauza care face referire la fiierul
de tip BMP (Bitmap Picture) sau imaginea coninut ntr-un cmp general
dintr-un fiier. este o expresie de tip caracter, delimitat de
apostrof sau ghilimele;
-
STYLE asigneaz atributul de opac Q sau transparent T,
pentru obiectele inserate;
CENTER clauza pentru plasarea obiectului BMP n centrul unei arii
determinate prin clauza SIZE sau delimitate de coordonatele linie, coloan;
ISOMETRIC | STRETCH clauze pentru cazul n care zona de afiare a
obiectului BMP este mai mic dect dimensiunea real a acestuia. ISOMETRIC
redimensioneaz obiectul la dimensiunea ariei, cu pstrarea proporiilor.
STRECH creaz un raport separat pentru fiecare coordonat Ox, Oy, cu care
obiectul se poate distorsiona pe vertical sau orizontal.
SIZE , stabilete coordonatele colului din dreapta jos
al zonei de afiare.
Exemplu.
@1,1 SAY "1.JPG" BITMAP CENTER ISOMETRIC
WAIT WINDOW
CLEAR
Utilizarea construciei @ rnd,coloni GET variabil pentru introducerea formatat a
datelor
@, GET [PICTURE ] reprezint comanda ce
permite editarea variabilei de memorie var (pentru a introduce o nou valoare), unde:
PICTURE - reprezint formatul de editare.
Se poate combina operaia de afiare cu cea de editare a unei variabile, caz n care
vom utiliza comanda:
@, SAY GET
ntotdeauna o comand (sau mai multe comenzi) @...GET va fi nsoit de o
comand READ. Practic se poate construi o machet cu cmpuri de afiare @SAY i
cmpuri de citire @GET, cursorul se deplaseaz de la o linie la alta apsnd tasta
[ENTER] sau [TAB] i napoi cu [SHIFT] + [TAB] (permite reactualizarea unor
cmpuri nainte de citirea efectiv). La apsarea tastei [ENTER] la ultima linie GET
se va executa comanda READ i se va citi ntreg ecranul.
Comanda READ realizeaz citirea tuturor cmpurilor editate cu comanda GET.
READ [CYCLE] [MODAL] [VALID |] [WHEN ]
-
unde:
CYCLE clauz care mpiedic ncheierea citirii variabilelor editate,
atunci cnd cursorul depete primul sau ultimul obiect creat cu GET.
Dac utilizatorul se plaseaz pe ultimul obiect GET i apas [ENTER] sau
[TAB], cursorul se va deplasa pe primul obiect GET. Pentru a ncheia o
comand READ ciclic, se apas tasta [Esc] sau tastele [CTRL] + [W] ;
MODAL este clauza care previne activarea ferestrelor care nu sunt
implicate n execuia comenzii READ;
VALID expr_L | expr_N clauz care valideaz valorile introduse n
cmpul GET, la terminarea comenzii READ. Dac expresia logic
returneaz valoarea adevrat (.T.) comanda READ se ncheie;
WHEN expr_L1 clauza condiioneaz execuia comenzii READ de
evaluarea expresiei logice. Dac expresia returneaz valoarea fals comanda
READ este ignorat.
Utilizarea operatorului + pentru concatenarea datelor i afiarea acestora
+ - se utilizeaz pentru unirea a dou iruri de caractere, un ir i un cmp dintr-o nregistrare sau
un ir de caractere i o variabil
Exemplu :
? 'Bun ' + 'ziua'
-
Situaii didactice de nvare 1. Curii ecranul.
2. Afiai n rndul 10, colonia 5 textul: Bun dimineaa!!!.
Curii poriunea de ecran scris.
3. Pe poziia 5;2 salutai-l pe primul student pe care-l avei nscris n baza d-str de date.
4. Scriei un program care va afia formatat ncepnd cu 1 rnd, 1 coloni, numele,
prenumele i anul nmatriculrii studenilor din oraul Chiinu n urmtoarea form:
Bucur Ion inmatric. n 2003;
Cojoc Maria inmatric. n 2000;...
a. Utiliznd SCAN;
b. Utiliznd LOCATE.
5. Scriei un program n care vei cuta n BD Student studentul cu bursa maxim (s
presupunem c exist doar un student cu bursa maxim) i vei afia pe poziia 7,7
mesajul: Bravo, Cornel, eti cel mai bun, ai bursa=500 lei !!! (n cazul cnd Cornel
e studentul cu bursa maxim=500 lei).
6. Pe poziia 2,2 cerei utilizatorului s introduc de la tastier o valoare pentru variabila
a de tip numeric, care implicit are valoarea 0. Afiai variabila a pe poziia 2,3.
Indicaii: Nu uitai de comanda READ, care de fapt citete datele introduse n cmp.
7. Afiai datele despre studentul din BD Student la solicitarea utilizatorului (numele i
prenumele studentului se introduc de ctre utilizator de la tastier).
8. Pe poziia 5,2 cerei utilizatorului s introduc de la tastier un numr (stabilii
formatul care nu ar permite utilizatorului introducerea caracterelor). Afiai numrul
introdus pe poziia 6,2.
9. Scriei un program care ar introduce datele despre fiecare student n baza de date
Student n mod formatat (adic prin intermediul construciei SAY...GET).
a. Precutai ca utilizatorul s nu introduc date n cmpul id_student, ci ca acest
cmp s se autocompleteze, n dependen de numrul nregistrrii din tabel;
b. Precutai ca utilizatorul s aleag dintre genul masculin i feminin, iar n
dependen de alegerea lui, d-str s introducei datele corespunztoare;
c. Pentru completarea cmpului date_adugtoare, oferii utilizatorului
posibilitatea de a alege dac dorete sau nu s introduc date n el.
Indicaii: Comanda APPEND BLANK, adaug o nregistrare pustie nou n tabel.
Comanda REPLACE cmp WITH valoare, adaug o valoare n cmp.