Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




LUCRARE DE ATESTAT - Gestionarea unei biblioteci -

Informatica


LUCRARE DE ATESTAT



- Gestionarea unei biblioteci -

CUPRINS

Introducere.. pag. 3

Cerinte Hardware si Software. pag. 4

Descrierea programului. pag. 4

Sursa programului. pag. 6

Bibliografie.. pag. 29

INTRODUCERE

Versiunea de FoxPro 2.5 a aparut , ca produs comercial , in primavara anului 1993.

Ca limbaj tehnologic din familia Xbase a reprezentat prima realizare a strategiei de portare intre platforme , el putand fi exploatat atat sub sistemul de operare DOS 6,-. , cat si sub Windows (95 , NT ).. Acest lucru face din FoxPro unul din principalii sustinatori ai suportului multiplatforma de exploatare pentru aplicatii de baze de date , mai ales pentru cei 212j91c care au fost legati de aplicatii Xbase.

In acelasi timp , FoxPro 2.5 continua sa extinda reputatia deja castigata a produsului pentru viteza , mai ales in situatia multiutilizator.Unele tipuri de cereri si activitati cu multe operatii de intrare-iesire sunt de trei pana la patru ori mai rapide decat erau in FoxPro 2.0 , iar acel produs era deja recunoscut ca lider in aceasta privinta.

Dar viteza de executie nu este totul. Astazi standardele de proiectare ale interfetei cu utilizatorul impun instrumente performante orientate vizual , ca sa permita de asemenea , o dezvoltare rapida a aplicatiilor , in vederea automatizarii pe cat posibil a intretinerii de platforme diferite a ecranelor , rapoartelor si a meniurilor.

FoxPro permite si exploatarea de baze de date non-Xbase , precum si a celor fara o orientare speciala catre gestiunea bazelor de date.

Un sistem de gestiune a bazelor de date (SGBD) este un sistem informatic SOFTWARE care se ocupa cu stocarea si prelucrarea unui volum mare de date, volumul prelucrarilor fiind relativ mic.

Functiile unui SGBD :

Functia de scriere a datelor: un SGBD trebuie sa permita definirea structurii datelor, a relatiilor dintre ele precum si a conditiilor de acces si validare.

2. Functia de manipulare a datelor: permite crearea, actualizarea si modificarea datelor, cautarea rapida si sortarea datelor.

3. Functia de utilizare: permite definirea unui interfete intre utilizator si sistemul de gestiune a bazelor de date in vederea comunicarii.

Pe langa aceste functii un sistem de gestiune al bazelor de date ofera si alte servicii si anume:

HELP pentru utilizator

Utilitare incorporate: sisteme de gestiune a fisierelor si tabelelor

Suport pentru limbajele de programare

Din aceste considerente , am elaborat lucrarea de fata sub acest limbaj.

CERINTE HARDWARE SI SOFTWARE

Programul nu necesita un calculator performant. Este compatibil cu orice calculator capabil sa ruleze Programul Visual Fox Pro.

Pentru a lucra in conditii optime este preferabil sa fie folosit Visual Fox Pro versiunea 9 .

DESCRIEREA PROGRAMULUI

Acest program vine in ajutorul oricarui bibliotecar, fiind util la tinerea evidentei cartilor dintr-o biblioteca.

Programul incepe cu cateva setari ale mediului de lucru.

' SET TALK OFF ' - fara mesaje din partea calculatorului.a unor rezultate ale comenzilor

' SET CENTURY ON'- permite afisarea anului pe patru caractere

' SET CLOCK ON ' - realizeaza aparitia ceasului.

' SET SYSMENU OFF' -nu se poate accesa bara de meniu din Fox Pro in timpul executiei programului

' SET DATE TO BRITISH'- regleaza data dupa modelul englezesc

Bara de meniu a programului contine urmatoarele PAD-uri:

CARTI

FISA 

UNELTE

IESIRE

AJUTOR

La activarea acestuia prin simpla apasare a tastei 'ENTER',pe ecran va apare o fereastra din care putem selecta alte optiuni precum:

* adaugare carte-se poate adauga o noua carte in baza de date in functie de numele autorului

* transfer carte-prin selectarea acestei optiuni se transfera cartile din rafturile bibliotecii in depozit

