Laborator-VFP-nr.-4

download Laborator-VFP-nr.-4

of 7

description

x

Transcript of Laborator-VFP-nr.-4

  • 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.