Sunteți pe pagina 1din 10

Partea 1 Proiectarea formularelor pentru clasa de tranzacii Intrare materiale prin cumprare 1.

Definirea scenariilor i a sarcinilor de lucru ale utilizatorilor


Scenariul 1. Introducerea unei cumprri noi. Sarcinile de lucru sunt urmtoarele: Completarea datelor de individualizare a documentului nsoitor (tipul, numrul i data); Selectarea furnizorului. Utilizatorul introduce codul furnizorului dup care va verifica dac numele acestuia corespunde. n cazul n care utilizatorul nu tie codul furnizorului, atunci el va selecta numele acestuia din lista furnizorilor; !du"area unui nou furnizor (dac furnizorul dorit nu e#ist n $aza de date); Completarea datelor privind mi%locul de transport; Selectarea tipului de tranzacie dorit (dac este ac&iziionare cu sau fr factur); !du"area recepiilor corepunztoare documentului de nsoire. !ceast sarcin va fi reluat pentru fiecare recepie. Completarea datelor "enerale ale recepiei (numrul i data recepiei, ale"erea "estiunii pentru care este ntocmit recepia); !du"area articolelor de pe recepie. !ceast sarcin va fi reluat pentru fiecare articol de pe recepie; Selectarea materialului. Utilizatorul introduce codul materialului dup care va verifica dac este corect. n cazul n care utilizatorul nu tie codul materialului sau acesta este incorect, atunci el va selecta materialul respectiv dintr'o list cu toate materialele; !du"area unui material nou (dac materialul respectiv nu se "sete n list); Completarea datelor privind cantitatea i preul materialului respectiv de pe recepie; (erificarea totalului de pe recepie; (erificarea corectitudinii datelor introduse de pe documentul nsoitor. Se verific n special valoarea )(! i totalul documentului. *ac se constat unele diferene, atunci se verific detaliile de pe document. Corectarea valorii )(!. *ac valoarea )(! calculat difer de cea de pe factur, atunci se modific valoarea )(! su"erat (calculat) conform sumei nscrise pe document. Salvarea cumprrii. Scenariul 2. Adugarea unei recepii la un document nsoitor e!istent. Sarcinile de lucru sunt urmtoarele: Selectare document nsoitor. Cutarea documentului nsoitor poate fi fcut n funcie de tipul, numrul sau data documentului, numele furnizorului. !du"area recepiei (n continuare se e#ecut sarcinile de lucru descrise la scenariul +). Salvarea recepiei. Scenariul ". #odificarea datelor de pe o recepie. Sarcinile de lucru sunt urmtoarele: Cutare recepie. Cutarea unei recepii poate fi fcut n funcie de documentul nsoitor pe $aza cruia a fost ntocmit recepia (vezi prima sarcin de lucru de la scenariul ,), numrul recepiei, data recepiei, "estiunea pentru care a fost emis. -odificarea datelor de pe recepie. Se pot ivi urmtoarele situaii: nlocuirea (sc&im$area) "estiunii, adu"area unui articol nou, ter"erea unui articol de pe recepie, nlocuirea unui material, modificarea preului sau a cantitii. (alidare modificri sau a$andonare modificri. -odificarea "estiunii sau a cantitii unui material de pe recepie nu poate fi efectuat atunci c.nd stocul ar deveni ne"ativ prin acceptarea modificrilor. Scenariul $. %tilizatorul dorete s storneze o recepie. Sarcinile de lucru sunt urmtoarele:

