Visual Foxpro 0 abc-doar


parte dintre aceste tipuri de file,sunt mult mai complexe si necesita un



Yüklə 1,41 Mb.
səhifə16/17
tarix17.03.2018
ölçüsü1,41 Mb.
#45490
1   ...   9   10   11   12   13   14   15   16   17
parte dintre aceste tipuri de file,sunt mult mai complexe si necesita un

volum mare de informatie pentru generarea lor.Aceste file complexe sunt:

Table(.DBF),Database(.DBC),Form(.SCX),Label(.LBX),Menu(.MNX),Project(.PJX)

Report(.FRX) si Visual Class Library(.VCX).Pentru aceste tipuri de file,

informatiile pentru construtie se preiau din tabele de tip .dbf,in care

sunt arhivate toate datele necesare.Aceste tabele utilizate de catre

constructor sunt tabele obisnuite si pot fi consultate cu BROWSE.Fiecare

astfel de tabel,contine informatiile necesare pentru a genera un anumit

control.Pentru a crea o interfata grafica,se vor utiliza mai multe astfel

de tabele (cate unul pentru fiecare control inclus in interfata).Tabelele

sursa sunt incluse in directorul FILESPEC si sunt ordonate in doua pro-

iecte,denumite 50SPEC.PJX(surse pentru Visual Foxpro 5.0) si 26SEC.PJX

(surse pentru FoxPro 2.6).Mai mult,aceste doua proiecte contin si unele

rapoarte,cu datele gata extrase pentru fiecare tip de fila.Astfel,daca

doriti sa analizati sablonul unui anumit tip de fila,nu trebuie decat sa

imprimati raportul respectiv.

EXEMPLU: deschideti cu OPEN fila 50spec.pjx din Filespec

Pentru a vedea tabelul sursa utilizat pentru crearea unei ferestre,

deschideti din Data directorul Free Tables,apoi 50scx si alegeti tabelul

"form",apoi apasati butonul BROWSE.

Pentru a analiza raportul tabelului sursa,deschideti din Documents

directorul Reports,apoi 50scx1 si apasati butonul Preview.

Tabelele contin cate un camp Memo pentru fiecare tip de data generata.


-105-

Nu este indicat sa modificati aceste tabele sursa,deoarece riscati sa

deranjati functionalitatea intregului program.Fiecare camp de date din

tabele,va fi utilizat pentru a genera o anumita caracteristica a obiectu-

lui final.

Pentru fiecare fila generata de utilizator,se va adauga si o fila

auxiliara,de tip Memo in care sunt inregistrate toate elementele particu-

lare ale obiectului respectiv.De exemplu o fila de tip DataBase va avea

asociata o fila de tip Database memo (.DTC),iar o fila de tip Form(.SCX)

va avea asociata si o fila de tip Form Memo (.SCT).

Este util sa intelegeti structura acestor file,atat pentru a putea

intelege modul in care opereaza mediul FoxPro,cat si pentru a putea stu-

dia structura controalelor utilizate.In etapa de conceptie si design,

puteti utiliza filele si tabelele de structura pentru a analiza volumul

de memorie preconizat si/sau eventuala compatibilitate cu alte aplicatii

sau structuri asemanatoare (eventual cu conversiile de rigoare).

Mai mult decat atat,puteti prelua modelul de lucru si pentru aplica-

tiile generate de d-voastra.In situatiile in care trebuie sa generati in

timpul executiei obiecte complete,puteti utiliza tabele sursa,in care

sa arhivati toate informatiile necesare pentru fiecare tip de obiect.Un

exemplu tipic il reprezinta jocurile grafice,in care obiectul generat la

un anumit nivel,depinde de evolutia de pana in momentul respectiv.Acest

mecanism,se poate utiliza si pentru aplicatiile economice,atunci cand se

creaza obiecte,sau se extrag rapoarte si selectii,din baze de date ce se

actualizeaza permanent.

Fisierele din mediul Visual Foxpro sunt fisiere obisnuite de tip Win-

dows.O parte dintre aceste fisiere pot fi generate si automat de catre

wizard-ul respectiv,dar restul trebuie sa fie create de catre utilizator.

Este foarte important cum gestionati fisierele din mediul Visual FoxPro.

Prea putine fisiere,vor genera o aglomerare incomprehensibila de file

foarte asemanatoare,in care munca de intretinere si depanare a programelor

si aplicatiilor va fi extrem de dificila.Prea multe fisiere,din dorinta

de a compartimenta totul in module,va determina o fragmentare excesiva a

spatiului de memorie si va crea nenumarate probleme generate de calea de

acces la o anumita fila (daca fila este inclusa intr-un director si nu

specificati numele directorului in calea de acces,Visual FoxPro va returna

un mesaj de eroare: Fila nu exista ! ).

Solutia este ca intotdeauna cea de mijloc.Este bine sa compartimentati

toate filele unui program sau ale unei aplicatii,in acelasi director.Daca

programul interactioneaza frecvent cu un alt program,pentru a solicita

date partajate,este util uneori sa acumulati ambele aplicatii intr-un

director comun.

Fisierele,la fel ca si filele,pot fi generate si automat.Exista si o

functie care va garanteaza ca vor avea un identificator (nume) unic.Are

rost sa utilizati astfel de fisiere generate automat,doar pentru a ordona

si arhiva file de stocare a informatiilor generate tot automat,mai ales

atunci cand continutul acestor file va fi consultat rar sau foarte rar.

Pentru fisierele cu care se lucreaza permanent,este bine sa va osteniti sa

alegeti un nume cat mai sugestiv si sa selectati cu foarte mare atentie

fiecare informatie arhivata in aceste fisiere (deoarece vor fi procesate

si incarcate in memorie de fiecare data cand utilizati fisierul).Nu exista

nici o regula fixa,dar e bine sa respectati si conventiile pentru nume.


-106- ASISTENTA HELP
Calitatea unui program,sau a unei aplicatii,depinde in mare masura si

de calitatea programelor de asistenta.Programele de tip "Help" nu sunt

destinate "incepatorilor",ci au rolul de a elucida sau simplifica orice

problema intalnita de utilizator.Memoria umana,nu este la fel ca si cea

