Sunteți pe pagina 1din 26

CURS 11 INTRODUCEREA DATELOR CONSTRUCTORUL DE FORMULARE (FORME )

Introducerea datelor reprezint una din principalele operaii legate de gestiunea datelor, de obicei mare consumatoare de timp. Utilizatorii trebuie s poat accesa opiunile unei aplicaii, inclusiv partea de introducere a datelor. Utilizatorii, de obicei, nu cunosc comenzile specifice ale SBGD-ului. Din acest motiv, construirea unei aplicaii presupune construirea unei interfee de legtur ntre utilizator i bazele de date. Interfaa construit trebuie s permit inclusiv introducerea datelor prin mijloace specifice. Interfaa oricrei aplicaii poate fi alctuit din mai ferestre, formulare, obiecte de interaciune cu utilizatorul . Forma sau formularul este principalul element al unei interfee cu utilizatorul, folosit i pentru introducerea datelor. O form arat ca n figura de mai jos : multe elemente : meniuri,

La prima vedere , se observ faptul c o form este o fereastr n care se pot depune alte obiecte. Desigur, forma este un fel de fereastr pe care utilizatorul o poate folosi pentru a construi interfaa programului sau pentru a construi formulare de preluare a datelor .

44

Din punct de vedere tehnic, formele reprezint un ansamblu de elemente (obiecte de interfa, proceduri i funcii, proprieti, etc.) folosite mpreun pentru preluarea de la utilizator a unor date sau a unor parametrii necesari rulrii programului. O form apare pe ecran ca o fereastr clasic, dar ea reprezint mult mai mult dect att. Ea este de fapt un obiect (n sensul programrii pe obiecte) i este caracterizat prin anumite atribute sau proprieti, ce se pot modifica de utilizator dup propria sa dorin . Aceste proprieti dau aspectul formei i, foarte important , dau aspectul formei i comportamentul ei n diferite situaii. Pe lng proprieti ( pe care le vom discuta mai departe) unei forme i se se pot ataa secvene de cod ( numite n termenii programrii pe obiecte metode) executabile n diferite ocazii. Formele le vom folosi ca principal mijloc de interfa cu utilizatorul : afiarea pe ecran a unor date cerute, informarea utilizatorului cu privire la rezultatul unei prelucrri, citirea datelor de la utilizator. Construirea formelor (formularelor). Pentru a putea fi folosit , o form trebuie mai nti creat . Asta nseamn specificarea caracteristicilor formei, a elementelor sale componente i a proprietilor lor.Toate aceste date sunt stocate ntr-un fiier cu o structur special ce are extensia SCX . Dup creare, ea poate fi folosit, prin urmare ea trebuie executat . Rularea formei se face cu comanda DO FORM numeform. Crearea formei se poate face prin construirea tabelul cu caracteristicile formei, mai ales datorit existenei unui Constructor de Forme care ne va ajuta s construim forma mai uor i ntr-un mod semiautomat. Utilitarul numit Constructor de Forme se poate lansa n dou moduri : fie se tasteaz comanda CREATE FORM numeform fie se alege comanda New , a meniului File, selectnd categoria Form . sau alegnd comanda Open , din meniul File i lansat Constructorul de forme, pe ecran este afiat

