1
 
                   
PROIECT  DE  SPECIALITATE
                                               
TEMA
                          
 
            
 
                   
Programare in Visual Fox Pro
Coordonator
lucrare:                                 
Elev:
Prof. Botezan
Claudia                    
Olariu Gladin Claudiu      
             
STRUCTURA LUCRARII DE ATESTAT
Cap.I.     Denumirea si obiectul lucrarii
Cap.II.    Structura bazei de date
Cap.III.  Justificarea solutiei adoptate pentru realizarea lucrarii
Cap.IV.   Descrierea bazei teoretice a lucrarii 
        
Cap.V.     Descrierea structurii si a continutului
lucrarii realizate
Cap.VI.    Anexe
       Cap.I.   Denumirea si
obiectul lucrarii
    Titlul lucrarii este: “Gestiunea echipei F.C.
Valencia”.Operatiile executate in acest program asupra bazelor de date
sunt cele primare, adica functiile relative ale unui SGBD asupra
bazelor de date:
    Crearea bazei de date;
    Introducerea datelor in baza de date;
    Modificarea unor date deja existente in baza de
date;
    Stergerea datelor din baza de date;
    Consultarea bazelor de date.
  Cap.II. Structura bazei de date
Programul contine doua baze de date:
    table1.dbf
    table2.dbf
      Prima baza de date table1.dbf  este
alcatuita din:
    jucator: Character 35
    numar tricou: Numeric 2
    pozitie: Character 15
    locul nasterii: Character 25
    anul nasterii: Numeric 4
    inaltime: Numeric 3
    greutate: Numeric 3
    debut: Date 8
    suma transfer: Numeric 12
   A doua baza de date table2.dbf contine:
    jucator: Character 35
    conditia fizica: Numeric 2
    viteza: Numeric 2
    puterea sutului: Numeric 2
    exactitatea pasei: Numeric 2
    forta: Numeric 2
    rezistenta: Numeric 2
    deposedare: Numeric 2
    agresivitate: Numeric 2
    total: Numeric 3
Cap.III.  Justificarea solutiei adoptate pentru 
realizarea 
lucrarii                                                               
 
       Am utilizat limbajul de programare
Visual FoxPro pentru creearea lucrarii de atestat, deoarece acest
limbaj are un viitor in domeniul economic (de gestiune a bazelor de
date),dar si pentru modul placut de lucru.
        Visual FoxPro este un Sistem
de Gestiune a Bazelor de Date (SGBD), cunoscand in prezent o larga
raspandire datorita aplicatiilor dezvoltate pentru domenii din cele mai
diverse, cat si pentru interfata (meniuri,ferestre de dialog si alte
caracteristici) care faciliteaza comunicarea usoara cu utilizatorul.
        SGBD-ul reprezinta sisteme
informatice specializate in stocarea si prelucrarea unui volum mare de
date. Un SGBD trebuie sa asigure urmatoarele functii elementare
relative la bazele de date:
    definirea structurii(crearea bazei de date);
    introducerea datelor in bazelede date;
    modificarea unor date deja existente in bazele de
date;
    stergerea datelor din bazele de date;
    consultarea bazelor de date (extragerea
informatiilor).
       O serie de facilitatii ale
SGBD-ului Visual FoxPro sunt date prin componentele specializate numite
generatoare. Acestea ofera un mod de lucru comod si rapid, in ferestre
specializate,utilizatorul acestor componente nu trebuie sa fie neaparat
specializat in informatica si nu trebuie sa cunoasca foarte multe
lucruri despre bazele de date. Cele mai utilizate generatoare sunt:
    generatoare de rapoarte;
    generatoare de meniuri;
    generatoare de ecran.
Cap.IV. Descrierea bazei teoretice a lucrarii
   
   In construirea programelor din acest proiect am folosit
urmatoarele proceduri, functii si instructiuni:
    browse – afiseaza toate inregistrarile din baza de
date;putem avea o fereastra BROWSE pentru fiecare zona de lucru cu
conditia sa fie memorie suficienta;
    modi stru – permite modificarea campurilor in
cadrul bazei de date;
    list – afiseaza toate inregistrarile;
    display – afiseaza inregistrarea curenta;
    go <nr> - pozitioneaza indicatorul de
inregistrari pe inregistrarea nr;
    go top – pozitioneaza indicatorul de inregistrari
pe prima inregistrare din BD;
    go bottom – pozitioneaza indicatorul de
inregistrari pe ultima inregistrare din BD;
    skip – muta indicatorul de inregistrari relative
lapozitia curenta a acestuia;
    record <nr> - are ca effect selectarea
inregistrarii cu nr specificat;
    next <nr> - permite selectarea unui de nr