a masinii.Din acest motiv,este important sa poata beneficia de un instru-

ment cu care sa verifice sau sa elucideze o anumita situatie.Programul

Help,trebuie sa fie astfel conceput incat sa contina absolut toate infor-

matiile necesare despre program,intr-un format cat mai accesibil.Pentru

programele mici,de cele mai multe ori este suficienta o fila de explicatii

de gen "Read me".Pentru programele mari si pentru mediile de operare mai

complexe,este necesar de obicei un program mult mai complex,sub forma de

manual,ce poate fi consultat rapid pentru orice problema specifica.

Programul Visual Foxpro,contine un astfel de manual,bine documentat si

foarte usor de utilizat.In orice moment,puteti apasa tasta F1,sau puteti

alege din meniul Help,optiunea "Microsoft Visual Foxpro Topics".

Programatic,se poate apela acest program cu ajutorul comenzii HELP.

Daca doriti sa deschideti manualul pentru o anumita informatie,se poate

utiliza comanda SET TOPIC TO.

EXEMPLU: daca doriti sa includeti un buton Help,intr-o aplicatie:

Deschideti un nou proiect si o noua fereastra,In fereastra Form Desig-

ner adaugati un obiect de tip Edit Box si un buton de comenzi.Setati

pentru buton proprietatea Caption = Help,apoi alegeti dintre metode

Click Event si editati urmatoarea procedura:

text1 = ThisForm.Edit1.Text

SET TOPIC TO text1

HELP

Inchideti fereastra si verificati cu Run Form.In timpul executiei,pentru

a deschide programul Help,nu trebuie decat sa editati cuvantul cautat in

caseta de editare si apoi sa apasati butonul Help.

Pentru orice program sau aplicatie,in care utilizatorul trebuie sa

introduca in timpul executiei comenzi,sau sa formuleze expresii de tip

Visual FoxPro,puteti sa adaugati si un astfel de buton,care sa asigure un

acces rapid la utilitarul Help si in timpul executiei programului.

Pentru programele si aplicatiile realizate de d-voastra,probabil ca

doriti sa realizati un astfel de program de asistenta tehnica,cat mai usor

de realizat si aplicat.Exista doua solutii simple.Fie construiti un pro-

iect special conceput pentru acest scop,fie utilizati un program speciali-

zat (cum este Hcw din directorul Helpcomp).

Tipul de solutie se va putea alege in functie de volumul de informatii

pe care doriti sa-l oferiti.Pentru un volum limitat de informatii,cu un

numar relativ mic de critarii de selectare (cateva sute),cea mai simpla

modalitate este sa arhivati datele intr-un tabel de tip .dbf si apoi sa

realizati o interfata simpla pentru accesarea acestor date.

EXEMPLU: creati un director nou (Ajutor1),apoi construiti tabelul astfel:

din File,alegeti New,apoi Table si New File.Salvati tabelul(Ajt1.dbf)

in directorul nou creat,apoi utilizati fereastra Table Designer pentru a

proiecta tabelul.Cel mai simplu este sa utilizati doar doua campuri de

date: CRITERIU -de tip caracter cu o lungime de 20-30 de caractere si

EXPLICATIE de tip Memo.Confirmati cu OK si apoi introduceti cateva date.

Pentru fiecare criteriu,introduceti in campul Memo explicatia necesara.


-107-

Pentru a realiza interfata grafica,deschideti un nou proiect ( tot in

directorul nou creat),apoi alegeti Forms si New.In fereastra Form designer

adaugati un control de tip ListBox si unul de tip TextBox.Apoi utilizati

instrumentul builder,pentru a conecta obiectul List1 la campul de date

CRITERIU din tabelul Ajt1.dbf.

Pentru a sincroniza cele doua controale,selectati obiectul List1,apoi

deschideti fereastra Properties,alegeti din Methods evenimentul Click

Event si editati urmatoarea procedura:

LOCATE FOR Ajt1.Criteriu = ThisForm.List1.Value

ThisForm.Text1.Value = Ajt1.Explicatie

Inchideti fereastra designer si apoi construiti proiectul cu Build(alegeti

optiunea "Build Executable") si verificati aplicatia.

In mod normal,se va deschiode automat fereastra programata,in care nu

trebuie dacat sa selectati un camp din caseta ListBox,pentru a afisa in

obiectul TextBox explicatia corespunzatoare.

Acest gen de solutie,ofera un minimum de informatii,cu consum minim de

memorie,este extrem de usor de realizat si intretinut.Daca doriti sa adau-

gati informatii suplimentare,nu trebuie decat sa adaugati inregistrari noi

in tabelul sursa.Cu cat programul Help pe care doriti sa-l dezvoltati este

mai complex,cu atat puteti dezvolta aplicatia.Tabelul sursa poate contine

un numar mai mare de campuri de date.Puteti adauga selectii si rapoarte,

filtre si expresii de evaluare,butoane de comanada care sa efectueze un

set intreg de operatii,butoane de navigare si control,programe auxiliare

pentru actualizarea datelor,conexiune pentru prezentarea datelor in retea

etc.

Cea de a doua solutie foarte simpla,este sa utilizati un prgram specia-

lizat pentru generarea aplicatiilor de tip Help.Un astfel de program este

inclus in mediul Visual FoxPro,in directorul Helpcomp,cu numele de HCW.

Programul contine un manual complet de utilizare si un tutorial,astfel

incat este foarte usor de exploatat.Acest program genereaza manuale Help

standardizate,asemanatoare cu cel utilizat si de Visual FoxPro.Datele si

informatiile nu sunt arhivate intr-un tabel de tip .dbf,ci sunt arhivate

in file izolate,de tip .rtf (Rich Text Format).Ca rezultat,datele vor

putea fi prezentate mult mai elegant,cu titluri si sublinieri,cu fonturi

si culori diferite,etc...,dar vor ocupa un volum mult mai mare de memorie

si nu vor putea fi exploatate in alte aplicatii.In plus,filele de tip

.rtf nu pot fi editate decat cu programe specializate.Acest program este

insa extrem de usor de aplicat si intretinut,si asigura o forma eleganta

