Sunteți pe pagina 1din 7

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 [<lista-expr>] [<domeniu>] [FOR <condiie1>] [WHILE<condiie2>]
[TO PRINTER/TO FILE <fiier.txt>] [OFF]
n absena oricrei clauze, comanda LIST va afia ntreaga tabel, iar DISPLAY
nregistrarea curent.

<lista-expr> 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 <domeniu> poate avea una din valorile:


ALL - specific toate nregistrrile fiierului;
NEXT <n> - urmtoarele <n> nregistrri fa de nregistrarea curent;
REST - toate nregistrrile pn la sfritul fiierului;
RECORD <n> - selecteaz doar nregistrarea cu numrul <n>.

Clauza FOR <condiie1> - permite selectarea nregistrrilor care verific condiia.

Clauza WHILE <condiie2> - 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:
@<linie>,<coloana> SAY <expr> [PICTURE <exp_c1>] | [FUNCTION <exp_c2>]
[FONT <exp_c3>[,<exp_n>]] [STYLE <exp_c4>]
unde:

@<linie>,<coloana> - caracterul @ fixeaz coordonatele de afiare, date sub


form de linie i coloan.

SAY <expr> - comanda de afiare pe ecran, la coordonatele fixate, a unei


expresii sau a unei funcii.

PICTURE <expr_c1> - formatul de afiare (se utilizeaz codurile din tabel


indicndu-se formatul ntre apostrof: 9999.99, pentru date de tip numeric).

FUNCTION<exp_c2> - ofer o alternativ la stabilirea formatului.

exp_c2 :
A

Caractere alfabetice

Date de tip logic (.T., .F., .Y., .N.)

Litere i cifre

Orice caractere
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 <exp_c3>[,<exp_n>] specific numele tipului de liter (font) utilizat


i mrimea acesteia.

STYLE <exp_c4> - 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
@<linie>,<coloana> SAY <fiier_imag>BITMAP|<cmp_GEN> [STYLE <exprC>]
[CENTER] [ISOMETRIC] | [STRETCH] [SIZE <expN1>,<expN2>] Permite afiarea
n spaiul de lucru sau tiprirea obiectelor de tip BMP (imagini).
unde:

<fiier_imag>BITMAP|<cmp_GEN> - clauza care face referire la fiierul


de tip BMP (Bitmap Picture) sau imaginea coninut ntr-un cmp general
dintr-un fiier. <fiier_imag> este o expresie de tip caracter, delimitat de
apostrof sau ghilimele;

STYLE <exprC> 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 <expN1>,<expN2> 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
@<linie>,<coloana> GET <var> [PICTURE <expr_c>] reprezint comanda ce
permite editarea variabilei de memorie var (pentru a introduce o nou valoare), unde:

PICTURE <expr_c> - reprezint formatul de editare.

Se poate combina operaia de afiare cu cea de editare a unei variabile, caz n care
vom utiliza comanda:
@<linie>,<coloana> SAY <mesaj> GET <var>
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 <expr_L>|<expr_N>] [WHEN <expr_L1>]

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.

S-ar putea să vă placă și