inregistrarii incepand de la cea curenta inclusiv ea;
    rest – permite selectarea tuturor inregistrarilor ,
incepand de la cea curenta inclusiv ea si pana la sfarsitul tabelului;
    append – permite adaugarea de inregistrari in baza
de date;
    append blank – permite adaugarea unei inregistrari
vide la sfarsitul bazei de date;
    append before – permite adaugarea unei inregistrari
inaintea ultimei inregistrari din baza de date;
    append blank before – permite adaugarea unei
inregistrari vide pe penultima pozitie din baza de date;
    insert – insereaza o inregistrare dupa
inregistrarea curenta;
    insert blank – insereaza o inregistrare vida dupa
inregistrarea curenta;
    insert before – insereaza o inregistrare inaintea
inregistrarii curente;
    insert blank before – insereaza o inregistrare vida
inaintea inregistrarii curente;
    replace – termina executia unui program,predand
controlul programului apelant,de pe nivelul anterior sau de pe cel mai
inalt nivel, altui program sau fereastra de comanda;   
    delete – sterge logic o inregistrare;
    delete all – sterge logic toata baza de date;
    recall – permite recuperarea inregistrarilor sterse
logic;
    pack – sterge fizic toate inregistrarile sterse
logic;
    zap – sterge toata baza de date;
    ?recno() – afiseaza numarul inregistrarii curente;
    ?reccount() – afiseaza cate inregistrari sunt in BD;
    ?date() – afiseaza data curenta;
    Year(datan) – afiseaza anul current; 
    Month(datan) – afiseaza luna curenta;
    Day(datan) – afiseaza ziua curenta;
 
Cap.V. Descrierea structurii si a continutului lucrarii realizate
         Forma principala
contine 9 butoane de comanda:
    Despre ;
    Vizualizare – vizualizare jucatori ;
                           
vizualizare calitati ;
    Adaugare – adaugare jucatori ;
                        
adaugare calitati ;
    Cautare – cautare jucatori ;
                     
cautare calitati ; 
    Valoare ;
    Iesire .
            
Butonul despre contine comenzile:
                                
thisform.release
                                
do form gladyinapoi
si ne duce in forma gladyinapoi.scx care contine: 4 label-uri si 1
buton si ofera date despre cel care a conceput acest proiect.
         Butonul adaugare
jucator contine comenzile:
                                         
thisform.release
                                         
do form adaugare1 
si ne duce in forma adaugare1.scx care contine: 9 label-uri, 9 text
box-uri si 3 butoane si in care putem adauga noi jucatori si date
despre acestia in prima baza de date.
         Butonul adaugare
calitati contine comenzile:
                                        
thisform.release
                                        
do form adaugare2 
si ne duce in forma adaugare2.scx care contine: 10 label-uri, 10 text
box-uri si 3 butoane si in care putem adauga noi jucatori si date
despre acestia in a doua baza de date.
          Butonul
vizualizare jucatori contine comenzile:
                                        
thisform.release
                                        
do form vizualizare1
si ne duce in forma vizualizare1.scx care contine: 9 label-uri, 9 text
box-uri si 6 butoane si care permite vizualizarea tuturor informatiilor
despre jucatori, introduse in prima baza de date.
          Butonul
vizualizare calitati contine comenzile:
                                        
thisform.release
                                        
do form vizualizare2
si ne duce in forma vizualizare2.scx care contine: 10 label-uri, 10
text box-uri si 6 butoane si care permite vizualizarea tuturor in
formatiilor despre jucatori, introduse in a doua baza de date.
           Butonul
cautare jucatori contine comenzile:
                                        
thisform.release
                                        
do form cautare1 
si ne duce in forma cautare1.scx care contine: 9 label-uri, 8 text
box-uri, 1 combo box si 4 butoane si care permite cautarea oricarui
jucator dupa informatiile oferite de prima baza de date, dupa anumiti
algoritmi bine stabiliti.
           Butonul
cautare calitati contine comenzile:
                                        
thisform.release
                                        
do form cautare2
si ne duce in forma cautare2.scx care contine: 10 label-uri, 9 text
box-uri, 1 combo box si 4 butoane si care permite cautarea oricarui
jucator dupa informatiile oferite de a doua baza de date, dupa anumiti
algoritmi bine stabiliti.
        Butonul VALOAREA este
particular proiectului meu si
contine comenzile:
                                    
thisform.release
                                    
do form VALOAREA 
si ne duce in forma VALOAREA.scx  care contine: 4 label-uri, 2
text box-uri si 3 butoane si care permite vizualizarea sumei de
transfer a fiecarui jucator, precum si valoarea totala a clubului F.C.
Valencia.
            