de prezentare a datelor (are aspect comercial).

EXEMPLU : lansati programul cu Hcw.exe (din Windows)

apoi,din meniul File (al ferestrei Microsoft Help Workshop),alegeti

New si selectati optiunea Help Project.Alegeti un nume oarecare si direc-

torul in care doriti sa instalati proiectul.

Se va deschide o interfata grafica cu butoane,in care puteti adauga

filele sursa,eventualele imagini de tip .BMP sau ferestrele utilizate

pentru prezentare.Apasati butonul Files,apoi Add si adaugati filele sursa

dorite (De exemplu din Samples/Tastrade/Help alegeti fila Ttrade.rtf ).

Apoi confirmati cu OK.Pentru a finaliza proiectul,apasati butonul Save

and Compile.Se va afisa rezultatul compilarii.Pentru a verifica programul

deschideti din Windows directorul si executati fila (are un icon sub sub

forma de carte cu un semn de intrebare).


-108- DEPANARE SI INTRETINERE
Realizarea unui program informatic cuprinde o serie intrega de etape

succesive,pornind de la conceptia de ansamblu si organizarea principale-

lor module si structuri si terminand cu etapa de editare a fiecarei file

din program.Pentru programele mari,se utilizeaza diagrame de lucru si

grafice de etapa.Modulele pot fi realizate de programatori diferiti(uneori

sute sau chiar mii) si trebuie sa poata fi integrate dupa un sistem de

organizare integrat,standardizat.In fiecare dintre aceste etape,se pot

strecura erori mai mici sau mai mari,unele dintre ele extrem de greu de

identificat si corectat.

Cele mai frecvente erori de programare sunt:

1.erori depistate in etapa de compilare

2.erori depistate doar in timpul executiei

3.erori logice - intervin doar in anumite situatii

4.erori de conceptie si structurare

5.exceptii si incompatibilitati hardware/software

6.erori de portabilitate pe alte platforme

7.erori accidentale

1.Erorile depistate in etapa de compilare pot fi erori de ortografie sau

erori de sintaxa.Nu toate erorile de ortografie pot fi depistate astfel,

ci doar cele care afecteaza cuvintele cheie.In functie de versiunea de

program,compilatorul analizeaza fiecare linie de cod,prin comparatie cu

un set de sabloane,in care sunt fixate o serie de conventii de limbaj (

cum se formeaza identificatorii,sintaxa corecta a fiecarei functii,modul

de declarare si setare a variabilelor de memorie etc.).Nu exista o regula

fixa pentru conceptia programului compilator,motiv pentru care pot exista

diferente foarte mari de la un compilator la altul,dar in esenta,toate

compilatoarele executa acelasi set de operatii de control.Erorile posibile

pot fi impartite in mai multe categorii : -erori vitale,erori majore si

erori neglijabile.Erorile vitale nu pot fi ignorate si impiedeca executia

programului.Restul erorilor pot fi ignorate in anumite situatii,dar numai

cu acordul programatorului sau al utilizatorului avizat.Pentru fiecare

astfel de eroare,compilatorul returneaza un mesaj de eroare.Aceste mesaje

de eroare sunt structurate in programul Help,atat alfabetic cat si in

functie de codul numeric sau parametrul returnat.In general sunt usor de

depistat si corectat si nu necesita alte instrumente specializate.

2.Erorile depistate doar in momentul executiei,sunt generate de liniile

de cod in care fiecare cuvant este formulat si editat corect,dar interpre-

tarea de ansamblu genereaza un rezultat fals sau incorect.Acest gen de

erori este mai dificil de corectat,mai ales atunci cand eroarea nu se

exprima decat in anumite circumstante.Pentru depistarea si corectarea

acestor erori,sunt necesare programe specializate.Visual FoxPro pune la

dispozitie un set intreg de astfel de instrumente,grupate in fereastra

Debugger si in wizard-ul Documenting Wizard.In esenta,pentru acest gen

de depanare,se fragmenteaza executia in module din ce in ce mai mici,pana

cand se identifica eroarea,apoi se executa modulul respectiv linie cu

linie,pana cand se identifica si cauza propriu zisa.De cele mai multe ori,

este o eroare determinata de alegerea unui format gresit pentru date,sau

de formularea gresita a unor expresii (Exemplu: se utilizeaza prea putine

zecimale si la calcule cu valori foarte mari,aproximarile nu se mai inca-

dreaza in marja de eroare).


-109-

O astfel de eroare extrem de frecventa,este determinata prin returnarea

unor valori situate in afara domeniului de definite.Exemplu: se utilizeaza

un format numeric restrans si o expresie matematica perfect corecta,dar

care,la valori extreme returneaza rezultate situate in afara domeniului de

reprezentare.

Pentru modulele mici de program,fereastra Debugger,prin ferestrele sale

specializate: Trace,Watch,Locals,Call stack si Output,ofera suficiente

informatii pentru a putea identifica si corecta o astfel de eroare.Pentru

acest scop,trebuie ca programul sa fie executat pentru toate circumstan-

tele posibile,iar calculele si operatiile sa se execute si pentru valorile

extreme.De multe ori,se apeleaza la persoane specializate in "testarea

programelor".Un exemplu tipic il reprezinta persoanele angajate pentru

testarea jocurilor grafice si pentru identificarea eventualelor limite

sau situatii extreme,denumite generic "bugg-uri".

Nu toate erorile posibile pot fi depistate astfel.Unele programe vor

necesita verificarea cu programe specializate de verificare si control.

De exemplu,pentru aplicatiile economice,in care fiecare calcul inseamna

bani,se vor proiecta si utiliza programe care verifica fiecare expresie

de calcul,pentru toate valorile posibile din doemniul de reprezentare si

apoi confrunta rezultatele cu unul sau mai multe programe similare.

Alte programe specializate vor verifica modul in care aplicatia gestio-

neaza spatiul de memorie,viteza de executie per operatie,volumul de memo-

rie de operare consumat per operatie,etc.Ca rezultat,intre doua programe

perfect functionale si corecte,pot exista diferente destul de mari in

ceea ce priveste siguranta si operatibilitatea.Fiecare firma specializata