* casare carte-cu ajutorul acestei optiuni se sterg cartile dorite din inventar

La activarea acestuia pe ecran se va deschide o fereastra care contine urmatoarele optiuni:

* imprumut-la selectarea acestei optiuni se deschide o noua fisa cu numele si datele personale ale solicitantului imprumutului

* restituire carte-se trece in baza de date, data cand a fost restituita cartea ce in prealabil a fost imprumutata

* stergere fisa-se sterge fisa dorita

La activarea pad-ului UNELTE va apare un meniu vertical ce contine urmatoarele optiuni:

* cauta-prin selectarea optiunii "cauta" se face cautarea cartii dorite, in baza de date, dupa autor sau dupa tipul acesteia (Fond fix,Lb. Straine,Enciclopedii,Albume arta,Dictionare,Critica)

* situatie-se afiseaza pe ecran situatia cartilor imprumutate, autorul acestora, numele persoanei ce a imprumutat cartea, si data la care a fost imprumutata si restituita cartea

* date personale-se vizualizeaza datele personale ale persoanei ce a imprumutat carti

* numar fisa- se afiseaza pe ecran continutul fisei respective

* afisare inventar-apare pe ecran o fereastra ce cuprinde cartile din baza de date, cu autorul fiecareia, pretul lor si numarul acestora

* tiparire inventar-se poate tipari la imprimanta cartile din inventar in functie de optiunea bibliotecarului

* valoare inventar-se afiseaza pe ecran valoarea cumulata a cartilor din inventar

La activarea pad-ului iesire va apare pe ecran o fereastra cu urmatoarele optiuni:

* Iesire in MS-DOS-prin aceasta optiune se paraseste mediul FOX PRO

* Iesire in FOX PRO-se iese din program in mediul FOX PRO

La activare pad-ului ajutor se afiseza pe ecran o ferestra in care

utilizatorul va intalni o serie de comenzi cu care se va face

SURSA PROGRAMULUI

set escape off

set clock to

set talk off

set default to c:biblioteca

set century on

set date to british

set sysmenu off

close all

select

use autori

select

use carti

select

use exemplar

select

use contract

select

sum nr_exemp*pret to valoare_totala

define menu meniu

define pad carti of meniu prompt '<Carti' at message 'Gestionarea cartilor'

define pad fisa of meniu prompt '<Fisa' at message 'Gestionarea fiselor de lucru'

define pad unelte of meniu prompt '<Unelte' at message 'Vizualizare situatie biblioteca'

define pad iesire of meniu prompt '<Iesire' at message 'Iesire din program'

define pad ajutor of meniu prompt '<Ajutor' at message 'Date ajutatoare cu privire la program'

on selection pad carti of meniu activate popup car

on selection pad fisa of meniu activate popup fis

on selection pad unelte of meniu activate popup une

on selection pad iesire of meniu activate popup ies

on selection pad ajutor of meniu do aju

define popup car from margin shadow

define bar of car prompt '<Adaugare_carte' message 'Adaugare carti in inventarul bibliotecii'

define bar of car prompt 'T<ransfer_carte' message 'Transfer carte (raft>depozit/depozit>raft)'

define bar of car prompt 'Ca<sare_carte' message 'Casare carte'

define popup fis from margin shadow

define bar of fis prompt '<Imprumut' message 'Imprumutare de carti'

define bar of fis prompt 'R<estituire_carte' message 'Restituirea cartilor imprumutate'

define bar of fis prompt '<Stergere fisa' message 'Stergere de fisa'

define popup une from margin shadow

define bar of une prompt '<Cauta carte >' message 'Cautare carte dupa diferite criterii'

define bar of une prompt 'S<ituatie' message 'Afisarea pe ecran a cartilor imprumutate'

define bar of une prompt 'Da<te personale' message 'Afisarea datelor personale'

define bar of une prompt 'Num<ar fisa' message 'Afisarea unei fise (dupa numar)'

define bar of une prompt 'Afi<sare inventar' message 'Afisarea inventarului bibliotecii'

define bar of une prompt 'Ti<parire inventar >' message 'Tiparirea inventarului bibliotecii la imprimanta'

define bar of une prompt '<Valoare inventar' message 'Afisarea valorii inventarului bibliotecii'

define popup unex from margin shadow

define bar of unex prompt '<dupa Autor'