Cutare recepie (vezi prima sarcin de lucru de la scenariul /). Stornare recepie. (alidare stornare recepie sau a$andonare stornare recepie n cazul apariiei unor erori. 0ecepia nu poate fi stornat dac este sin"ura recepie pentru un document nsoitor sau stocul este consumat parial sau total. Scenariul &. Introducerea unei facturi sositecu nt'rziere( pentru care recepiile sunt de)a introduse. Sarcinile de lucru sunt urmtoarele: Completarea datelor de individualizare a facturii (numrul i data facturii). Selectarea documentului de nsoire pe $aza cruia s'a fcut iniial recepia (de re"ul avizul de nsoire). Cutarea documentului poate fi fcut n funcie de tipul, numrul sau data documentului, numele furnizorului. (or fi afiate pentru selectare doar avizele de nsoire care nu au factura. (erificarea corectitudinii datelor din factur (vezi penultima sarcin de lucru de la scenariul +). Corectarea valorii )(! (vezi ultima sarcin de lucru de la scenariul +). Salvarea facturii. Scenariul *. +izualizarea recepiilor. Sarcinile de lucru sunt urmtoarele: 1iltrare recepii. n funcie de criteriul de filtrare dorit, se va realiza una din sarcinile de lucru urmtoare: Specificarea perioadei de timp, n cazul n care se dorete afiarea recepiilor operate ntr'o perioad anume. Selectare document nsoitor, n cazul n care se dorete vizualizarea recepiilor corespunztoare unui document nsoitor (vezi prima sarcin de lucru de la scenariul ,). Specificarea numrului recepiei, dac se dorete vizualizarea unei sin"ure recepii. Specificarea "estiunii pentru care se vor vizualiza recepiile. Specificarea materialului pentru care se vor vizualiza recepiile. Cutarea recepiei poate fi fcut n funcie de o anumit perioad, numrul sau data recepiei, "estiunea pentru care a fost ntocmit, documentul nsoitor pe $aza creia a fost ntocmit. Scenariul , Utilizatorul dorete s vizualizeze un document nsoitor. Sarcinile de lucru sunt urmtoarele: 1iltrare documente nsoitoare. n funcie de criteriul de filtrare dorit, se va realiza una din sarcinile de lucru urmtoare: Specificarea perioadei de timp. Selectarea furnizorului. Specificarea tipului i a numrului documentului. Cautarea documentului poate fi realizat n funcie de o anumit perioad, tipul documentului, numrul sau data documentului, furnizorul de la care a fost primit, documentul corespondent (pentru facturile nt.rziate), o recepie ce a fost ntocmit pe $aza lui. 2. Identificarea i definirea o-iectelor i aciunilor formularului a) Sta$ilire dimensiune standard (233#433); $) 5dentificarea surselor de date necesare functionarii formularului(ta$elele utilizate pentru cumparare sunt *6C758S6)5)60, 09C9:)59, !0)709C9:)59, 1U085;60, -!)905!<, =9S)5U89, 86-7)0!8;); c) Sta$ilire modalitate de afiare date, ale"erea controalelor potrivite ("rid'uri pentru datele din ta$ele datorit uurinei de utilizare final). Ca re"ul "eneral, pentru c.mpurile ce constituie c&eie strin n ta$elele copil vom ale"e controale de tip Com$o>o# ce vor cuprinde elemente din ta$ela printe, pentru c.mpurile de tip lo"ic (.). sau .1.) vom ale"e C&ec?>o#'uri, etc. d) Sincronizarea controalelor cu sursele de date (ta$elele de $az ce intervin la cumparare);