genereaza un set de astfel de programe de verificare si control.Daca

doriti,puteti sa proiectati si realizati astfel de programe,cu care sa

verificati aplicatiile pe care le realizati.Un astfel de program,poate

pune in evidenta "mici defecte" ce nu pot fi sesizate altfel.

3.Erorile logice nu se refera la o eroare de logica in conceptia pro-

gramului,ci sunt erori generate de functiile care opereaza cu date de tip

logic.Valorile logice posibile sunt TRUE,FALSE si NULL.O eroare foarte

frecventa este atunci cand se precizeaza conditiile logice pentru o anu-

mita secventa de operatii.In majoritatea situatiilor se vor rezolva doar

cele doua situatii logice TRUE sau FALSE si se va omite rezolvarea condi-

tiei posibile NULL.Ca rezultat,atunci cand functia logica respectiva va

returna o valoare de tip NULL,programul nu va gasi nici o solutie de con-

tinuitate si va returna un mesaj de eroare.Un exemplu tipic il reprezinta

functiile logice pentru datele preluate din tabelele de tip .dbf.Atat timp

cat cursorul se gaseste in interiorul tabelului,functiile vor returna o

valoare de tip TRUE sau FASE.Daca dintr-un motiv sau altul,se executa o

comanda NEXT sau SKIP,dupa ultima inregistrare din tabel,cursorul se va

deplasa in afara tabelului si va returna o valoare de tip NULL.Din acest

motiv,atunci cand se utilizeaza functii logice trebuie solutionata si

conditia NULL,chiar daca in aparenta aceasta situatie nu va intervenii

niciodata.Lucrurile sunt mult mai complicate atunci cand se utilizeaza

suite de functii logice,in care conditia returnata de o astfel de functie

declanseaza un alt set de conditii logice.Acest gen de situatie este

extrem de greu de depanat si necesita constructia unor grile de verificare

binara sau ternara a tuturor situatiilor posibile (se dezvolta arbori bi-

nari sau ternari- sau se verifica cu programe specializate ).


-110-

4.Erorile de conceptie si structurare - nu pot fi verificate si sau

depanate de nici un program automat.Este necesara o analiza atenta,atat

a fiecarui modul,cat si a modului in care sunt interconectate doua sau

mai mlute astfel de module.In etapa de proiectare,se realizeaza la inceput

o diagrama a principalelor module si a conexiunilor necesare,apoi se trece

la realizarea fiecarui modul.In etapa de depanare,se procedeaza exact

invers.Se verifica la inceput fiecare modul,apoi se verifica fiecare co-

nexiune,si doar la final se verifica functionalitatea de ansamblu.

Erorile de conceptie nu pot fi corectate.Eventual,se poate inlocui un

modul cu un alt modul similar,sau se pot adauga module de conversie si/sau

corectie,care sa anuleze defectele modulului conceput gresit.

Una dintre cele mai frecvente erori de conceptie se datoreaza lipsei

de analiza in perspectiva a unei anumite aplicatii.Exemplu: nu se apre-

ciaza corect spatiul de memorie necesar pentru dezvoltarea unei aplicatii

timp de mai multi ani,Ca rezultat,dupa un timp oarecare,programul va fi

autolimitat din lipsa de spatiu de memorie (tampoane prea mici).

De cele mai multe ori,tentativa de a corecta o astfel de eroare este

mult mai dificila decat realizarea unui program nou.O situatie mai spe-

ciala,este atunci cand programul este perfect functional,dar necesita

unele restructurari,fie pentru a fi compatibil cu un alt sistem de ope-

rare,fie pentru a putea schima date cu o alta platforma similara.In aceste

situatii,se recomanda adaugarea unui modul specializat (sau o fila .DLL).

5.Exceptiile si incompatibilitatile hardware/software nu sunt determi-

nate de program ci sunt generate de aparatura de calcul pe care este exe-

cutat programul.In etapa actuala,standardele de constructie sunt unificate

global,iar majoritatea programelor si aplicatiilor sunt portabile pe orice

tip de calculator.Totusi,exista o varietate extrem de mare de posibilitati

de extindere sau restructurare a memoriei de operare.Fiecare tip de pro-

cesor are unul sau mai multe tampoane interne de memorie,si un set oare-

care de conexiuni cu modulele de tip DIMM,SIM,CACHE etc.Uneori,programa-

torii profesionisti utilizeaza astfel de extensii de memorie pentru a

creste la maximum functionalitatea,dar uita sa specifice configuratia

hardware in care a fost realizat un anumit program.Este recomandabil ca

atunci cand realizati programe de uz comercial,sa utilizati o configuratie

standard medie,fara sa apelati la extensii sau "upgrade-uri".Daca volumul

de operatii executate pe unitatea de timp necesita o anumita configuratie

hardware,acest fapt trebuie specificat in manualul de asistenta tehnica.

Regula "de aur" este urmatoarea: -un program este cu atat mai bun cu cat

este mai simplu,ocupa mai putin spatiu,este mai rapid si are pretentii cat

mai mici in ceea ce priveste configuratia "hardware".

Solutiile pentru acest gen de situatii sunt de obiecei dificile sau

extrem de dificile.In unele situatii,absenta unui anumit tip de modul de

memorie poate fi suplinita artificial.Pentru acest scop se creaza in

memoria inscriptibila un tampon de memorie,ce va putea fi scris si citit

la fel ca memoria de operare.Acest gen de solutie nu se recomanda insa,

deoarece rescrierea repetata a tamponului de memorie va duce in timp la

uzura fizica sau chiar la coruperea datelor.O alta solutie este apelul la

un alt calculator interconectat,sau conectat in retea,care va prelua la

nevoie (temporar) functiile respective.

Exista programe specializate,care "dez-asambleaza" fiecare operatie si

apoi afiseaza "harta interna de procesor" (in binar sau assembler).


-111-

6.Erorile de portabilitate pot fi intotdeauna corectate,dar necesita

cunostiinte avansate de programare si acces la toate structurile progra-

mului respectiv.Acest gen de operatii nu se executa decat de catre firma

producatoare,prin conventie cu restul partenerilor si beneficiarilor.