Butonul  iesire contine comanda:
                                        
thisform.release 
si prin apasarea lui iesim din proiect.
  
  1
Cap.VI.  Anexe 
   In forma adaugare1 avem butoanele:
    Adaugare 
 USE TABLE1.DBF
v1=alltrim(thisform.text1.value)
v2=thisform.text2.value
v3=alltrim(thisform.text3.value)
v4=alltrim(thisform.text4.value)
v5=thisform.text5.value
v6=thisform.text6.value
v7=thisform.text7.value
v8=thisform.text8.value
v9=thisform.text9.value
append blank
go bottom
replace jucator with v1
replace nr_tricou with v2
replace pozitie with v3
replace locul_nasterii with v4
replace anul_nasterii with v5
replace inaltime with v6
replace greutate with v7
replace debut with v8
replace suma_transfer with v9
THISFORM.TEXT1.VALUE=" "
THISFORM.TEXT2.VALUE=" "
THISFORM.TEXT3.VALUE=" "
THISFORM.TEXT4.VALUE=" "
THISFORM.TEXT5.VALUE=" "
THISFORM.TEXT6.VALUE=" "
THISFORM.TEXT7.VALUE=" "
THISFORM.TEXT8.VALUE=" "
THISFORM.TEXT9.VALUE=" "
THISFORM.REFRESH
    Renunt 
thisform.text1.value=" "
thisform.text2.value=" "
thisform.text3.value=" "
thisform.text4.value=" "
thisform.text5.value=" "
thisform.text6.value=" "
thisform.text7.value=" "
thisform.text8.value=" "
thisform.text9.value=" "
thisform.refresh
    Back 
THISFORM.RELEASE
do form glady
In forma adaugare2 avem butoanele:
    Adaugare 
use table2.dbf
v1=alltrim(thisform.text1.value)
v2=thisform.text2.value
v3=thisform.text3.value
v4=thisform.text4.value
v5=thisform.text5.value
v6=thisform.text6.value
v7=thisform.text7.value
v8=thisform.text8.value
v9=thisform.text9.value
v10=thisform.text10.value
append blank
go bottom
replace jucator with v1
replace conditie_fizica with v2
replace vitaza with v3
replace puterea_sutului with v4
replace exactitatea_pasei with v5
replace forta with v6
replace rezistenta with v7
replace deposedare with v8
replace agresivitate with v9
replace total with v10
THISFORM.TEXT1.VALUE=" "
THISFORM.TEXT2.VALUE=" "
THISFORM.TEXT3.VALUE=" "
THISFORM.TEXT4.VALUE=" "
THISFORM.TEXT5.VALUE=" "
THISFORM.TEXT6.VALUE=" "
THISFORM.TEXT7.VALUE=" "
THISFORM.TEXT8.VALUE=" "
THISFORM.TEXT9.VALUE=" "
thisform.text10.value=" "
THISFORM.REFRESH
    Renunt
thisform.text1.value=" "
thisform.text2.value=" "
thisform.text3.value=" "
thisform.text4.value=" "
thisform.text5.value=" "
thisform.text6.value=" "
thisform.text7.value=" "
thisform.text8.value=" "
thisform.text9.value=" "
thisform.text10.value=" "
thisform.refresh
    Back
THISFORM.RELEASE
do form glady
In forma vizualizare1 avem butoanele:
    Inainte 
if eof()=.T.
  messagebox("sfarsit de fisier")
else
   skip 1
   thisform.refresh
endif
    Inapoi 
if bof()=.T.
   messagebox ("inceput de fisier")
else
 skip -1
thisform.refresh  
endif
    Modificare 
thisform.command1.visible=.F.
thisform.command2.visible=.F.
thisform.command3.visible=.F.
thisform.command4.visible=.T.
thisform.command5.visible=.F.
thisform.command6.visible=.F.
thisform.text1.readonly=.F.
thisform.text2.readonly=.F.
thisform.text3.readonly=.F.
thisform.text4.readonly=.F.
thisform.text5.readonly=.F.
thisform.text6.readonly=.F.
thisform.text7.readonly=.F.
thisform.text8.readonly=.F.
thisform.text9.readonly=.F.
    Stergere 
delete
pack
if recno ()<>1
skip -1
endif
thisform.refresh
    Ok 
thisform.command1.visible=.T.
thisform.command2.visible=.T.
thisform.command3.visible=.T.
thisform.command4.visible=.F.
thisform.command5.visible=.T.
thisform.command6.visible=.T.
thisform.text1.readonly=.T.
thisform.text2.readonly=.T.
thisform.text3.readonly=.T.
thisform.text4.readonly=.T.
thisform.text5.readonly=.T.
thisform.text6.readonly=.T.
thisform.text7.readonly=.T.
thisform.text8.readonly=.T.
thisform.text9.readonly=.T.
    Back  