e) !dau"area $utoanelor ce vor asi"ura funcionalitatea formularului si efectuarea tranzaciilor; f) 5mplementarea comportamentului diverselor o$iecte de pe formular ") 0afinarea formularului: +. adu"area unor informaii suplimentare (diverse sume totale, luna curent de lucru, etc@); ,. linia curent dintr'un o$iect de tip "rid va avea o alt culoare tocmai pentru a scoate in eviden localizarea curent a controlului la un moment dat; /. asi"urarea unei funcionaliti totale a formularului prin utilizarea e#clusiv a tastaturii (com$inaiile de taste se recomand s fie identice pentru operaiuni identice ca spre e#: adau"are'C)0<A;', modificare BC)0<A-' etc@; tre$uie s fie $ine definit ordinea n care o$iectele primesc controlul la apsarea tastei )!> sau 98)90). &) 1acilitati de utilizare propuse: +. ordonarea documentelor insotitoare dup oricare din c.mpuri ; ,. filtrarea documenteleor pentru orice perioad, aleator aleas ; /. utilizatorul va avea posi$ilitatea efecturii de cutri dup numrul facturii al avizului sau al recepiei -ai nt.i de toate tre$uie s precizm c utilizatorul nu poate efectua nici o modificare (coloanele tuturor "rid'urilor din formular sunt 0ead6nlC) dac nu apas $utonul de modificare. n momentul n care se intr n faza de actualizare a date (modificare, adu"are, ter"ere) se produc urmtoarele modificri de comportament la nivelul formularului: ' n pa"ina 1acturiD!vize controlul este $locat pe linia curent din "rid (care devine edita$il); ' dac utilizatorul deplaseaz controlul pe ultima coloan a "rid'ului i apas tasta E F (s"eata la dreapta) controlul trece automat pe pa"ina urmtoare. ' n pa"ina 0eceptii avem acces numai la recepiile documentului nsoitor curent (c&ec?$o#'ul notat cu ++ n fi"ura, devine inactiv); validarea modificrilor se face prin apsarea $utonului S!<(!09 1 .

" & * ,

Figure 1. Formularul de nregistrare a receptiilor: pagina pentru preluarea documentelor nsoitoare.

1$

11

12 /

10 1"

Figure 2. Formularul de nregistrare a receptiilor: pagina pentru nregistrarea recepiilor aferente facturii/avizului curent.

'

8r. 6$iectG + ,

)a$el + Semnificaia o$iectelor de pe formularul de nre"istrare a cumprrilor *enumire Comentarii )#t*ata5nit )#t*ata1in =rd*oc5nsotitor Cele doua te#t$o#'uri vor fi utilizate pentru afiarea doar a acelor documente care corespund (d.p.d.v. al datei operrii) perioadei specificate =rid'ul pentru afiarea documentelor nsoitoare. Sursa de date o constituie ta$elele *oc75nsotitor, 1urnizor, 8om7tranz. <a un clic? de mouse pe titlul oricrei coloane, datele se ordoneaz ascendent dup valorile din coloana respectiv <inia curent are alt culoare.Coloanele sunt 0ead'6nlC dac utilizatorul nu a specificat nceputul unei tranzacii noi(adu"are, modificare, ster"ere). Coloana *!)! 6:90!09 este permanent 0ead'6nlC. =rid 0ead'6nlC ce are ca surs un cursor care nsumeaza cantitile din fiecare produs de pe toate recepiile corespunztoare unei facturi sau aviz de e#pediie 9ste utilizat pentru afiarea modului de lucru n care se afl utilizatorul la un moment dat (va afia Eadau"are dateF, E-odificare *ateF sau E(izualizare *ateF). >utoane pentru adu"are, modificare, ter"ere documente nsoitoare >utoane pentru validarea sau anularea unei tranzacii.

/ H I 4

=rd<iniifact <$lStare >tn!dd*oc >tn-od*oc >tnSt"*oc >tnSave >tnCancel

J 2 K

<$l)otal1act 6pt=roupCeCaut )#tCauta =rd0eceptii

+3 ++ +, +/ +H

=rd!rt0eceptii C&?)oate0ec >tn!dd0ec >tnSt"0ec >tnStorn0ec >tn!dd!rt >tnSt"!rt <$l8r1act <$l8r!viz

<a$el ce totalizeaz valoric recepiile aferente unui anumit document nsoitor =rup de cutare a unei facturi, aviz sau recepie (n funcie de opiunea $ifat) dup numrul documentului. =rid ce are ca surs ta$ela 0ecepii, filtrat pentru a afia doar recepiile aferente documentului nsoitor curent (linia curent din "rid'ul =rd*oc5nsotitor din pa"ina 1acturiD!vize). *ata operarii este 0ead'6nlC. !rticolele de pe recepia curent(linia curent din =rd0eceptii). !re ca surs un vieL parametrizat ((artreceptii) pe ta$ela !rt0ecepii *ac este $ifat afieaz toate recepiile indiferent de documentul nsoitor curent). 8u este activ (i este Ede$ifatF) n cazul modificrilor(e#istena unei tranzacii n curs) >utoane de adu"areDster"ereDstornare receptii >utoane de adu"areDter"ere articole recepionate

8umrul facturii i al avizului anterior(dac este cazul). n cazul e#istenei unui aviz anterior se precizeaz n parantez pentru numrul de factur respectiv(nt.rziat) G8umrul o$iectelor corespunde notaiilor din fi"urile + i ,