7.Erorile accidentale,intervin datorita unor situatii si/sau conditii

independente de program,sau de masina pe care se executa.Exemple: o pana

de curent,suprascrierea accidentala a unui segment de memorie sau a unui

modul de progam,infectarea cu un "virus informatic" din retea,erori induse

de un utilizator neavizat,defecte mecanice ale unitatii de lucru,etc.

Pentru toate aceste situatii,este recomandabil sa existe in permanenta o

copie de siguranta a programului si a principalelor arhive de date,astfel

incat programul sa poata fi refacut complet,chiar si in cazul unei supra-

scrieri accidentale.Programele "anti-virus" nu sunt o solutie radicala.Un

astfel de program nu poate preveni "atacul" cu un virus necunoscut,dar

poate identifica si stopa "atacul" datelor prin virusii identificati ante-

rior.Unele defecte de memorie (sectoare defecte) pot sa apara si prin

uzura fizica (suprascrieri repetate ale memoriei inscriptibile).
In concluzie,procesul de verificare si control,sau cel de depanare a

programelor si aplicatiilor este destul de complex si nu se refera doar

la identificarea eventualelor erori.Fiecare analist programator are o

serie de obiceiuri si tabieturi,generate de experienta anterioara.Sunt

extrem de utile programele de analiza automata,dar aceste programe nu pot

suplini munca analistului.In general,fiecare tip de aplicatie si fiecare

limbaj de programare necesita o pregatire speciala si un set specific de

programe de analiza.Nu este recomandabil sa acumulati mai multe notiuni,

decat sunt strict necesare pentru aplicatiile cu care lucrati in mod

curent.In particular,mediul Visual Foxpro,se distinge prin capacitatea

de a lucra cu tabele si cu baze de date.Munca de intretinere a programelor

generate cu Visual FoxPro se rezuma de obicei la verificarea periodica si

intretinerea tabeleor si a bazelor de date.Prin operatii repetate asupra

lor,tabelele pot contine inregistrari nule sau incomplete,inregistrari

"orfane" generate de modificarea tebelei de integritate,sau poat fi

blocate de un utilizator care "a uitat" sa deblocheze tabelul dupa ce a

fost deschis EXCLUSIV.

Pentru verificarea si intretinerea tabelelor,este bine sa utilizati

programe de verificare automata.Aceste programe,nu sunt decat niste pro-

grame simple si efectueaza asupra tabelului toate operatiile posibile

de sortare si ordonare sau filtrare.Daca un tabel contine mai multe

"chei de indexare",programul de control va contine si toate filele de

indexare necesare.Este bine sa pastrati intotdeauna si o copie de sigu-

ranta a filelor de indexare,pentru a putea reveni oricand la o solutie

anterioara de sortare a datelor (filele de indexare se corup frecvent).

Alte programe automate pot efectua actualizarea automata a tabelelor,sau

pot copia tabelele pentru a forma "copia de siguranta".

In general nu este bine sa restructurati permanet un tabel.Daca este

strict necesar sa adaugati coloane noi,este mai bine sa creati un tabel

nou si apoi sa copiati datele din primul tabel.Daca creati un tabel mai

mic,pastrati si tabelul original (datele eliminate nu mai pot fi recupe-

rate ulterior).Rescrierea repetata a unei file poate genera erori.Pastrati

copia de siguranta pe un alt calculator (sau pe un disc optic).


-112- INTERNET
Visual FoxPro,ofera o gama destul de larga de posibilitati pentru uti-

lizarea partajata a datelor,fie in retele locale,fie prin reteaua Inter-

net.Daca sunteti incepatori,este indicat sa apelati la persoane abilitate,

sau sa urmati un curs de specializare pentru munca in retea.

Orice eroare in retea,poate afecta munca unui numar variabil de uti-

lizatori,sau se poate multiplica exponential.Din acest motiv,toate bazele

de date accesibile prin retea,sunt sub supravegherea continua a unui admi-

nistrator de retea.Pentru orice probleme specifice,contactati administra-

torul de retea (cel care va asigura conexiunea la Internet).

Cea mai simpla operatiune,este sa cautati asistenta tehnica,sau sa

verificati articolele de specialitate,variantele de "upgrade",programele

si componentele din oferte,etc.Pentru acest scop,puteti utiliza din meniul

Help,optiunea "Microsoft on the Web",cu una dintre variantele sale: Free

Stuff,Product News,Frequently asked Questions,Online Support,For Develo-

pers Only Home Page,Send Feedback,Best of the Web,Search the Web,Web Tuto-

rial sau Microsoft Home Page.

O alta operatiune extrem de simpla,este sa utilizati wizard-ul denumit

"WWW Search Page Wizard" pentru a genera o fila de tip HTML care poate

prelua date dintr-un tabel de tip .dbf.Cu acest gen de fila puteti veri-

fica periodic o anumita data,sau chiar un grup de date.

O operatiune putin mai complexa,este sa utilizati o baza de date,sau

chiar un grup de baze de date,in sistem partajat.Pentru acest scop,bazele

de date trebuie sa fie instalate in server,trebuie sa posedati o conexiune

valabila la retea si un program de acces.Operatiile asupra tabelelor si

bazelor de date din retea sunt similare cu cele asupra bazelor de date

locale,cu cateva diferente.Operatiile care modifica sau altereaza perma-

nent tabelul sau baza de date (cum sunt :INSERT,INSERT BLANK,MODIFY STRUC-

TURE,PACK,REINDEX si ZAP) nu se pot executa decat dupa ce a fost setata

proprietatea SET EXCLUSIVE ON.Un astfel de tabel,care a fsot deschis

exclusiv,va fi blocat pentru toti ceilalti utilizatori.In plus,orice

operatie de acest gen,poate deranja semnificativ aplicatiile altor utili-

zatori din retea,care au conexiuni cu tabelul respectiv.Pentru acest gen

de operatii,se recomanda utilizarea unor programe automate,care deschid,

efectueaza toate actualizarile si apoi inchid baza de date intr-o frac-

tiune de secunda si apoi trimit un mesaj de avertizare la toti utilizatori

conectati,prin care semnalizeaza operatiile efectuate.Acest gen de ope-