THISFORM.RELEASE
do form glady
In forma vizualizare2 avem butoanele:
    Inainte 
if eof()=.T.
  messagebox("sfarsit de fisier")
else
   skip 1
   thisform.refresh
endif
    Inapoi 
if bof()=.T.
   messagebox ("inceput de fisier")
else
 skip -1
thisform.refresh  
endif
    Modificare 
thisform.command1.visible=.F.
thisform.command2.visible=.F.
thisform.command3.visible=.F.
thisform.command4.visible=.F.
thisform.command5.visible=.T.
thisform.command6.visible=.F.
thisform.text1.readonly=.F.
thisform.text2.readonly=.F.
thisform.text3.readonly=.F.
thisform.text4.readonly=.F.
thisform.text5.readonly=.F.
thisform.text6.readonly=.F.
thisform.text7.readonly=.F.
thisform.text8.readonly=.F.
thisform.text9.readonly=.F.
thisform.text10.readonly=.F.
    Stergere 
delete
pack
if recno ()<>1
skip -1
endif
thisform.refresh
    Ok 
thisform.command1.visible=.T.
thisform.command2.visible=.T.
thisform.command3.visible=.T.
thisform.command4.visible=.T.
thisform.command5.visible=.F.
thisform.command6.visible=.T.
thisform.text1.readonly=.T.
thisform.text2.readonly=.T.
thisform.text3.readonly=.T.
thisform.text4.readonly=.T.
thisform.text5.readonly=.T.
thisform.text6.readonly=.T.
thisform.text7.readonly=.T.
thisform.text8.readonly=.T.
thisform.text9.readonly=.T.
thisform.text10.readonly=.T.
    Back  
THISFORM.RELEASE
do form glady
In forma cautare1 avem butoanele:
    Modificare
thisform.command3.visible=.F.
thisform.command4.visible=.T.
thisform.command5.visible=.F.
thisform.command6.visible=.F.
thisform.text1.readonly=.F.
thisform.combo1.readonly=.F.
thisform.text3.readonly=.F.
thisform.text4.readonly=.F.
thisform.text5.readonly=.F.
thisform.text6.readonly=.F.
thisform.text7.readonly=.F.
thisform.text8.readonly=.F.
thisform.text9.readonly=.F.
    Stergere
delete
pack
if recno ()<>1
skip -1
endif
thisform.refresh
    Ok
thisform.command3.visible=.T.
thisform.command4.visible=.F.
thisform.command5.visible=.T.
thisform.command6.visible=.T.
thisform.text1.readonly=.T.
thisform.combo1.readonly=.T.
thisform.text3.readonly=.T.
thisform.text4.readonly=.T.
thisform.text5.readonly=.T.
thisform.text6.readonly=.T.
thisform.text7.readonly=.T.
thisform.text8.readonly=.T.
thisform.text9.readonly=.T.
    Back 
THISFORM.RELEASE
do form glady
In forma cautare2 avem butoanele:
    Modificare
thisform.command3.visible=.F.
thisform.command4.visible=.F.
thisform.command5.visible=.T.
thisform.command6.visible=.F.
thisform.combo1.readonly=.F.
thisform.text2.readonly=.F.
thisform.text3.readonly=.F.
thisform.text4.readonly=.F.
thisform.text5.readonly=.F.
thisform.text6.readonly=.F.
thisform.text7.readonly=.F.
thisform.text8.readonly=.F.
thisform.text9.readonly=.F.
thisform.text10.readonly=.F.
    Stergere
delete
pack
if recno ()<>1
skip -1
endif
thisform.refresh
    Ok
thisform.command3.visible=.T.
thisform.command4.visible=.T.
thisform.command5.visible=.F.
thisform.command6.visible=.T.
thisform.combo1.readonly=.T.
thisform.text2.readonly=.T.
thisform.text3.readonly=.T.
thisform.text4.readonly=.T.
thisform.text5.readonly=.T.
thisform.text6.readonly=.T.
thisform.text7.readonly=.T.
thisform.text8.readonly=.T.
thisform.text9.readonly=.T.
thisform.text10.readonly=.T.
    Back 
THISFORM.RELEASE
do form glady
In forma VALOAREA avem butoanele:
    Inainte
if eof()=.T.
  messagebox("sfarsit de fisier")
else
   skip 1
   thisform.refresh
endif
    Inapoi
if bof()=.T.
   messagebox ("inceput de fisier")
else
 skip -1
thisform.refresh  
endif
    Back
THISFORM.RELEASE
    
| Cele mai ok referate!  www.referateok.ro  |