*View pentru articolele receptionate idrec_ !1111! "" varia#ila initializata cu o valoare aleatoare in scopul functionarii codului ce urmeaza create s$l view Vartreceptie as % select * from art_receptie w&ere 'dreceptie idrec_ d#setprop()Vartreceptie)*)view)*)ta#les)*)art_receptie )+ d#setprop()Vartreceptie.'dreceptie)*)field)*),e-field)*.t.+ d#setprop()Vartreceptie.matcod)*)field)*),e-field)*.t.+ d#setprop()Vartreceptie.'dreceptie)*)field)*)updatename)*)art_receptie.idreceptie)+ d#setprop()Vartreceptie.matcod)*)field)*)updatename)*)art_receptie.matcod)+ d#setprop()Vartreceptie..rcantitate)*)field)*)updatename)*)art_receptie..rcantitate)+ d#setprop()Vartreceptie..rpret)*)field)*)updatename)*)art_receptie..rpret)+ d#setprop()Vartreceptie.'dreceptie)*)field)*)updata#le)*.t.+ d#setprop()Vartreceptie.matcod)*)field)*)updata#le)*.t.+ d#setprop()Vartreceptie..rcantitate)*)field)*)updata#le)*.t.+ d#setprop()Vartreceptie..rpret)*)field)*)updata#le)*.t.+ d#setprop()Vartreceptie)* )view)* )/end0pdates)* .t.+

Partea a 21a Proiectarea raportului 23ie de magazie


0aportul este destinat evidenei cantitativ'valorice a materiilor prime i materialelor, fiind necesar ntr'o form c.t mai apropiat de formatul presta$ilit, ane#at acestui document. 0aportul se o$ine pentru fiecare material din fiecare "estiune, dintr'o fereastr iniial ale".ndu'se parametrii: ChkAllGest, ChkAllMat, CboGestiune, CboMaterial.

6$iectele ferestrei sunt: 6$iect )ip C&?!ll=est C&ec?>o#

C&?!ll-at

C$o=estiune

C$o-aterial