ratii nu se pot invata in timp real,in retea,decat daca va conectati la

un site specializat.Pentru a studia si verifica aplicatii de acest gen,

se recomanda sa utilizati o retea locala,cu 4-10 terminale.

Versiunea Visual Foxpro 5 nu este foarte generoasa cu obiectele desti-

nate pentru munca in retea.Incepand cu versiunea Visual FoxPro 6,se adauga

un set complet de componente noi,pentru ca versiunile urmatoare sa adauge

si interoperabilitatea cu platforma Java si cu orice aplicatie de tip Web.

Exista obiecte specializate,care pot transforma orice tabel,sau orice fila

de tip VisualFox in fila de tip HTML,sau in aplicatie Web.Pentru orice

informatii suplimentare,consultati administratorul de retea.

Nu este necesar sa proiectati aplicatii speciale,doar pentru retea.Cu

putina munca,orice aplicatie locala poate fi conectata la retea.Daca este

absolut necesar sa creati aplicatii Web,atunci utilizati o versiune cat

mai recenta (Visual FoxPro 9) si obiectele specializate.


-113- CONCLUZII GENERALE
Visual FoxPro este un mediu de programare complex.Combina programarea

orientata spre obiecte cu structuri de arhivare si prezentare a datelor

sub forma de baze de date si tabele relationale.Pentru comunicarea dintre

diferitele componente si module,se pot utiliza atat mesajele de tip Win-

dows cat si evenimentele FoxPro,metodele si evenimentele fiecarui obiect,

sau proceduri si bucle de repetitie special concepute pentru acest scop.

Prin compartimentarea programelor in obiecte vizuale,se asigura atat

o viteza mai mare de procesare (se lucreaza cu volume de memorie mai mici

per unitatea de timp) cat si o flexibilitate mai mare in etapele de veri-

ficare si control sau in cele de intretinere a aplicatiilor.Fiecare obiect

vizual este echivalentul unui mic program independent,ce contine un set de

variabile de un anumit fel,functii si proceduri,evenimente sau structuri

temporale pentru organizarea si ierarhizarea operatiilor.In momentul exe-

cutiei,fiecare obiect ocupa un tampon separat de memorie.Ca rezultat,o

eventuala defectiune a unuia dintre obiecte,nu va afecta intregul program,

ci doar obiectul respectiv (depanarea va fi mult mai usoara).

Obiectele de tip vizual se pot combina intre ele,pentru a forma o

interfata grafica intre utilizator si program.Cu ajutorul acestei inter-

fete,utilizatorul va putea folosi un program oarecare,chiar daca nu are

notiuni elementare de programare.Pentru a reglementa schimbul de date

dintre utilizator si calculator se pot utiliza butoane de comanda,casete

de dialog,tabele relationale si foi pentru calcul tabelar,rapoarte si

selectii de date,analize grafice sau reprezentari binare,etc.

Interfata grafica nu este obligatorie.Se pot realiza programe/aplicatii

clasice,cu file de tip program,sau se pot introduce comenzile direct in

fereastra de comenzi.Combinatiile de procedee tehnice,asigura o varietate

de mijloace de exprimare ce poate satisface pretentiile oricarui progra-

mator.In plus,mediul Visual FoxPro accepta si coduri scrise in C++ sau

Assembler precum si obiecte de tip ActiveX,editate in oricare dintre pro-

gramele compatibile cu sistemul de operare.

Pentru construirea obiectelor,se utilizeaza sabloane specializate denu-

mite clase.Exista un grup de astfel de clase,ce formeaza nucleul standard,

la care se pot adauga orice alte clase specializate,definite de d-voastra

sau achizitionate din diferite surse.Obiectele sunt instante ale acestor

clase si respecta proprietatile de baza ale oricarui obiect:

1.au un anumit domeniu de vizibilitate (incapsulare)

2.mostenesc proprietatile si metodele ancestorilor (mostenire)

3.accepta netode si evenimente diferite pentru acelasi identificator,

atunci cand sunt mostenite de la ancestori diferiti.Pentru a apela o

astfel de metoda,trebuie specificat si numele clasei de baza (polimorfism)

Pentru construirea unui obiect din clasa de baza,in mod normal se apeleaza

functia constructor.In Visual FoxPro,exista o serie de mijloace tehnice

prin care aceasta operatie se realizeaza automat.Astfel obiectele se pot

crea utilizand un instrument de constructie denumit Builder sau Wizard,

sau utilizand butoane specializate.Pentru fiecare obiect standard exista

si un buton dedicat pentru constructia obiectului.Altfel spus,Visual Fox-

Pro utilizeaza o interfata grafica,pentru a putea proiecta si programa o

alta interfata grafica.Prin acest mecanism,obiectele vizuale se pot uti-

liza "in cascada".Ca rezultat,se poate crea un program destul de complex,

doar cu cateva click-uri de mouse.


-114-

Obiectele create cu instrumente automate nu sunt complete.Contin un

set intreg de proprietati,metode si evenimente,dar majoritatea lor nu

sunt definite si prin urmare nu pot fi apelate direct.Pentru ca un astfel

de obiect sa fie functional,este necesar sa editati codurile necesare

pentru fiecare metoda apelata si sa setati valorile actuale ale proprie-

tatilor ce urmeaza sa fie apelate in program.Obiectele contin si un numar

foarte mare de proprietati si metode ce nu vor fi apelate in program si

nu este necesar sa fie setate sau redefinite.Prezenta acestor proprietati

si metode nu afecteaza cu nimic memoria consumata in timpul executiei

(decat daca sunt redefinite).Aceste proprietati si metode,vor ramane in

rezerva,pentru a putea adauga in viitor noi functionalitati.

Pentru a edita metodele si evenimentele obiectelor,este necesara o buna

conoastere a functiilor Foxpro si a principilor de programare structurata

pe obiecte.Cea mai frecventa omisiune este generata de spatiul de vizibi-

litate a variabilelor apelate.Pentru structurile de memorie incapsulate in

acelasi obiect,este simplu si comod sa utilizati pointerul "This",dar

pentru structurile de memorie situate in afara obiectului activ,este