De asemenea, dac se dorete modificarea unei forme create anterior , aceste lucru se poate face tastnd MODIFY FORM nume acesta are extensia SCX) . Odat fereastra acestuia : selectnd categoria Form urmat de alegerea directorului i a fiierului formei ( am mai spus

45

Fereastra princiapl a formei

Obiecte ce se pot aduga pe form

Proprietile formei sau obiectelor

Scheletul formei

Constructorul de forme conine urmtoarele elemente :


fereastra principal n care este afiat forma- ea poart numele de Form Designer . fereastra de proprieti care permite modificarea diferitelor proprieti ale elementelor selectate n fereastra principal a utilitarului numit Properties . ferestrele pentru secvenele de cod ataate evenimentelor care se folosesc la precizarea secveelor de cod ce vor fi executate la apariia diferitelor evenimente n cadrul formei ( la acionarea unui buton , selectarea unui element) pe figura de mai sus nu se vd. O astfel de fereastr apare dac se apas butonul dreapta pe obiect i se alege Code sau dac se alege evenimentul i se face dublu clic .

fereastra mediului de date al formei numit Data Environment , pe figur nu se vede se folosete pentru a preciza tabelele care vor fi deschise automat n momentul

46

definirii formei i a relaiilor ntre acestea . Aceast fereastr se poate afia , fie din meniul rapid ( obinut prin apsarea butonului dreapta pe form) sau din meniul View cu opiunea Data Environment.

mai multe bare utilitare folosite pentru manipularea obiectelor formei :


-

bara cu instrumente pentru obiectele de interfa numit Forms Controls

Toolbar, din care se aleg obiectele ce vor fi definite n cadrul unei forme. n figur apare n partea superioar a ferestrei. Aceste obiecte se mai numesc controale .
-

bara cu instrumente de manipulare a obiectelor numit Layout Toolbar- se

folosete pentru executarea diferitelor operaii pe obiectele formei ( alinieri ale obiectelor, etc.).
-

bara cu instrumente pentru controlul culorilor Color Palette.

Atenie nu toate componentele apar la lansarea Constructorului de Forme. Ele pot fi ascunse , afiarea lor o putei face din meniul View ( vei gsi opiuni cu acelai nume cu al ferestrelor ) sau din meniul rapid obinut prin apsarea butonului dreapta pe o fereastr din cele existente (nu pe form). MODUL DE LUCRU CU ELEMENTELE CONSTRUCTORULUI DE FORME. EXEMPLU DE FORM SIMPL. nainte de a trece la prezentarea n detaliu a elementelor Constructorului de forme, vom exemplifica modul de lucru pe o form simpl luat ca i model . Scopul principal este acela de surprinde elementele de baz n construirea oricrui formular. Pentru aceasta vom construi o form care s permit introducerea unei valori , afind valoarea impozitului aferent acelei sume, fie la apsarea tastei Enter , fie la apsarea butonului Start Calcul . Forma va arta astfel :

47

Pentru a putea obine forma, vom lansa constructorul de forme ( File, New i categoria Form ) . Dup lansare, vom avea deja construit fereastra schelet a formei. Vom trece s ne fixm toate elementele formei. Primul lucru pe care ar trebui s-l facem, este acela de a fixa dimensiunile formei. Avem la dispoziie dou soluii. Prima const n a duce cursorul pe chenarul formei (n stnga sau dreapta, sus, jos sau pe diagonale ) i de a trage mouse-ul (cu butonul stnga apsat) ntr-o nou poziie. A doua metod const n a preciza dimensiunile exacte ale formei folosind fereastra de proprieti a Constructorului de forme, n care va trebui s modificai valorile proprietilor Height i Width . Fereastra de proprieti arat astfel: (dac nu v apare , activai-o din meniul View).
De aici vei selecta obiectul pentru care i modificai proprietile

Aici vei tasta noua proprietate

De aici vei selecta proprietatea pe dorii s o modificai 48

Cum vei modifica o proprietate ? n primul rnd activai obiectul n cauz (aici obiectul este forma). Acest lucru l putei face realiznd clic pe obiectul din fereastra principal sau alegnd acel obiect din partea superioar a ferestrei de proprieti . Apoi, va trebuie s derulai lista cu proprieti, s facei clic pe proprietate respectiv i s-i modificai valoarea implicit ( tastnd noua valoare n zona de editare) . Anumite proprieti nu v permit s tastai o valoare proprie , ci v cer s selectai valorile dintr-o list de valori posibile. n acest caz, vei avea activ o sgeat prin care vei putea derula lista de valori posibile. Dup ce ai fixat dimensiunile formei , va trebui s stabilii titlul su ( pe exemplul nostru Calcul Impozit) , lucru pe care l putei realiza schimbnd proprietatea Caption a formei ( sigur din fereastra de proprieti ). Dup ce v-ai fixat proprietile formei, va trebui s depunei obiectele necesare pe form. Obiectele ( sau controale ) se gsesc n fereastra Forms Controls Toolbar , ca n figura de mai jos:
Etichet (label)

Buton de editare Buton de comand Puncte de dimensionare

49

Aceste obiecte (pe cele mai importante le vom prezenta i noi) permit controlul diverselor evenimente, permit preluarea de date , respectiv afiarea de date. Pentru exemplu nostru , va trebuie s introducem urmtoarele obiecte :

dou texte informative, explicative, numite etichete (Label) acestea permit

atenionarea utilizatorului asupra zonei unde se introduce suma , respectiv asupra zonei unde se afieaz impozitul. dou cmpuri de editare, n unul se va introduce suma iar n cellalt se va afia dou butoane de comand , folosite pentru a ncepe calculul impozitului, impozitul calculat. respectiv pentru a nchide forma . Aceste obiecte sunt puse n eviden pe figura anterioar. De exemplu, pentru a introduce un text informativ , se face clic pe obiectul Label, apoi se merge n suprafaa formei, se fixeaz un col al obiectului i, cu butonul stnga apsat, se dimensioneaz obiectul. Trebuie precizat faptul c dimensiunile i poziia unui obiect le putei modifica i ulterior, fie prin tragerea cu mouse-ul de punctele de dimensionare sau deplasarea obiectului cu butonul stnga al mouse-lui, fie prin modificarea n fereastra de proprieti a parametrilor. Toate obiectele au la dispoziie patru proprieti pentru schimbarea poziiei i a dimensiunilor:

Left i Top -ce precizeaz poziia colului stnga sus al obiectului relativ la Width i Height -ce precizeaz dimensiunile orizontale i verticale ale

colul stnga sus al formei.

obiectului. Dup precizarea dimensiunii, se schimb mesajul etichetei tastnd la proprietatea Caption , textul Suma pentru care . Apoi, n acelai mod, se depun butoanele de editare . Aceste butoane de editare, sunt zone ce se folosesc pentru a prelua date de la utilizator sau pentru a afia anumite expresii. Urmtoarele obiecte care se depun sunt butoanele de comand . Butoanele de comand sunt folosite, n general, pentru a executa un anumit calcul sau pentru a produce un anumit eveniment( de exemplu pentru a nchide forma), n momentul n care se face dublu clic pe buton sau se apas Enter . Dup depunerea i dimensionarea lor , se schimb textul afiat pe butoane folosind proprietatea Caption.

50

Toate aceste lucruri, pe care le-am realizat anterior, ne-au permis s stabilim aspectul exterior al formei noastre. Mai departe , vom trece s stabilim comportamentul formei la diverse eveniminte cum ar fi apsarea mouse-ului , apsarea tastei Enter, etc. Prin urmare va trebui s interceptm cele trei evenimente care pot s apar i s nvm forma cum s se comporte la apariia lor. Care sunt cele trei evenimente care pot s apar ? cnd se n primul rnd, va trebui s interceptm terminarea introducerii sumei de calcul, tiind c ea se ncheie aps tasta Enter sau se face clic pe butonul Start Calcul (sunt primele 2 evenimente). n sfrit , va trebui s interceptm terminarea lucrului cu forma , eveniment care se produce cnd utilizatorul apas butonul Exit. Fiecare obiect ( inclusiv forma ) poate rspunde la o serie de evenimente predefinite ce pot s apar. Programatorul poate modifica i preciza modul de rspuns al obiectului la acel eveniment, modul de comportament al obiectului. Acest lucru se realizeaz prin ataarea unei secvene de cod pentru fiecare eveniment. Primul eveniment pe care trebuie s-l prelucrm este Valid . Acest eveniment apare cnd se termin introducerea unei valori ntr-un cmp de editare. Ce dorim noi s se ntmple la apariia acestui eveniment? Dorim s se calculeze impozitul i s se afieze rezultatul n zona de editare Text2. Pentru aceasta, va trebui s atam un anumit cod (o anumit secven de calcul) pentru acest eveniment. Pentru aceasta activm butonul de editare Text1 (se face clic pe el), apoi alegem proprietatea Valid din fereastra de proprieti. Pentru a scrie codul, fie se face double clic pe proprietate, fie se alege comanda Code din meniul View, fie din meniul rapid , ca n figura de mai jos:

51

Comanda din meniul rapid Proprietatea Valid

n final se va obine o fereastr de editare n care se va introduce codul respectiv :

n ce va consta codul? El va trebui s conin (se observ pe figur) o instruciune de extragere a valorii din cmpul de editare i calcularea impozitului folosind formula Trebuie avut atenie la corespunztoare. n final, valoarea se va depune n zona Text2.

butoanele de editare , adic la modul de iniializare a cmpului Value iniial. Dac dorii s-l folosii pentru calcule numerice , atribuii-i iniial valoarea 0, altfel l va considera ca un ir. Pentru aceasta, va trebui s explicm mai nti modul de accesare (de notare) a obiectelor i a diverselor proprieti . Notaia general se bazeaz pe construciile : Nume form.NumeProprietate sau Numeform.NumeObiect.Numeproprietate

52

De exemplu, proprietatea Caption a formei (adic titlul ferestrei formei) se poate accesa i modifica prin construcia Form1.Caption= "Calcul impozit" . n schimb , dac avem obiecte depuse pe form, accesarea proprietilor acestora se face adugnd suplimentar numele obiectului respectiv. De exemplu , dac forma conine (ca n cazul exemplului nostru) , un buton de editare text , accesarea valorii din zona de editare se face cu construcia Form1.Text1.Value . De asemenea, dac obiectul respectiv conine, la rndul lui, alte obiecte , accesarea se face n mod similar. Prin includerea obiectelor unele n altele ( acolo unde este nevoie) , se obine de fapt o ierarhie de obiecte. Referirea la un obiect dintr-o asemenea ierarhie se face prin precedarea numelui obiectului respectiv cu numele obiectelor care l conin, ncepnd de la obiectul cel mai cuprinztor (de obicei forma) spre obiectele din interior. Exist cteva construcii speciale care permit scurtarea construciei folosite la desemnarea obiectelor din cadrul unei ierarhii. Acestea sunt :

This se refer la obiectul curent; ThisForm- se refer la forma curent ( care conine obiectul curent); ThisFormSet - care desemneaz setul de forme curente, ce conine forma Parent - care se refer la obiectul care conine obiectul curent ( adic obiectul

curent;

imediat superior n ierarhia de obiecte). n exemplul nostru se observ cum am accesat cmpurile, folosind notaia ThisForm, dar puteam s folosim i Form1 . S continum prezentarea modului de realizare a aplicaiei. Mai nti, vom comenta secvena anterioar , cea care apare la introducerea sumei : Valoare=ThisForm.Text1.Value IF valoare <=1500000 Impozit=0.18*Valoare ELSE IF Valoare <=3800000 Impozit=270000+0.23*(Valoare-1500001) ELSE IF Valoare <=6000000 Impozit=799000+0.28*(Valoare-3800001) ELSE IF Valoare <=8400000 Impozit=1415000+0.34*(Valoare-6000001) -preia n variabil valoarea introdu-s - se calculeaz impozitul, innd cont de tranele respective Formula se introduce folosind mai multe instruciuni If , corespunztor tranelor de calcul

53

ELSE Impozit=2231000+0.40*(Valoare-8400001) ENDIF ENDIF ENDIF ENDIF ThisForm.Text2.Value=Str(Impozit,10,0)

Valoarea impozitului este cellalt cmp de afiare

depus

Dup ce am fixat comportamentul obiectului Text1 la ncheierea tastrii sumei, trebuie precizat comportamentul obiectului Comand1 ( adic butonul cu numele Start Calcul). Ce dorim de fapt ? Dorim , ca la apsarea butonului Start Calcul (sau cnd se face dublu clic pe acest buton) s se execute acelai calcul . Prin urmare, fie vom face dublu clic pe butonul Start Calcul, fie vom alege evenimentul Click i vom ajunge n fereastra de introducere cod . Aici, vom introduce acelai cod (pe care l-am prezentat anterior). Al treilea comportament pe care trebuie s-l configurm este cel legat de nchiderea formei la acionarea butonului Exit. Pentru aceasta , fie facem dublu clic pe buton , fie selectm evenimentul Click i introducem ( n fereastra care apare ) codul ThisForm.Release, unde Release este de fapt metoda de nchidere a formei. n final , salvm forma cu ajutorul opiunii Save a meniului File (oricum , cnd vei ncerca s nchidei Constructorul de forme, o s v ntrebe dac salvai ) . Rularea formei se poate face n dou moduri : -tastnd n fereastra de comand FORM Exemplu ). - se apas butonul dreapta pe forma i se alege Run Form. DO FORM Nume ( pentru exemplul nostru DO

54

CURS 12 REALIZAREA RAPOARTELOR CONSTRUCTORUL DE RAPOARTE


Faza final a oricrei aplicaii este extragerea diferitelor informaii pe baza datelor introduse anterior n bazele de date . De fapt pentru asta se realizeaz celelalte operaii (introducere, prelucrare ). Rapoartele reprezint colecii de informaii construite pe baza datelor din tabele, informaii care urmeaz a fi afiate pe ecranul monitorului sau tiprite la imprimant. Rapoartele sunt stocate n fiiere speciale ce sunt interpretate de un modul special al SGBDului. Acest modul special, preia datele din baza de date surs i le aranjeaz pe foaie n conformitate cu dorina utilizatorului, obinndu-se un raport. Situaia care se obine se poate tipri fie pe ecran, fie la imprimant. Ca i regul general, rapoartele sunt folosite pentru informarea utilizatorului cu privire la anumite date sau pentru situaiile n care informaiile trebuie tiprite regulat pe hrtie. De exemplu, balanele contabile, statele de plat, fluturaii de plat, listele cu admii, listele cu crile disponibile , situaia stocurilor, sunt exemple tipice pentru care va trebui s construim un raport, tiprit eventual pe hrtie. Exemplu de raport:

55

Rapoartele se pot construi cu ajutorul unor programe speciale numite constructori de rapoarte (acetia existau i n Foxpro pentru Dos) . Realizarea unui raport presupune parcurgerea a trei etape : stabilirea parametrilor necesari construirii raportului. n acest etap, programatorul construiete o form prin intermediul creia preia parametrii necesari construirii raportului .

stabilirea datelor din bazele de date ce se vor folosi la construirea raportului

(interogri, grupri, sortri, etc.). De obicei, datele sunt mprtiate n mai multe tabele sau nu se potrivesc cu cele din raport. prin urmare, se fac interogri avnd ca destinaie tabele temporare pentru raport. construirea efectiv a raportului, folosind constructorul de rapoarte. Practic, n aceast etap , datele sunt aranjate , sunt cosmetizate a .. s capete un aspect clar, lizibil. Primele dou etape le-am prezentat n cursurile anterioare . Urmeaz s discutm ultima etap, realizarea efectiv a raportului. n Visual Foxpro, se pot folosi dou metode de construire a raportului : construind manual raportul , folosind pentru asta comenzile clasice de afiarea a datelor. Se folosea n variantele mai vechi de Foxpro. prin crearea unui fiier special , cu extensia FRX, care s conin caracteristicile raportului , fiier pe care l va interpreta sistemul i va obine raportul final. Vom discuta mai departe cea de a doua variant , care necesit mai puin timp i efort. Vom apela pentru construirea raportului , la Constructorul de rapoarte. Acest constructor ne va ajuta s construim imaginea raportului ( adic a fiierului FRX). Apoi, n final , raportul

56

va putea fi afiat pe ecran sau la imprimant , dup dorina utilizatorului ( vom prezenta la final comenzile necesare). Lansarea constructorului de rapoarte se poate face n dou moduri :
-

fie se tasteaz comanda CREATE REPORT nume n fereastra de comand. fie se alege opiunea New, din meniul File i se selecteaz categoria Report, urmat de New File sau Wizard .

Dac vei alege varianta a doua , vi se va cere numele raportului ( acesta are extensia FRX) i directorul n care l depunei. Modificarea unui raport creat anterior o vei putea face oricnd, tastnd MODIFY REPORT nume sau alegnd opiunea Open din meniul File. Elementele Constructorului de rapoarte Cum vom lucra ? Odat pornit Constructorul de rapoarte, pe ecran este afiat fereastra de lucru a acestuia i bara utilitar cu obiectele ce pot fi introduse n raport ( va aprea i meniul Report n linia meniului principal) . n raport, programatorul poate s depun diverse obiecte cum ar fi : texte informative, cmpuri ale tabelelor , valori ale variabilelor, elemente semigrafice( linii, chenare) sau grafice (imagini) . Pentru aceasta, vei avea la dispoziie o bar utilitar cu aceste obiecte ( numit Report Controls) . De aici putei alege acele butoane anterior prezentate. De asemenea, la lansarea Constructorului de rapoarte , va aprea un meniu report coninnd mai multe comenzi de care vei avea nevoie ( le vom prezenta mai departe). Fereastra Constructorului de rapoarte arat astfel :

Banda cu titlul raportului Banda cu antetul raportului Banda cu detalii Banda cu subsolul raportului

Banda delimitatoare

57

Banda cu totaluri

Texte informative

Cmpuri

Dup cum se observ pe figura de mai sus, un raport este alctuit din benzi. Fiecare band conine un ablon ce precizeaz coninutul ce se va afia n accea zon. Mai mult , acest coninut se poate repeta pe fiecare pagin sau se poate repeta ( cazul benzii cu detalii) pentru fiecare nregistrare . n Visual Foxpro, un raport poate conine urmtoarele benzi :
-

Detail (detalii) aceast band conine rndurile de detaliu ale raportului, de fapt coninutul principal al raportului. ablonul benzii Detail se aplic la toate nregistrrile incluse n tabel. Title (titlu) banda corespunde antetului raportului final, adic ea genereaz n raportul final o zon afiat o singur dat, la nceputul raportului i, eventual, capul de tabel, dac acesta nu trebuie repetat pe fiecare pagin n parte. Summary (rezumat) se folosete pentru a preciza sfritul zonei de afiat a raportului. Banda apare doar odat , la sfritul raportului pe ultima pagin. Page Header (antet de pagin) aici se precizeaz textul care va fi afiat n partea superioar a fiecrei pagini a raportului. Page Footer (subsol de pagin) aici se precizeaz textul care va fi afiat n partea inferioar a fiecrei pagini a raportului. Group Header n (antetul grupului de nivel n) i Group Footer n (subsolul grupului de nivel n) se folosesc pentru a depune subtotaluri conform criteriilor de grupare a nregistrrilor, fie n antetul de pagin , fie n subsolul de pagin . Column Header (antetul de coloan) i Column Footer (subsolul de coloan) la nivel de coloan, poate fi specificat un antet i un subsol, fiecare cu banda lui.

58

Nu toate benzile sunt obligatorii. De asemenea, nu toate apar la pornirea Constructorului de rapoarte. De fapt, construirea raportului const n specificarea benzilor care vor compune raportul, a dimensiunilor i a coninutului acestora . Se observ pe figura anterioar existena unei bare de delimitare pe vertical a benzilor. De asemenea, aceast bar se poate trage de ea ( cu mouse-ul) pentru a redimensiona banda respectiv. O band poate avea nlimea zero, ceea ce nseamn c ea nu va aprea n pagina raportului final. Pentru a obine acest lucru, va trebui s tragei cu mouse-ul de aceast banda astfel nct s fie alipit de banda anterioar. Benzile de titlu i de concluzii sunt afiate prin alegerea opiunii Title/Summary a meniului Report . Benzile de antet de grup i subsol de grup sunt afiate n raport atunci cnd sunt definite criterii de grupare (se grupeaz datele din tabele). Proprietile benzilor raportului . Fiecare band a unui raport are o serie de proprieti care se pot modifica de programator. Pentru asta, vei face clic pe banda respectiv, dup care se va afia o fereastr de tipul urmtor :

Se observ cmpul Height. Cu ajutorul acestuia, se poate specifica dimensiunea exact a benzii. Atenie, dac dorii aceeai dimensiune pentru toate instanele benzii, indiferent de coninutul fiecrei instane, se activeaz comutatorul Constant band height (n traducere nlime constant a benzii). Afiarea unei benzi este nsoit de executarea a dou evenimente, care pot fi configurate de utilizator:

nainte de fiecare afiare a benzii - cu ocazia acestui eveniment poate fi

evaluat o anumit expresie, specificat n zona On entry din seciunea Run expression .

59

dup

fiecare afiare a benzii - cu ocazia acestui eveniment poate fi evaluat o

anumit expresie, specificat n zona On exit din seciunea Run expression . Expresiile care se evalueaz la apariia acestor evenimente pot cuprinde funcii definite de utilizator, pot conine instruciuni. n felul acesta se pot executa diferite comenzi nainte sau dup afiarea unei benzi, fiind astfel posibil obinerea unor efecte deosebite. De exemplu, pentru obinerea unui contor extern n care s se memoreze numrul de pagini tiprite, se poate executa o instruciune de incrementare a contorului nainte de ( sau dup) afiarea benzii antet de pagin a raportului. Aceast instruciune se introduce ntr-o funcie definit de utilizator, al crei apel se introduce n expresia On Entry sau On exit a benzii . Proprieti generale ale raportului 1. FORMATUL PAGINII Primul lucru care trebuie configurat atunci cnd ncepei s construii un raport este formatul paginii pe care se va tipri raportul. Aceast proprietate se stabilete n fereastra Page Setup (n traducere parametrii pagin), opiune ce se gsete n meniul File. Dup selectarea opiunii va aprea o pagin ca n figura urmtoare:

Dimensiunea fizic a paginii pe care se tiprete raportul este dependent de imprimanta cuplat la sistemul de calcul i se stabilete cu ajutorul opiunii Print Setup:

60

Imprimanta se va alege cu opiunea Name, inclusiv caracteristicile imprimantei pot fi schimbate cu opiunea Properties. Din seciunea Paper se poate alege dimensiunea hrtiei i sursa de hrtie . De asemenea, aezarea paginii se poate alege din seciunea Orientation, fiind disponibile dou variante : Portrait aezare normal i Landscape aezare pe orizontal. Revenind la prima fereastr (Page Setup), putem s stabilim formatul local al paginii (fereastra anterioar ne-a permis alegerea formatului fizic al hrtiei). Putem stabili numrul de coloane cu opiunea Number, limea unei coloane Width iar spaiul dintre coloane cu opiunea Spacing . De asemenea, dac avei nevoie de ntreg spaiul fizic al hrtiei se poate selecta opiunea Whole page , dar putei selecta doar zona tipribil a paginii cu opiunea Printable page. n sfrit, dac se ndosariaz raportul, putei lsa o margine suplimentar n stnga cu ajutorul opiunii Left Margin . 2. MEDIUL DE DATE AL RAPORTULUI Orice raport trebuie s preia datele de undeva. De obicei, datele mai multor tabele sunt aranjate pe pagin. Prin urmare, a doua operaie care trebuie realizat, const n specificarea tabelelor surs. Aceste tabele mpreun cu anumite variabile folosite n raport alctuiesc mediul de date al raportului.V aducei aminte de mediul de date al formularelor? i aici mediul de date se specific cu ajutorul ferestrei Data Environment al meniului View sau din meniul rapid obinut prin apsarea butonului dreapta pe raport . Putei s precizai anumite tabele surs sau anumite vederi, etc cu ajutorul opiunii ADD . De asemenea, dac se dorete precizarea dinamic ( la rulare ) a tabelelor surs , atunci se pot folosi metodele

61

mediului de date, n care se vor introduce instruciunile corespunztoare de deschidere a tabelelor. Ca i la formulare, cele mai importante metode ale mediului de date, asociate la evenimentele similare , sunt:
BeforeOpenTables

se apeleaz nainte de deschiderea tabelelor poate fi

folosit pentru stabilirea dinamic a numelor i directoarelor pentru tabelele ce urmeaz a fi deschise .
OpenTables

deschiderea tabelelor

poate fi folosit pentru

deschiderea

efectiv a tabelelor .
AfterOpenTables

dup deschiderea tabelelor poate fi folosit pentru naninte de nchiderea tabelelor poate fi folosit pentru

selectarea tabelei curente i a nregistrrii curente .


BeforeCloseTables

diverse calcule statistice asupra datelor din tabele .


CloseTables

nchiderea tabelelor . dup nchiderea deschiderea tabelelor.

AfterCloseTables

Alte proprieti importante sunt InitialSelectedAlias- stabilete tabela care va fi selectat iniial, AutoOpenTables dac este .T. deschide automat tabelele specificate n mediul de date al raportului, AutoCloseTables - dac este .T. nchide automat tabelele specificate la mediul de date al raportului . 3. FONTUL IMPLICIT AL RAPORTULUI . Un alt element de care trebuie s inei cont este fontul de lucru, font folosit la scrierea datelor. Acesta se poate fixa cu ajutorul opiunii Default Font a meniului Report, iar caracteristicile fontului sunt specificate n fereastra de dialog deschid pe ecran. 4. ELEMENTELE CE SE DEPUN N RAPORT- BARA REPORT CONTROLS. a. Elemente informative Label Un element important ce se folosete la crearea raportului este textul informativ. Cnd dorii s punei diverse mesaje, divese texte vei folosi acest etichete pentru a putea s le depunei n raport. Pentru asta vei folosi butonul de pe bara utilitar a Contructorului de rapoarte. Apoi, vei specifica textul, eventual putei schimba formatul de afiare folosind fereastra Font din meniul Format (vei putea s alegei fontul, mrimea, stilul, culoarea, diverse efecte asupra textului, exact ca n Microsoft Word ). b. Cmpurile Field

62

Cele mai importante elemente ale raportului sunt cmpurile. Ele reprezint elementele variabile din raport, elemente care se schimb n diversele linii din raport dup sursa de date a raportului. De obicei , vei depune cmpurile tabelelor n raport . De exemplu, denumirea produselor, cantitatea, data intrrii, valoarea produselor. Pe lng cmpurile propriu-zise ale tabelelor, cmpurile raportului pot fi i variabile ale raportului, pot fi i expresii obinute prin combinarea cmpurilor. Fiecare cmp pe care l vei construi n raport se caracterizeaz prin : sursa de date, adic de unde se vor lua datele ce se vor depune n cmpul raportului. formatul de afiare a valorii din cmp. Acesta este un ablon (ca i n cazul formatului de la forme) funcia de calcul aplicat valorii din cmp (sum, medie, contorizare). condiii dinamice de afiare a cmpului respectiv prin care se pot fixa situaiile n care se vor afia cmpurile n raport. Cum vei construi cmpurile ? Mai nti acionai butonul dialog de tipul urmtor : de pe bara utilitar i facei apoi clic n locul n care depunei cmpul respectiv. n final se va deschide o fereastr de

Cu ajutorul cmpului Expression (se observ constructorul de expresii n dreapta notat cu ) se poate indica sursa de date a cmpului, fie un cmp din tabele, fie o combinaie (expresie ) de cmpuri , variabile, funcii ale limbajului, fie o variabil a raportului. De exemplu, putem alege aici cmpurile produse.denumire sau produse.cantitate sau expresia produse.cantitate*produse.pret dac dorim s apar valoarea produselor. Formatul de afiare

63

al cmpului este un ablon, un ir de caractere care precizeaz modul de afiare al datelor. Caracterele permise sunt tot cele de la forme (le-am prezentat n capitolul anterior). Formatul de afiare l putei introduce manual n cmpul Format sau se face clic pe constructorul de expresii i va aprea o fereastr de tipul :

Dup cum se observ pe figur , se poate alege tipul de date al cmpului (Character, Numeric sau Date). n funcie de tipul ales se vor activa anumite opiuni n fereastr, n seciunea Editing . Dup ce ai construit ablonul de afiare ( manual sau cu ajutorul constructorului) , revenind la fereastra iniial Avem la dispoziie trei variante : -Float (n traducere poziie mobil) poziia cmpului este variabil, n funcie de obiectele definite deasupra lui. -Fix relative to top of band (poziie fix relativ la marginea superioar a benzii)poziia este fix i se calculeaz relativ la marginea superioar a benzii . -Fix relative to bottom of band (poziie fix relativ la latura inferioar a benzii) poziia este fix i se calculeaz relativ la marginea inferioar a benzii . Uneori, coninutul unui cmp poate varia foarte mult de la o nregistrare la alta , de aceea nu este indicat o dimensiune fix ( uneori este gol iar alteori va fi prea mic). Se poate activa comutatorul Stretch with overflow (n traducere expandabil la umplere) din fereastra Report Expression astfel nct cmpul s se extind ct este necesar pentru a cuprinde tot coninutul sursei de date respective. Asupra acestor valori se pot aplica diferite funcii pentru a obine astfel informaii sintetice. De exemplu, dac am dori nsumarea tuturor valorilor unui cmp sau calculul mediei valorilor respective. Funcia care se aplic asupra unui cmp al unui raport este Report Expresion putem stabili poziia cmpului relativ la banda n care este definit,folosind pentru aceasta seciunea Field position.

64

precizat n fereastra de dialog Calculate Field (n traducere cmp calculat), fereastr ce apare la acionarea butonului Calculations a ferestrei Report Expresion :

Avei la dispoziie mai multe funcii:


Nothing (nimic) cmpul rmne aa cum este ( nu se aplic nici o funcie). Count (numrare) n cmp se afieaz numrul de valori ale sursei de date a Sum (sum) se nsumeaz valorile din sursa de date i n cmp este afiat Average (medie) corespunde mediei valorilor sursei de date. Lowest (cea mai mic valoare)-se va afia n cmp cea mai mic valoare a Highest (cea mai mare valoare)-se va afia n cmp cea mai mare valoare a Standard deviation (deviaia standard)-se va calcula deviaia standard. Variance (variaia)- valoarea din cmp va reprezenta variaia valorilor sursei

cmpului.

valoarea obinut n urma nsumrii.


sursei de date.

sursei de date.

de date. O alt posibilitate n lucrul cu cmpurile calculate prin funciile de mai sus este aducerea la zero a valorii cmpului cu diferite ocazii, precum nceperea unei pagini noi, nceperea unui nou grup (n cazul gruprii datelor), terminarea unui grup ( subsolul grupului). Momentul anulrii valorii din grup este stabilit cu ajutorul listei derulante Reset a ferestrei Calculate Field.

65

Afiarea condiionat a cmpului este una dintre facilitile deosebite. Putem s afim n raport un mesaj de atenionare care s avertizeze depirea unei anumite valori sau putem afia alternativ dou cmpuri, n aceeai poziie a raportului, totul n funcie de o anumit condiie. Condiiile n care este afiat un cmp sunt precizate n fereastra de dialog Print When (n traducere afieaz cnd) :

Putei s stabilii dac afiai valorile care se repet cu proprietatea Print repeated values , adic dac avei mai multe valori consecutive identice ale sursei de date s se afieze doar prima dintre ele. O alt situaie care poate aprea i se poate rezolva de aici este aceea a apariiilor liniilor goale. Dac se dorete se poate bifa proprietatea remove line if blank ( n traducere anuleaz linia dac este goal) astfel nct liniile care nu au nimic s numai fie afiate. n sfrit, condiionarea afirii unui cmp de o expresie, de un filtru introdus de programator, se face prin intermediul cmpului de editare Print only when is true ( n traducere afiare numai dac expresia este adevrat) . Vei putea s introducei aici o expresie care s fie evaluat nainte de afiarea cmpului n raport. dac ea este adevrat se va afia cmpul, astfel nu . Observaie : Se observ existena i a altor opiuni de condiionare a afirii sau ascunderii unui cmp din raport :
-

apariia primei benzi complete a unei pagini sau coloane proprietatea In first whole band of page/column . la schimbarea grupului specificat (la activarea comutatorului When this group changes). cnd detaliile se ntind peste o pagin sau o coloan nou ( la activarea comutatorului When detail overflows to new page /column ).

66

c. Elemente semigrafice Din aceast categorie, programatorul are la dispoziie linii, chenare drepte sau cu coluri rotunjite pe care poate s le depun n raport pentru a da un aspect plcut i lizibil raportului, pentru a pune n eviden anumite zone mai importante, la delimitarea diferitelor zone ale raportului. Pentru aceasta avei pe bara utilitar Report Controls mai multe butoane. Pentru a introduce linii n raport vei aciona pe butonul pentru cele cu coluri rotunjite avem butonul urmat de trasarea nceputului i , iar . Dup ce ai trasat obiectele , se pot sfritului de linie. Pentru desenarea chenarelor avem un alt buton de acionat specifica caracteristicile lor, realiznd dublu clic pe obiectul semigrafic respectiv.

Va aprea o fereastr de tipul :

Butonul Print When v permite s precizai condiiile n care se va afia obiectul semigrafic, Object position poziia obiectului respectiv (vezi opiunile de la cmpuri). n schimb, proprietatea Stretch downwards o vei folosi pentru a specifica proprietile chenarelor de a-i adapta dimensiunea vertical n cazul n care obiectul ncadreaz alte obiecte cum ar fi cmpuri de dimensiune variabil. Avei, n acest caz, trei alternative :
-

No stretch (fr ajustare) obiectul i pstreaz dimensiunile indiferent de

coninutul su.

67

Stretch relative to tallest object in group (ajustare n funcie de cel mai nalt Stretch relative to height of band ( ajustare n funcie de nlimea benzii)-

obiect)
-

dimensiunea chenarului va fi dat n funcie de nlimea chenarului n sfrit, n cazul chenarelor cu coluri rotunjite, fereastra de dialog conine o seciune referitoare la curbura colurilor :

Observaie :

Stilul liniei cu care se traseaz obiectul semigrafic se stabilete prin

submeniul Pen (peni ) al meniului Format. Textura de umplere ( la chenare) este dat de submeniul Fill (umplere) al meniului Format, iar submeniul Mode determin modul de afiare al obiectului ( opac sau transparent).
d.

Imagini.

Un alt obiect ce se poate defini n cadrul benzilor unui raport sunt imaginile (create anterior). De exemplu, presupunnd c avei o imagine cu sigla firmei o putei insera n raport n poziia dorit. Pentru a depune o imagine pe o band din raport se acioneaz butonul . Dup acionarea butonului se traseaz zona din raport n care va fi plasat imaginea respectiv. Se va deschide o fereastr de dialog unde vei specifica fiierul imagine ( File), condiiile de afiare (Print When) i modul de afiare (If picture and frame are different sizes) .

68

69

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