6$servaii *efault value M 3 5n cazurile: ' caz:value M 3, atunci: C$o=estiune este disponi$il i raportul se va face pentru "estiunea selectat n acest o$iect; ' caz:value M +, atunci: C$o=estiune nu este disponi$il i raportul se va face pentru toate "estiunile. C&ec?>o# *efault value M 3 5n cazurile: ' caz:value M 3, atunci: C$o-aterial este disponi$il caz:value M +, atunci: C$o-aterial nu este disponi$il *ropdoLn<ist Se umple cu datele din intero"area urmtoare: Select =est*en, =estCod 1rom =estiune 6rder >C =est*en (aloarea sa va fi dat de a doua coloan din selecie. <a modificarea valorii selectate se reumple C$o-aterial doar cu materialele din "estiunea selectat. *ropdoLn<ist Se umple cu datele din intero"area urmtoare: Select -at*en, m.-atCod 1rom -aterial m, Stocuri s N&ere m.-atCod M s.-atCod !nd =estCod M CboGestiune 6rder $C -at*en (aloarea sa va fi dat de a doua coloan din selecie.

5ntero"area raportului:

Select MatCod, GestCod, { / / } as Data,'S i' as TipDoc,; Space(6) as NrDoc,MatStociAn as Cant,; AflaCM (MatCod,!ear(Date()),") as #; $ro% Stoc&ri s; 'nto C&rsor c"; ()ere iif(ChkAllGest * +, s,GestCod * CboGestiune,,t,); And iif(ChkAllMat * +, s,MatCod * CboMaterial,,t,); #nion; Select MatCod, GestCod, -ecData, '-.C', -ecNr, ArCantitate, Ar ret; $ro% -eceptie r, Art/-eceptie a; ()ere r,'d-eceptie * a,'d-eceptie; And iif(ChkAllGest * +, r,GestCod * CboGestiune,,t,); And iif(ChkAllMat * +, a,MatCod * CboMaterial,,t,); #nion; Select MatCod, GestCod, ConsDataDoc, ConsTipDoc, ConsNrDoc,; 0AcCantitate, AflaCM (MatCod,!ear(ConsDataDoc),Mont)(ConsDataDoc)); $ro% Cons&% c, Art/Cons&% a;

()ere c,'dCons&% * a,'dCons&%; And iif(ChkAllGest * +, c,GestCod * CboGestiune,,t,); And iif(ChkAllMat * +, a,MatCod * CboMaterial,,t,); #nion; Select MatCod, GestCodD, TrDataDoc, 'T-D', TrNrDoc,; AtCantitate, AflaCM (MatCod,!ear(TrDataDoc),Mont)(TrDataDoc)); $ro% Transfer t, Art/Transfer a; ()ere t,'dTransfer * a,'dTransfer; And iif(ChkAllGest * +, t,GestCodD * CboGestiune,,t,); And iif(ChkAllMat * +, a,MatCod * CboMaterial,,t,); #nion; Select MatCod, GestCodS, TrDataDoc, 'T-S', TrNrDoc,; 0AtCantitate, AflaCM (MatCod,!ear(TrDataDoc),Mont)(TrDataDoc)); $ro% Transfer t, Art/Transfer a; ()ere t,'dTransfer * a,'dTransfer; And iif(ChkAllGest * +, t,GestCodS * CboGestiune,,t,); And iif(ChkAllMat * +, a,MatCod * CboMaterial,,t,) Select C",MatCod, MatDen, C",GestCod,; GestDen, Data,TipDoc,NrDoc,Cant, #; $ro% C", Material %, Gesti&ne 1; 'nto C&rsor C"; ()ere C",MatCod*%,MatCod; And C",GestCod * 1,GestCod

!flaC-: este o funcie ce are parametrii -atCod7, !n7 i <una7 i care tre$uie s citeasc din ta$ela -aterialC-: ultimul Cmp e#istent pentru respectivul material cu intero"area: Select MatC%p,
Ma2(MatAn3"45Mat6&na); $ro% MaterialC%p; ()ere MatCod * MatCod/; And MatAn3"45Mat6&na 7* An/ 3 "456&na/

0aportul va conine: :a"e &eader: =roup =estCod Qeader =roup -atCod Qeader *etail =roup -atCod 1ooter 1ormatul raportului:

)itlul raportului: O1ise de ma"azieP, data realizrii raportului Codul i numele "estiunii: =estCod, =est*en Codul i numele materialului: -atCod, -at*en i capul de ta$el: *ata doc., 8r. doc., )ip doc., Cantitate, :re unitar corespunztor c.mpurilor de la *etail. C.mpurile intero"rii raportului: *ata, 8r*oc, )ip*oc, Cant, :u Stocul curent: suma c.mpului Cant pentru respectivul -atCod.

Partea a "1a Proiectarea unui modul de rapoarte dinamice


:entru informaiile specifice nomenclatoarelor i datelor ce se pot calcula pentru fiecare r.nd din acestea, rapoartele nu au ntotdeauna o form presta$ilit i de aceea utilizatorul tre$uie s ai$ posi$ilitatea s i personalizeze c.t mai mult raportul: ' s alea" c.mpurile care s apar; ' s alea" c.mpurile dup care s se fac ordonarea; ' s introduc filtre presta$ilite; ' s introduc filtre "eneralizate; ' s introduc titlul raportului; ' s alea" imprimanta la care se trimite raportul; ' s salveze dac dorete raportul su$ un format electronic. -odulul de rapoarte dinamice tre$uie ".ndit n aa fel n c.t s nu fie fcut pentru un anumit nomenclator sau pentru o anumit tem. 6$iectele ferestrei sunt: 6$iect 0apoarte !ll1ields 6rder1ields Use1ields 5mprimanta )ip 6ption=rup <ist>o# <ist>o# <ist>o# C&ec?>o# 6$servaii Conine toate rapoartele ce se pot realiza cu modulul de rapoarte universale. <a modificarea valorii selectate se reumplu o$iectele: !ll1ields, 6rder1ields, Use1ields. Conine toate c.mpurile ce ar putea fi folosite n raport i se umple cu date din dicionarul de date. Conine c.mpurile dup care tre$uie s se ordoneze datele n raport i se umple iniial cu date din dicionarul de date. Conine c.mpurile ce tre$uie folosite n raport i se umple iniial cu date din dicionarul de date. *efault value M 3 5n cazurile: ' caz:value M 3, atunci: raportul se previzualizeaz; ' caz:value M +, atunci: se d posi$ilitatea ale"erii imprimantei. *efault value M 3 5n cazurile: ' caz:value M 3, atunci: raportul nu se salveaz ' caz:value M +, atunci: raportul se salveaz i tre$uie s apar o fereastr Save As pentru ca utilizatorul s alea" numele fiierului i calea de directoare. <a apsarea lui r.ndurile selectate din !ll1ields vor apare i n 6rder1ields <a apsarea lui r.ndurile selectate din 6rder1ields vor fi terse <a apsarea lui r.ndurile selectate din !ll1ields vor apare i n Use1ields <a apsarea lui r.ndurile selectate din Use1ields vor fi terse n acest o$iect ar putea fi introduse de ctre utilizatori avansai orice condiii cu sinta#a condiiilor de la clauza N&ere a comenzii Select din SR<.

9#cel

C&ec?>o#

!dd1ield *ele1ield !dd1ield, *ele1ield, 1iltru

>utton >utton >utton >utton 9dit>o#

)itlu