extrem de important sa specificati exact calea de acces.

Visual Foxpro contine un numar foarte mare de functii proprii si de

variabile implicite,la care se adauga functiile API Windows,mesajele

Windows,proprietatile,metodele si evenimentele obiectelor etc.Este impo-

sibil sa retineti acest amalgam de date.Sucesul este asigurat de usurinta

cu care va folositi de programul Help.Exista trei metode prin care puteti

cauta ceva:

1.utilizati meniul Index,pentru a cauta alfabetic un termen oarecare

2.utilizati meniul Find pentru a cautare avansata

3.utilizati meniul Contents,pentru a alege o anumita functie dintr-un

grup de date de acelasi fel,sau determinata de un anumit context de memo-

rie.Acest meniu este extrem de valoros,deoarece grupeaza datele si struc-

turile de acelasi fel.

Primele doua metode sunt utile pentru a cauta informatii despre un

termen cunoscut,iar cea de a treia metoda este utila pentru a cauta un

termen oarecare,atunci cand stiti doar domeniul general de interes,dar

nu stiti exact ce anume cautati.Primele doua metode nu necesita o prezen-

tare suplimentara.

Primul capitol din Contents se intituleaza Language Reference.In

acest director,fila Language Reference A-Z,contine toate elementele de

limbaj ce formeaza standardul Vusual FoxPro.Acestea sunt elementele pe

care compilatorul le utilizeaza pentru a verifica codurile editate de

d-voasta.Pentru orice eroare de sintaxa returnata de compilator,puteti

consulta aceasta fila,pentru a identifica standardul acceptabil.

Directorul Language Contents,contine un grup de file in care sunt

grupate structurile ce pot fi apelate pentru un anumit tip de situatie.

Aceste file sunt: Classes and Objects (contine toate functiile ce opereaza

asupra claselor sau obiectelor),Properties(contine toate proprietatile

standard ce pot fi utilizate pentru a defini un obiect),Events(contine

toate evenimentele standard ce pot caracteriza un obiect),Methods(contine

metodele standard ce pot caracteriza un obiect),System Variables(contine

lista completa a variabilelor de sistem),si alte file in care se prezinta

elementele nou aparute fata de versiunile anterioare ale limbajului

Visual FoxPro.Utilizati aceste file pentru a concepe o clasa sau subclasa.


-115-

Puteti utiliza aceste file,fie pentru informatii suplimentare despre

o anumita caracteristica a unei clase sau a unui obiect,fie pentru a

alege caracteristicile pe care doriti sa le redefiniti in sublcasa creata.

Urmatorul director (Language Categories) grupeaza principalele elemente

de limbaj,astfel:

1.Data Types -contine functiile grupate dupa tipul de data asupra

caruia actioneaza (caracter,data,timp,numeric)

2.Databases - contine toate functiile si comenzile ce opereaza asupra

tabelelor relationale si a bazelor de date

3.Visual FoxPro Enviroment - grupeaza functiile si comenzile utile

pentru a construi mediul de memorie in care actioneaza functiile si

procedurile.Unele dintre ele,necesita un anumit context de memorie.

4.Shared Acces to Data - grupeaza functiile si comenzile utile pentru

lucrul in retea cu tabele de date partajate,precum si setarile ce

pot caracteriza o anumita sesiune de lucru

5.Input and Output -grupeaza functiile si comenzile necesare pentru a

introduce sau prelua date (formatare,taste de comanda si comenzi

prin mouse,meniuri si bare de meniu,imprimare,rapoarte etc.)

6.Programming -grupeaza functiile si comenzile utile pentru a putea

realiza operatiile frecvente: manipularea ariilor de date,depanarea

si tratarea erorilor,administrarea evenimentelor,functii de nivel

inferior (la nivel de byte),gestionarea variabilelor,programarea

orientata spre obiect,executia programului sau progrmarea structu-

rata.

Urmatorul director (API Library Construction) -grupeaza descrierea

functiilor Windows API ce pot fi apelate pentru construirea unei interfete

grafice.Functiile sunt grupate atat alfabetic,cat si in functie de catego-

ria din care fac parte (tipul de operatie executata).In plus contine si

o lista a evenimentelor Visual Foxpro si o lista a codurilor Hex pentru

taste si combinatii de taste utilizate ca "short-cut".

Cel de al doilea capitol,denumit "Tehnical Reference" contine infor-

matii utile privind filele din program ce pot fi utilizate in aplicatiile

de uz comercial,lista codurilor de eroare,structura filelor acceptabile,

descrierea amanuntita a conventiilor de limbaj si informatii utile pentru

sistemul de operare(coduri,extensii,taste short-cut,descrierea sistemului)

Capitolul urmator,denumit "Interface Reference" contine o descriere

succinta a principalelor instrumente specializate (designers,windows,

wizards,builders,toolbars,menus,debugger).

In capitolul "Samples and Utilities" sunt prezentate cateva programe

"ajutatoare" si un set de exemple functionale ce pot reprezenta un schelet

de baza in etapa de invatare a limbajului Visual Foxpro.Exemplele contin

principalele mijloace de expresie,si modul in care au fost implementate.

Nu este suficient sa copiati fiecare solutie tehnica oferita.Trebuie sa

intelegeti fiecare element din exemple,apoi sa experimentati si sa creati

obiecte si interfete proprii.Incepeti cu un set limitat de proprietati si

metode,apoi puteti dezvolta modulele spre structuri din ce in ce mai

complexe.Pastrati fiecare modul functional.Va putea fi util pentru un alt

proiect,sau va putea reprezenta punctul de plecare,pentru o viitoare apli-

catie.Pastrati cate o copie de siguranta pentru fiecare program definiti-

vat si pentru fiecare baza de date completa.Nu este obligatoriu sa imitati

procedeele standard.Puteti sa va formati un stil personal de lucru.


-116-

Pentru orice program profesional,trebuie sa acordati o atentie speciala

si mediului de operare in care se executa programul (Enviroment).In linii

mari,se disting mediul de operare al sistemului FoxPro (Foxpro Enviroment)

si mediul de operare al datelor (Data Enviroment).Mediul de operare al

