Documente Academic
Documente Profesional
Documente Cultură
Introducere............................................................................................3
Analiza şi proiectarea aplicaţiei...............................................................4
I.1. Principalele etape în realizarea unei aplicaţii .........................................................................................4
I.2. Elemente de analiză.................................................................................................................................5
I.3. Alegerea SGBD-ului adecvat..................................................................................................................6
I.4. Proiectarea tabelelor şi stabilirea relaţiilor între tabele...........................................................................6
I.5.Introducerea datelor................................................................................................................................10
I.6. Adăugarea datelor..................................................................................................................................12
I.7. Modificarea datelor................................................................................................................................14
I.8. Ştergerea datelor....................................................................................................................................19
I.9. Situaţii finale - Proiectarea listelor .......................................................................................................21
I.10. Alcătuirea meniurilor...........................................................................................................................31
I.11. Utilizarea aplicaţiei..............................................................................................................................35
2
Introducere
Se cere:
1. definirea unei interfeţe utilizator ce permite încărcarea cu date şi actualizarea
bazei de date;
2. să se determine valoarea materialelor aprovizionate, grupate după mai multe
criterii: data la care s-a confirmat aprovizionarea prin Nota de Recepţie şi Constatare de
Diferenţe, furnizor, gestiune, furnizor şi data livrării;
3. proiectarea unor rapoarte care să furnizeze informaţiile pe care dorim să le
vizualizăm, organizate într-o manieră utilă;
4. aplicaţia va conţine şi un sistem minimal de help.
3
Analiza şi proiectarea aplicaţiei
4
întocmirea unui meniu prin intermediul căruia se pot lansa în execuţie sarcinile
specifice ale aplicaţiei;
verificarea schimbului de informaţie între obiecte:
validarea funcţionării aplicaţiei prin urmărirea rezultatelor obţinute şi compararea lor
cu rezultatele obţinute pe altă cale;
întocmirea documentaţiei de utilizare.
C). Exploatarea aplicaţiei - constă în:
utilizarea aplicaţiei folosind date reale;
actualizarea permanentă a bazei de date;
eventuale modificări şi/sau îmbunătăţiri aduse aplicaţiei.
5
va proiecta suma totală a valorilor recepţionate de societatea comercială, pentru
perioada presupusă;
să se afişeze lista materialelor aprovizionate, cantitativ şi valoric;
să se afişeze lista intrărilor de materialelor exprimate în $;
să se afişeze pentru toţi furnizorii valoarea datorată pentru materialele livrate;
să se afişeze situaţia totalurilor valorice pe fiecare magazie;
să se calculeze suma totală cuvenită, suma totală achitată şi restul de plată pentru un
furnizor.
6
Fig. 1.1.b Modul Design View
7
Fig. 1.2.b Modul Design View
8
Fig. 1.4. Tabelul tblmaterial
9
unu-la-mai-mulţi, între tblfurnizor şi tblplati, astfel unui articol din tblfurnizor
îi pot corespund mai multe articole din tblplati. Câmpul de legătură este
codfurnizor, cheie primară în tabelul tblfurnizor şi cheie străină în tabelul
tblplati.
unu-la-mai-mulţi, între tblfurnizor şi tblnrcd, astfel unui articol din tblfurnizor
îi pot corespunde mai multe articole din tblnrcd. Câmpul de legătură este
codfurnizor, cheie primară în tabelul tblfurnizor şi cheie străină în tabelul
tblnrcd.
mai-mulţi-la-mai-mulţi, între tblmaterial şi tblnrcd, astfel mai multor articole
din tblmaterial le corespund mai multe articole din tblnrcd şi invers. Prin
tabelul intermediar (de joncţiune) tblmataprovizionat relatia mai-mulţi-la-mai-
mulţi se descompune în două relaţii unu-la-unu.
I.5.Introducerea datelor
Formularele prin care se încarcă şi actualizează datele din aceste tabele sunt:
fFurnizori pentru încărcarea cu date sau actualizarea datelor din tabela tblfurnizor ;
fPlăţi pentru încărcarea cu date sau actualizarea datelor din tabela tblplăţi;
10
Fig. 1.8. Formularul fPlati
- fMaterial care permite încărcarea cu date sau actualizarea datelor din tabela
tblmaterial;
11
- fMatAprovizionat care permite încărcarea cu date sau actualizarea datelor
din tabela tblmataprovizionat.
stDocName = "fFurnizor"
12
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Comanda1_Click:
Exit Sub
Err_Comanda1_Click:
MsgBox Err.Description
Resume Exit_Comanda1_Click
End Sub
13
Private Sub Comanda9_Click()
DoCmd.Close
DoCmd.OpenForm "fFurnizor", , , , acFormAdd
End Sub
Private Sub Comanda11_Click()
On Error GoTo Err_Comanda11_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "fMeniuPrincipal"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Comanda11_Click:
Exit Sub
Err_Comanda11_Click:
MsgBox Err.Description
Resume Exit_Comanda11_Click
End Sub
14
În Form Header pentru formularul fPF sunt inserate casete de text pentru câmpurile
tabelei tblfurnizor, astfel că în timpul modificării datelor despre plăţile efectuate
furnizorilor, utilizatorul să aibă pe ecran şi datele de identificare ale furnizorilor.
Sursa pentru acest formular este tabelul tblpf, creat prin interogarea de tip make table
qPF (Fig.3.14.) a cărei fereastră Design are următorul aspect:
15
Dacă dorim să modificăm informaţiile legate de aprovizionare se va deschide caseta
de dialog în care se cere numărul notei de recepţie şi constatare de diferenţe.
Formularul fAprovizionare are ca sursă de date tabela tnrcd şi conţine
subformularul fMateriale ce are ca sursă de date interogarea qMateriale.
16
Fig. 1.16. Formularul fFurnizori
17
DoCmd.Close
DoCmd.OpenForm "fMaterial", , , , acFormAdd
End Sub
Private Sub Comanda5_Click()
DoCmd.Close
DoCmd.OpenForm "fMatAprovizionat", , , , acFormAdd
End Sub
18
I.8. Ştergerea datelor
Interogările pentru ştergerea datelor sunt interogări acţiune (DeleteQuery). Preluarea
valorii câmpului cheie cu care se accesează tabelele se precizează la momentul execuţiei.
Pentru ştergerea unei înregistrări din tabela tblfurnizor se defineşte interogarea
qStergFurnizori (Fig. 1.17.).
Codul SQL al acestei interogări este:
DELETE [tblfurnizor].[codfurnizor], [tblfurnizor].[denfurnizor], [tblfurnizor].
[localitate], [tblfurnizor].[adresa], [tblfurnizor].[codfiscal]
FROM tblfurnizor
WHERE ((([tblfurnizor].[codfurnizor])=[Codul furnizorului]));
19
Codul SQL al acestei interogări este:
DELETE tblmataprovizionat.nrnrcd, tblmataprovizionat.codmaterial,
tblmataprovizionat.cantaprov, tblmataprovizionat.pretaprov
FROM tblmataprovizionat
WHERE (((tblmataprovizionat.nrnrcd)=[NRCD]));
20
Codul SQL al acestei interogări este:
DELETE tblnrcd.nrnrcd, tblnrcd.datanrcd, tblnrcd.codfurnizor, tblnrcd.codgestiune,
tblnrcd.codfactura, tblnrcd.datafactura
FROM tblnrcd
WHERE (((tblnrcd.nrnrcd)=[NRCD]));
21
Fig. 1.22. Interogarea qValoareData
22
Fig. 1.23. Interogarea qValoareFurnizor
23
FROM tblnrcd INNER JOIN tblmataprovizionat ON [tblnrcd].
[nrnrcd]=[tblmataprovizionat].[nrnrcd]
GROUP BY [tblnrcd].[codfurnizor]
PIVOT [tblnrcd].[datanrcd];
24
un buton de comandă al cărui eveniment Click permite revenirea la meniul situaţiilor
finale (acestuia i s-a asociat macrocomanda macMaxValoare, Fig. 1.27);
25
Fig. 1.28.b. Interogarea qrycross
Pentru a calcula suma totală cuvenită, suma totală achitată şi restul de plată pentru un
furnizor am creat interogările qrycalcul1 (Fig.3.29) şi qrycalcul2 (Fig.3.30.), iar apoi pe
baza acestora formularul frmDiferente (Fig. 1.31.).
26
În cadrul frmDiferente am introdus apoi două controale TextBox pentru care am
precizat în fereastra Proprietăţi ca Sursa control următoarele expresii:
=IIf([Valoare]>[plati],"mai trebuie platit ","furnizor achitat")
=[Valoare]-[plati].
27
Fig. 1.32. Interogarea qryMateriale
Pentru a obţine lista cu preţurile maxim, minim şi mediu pentru intrările de materiale
pe coduri am creat interogarea qtotal2 (Fig. 1.34.), ce va extrage datele din
tblmataprovizionat, iar apoi pe baza acesteia a rezultat rptstatistica (Fig. 1.35.).
28
Fig. 1.34. Interogarea qtotal2
Sum(([cantaprov]*[pretaprov])+([cantaprov]*[pretaprov]*19/100)) AS Valoare
29
FROM tblnrcd INNER JOIN tblmataprovizionat ON tblnrcd.nrnrcd =
tblmataprovizionat.nrnrcd
GROUP BY tblnrcd.codgestiune;
Sursa acestei interogări o reprezintă tabelele tblnrcd şi tblmataprovizionat.
În vederea obţinerii unei liste a intrărilor de materiale exprimate în dolari am creat
interogarea qryValuta (Fig. 1.38.), bazată pe tblmataporvizionat, iar apoi rptValuta (Fig.
1.39.).Codul sursă al interogării qryValuta:
SELECT tblmataprovizionat.codmaterial, tblmataprovizionat.cantaprov,
tblmataprovizionat.pretaprov, [cantaprov]*[pretaprov]/[Tastati cursul] AS Valoare
FROM tblmataprovizionat;
Fig. 1.38 Caseta de dialog pentru qryValuta Fig. 1.39 Raportul rptValuta
30
Fig. 1.41 Raportul rptValuta
31
- scriind explicit o procedură adecvată, corespunzător unuia dintre
evenimentele legate de controlul creat în prealabil. Toate procedurile
asociate evenimentelor specifice unui formular şi controalelor aflate pe
acesta sunt reunite într-o secvenţă de cod asociată formularului
(CodeBehindForms).
Pentru ca formularul să aibă un aspect profesional, se utilizează proprietăţile de
formatare astfel: RecordSelector=No, NavigationButtons=No, DividingLines=No,
ScrollBars=Neither, MinMaxButtons=None, iar proprietăţii Caption i se atribuie o valoare
corespunzătoare.
Meniul principal (Fig.3.43.) conţine:
• un buton de comandă (PRELUARE DATE) pentru apelarea meniului de încărcare
cu date a tabelelor din baza de date;
• un buton de comandă (ACTUALIZARE DATE) pentru apelarea meniului ce
permite actualizarea datelor din tabelele bazei de date;
• un buton de comandă (SITUAŢII FINALE) pentru deschiderea unei ferestre de
interfaţă prin intermediul căreia utilizatorul poate obţine situaţiile finale cerute;
Actualizarea datelor
32
Meniul pentru actualizarea de date (Fig. 1.45.) conţine 3 butoane de comandă
(ADĂUGARE, MODIFICARE, ŞTERGERE) care determină deschiderea formularelor ce
constituie interfaţa pentru operaţiile de adăugare, modificare, şi respectiv ştergere, precum şi
un buton de comandă ce permite revenirea la meniul principal (căreia i s-a asociat
macrocomanda macActualizare ce permite revenirea la meniul principal maximizarea
acestuia şi închiderea formularului fACTUALIZARE).
33
Fig.3. 46 Formularul fADAUGARE Fig.3. 47 Formularul fMODIFICARE
34
un buton de comandă Valoare aprovizionare al cărui eveniment Click va deschide
formularul fValoare ce permite determinarea valorii materialelor aprovizionate;
un buton de comandă Datorii furnizori ce va deschide frmDiferenţe;
un buton de comandă Liste finale al cărui eveniment Click va deschide formularul
fListe;
un buton de comandă ce permite revenirea la meniul principal (căreia i s-a asociat
macrocomanda macSituatiiFinale).
35
36