9dit>o#

Conine titlul raportului. 5niial poate fi propus un nume luat din dicionarul de date.

1ereastra de dialo" pentru confi"urarea rapoartelor dinamice ar putea fi:

Proiectarea 4aportului 56alana analitic a materialelor7 Sursa de date a raportului este cursorul c+ realizat astfel:
Select %,MatCod,%,MatDen,%,Mat#%,%,MatCont,; AflaCM (%,MatCod,!ear(Date()),Mont)(Date())) as C%pCrt,; s,MatStoc'6&na as Stoc'6&na,s,MatStocCrt as StocCrt,; s,MatStoc'An as Stoc'An,; 1,GestCod,1,GestDen; $ro% Material %, Stoc&ri s, Gesti&ne 1; 'nto C&rsor c"; ()ere %,MatCod * s,MatCod; And s,GestCod*1,GestCod; Gro&p 89 %,MatCod, s,GestCod Select MatCod,GestCod,S#M(ArCantitate) as Cant-ec; $ro% -eceptie r, Art/receptie ar; 'nto C&rsor c4; ()ere r,'d-eceptie*ar,'d-eceptie; Gro&p 89 MatCod,GestCod Select MatCod,GestCod,S#M(AcCantitate) as CantCons;

$ro% Cons&% c, Art/cons&% ac; 'nto C&rsor c:; ()ere c,'dCons&%*ac,'dCons&%; Gro&p 89 MatCod,GestCod Select MatCod,GestCodS,GestCodD,S#M(AtCantitate) as CantTransf; $ro% Transfer t, Art/Transfer at; 'nto C&rsor c;; ()ere t,'dTransfer*at,'dTransfer; Gro&p 89 MatCod,GestCodS,GestCodD Select c",3,N<6(Cant-ec,+) as Cant-ec,N<6(0CantCons,+) as CantCons,; N<6(c;,CantTransf,+) as 'ntrTransf,N<6(0c=,CantTransf,+) as 'esitTransf; $ro% c" left o&ter >oin c4 on ; c",MatCod*c4,MatCod and c",GestCod*c4,GestCod; left o&ter >oin c: on ; c",MatCod*c:,MatCod and c",GestCod*c:,GestCod; left o&ter >oin c; on ; c",MatCod*c;,MatCod and c",GestCod*c;,GestCodD; left o&ter >oin c; c= on ; c",MatCod*c=,MatCod and c",GestCod*c=,GestCodS; 'nto C&rsor C"

0aportul va conine: :a"e &eader:

=roup =estCod Qeader

*etail

:a"e footer

(a conine: ' Si"la; ' )itlul raportului luat din formularul de confi"urare; ' =estCod i =est*en luate din sursa de date a raportului. :entru fiecare nou "rup al raportului se trece la o nou pa"in. Capul de ta$el al raportului cu: ' numrul curent; ' denumirea, codul materialului ; ' celelalte c.mpuri alese din formularul de confi"urare. (a conine: ' 8rCrt varia$il a raportului ce numr elementele din fiecare "rup; ' -at*en, -atCod; ' celelalte c.mpuri alese din formularul de confi"urare. :a"ina i data curent

+3

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