define bar of unex prompt 'd<upa Titlu'

define bar of unex prompt 'Fo<nd fix' message 'Cautare carti ce fac parte din categoria Fond fix'

define bar of unex prompt 'Lim<bi straine' message 'Cautare carti ce fac parte din categoria Limbi straine'

define bar of unex prompt 'En<ciclopedii' message 'Cautare carti ce fac parte din categoria Enciclopedii'

define bar of unex prompt 'A<lbume arta' message 'Cautare carti ce fac parte din categoria Albume arta'

define bar of unex prompt '<Dictionare' message 'Cautare carti ce fac parte din categoria Dictionare'

define bar of unex prompt 'C<ritica' message 'Cautare carti ce fac parte din categoria Critica'

define popup tipinv from margin shadow

define bar of tipinv prompt '<Carte' message 'Tiparirea cartilor ce fac parte din categoria Carte'

define bar of tipinv prompt 'F<ond fix' message 'Tiparirea cartilor ce fac parte din categoria Fond fix'

define bar of tipinv prompt 'Li<mbi straine' message 'Tiparirea cartilor ce fac parte din categoria Limbi straine'

define bar of tipinv prompt 'Enc<iclopedii' message 'Tiparirea cartilor ce fac parte din categoria Enciclopedii'

define bar of tipinv prompt 'Al<bume arta' message 'Tiparirea cartilor ce fac parte din categoria Albume arta'

define bar of tipinv prompt 'D<ictionare' message 'Tiparirea cartilor ce fac parte din categoria Dictionare'

define bar of tipinv prompt '<Critica'message 'Tiparirea cartilor ce fac parte din categoria Critica'

define bar of tipinv prompt 'T<ot inventarul' message 'Tiparirea tuturor cartilor ce compun inventarul bibliotecii'

define popup ies from margin shadow

define bar of ies prompt '<Iesire in Ms-Dos'

define bar of ies prompt 'I<esire in Fox Pro'

on selection bar of car do adauga

on selection bar of car do transfer

on selection bar of car do caseaza

on selection bar of fis do imprumuta

on selection bar of fis do restit

on selection bar of fis do stergfis

on selection bar of une activate popup unex

on selection bar of une do situatie

on selection bar of une do datepers

on selection bar of une do nrfisa

on selection bar of une do afisinv

on selection bar of une activate popup tipinv

on selection bar of une do valinv

on selection bar of unex do caut

on selection bar of unex do ctit

on selection bar of unex do cauta with

on selection bar of unex do cauta with

on selection bar of unex do cauta with

on selection bar of unex do cauta with

on selection bar of unex do cauta with

on selection bar of unex do cauta with

on selection bar of tipinv do tip with

on selection bar of tipinv do tip with

on selection bar of tipinv do tip with

on selection bar of tipinv do tip with

on selection bar of tipinv do tip with

on selection bar of tipinv do tip with

on selection bar of tipinv do tip with

on selection bar of tipinv do tipall

on selection bar of ies quit

on selection bar of ies do endprogram

@ 5,1 say ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ ÛÛ ÛÛÛÛ ÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛ ÛÛ '

@ 6,1 say ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛ '

@ 7,1 say ÛÛÛÛÛ ÛÛ ÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛ ÛÛ ÛÛ ÛÛ'

@ 8,1 say ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ'

@ 9,1 say ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ'

say ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛ ÛÛ ÛÛÛÛÛÛÛ ÛÛÛ ÛÛ ÛÛ'

say ' Liceului Teoretic 'Grigore Moisil' Tulcea '

endprog=.f.

do while endprog=.f.

activate menu meniu

enddo

release menu meniu

procedure imprumuta

hide popup car

define window nume from to title 'Imprumut' float shadow double

store space to num

activate window nume

say 'Numele:' get num

read

deactivate window nume

release window nume

if lastkey

return

endif

select

locate for nume=num

if eof()=.f.

cd=nr_fisa

select

locate for nr_fisa=cd .and. data_rest<date

if eof()=.f.

wait 'Persoana are carti nerestituite !' window

return

else

select

define window dat from to title 'Date imprumut' float shadow double

dataimpr=date

datarest=date()

store to choice



activate window dat

@ 1,1 say 'Data:' get dataimpr

@ 2,1 say 'Data restituirii:' get datarest

@ 1,50 GET choice FUNCTION '* OK;Cancel' SIZE

read cycle

deactivate window dat

release window dat

if lastkey()=27 .or. choice=2

return

endif

endif

else

define window fisa from to title 'Fisa' float shadow double

activate window fisa

select

append blank

if recno()>1

go recno

cd=nr_fisa+1

go bottom

replace nr_fisa with cd

else

replace nr_fisa with 1

endif

dataimpr=date

datarest=date

replace nume with num

gata=.f.

do while gata=.f.

store to choice

@ 1,1 say 'Numar fisa:' get nr_fisa

@ 2,1 say 'Data:' get dataimpr

@ 3,1 say 'Nume:' get nume

@ 4,1 say 'Clasa:' get clasa

@ 5,1 say 'Data nasterii:' get nascut_la

@ 6,1 say 'Locul nasterii:' get nascut_in

@ 7,1 say 'Domiciliu:' get domiciliu

@ 8,1 say 'Telefon:' get telefon

@ 9,1 say 'Data restituirii:' get datarest

@ 2,50 GET choice FUNCTION '* OK;Cancel' SIZE

read cycle

cd=nr_fisa

replace nr_fisa with

go top

locate for nr_fisa=cd

if eof() .or. lastkey()=27 .or. choice=2

locate for nr_fisa=0

replace nr_fisa with cd

gata=.t.

else

wait 'Numarul de fisa este folosit !' window

locate for nr_fisa=0

endif

enddo

deactivate window fisa

release window fisa

go bottom

if lastkey()=27 .or. choice=2

delete

pack

return

endif

endif

define window car from to title 'Carte' float shadow double

store space to autor

store space to tit

nrinv=0

gata=.t.

do while gata

store to choice

activate window car

@ 1,1 say 'Nume autor:' get autor

@ 2,1 say 'Titlul cartii:' get tit

@ 3,1 say 'Numar inventar:' get nrinv

@ 1,60 GET choice FUNCTION '* OK;Stop' SIZE

read cycle

if lastkey()=27 .or. choice=2

gata=.f.

else

select

locate for upper(nume_autor)=upper(autor)

if eof

wait 'Autorul nu este gasit !' window

else

c=cod_autor

select

locate for upper(titlu)=upper(tit) .and. cod_autor=c

if eof

wait 'Titlu inexistent !' window

else

cc=cod_carte

select

locate for cod_carte=cc .and. nr_inv=nrinv

if eof

wait 'Carte imprumutata sau numar inventar inexistent !' window

go top

locate for cod_carte=cc .and. nr_fisa=0

if eof()=.f.

nrinv=nr_inv

endif

else

replace nr_fisa with cd

replace data_impr with dataimpr

replace data_rest with datarest

store space to autor

store space to tit

nrinv=0

endif

endif

endif

endif

enddo

*set console off

*set printer to

*set printer on

*select 4

*go top

*locate for nume=num

Fisa de imprumut '

*? ' Nume elev: '+nume

*? ' Clasa: '+clasa

' Numar fisa: '+str(nr_fisa)

*nrfisa=nr_fisa

*select 3

*go top

*locate for nr_fisa=nrfisa

*do while eof()=.f.

*nrinv=nr_inv

*cc=cod_carte

*select 2

*go top

*locate for cod_carte=cc

*tit=titlu

*ca=cod_autor

*select 1

*go top

*locate for cod_autor=ca

*? ' Autor: '+rtrim(nume_autor)+' Titlu: '+rtrim(tit)

*? ' Nr.Inventar: '+rtrim(str(nrinv))

*select 3

*continue

*enddo

*? ' Data imprumut: '+dtoc(dataimpr)+' Data restituire: '+dtoc(datarest)

Semnatura elevului: '

*set console on

*set printer to

*set printer off

release window car

deactivate window car

return

procedure restit

hide popup car

define window nume from to title 'Restituire' float shadow double

activate window nume

store space to num

say 'Numele restitutorului:' get num

read

deactivate window nume

if lastkey()=27)=.f.

select

go top

locate for upper(nume)=upper(num)

if eof

wait 'Numele nu este gasit !' window

release window nume

return

endif

cd=nr_fisa

* set console off

* set printer to

* set printer on

Fisa de restituire '

* ? ' Nume elev: '+rtrim(nume)

* ? ' Clasa: '+rtrim(clasa)

* ? ' Numar fisa: '+str(nr_fisa)

* set console on

* set printer to

* set printer off

nrfisa=nr_fisa

define window car from to title 'Carte' float shadow double

store space to autor

store space to tit

nrinv=0

gata=.t.

do while gata

store to choice

activate window car

@ 1,1 say 'Nume autor:' get autor

@ 2,1 say 'Titlul cartii:' get tit

@ 3,1 say 'Numar inventar:' get nrinv

@ 1,60 GET choice FUNCTION '* OK;Stop' SIZE

read cycle

if lastkey()=27 .or. choice=2

gata=.f.

else

select

locate for upper(nume_autor)=upper(autor)

if eof

wait 'Autorul nu este gasit !' window

else

c=cod_autor

select

locate for upper(titlu)=upper(tit) .and. cod_autor=c

if eof

wait 'Titlu inexistent !' window

else

cc=cod_carte

select

locate for cod_carte=cc .and. nr_inv=nrinv .and. nr_fisa=nrfisa

if eof

wait 'Cartea nu a fost imprumutata sau numar inventar inexistent !' window

go top

locate for cod_carte=cc .and. nr_fisa=cd

if eof()=.f.

nrinv=nr_inv

endif

else

select

locate for upper(nume_autor)=upper(autor)

autor=nume_autor

select

locate for upper(titlu)=upper(tit)

tit=titlu

select

* set console off

* set printer to

* set printer on

* ? ' Nume autor: '+rtrim(autor)+' Titlu: '+rtrim(tit)

* ? ' Nr.Inventar: '+str(nrinv)

* set console on

* set printer to

* set printer off

replace nr_fisa with

store space to autor

store space to tit

nrinv=0

endif

endif

endif

endif

enddo

select

locate for nr_fisa=nrfisa

*set console off

*set printer to

*set printer on

*if eof()

* ? ' Elevul nu mai are carti de restituit !'

*else

* ? ' Elevul mai are carti de restituit !'

*endif

Semnatura bibliotecarului:'

*set console on

*set printer to

*set printer off

release window car

deactivate window car

endif

release window nume

return

procedure adauga

hide popup car

define window autor from to title 'Adaugare' float shadow double

define window titlu from to title 'Titlu' float shadow double

define window exemp from to title 'Exemplar' float shadow double

do while .t.

clear

store space to num

activate window autor

store to choice

@ 1,1 say 'Introduceti numele autorului' get num

@ 3,52 GET choice FUNCTION '* OK;Stop' SIZE

read cycle

deactivate window autor

if num=space(30) .or. choice=2

exit

else

select

locate for nume_autor=num

if eof

&& daca autorul nu exista se adauga in lista

append blank

replace cod_autor with recno

replace nume_autor with num

endif

c=recno



endif

select

endtit=.f.

do while endtit=.f.

clear

append blank

store to t

store to choice

activate window titlu

incorect=.t.

do while incorect

@ 1,1 say num

@ 2,1 say 'Titlul:' get titlu

@ 3,1 say 'Editura:' get editura

@ 4,1 say 'An aparitie:' get aparitie

@ 5,1 say 'Numarul de exemplare:' get nr_exemp

@ 6,1 say 'Pret/exemplar:' get pret

get t function '^ Carte;Limbi straine;Enciclopedie;Album arta;Dictionar;Critica;Fond fix'

@ 2,52 GET choice FUNCTION '* OK;Stop' SIZE

read cycle

if (nr_exemp<=0 .or. pret<=0 .or. titlu=space(40)) .and. (lastkey()=27)=.f. .and. choice=1

if nr_exemp<=0

wait 'Numar de exemplare invalid !' window

endif

if pret<=0

wait 'Pret invalid !' window

endif

if titlu=space

wait 'Introduceti titlul cartii !' window

endif

else

incorect=.f.

endif

enddo

deactivate window titlu

if lastkey()=27 .or. choice=2

endtit=.t.

delete

pack

else

replace cod_autor with c

replace tip with t

if t=1

replace stat with

else

replace stat with

endif

cc=1

go top

locate for cod_carte=cc

do while eof()=.f.

cc=cc+1

continue

enddo

go bottom

replace cod_carte with cc