sistemului cuprinde absolut toate variabilele,constantele de memorie,

obiectele,functiile si procedurile,sau conexiunile cu filele externe de

tip DLL,ce au vizibilitate in spatiul de operare al sistemului Foxpro.

Acest mediu de memorie poate fi configurat,fie cu ajutorul functiilor

de tip SET sau SYS,fie utilizand meniurile din Tools/Options.Pe langa

variabilele si constantele de sistem,ce sunt prezente in memorie in orice

circumstante,se pot deschide diverse file de tip DLL (biblioteci cu legare

dinamica),din care se extrag temporar diverse variabile,functii si proce-

duri.Este foarte important sa eliberati din memorie toate aceste date

auxiliare,in momentul in care nu vor mai fi necesare pentru executie.In

caz contrar,memoria de operare se va umple progresiv,pana cand nu va mai

exista spatiu liber pentru desfasurarea operatiilor si programul se va

bloca.Cu cat utilizati mai multe obiecte,si deschideti mai multe astfel

de biblioteci,cu atat este strict necesar un control riguros al memoriei

de operare.Pentru programele simple se pot utiliza ferestrele Debugg si

functiile ce verifica memoria,dar pentru programele complexe,sunt necesare

tabele si diagrame de control,sau chiar programe specializate,care sa

desfasoare in liste,toate elementele prezente in spatiul de memorie.

Mediul de operare pentru date (Data Enviroment) este un obiect de tip

container in care se incapsuleaza cursorul si obiectele relationale ce se

utilizeaza intr-o fereastra,sau pentru crearea unei selectii sau a unui

raport.Cu alte cuvinte,Data Enviroment este un modul mai mic de memorie,

in care se grupeaza elementele ce trebuie sa partajeze acelasi spatiu de

vizibilitate.EXEMPLU: tabelele de tip .dbf,cu filele de indexare si cu

obiectele vizuale in care se vor prezenta datele extrase din tabele.

Cu cat manevrati mai abil spatiul de memorie,cu atat programul va rula

mai usor si mai rapid.Atunci cand programati o aplicatie,trebuie sa aveti

si o viziune de perspectiva a obiectelor utilizate.Exemplu: daca utilizati

o baza de date,trebuie sa preconizati si la ce dimensiuni maxime vor putea

ajunge tabelele ce o formeaza.In cazul in care tabelele vor avea dimen-

siuni foarte mari,este bine sa programati si solutia prin care aceste

tabele vor putea fi fragmentate si analizate apoi in etape succesive.

Pentru sistemul de operare Windows 95,nu se pot utiliza decat solutii

de procesare seriala a datelor,chiar si atunci cand se apeleaza la solutii

de tip multi-tasking.Pentru sistemele de operare moderne,se pot concepe si

solutii de procesare paralele.In acest caz,fie se fragmenteaza memoria de

operare in mai multe tampoane independente,fie se lucreaza in paralel cu

mai multe module de memorie de operare.In acest caz,viteza de lucru creste

proportional cu numarul de linii paralele pe care se lucreaza.

In general,este recomandabil sa utilizati pentru programele comerciale

doar memoria de operare standard.Programele care necesita diverse configu-

ratii hardware si extensii de memorie,sunt greu de exploatat si depanat.

Daca este necesar sa lucrati cu mai multe module de memorie,este recoman-

dabil sa utilizati intotdeauna perechi identice,astfel inca sa utilizati

un modul pentru operatiile de intrare a datelor si unul similar pentru

operatiile de iesire a datelor.Cu cat modulele de memorie de operare sunt

mai mari,cu atat creste capacitatea de lucru a sistemului.


-117-

Care este semnificatia practica a ideilor de mai sus ? Sa presupunem ca

doriti sa extrageti date dintr-un tabel sursa ce contine un numar foarte

mare de inregistrari.Daca utilizati un wizard,acesta va incarca in memorie

intregul tabel.Exista riscul sa depasiti spatiul de memorie si programul

se va bloca inainte de a proiecta primul obiect.Situatia inversa este

atunci cand programul functioneaza perfect,pana la un anumit moment dat,

cand,prin adaugarea permanenta de noi inregistrari,tabelul creste prea

mult si depaseste spatiul de memorie.

O alta situatie in care se depaseste memoria de operare este in cazul

buclelor de repetitie.Pentru un numar limitat de repetitii programul este

perfect functional,dar prin adaugarea de date noi,sau prin cresterea numa-

rului de repetitii se depaseste spatiul de memorie.

Spatiul de memorie poate fi insuficient si in situatiile in care se

utilizeaza solutii de activare "in cascada" a obiectelor,sau algoritmi de

generare automata a obiectelor sau ariilor de memorie.

Pentru a preintampina acest gen de situatii,este indicat sa verificati

cu atentie memoria de operare ramasa libera,dupa fiecare operatie prin

care se modifica structura tampoanelor de memorie.Mai mult decat atat,

sa verificati memoria ramasa libera si in cazul situatiilor extreme,in

care utilizatorul apeleaza la maximum capacitatea de lucru a programului

realizat de d-voastra.

Pentru programele complexe,este bine sa realizati diagrame de etapa,

in care sa reprezentati schematic toate elementele prezente in memorie,si

volumul de memorie ramasa libera.Pastrati toate aceste diagrame,pentru a

putea depana programul in viitor.La nevoie,atunci cand este necesar sa

depanati programul,fragmentati programul in aceleasi puncte si apoi

creati o diagrama de control si verificati structura memoriei.Acest pro-

cedeu este asemanator cu cel utilizat de electronisti pentru a verifica

un circuit (masoara curentii in anumite puncte cheie ale circuitului).

Simplul fapt ca un anumit tip de data este prezent in memorie,nu garan-

treaza ca va fi si accesibil pentru toate obiectele din program.Pentru ca

o data oarecare sa fie accesibila,este necesar sa fie inclusa in acelasi

spatiu de vizibilitate.Daca mediul de memorie este fragmentat in module si

compartimente,este necesar ca data apelata sa fie inclusa in acelasi com-


Yüklə 1,41 Mb.

Dostları ilə paylaş:
1   ...   9   10   11   12   13   14   15   16   17




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin