Sunteți pe pagina 1din 8

Evidenta inchirieri casete video

Aplicatia realizata in Visual Fox Pro urmareste realizarea


comenzilor de inchirieri casete video in cadrul unei societati comerciale.
Operatiile realizate vor fi: inscrierea comenzilor, clientilor, filmelor,
stocului de castete existent, modificarea unor elemente, stergerea,
vizualizarea. Situatiile finale vor fi:
 numar total de clienti
 lista filmelor disponibile dintr-un anumit domeniu
 lista filmelor cu un anumit actor
 lista filmelor imprumutate si nerestituite la termen
 lista clientilor care nu au restituit casetele la termen
 numar total comenzi.
Pentru inceput, vom face analiza tabelelor folosite.

A) ANALIZA
1.Identificarea entitatilor:
FILME
COMENZI
CLIENTI
STOC

2.Identificarea asocierilor:
Asocierile vor fi:
CLIENTI - COMENZI 1:m
Un client va putea avea mai multe comenzi, dar o comanda nu poate
avea decat un client unic.

FILME - COMENZI 1:m


Un film poate aparea in mai multe comenzi, dar o comanda se va face
pentru un singur film. In cazul in care clientul va dori inchirierea mai
multor filme, se vor face mai multe comenzi.

FILME - STOC 1:1


Fiecarei comenzi i se va asocia o singura plata.

3.Stabilirea atributelor:
Codf (cod film , numeric de 4)
Denumire (nume film, caracter de 20)
FILME Actor (nume actor, caracter de 15)
An (anul aparitiei, numeric de 4)
Tip (tipul filmului, caracter de 10)

Nrcom (numar comanda, numeric de 4)


Dataimpr ( data efectuarii comenzii, data de 8)
Termen (numarul de zile permis inchirierii, data de 8)
COMENZI Datarest (data efectiva a restituirii, data de 8)
Penalizari (suma penalizarii, numeric de 10)
Codcl (cod client, numeric de 4)
Codf (cod material, numeric de 4)

Codcl (cod client, numeric de 4)


Nume (nume client ,caracter de 20)
CLIENTI Serie (serie buletin, caracter de 10)
Tel (numar de telefon, numeric de 10)

Codst ( numar de stoc, numeric de 4)


STOC Codf (cod film, numeric de 4)
Nr (numarul de exemplare existent, numeric de 2)

SCHEMA:

#codf denumire codf #nrcom dataimpr termen #codcl nume


(1:m) (1:m)
FILME COMENZI CLIENTI
tip
actor an datarest penalizari codcl serie tel

(1:1)

#codst
STOC

codf
nr
4.Stabilirea atributelor de identificare unica a entitatii:

FILME: #Codf
COMENZI: #Codcom
CLIENTI: #Codcl
STOC: #Codst

5.Schema entitati- asocieri:


CLIENTI
#Codcl Nume Serie Telefon

COMENZI
#Codcom Dataimpr Termen Datarest Penalizari Codcl Codf

FILME
#Codf Denumire Actor An Tip

STOC
#Codst Codf Nr

B)OBSERVATII
Structura este bine realizata, neavind atribute compuse.
Am eliminat acest neajuns prin folosirea numai a seriei de
buletin si a numarului de telefon, si nu a intregii sale adrese.

Nota:Baza de date contine 1 tabela virtuala locala (Totalizator).

Accesul la date se va face:

LUCRATOR DIRECTOR SEF


COMPARTIMENT
FILME R/W R/W R/W
COMENZI R/W R/W R/W
CLIENTI R/W R/W R/W
STOC R/W R/W R/W
VEDERI R R R
Programele folosite pentru realizarea situatiilor finale sunt
urmatoarele:
-pentru clientii ce sunt penalizati:

clientipenalizati.prg

CLOSE ALL
CLEAR
SELECT a.CODF, a.DENUMIRE,a.ACTOR, a.AN, a.TIP,
b.DATAIMPR,b.TERMEN, b.DATAREST, b.PENALIZARI, c.NUME,
c.SERIE, c.TEL;
FROM FILME as a,COMENZI as b, CLIENTI as c;
WHERE ((b.PENALIZARI>0) and (a.CODF=b.CODF) and
(b.CODCL=c.CODCL));
INTO TABLE CLIENTI_PENALIZATI.dbf
BROWSE
CLOSE ALL

-pentru evidenta filmelor nerestituite:

filmenerestituite.prg

CLOSE ALL
CLEAR
SELECT a.CODF, a.DENUMIRE,a.ACTOR, a.AN, a.TIP,
b.DATAIMPR,b.TERMEN, b.DATAREST, b.PENALIZARI;
FROM FILME as a,COMENZI as b;
WHERE ((b.TERMEN<b.DATAREST)and(a.CODF=b.CODF));
INTO TABLE FILME_NEREST_LA_TIMP.dbf
BROWSE
CLOSE ALL

-pentru selectia filmelor dupa actor:

filmepeactor.prg

CLOSE ALL
CLEAR
A=SPACE(20)
@ 10,20 SAY "DATI ACTORUL:" GET A
READ
SELECT a.CODF, a.DENUMIRE,a.ACTOR, a.AN, a.TIP, b.NR;
FROM FILME as a, STOC as b;
WHERE (a.CODF =b.CODF)and(upper(a.ACTOR)= UPPER(A));
INTO TABLE FILM_PE_ACTOR.dbf
BROWSE
CLOSE ALL

-pentru selectia filmelor dupa domeniu:

filmepedom.prg

CLOSE ALL
CLEAR
A=SPACE(20)
@ 10,20 SAY "DATI DOMENIUL:" GET A
READ
SELECT a.CODF, a.DENUMIRE,a.ACTOR, a.AN, a.TIP, b.NR;
FROM FILME as a, STOC as b;
WHERE (a.CODF =b.CODF)and(upper(a.TIP)= UPPER(A));
INTO TABLE FILM_PE_DOMENIU.dbf
BROWSE
CLOSE ALL

-pentru stabilirea numarului total de filme:

nrfilme.prg

CLOSE ALL
CLEAR
A=SPACE(20)
SELECT COUNT(*);
FROM FILME to A
@ 1,1 SAY "NUMARUL DE FILME ESTE :"
CLOSE ALL

-pentru stabilirea numarului total de clienti:

nrclienti.prg

CLOSE ALL
CLEAR
A=SPACE(20)
SELECT COUNT(*);
FROM CLIENTI to A
@ 1,1 SAY "NUMARUL DE CLIENTI ESTE: "
CLOSE ALL
Vom folosi formulare atat dintr-o singura tabela, cat si din
mai multe tabele legate intre ele. Formularul principal se va numi
meniu.scx si este de forma:

-la alegerea butonului de Operatii:

- la alegerea butonului de Situatii Finale va fi:


Pentru fiecare buton din Situatii finale am pus in corespondenta
programul aferent.
BIBLIOGRAFIE:

1. Manual Fox Pro


2. Resurse Internet

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