nrex=nr_exemp

valoare_totala=valoare_totala+nr_exemp*pret

select

for i=1 to nrex

append blank

store to choice

store TO dep

replace cod_carte with cc

replace nr_fisa with

activate window exemp

incorect=.t.

do while incorect

@ 1,1 say 'Exemplarul '+str(i)

@ 2,1 say 'Numar inventar:' get nr_inv

@ 3,1 get dep FUNCTION '*C Depozit'

@ 4,30 GET choice FUNCTION '* OK' SIZE

read cycle

nrinv=nr_inv

go top

locate for nr_inv=nrinv

if recno reccount

incorect=.f.

else

wait 'Numar de inventar deja folosit !' window

go bottom

endif

enddo

if dep=1

replace depozit with .t.

else

replace depozit with .f.

endif

endfor

deactivate window exemp

select

endif

enddo

enddo

release window autor

release window titlu

release window exemp

return

procedure transfer

hide popup car

select

define window trans from to title 'Transfer carte' float shadow double

nri=0

gata=.f.

do while gata=.f.

store to choice

activate window trans

say 'Numarul inventar:' get nri

@ 1,42 GET choice FUNCTION '* OK;Renunta' SIZE

read cycle

if lastkey()=27 or choice=2

deactivate window trans

release window trans

return

else

locate for nr_inv=nri

if eof

wait 'Numar de inventar inexistent !' window

else

gata=.t.

endif

endif

enddo

deactivate window trans

release window trans

if depozit=.t.

replace depozit with .f.

wait 'Cartea a fost mutata din depozit pe raft !' window

else

replace depozit with .t.

wait 'Cartea a fost mutata de pe raft in depozit !' window

endif

return

procedure caseaza

hide popup car

store space to autor

store space to tit

nrex=1

define window cas from to title 'Casare' float shadow double

activate window cas

incorect=.t.

do while incorect

incorect=.f.

store to choice

@ 1,1 say 'Autor:' get autor

@ 2,1 say 'Titlu:' get tit

@ 3,1 say 'Numar exemplare:' get nrex

@ 1,50 GET choice FUNCTION '* Caseaza;Renunta' SIZE

read cycle

if lastkey()=27 .or. choice=2

deactivate window cas

release window cas

return

else

select

go top

index on nume_autor to autori

set index to autori

locate for upper(nume_autor)=upper(autor)

if .not. found

wait 'Autor inexistent !' window

incorect=.t.

else

c=cod_autor

select

go top

locate for cod_autor=c .and. upper(titlu)=upper(tit)

if eof

wait 'Titlu inexistent !' window

incorect=.t.

else

if tip=7

wait 'Carte din fondul fix' window

incorect=.t.

endif

if nrex>nr_exemp

wait 'Numarul de exemplare mai mare decat cel existent !' window

incorect=.t.

endif

endif

endif

endif

enddo

deactivate window cas

if nrex=nr_exemp

valoare_totala=valoare_totala-nr_exemp*pret

cc=cod_carte

delete

pack

select

go top

locate for cod_carte=cc

do while eof()=.f.

delete

pack

continue

enddo

wait 'S-au casat toate cartile de acest fel din inventar !' window

else

replace nr_exemp with nr_exemp-nrex

valoare_totala=valoare_totala-nrex*pret

define window exemp from to title 'Exemplar' float shadow double

cc=cod_carte

select

activate window exemp

for i=1 to nrex

go top

locate for cod_carte=cc

nrinv=nr_inv

sav=nrinv

gata=.f.

do while gata=.f.

@ 1,1 say 'Exemplarul '+str(i)

@ 2,1 say 'Numar inventar:' get nrinv

@ 4,30 GET choice FUNCTION '* OK' SIZE

read cycle

go top

locate for cod_carte=cc .and. nr_inv=nrinv

if eof

wait 'Numar de inventar inexistent !' window

nrinv=sav

else

delete

pack

gata=.t.

endif

enddo

endfor

deactivate window exemp

endif

endif

release window exemp

release window cas

close all

delete file autori.idx

return

procedure stergfis

hide popup car

define window nume from to title 'Stergere fisa' float shadow double

activate window nume

cd

store to choice

say 'Numarul fisei:' get cd

GET choice FUNCTION '* Renunta;Sterge' SIZE

read cycle

deactivate window nume

if lastkey()=27)=.f. .and. choice=2

select

go top

locate for nr_fisa=cd

if eof

select

go top

locate for nr_fisa=cd

if eof

wait 'Fisa nu exista !' window

else

delete

pack

wait 'Fisa a fost stearsa !' window

endif

else

wait 'Persoana are carti imprumutate !' window

endif

endif

release window nume

return

procedure caut

hide popup unex

hide popup une

define window srch from to title 'Cauta' float shadow double

store space to autor

activate window srch

say 'Introduceti numele autorului:' get autor

read

deactivate window srch

if lastkey

else

select

locate for upper(nume_autor)=upper(autor)

if eof

wait 'Autorul nu este gasit !' window

else

clear

display fields nume_autor off

c=cod_autor

select

display fields titlu,editura,aparitie,nr_exemp,pret for cod_autor=c off

read

endif

endif

release window srch

clear

show popup une



return

procedure ctit

hide popup unex

hide popup une

define window srch from to title 'Cauta' float shadow double

store space to tit

activate window srch

say 'Introduceti titlul cartii:' get tit

read

deactivate window srch

if lastkey()=27)=.f.

select

locate for upper(titlu)=upper(tit)

if eof

wait 'Titlul nu exista !' window

else

c=cod_autor

select

display fields nume_autor for cod_autor=c off

select

display fields editura,aparitie,nr_exemp,pret off

cc=cod_carte

select

locate for cod_carte=cc

display fields nr_inv,depozit off

do while eof()=.f.

continue

display fields nr_inv,depozit off

endif

enddo

wait

clear

select

do while eof()=.f.

continue

c=cod_autor

select

display fields nume_autor for cod_autor=c off

select

display fields editura,aparitie,nr_exemp,pret off

cc=cod_carte

select

locate for cod_carte=cc

display fields nr_inv,depozit off

do while eof()=.f.

continue

display fields nr_inv,depozit off

enddo

select

if eof()=.f.

wait

clear

endif

enddo

endif

endif

release window srch

clear

show popup une

return

procedure cauta

parameters tp

clear

set cursor off

hide popup unex

hide popup une

store space to tit

select

locate for tip=tp

i=1

if eof

wait 'Nu exista carti din aceasta categorie !' window

else

do while eof()=.f.

c=cod_autor

tit=titlu

select

locate for cod_autor=c

? rtrim(nume_autor)+' - '+rtrim(tit)

i=i+1

if i=25

read

i=1

endif

select

continue

enddo

read

endif

clear

show popup une

set cursor on

return

procedure tip

parameters tp

hide popup tipinv

hide popup une

*set console off

*set printer to

*set printer on

*store space(15) to categ

*do case

* case tp=1

* categ='Carte'

* case tp=2

* categ='Limbi straine'

* case tp=3

* categ='Enciclopedii'

* case tp=4

* categ='Albume arta'

* case tp=5

* categ='Dictionare'

* case tp=6

* categ='Critica'

* case tp=7

* categ='Fond fix'

*endcase

*? ' Categoria: '+categ

*store space(20) to tit

*store space(20) to oldtit

*store space(30) to oldnum

*select 3

*index on nr_inv to exemp

*set order to exemp

*go top

*suntcarti=.f.

*do while eof()=.f.

* inv=nr_inv

* cc=cod_carte

* select 2

* go top

* locate for cod_carte=cc .and. tip=tp

* if eof()=.f.

* tit=titlu

* ca=cod_autor

* select 1

* go top

* locate for cod_autor=ca

* if tit=oldtit .and. nume_autor=oldnum

? 'Numar inventar: '+str(inv)

* else

?

? 'Nume autor: '+rtrim(nume_autor)+' Titlu: '+rtrim(tit)

? 'Numar inventar: '+str(inv)

* oldtit=tit

* oldnum=nume_autor

* suntcarti=.t.

* endif

* endif

* select 3

* skip

*enddo

*if suntcarti=.f.

*? 'Nu exista carti din aceasta categorie !'

*endif

*set console on

*set printer to

*set printer off

!del exemp.idx

show popup une

set cursor on

return

procedure tipall

hide popup tipinv

hide popup une

*set console off

*set printer to

*set printer on

Tiparirea inventarului:'

*store space(20) to tit

*store space(20) to oldtit

*store space(30) to oldnum

*select 3

*index on nr_inv to exemp

*set order to exemp

*go top

*do while eof()=.f.

* inv=nr_inv

* cc=cod_carte

* select 2

* go top

* locate for cod_carte=cc

* if eof()=.f.

* tit=titlu

* ca=cod_autor

* select 1

* go top

* locate for cod_autor=ca

* if tit=oldtit .and. nume_autor=oldnum

? 'Numar inventar: '+str(inv)

* else

?

? 'Nume autor: '+rtrim(nume_autor)+' Titlu: '+rtrim(tit)

? 'Numar inventar: '+str(inv)

* oldtit=tit

* oldnum=nume_autor

* endif

* endif

* select 3

* skip

*enddo

*? 'Valoarea totala a inventarului este de ',valoare_totala,' lei.'

*set console on

*set printer to

*set printer off

!del exemp.idx

show popup une

set cursor on

return

procedure situatie

hide popup une

select

go top

locate for nr_fisa>0

if eof

wait 'Nu exista carti imprumutate !' window

return

endif

i=1

do while eof()=.f.

store space to num

cc=cod_carte

cd=nr_fisa

dat1=data_impr

dat2=data_rest

select

locate for nr_fisa=cd

num=nume

select

locate for cod_carte=cc

do while eof()=.f.

store space to tit

tit=titlu

c=cod_autor

select

locate for cod_autor=c

if date()>dat2

set color to r+/b

endif

alltrim(num)+' '+alltrim(nume_autor)+' - '+alltrim(tit)+' : '+dtoc(dat1)+' - '+dtoc(dat2)

set color set to

select

continue

i=i+1

if i=24

i=1

read

endif

enddo

select

continue

enddo

read

clear

return

procedure datepers

hide popup une

define window nume from to title 'Date personale' float shadow double

activate window nume

store space to num

say 'Numele persoanei:' get num

read

deactivate window nume

if lastkey()=27)=.f.

select

go top

locate for upper(nume)=upper(num)

if eof

wait 'Numele nu este gasit !' window

else

? 'Numar fisa: '+str(nr_fisa,5)

? 'Nume: '+nume

? 'Clasa: '+clasa

? 'Nascut la: '+dtoc(nascut_la)

? 'Nascut in: '+nascut_in

? 'Domiciliu: ' +domiciliu

? 'Telefon: '+telefon

read

clear

endif

endif

release window nume

return

procedure nrfisa

hide popup une

define window nume from to title 'Afisare fisa' float shadow double

activate window nume

cd

say 'Numarul fisei:' get cd

read

deactivate window nume

if lastkey()=27)=.f.

select

go top

locate for nr_fisa=cd

if eof

wait 'Fisa nu este gasita !' window

else

? 'Numar fisa: '+str(nr_fisa,5)

? 'Nume: '+nume

? 'Clasa: '+clasa

? 'Nascut la: '+dtoc(nascut_la)

? 'Nascut in: '+nascut_in

? 'Domiciliu: ' +domiciliu

? 'Telefon: '+telefon

read

clear

endif

endif

release window nume

return

procedure afisinv

clear

hide popup une

close all

delete file bibl.dbf

do bibl.qpr

use bibl

defi wind b from to double

acti wind b

browse noappend nomodi color b+/r+

deac wind b

clear

if lastkey

return

endif

return

procedure valinv

hide popup une

clear

say 'Valoarea inventarului Œn lei este de : '+ltrim str(valoare_totala))

read

clear

return

procedure endprogram

endprog=.t.

clear

deactivate menu meniu

return

procedure aju

hide menu all

defi wind f from to title 'GALEANU ALINA' double shadow color r/n

acti wind f

say '-Acest program a fost realizat pentru a facilita munca '

say 'celor care lucreaza intr-o biblioteca'

say

say '-selectati obtiunea Iesire in MS-Dos din Iesire pentru '

say 'iesirea in Norton Commander'

say '-apasati ESC pentru intoarcerea la meniul initial'

wait

deac wind f

BIBLIOGRAFIE

Initiere in FoxPro, colectia "Initiere in calculatoare" ed. Arves

Informatica varianta Visual FoxPro Mariana Pantiru, Ionut Pantiru




Document Info


Accesari: 5110
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )