| Opţiuni | Descriere |
|---|---|
| Opţiunea 2I (baza) | vânzări(t1), fişe de clienţi(t4), top vânzări(e1), cumpărări(t6), fişe furnizori(t8) cu posibilităţi de adaptare. Mai sunt disponibile fişierele: e4, e6, e8 |
| Opţiunea 3 | Permite implementarea unor sisteme de rapoarte suplimentare solicitate de utilizator: celelalte fişiere de la t0-t9 şi e1-e9, t_, n_, p_, tdoc. Există o procedură hMET2UP pentru crearea unui fişier de tip t.. |
Pentru adăugarea unui nou fişier tranzacţie t.. folosiţi HMET2UP:
Extragerea propriu-zisă a datelor are loc prin intermediul funcţiei fis_extragere(). Funcţia este parametrizabilă şi poate să parcurgă şi să extragă date din fişierele:
Prin conţinutul celui de-al doilea parametru se stabileşte, care dintre aceste fişiere vor fi parcurse în timpul extragerii.
Astfel se recunosc următoarele cuvinte-cheie:
MR - Receptii, MR-R Loturi intrare/stoc, MV - Facturi/iesiri, MV-R - Loturi de iesire, MI - Incasari si plati.
De exemplu:
fis_extragere (,"MR,MR-R,MV,MV-R") - se extrag date din fişierele Receptii, Loturi intrare/stoc, Facturi/iesiri, Loturi de iesire.
Extragerea se referă la o perioadă. Pentru fiecare fişier destinaţie în care se extrag date se poate stabili o perioadă activă, prin opţiunea Initializare/Perioade. Extragerea se va referi la perioada stabilită.
Extragerea poate fi de tip rulaj sau fişă:
Primul parametru al funcţiei fis_extragere() poate fi:
R - va iniţia o extragere de tip "rulaj", F - se va executa o extragere de tip "fişă".
Câmpurile fişierelor destinaţie în care se extrag datele pot fi câmpuri cu coduri dedicate şi câmpuri cu coduri liber alese.
Câmpurile cu codurile dedicate se încarcă automat, fără să fie necesară definirea unor formule de calcul, în timp ce câmpurile cu codurile liber alese se încarcă cu valorile returnate de formulele de calcul asociate. Astfel, formula ataşată unui câmp liber poate să adreseze direct câmpurile fişierului sursă din care se extrag datele. De exemplu, se extrag loturile de intrare, dar totodată se doreşte şi extragerea stocurilor curente. Pentru stocul curent nu există un câmp dedicat, prin urmare se extrage direct din fişierul de loturi.
Operaţia de extragere se lansează prin comanda:
fis_extragere("R","MR-R")
iar formula asociată câmpului în care se va extrage stocul curent al lotului va fi: lotm→STOCI - lotm→IESIRI
Evaluarea expresiei va fi făcută la executarea funcţiei fis_extragere(), adică în timpul operaţiei de extragere se va iniţia automat operaţia de calcul.
Dacă după operaţia de extragere se mai doreşte parcurgerea fişierului printr-o operaţie de calcul (ex. art_calcul()), va fi necesară ramificarea formulelor ataşate. Considerăm, că fişierul curent este T1, iar câmpul în care s-a calculat stocul este T1K1:
Tabele cu câmpurile dedicate, precum şi modul în care acestea sunt încărcate în cadrul operaţiei de extragere
cit_perioada()
Citeşte perioada (data_inc, data_sf, NumePerioada). Pentru o perioadă validă:
Poate fi apelat numai pt. T1…T9 şi T_
ver_ExPerioada()
Parcurge perioadele definite pentru fişierele generice care furnizează date pentru fişierul de export curent şi verifică perioadele definite pentru aceste fişiere. Funcţia se termină cu succes, dacă perioadele implicate sunt identice.
Ex. fişierul curent este E2 şi există operaţie de export definită pentru E2 în T1 şi T2. Se verifică, dacă perioadele definite pentru T1 şi T2 sunt identice.
Poate fi apelat numai pentru E1…E9 .
t_period(„<“)
Afişare pe ecran şi activare Perioada corespunzătoare unui fişier. Se apelează în:
Tip/nr. : INC./SF. / 01
Denumire: Actiune inaintea prelucrarii
Actiune : t_period("<")
t_period(„>“)
Ştergere de pe ecran şi dezactivare Perioada corespunzătoare unui fişier. Se apelează în:
Tip/nr. : INC./SF. / 02
Denumire: Actiune dupa prelucrare
Actiune : t_period(">")
Se pot adăuga proceduri (script hMET2) pentru executarea unor funcţii ca de exemplu liste speciale, programate cu generatorul de rapoarte hMET. Vezi exemplu în demo.
Codurile acestor proceduri trebuie să înceapă cu U, ca să poată fi lansate din meniu.
Lista este o foaie/un document care conţine o enumerare de date etc. înşirate într-o anumită ordine. Dacă lista conţine şi totaluri, utilizăm şi noţiunea de raport sau situaţie.
Crearea unei liste (unui raport) presupune aceleaşi faze ca şi crearea unui sistem informatic, doar cu conţinut specific:
1. definirea scopului
care sunt cerinţele utilizatorului final (informaţiile de care are
nevoie, cât de frecvent şi cât de rapid, în ce format)
2. analiza
ce date şi cum să fie redate de listă pentru a satisface cerinţele
de informare;
dacă este suficientă o listă;
dacă sistemul informatic conţine datele necesare creării listei;
posibilităţile tehnice de realizare a listei (ale listelor) având în
vedere şi cerinţele de performanţă (frecvenţa utilizării, volumul de
date care trebuie procesat, timpul disponibil pentru furnizarea
listei);
alegerea soluţiei
3. proiectarea
în ce tabele se află datele primare, din care se obţine lista;
paşii necesari procesării datelor având în vedere şi tehnologia
aleasă (de ex. hMET2, Microsoft Query);
cum trebuie procesate datele (filtre, agregări etc.);
ce titlu să aibă lista;
planificarea în detaliu a tuturor componentelor de program necesare
de elaborat;
dacă trebuie şi cum trebuie modificate componentele existente
pentru a integra noua listă;
4. elaborarea
dezvoltarea/modificarea componentelor de program
5. testarea
verificarea funcţionării în condiţii uzuale, extreme etc.
6. implementarea
instalarea la client
7. documentarea
are ca scop realizarea mai multor tipuri de documentaţii:
- tehnică - jurnalizează primele trei faze; prevede cum trebuie
făcută instalarea noii liste, prevede întreţinerea în
timp (de ex. dacă trebuie acordată atenţie specială
cu ocazia upgrade-urilor)
- utilizator - descrie modul de operare
8. darea în folosinţă
instruirea utilizatorilor, verificarea listelor de către utilizatori
Câteodată aceste faze se întrepătrund (materialele pentru documentare se adună încă de la faza 1) sau se schimbă ordinea lor (de ex. analiza şi proiectarea) sau sau ne dăm seama în mijlocul unei faze că este necesar să revenim la o fază anterioară (de ex. cu ocazia testării ne dăm seama că anumite cazuri particulare implică utilizarea unor criterii de filtrare suplimentare şi astfel trebuie să mai completăm proiectarea şi elaborarea).
Cu toate acestea, este important să avem în vizor aceste faze separat pentru că fiecare dintre ele are obiective bine definite.
Cu ocazia analizei şi proiectării listelor trebuie avute în vedere informaţiile minime privind specificarea acestora:
1. Ce anume se listează?
Din răspuns se deduce dacă lista se hrăneşte dintr-un singur tabel
(fişier) sau din mai multe.
Se stabileşte titlul listei.
2. Se includ toate datele din tabelele sursă sau trebuie filtrate?
Dacă trebuie filtrate, cum anume? (ce se include şi ce se exclude?)
Exemple:
- documente de ieşire, dar numai cele interne
- perioada pentru care se listează
Criteriile de filtrare sunt aceleaşi tot timpul sau utilizatorul trebuie
să aibă posibilitatea să le aleagă?
Exemple:
- criteriul de filtrare - numai documentele de ieşire validate să intre
în rezultat - se poate considera static, fiindcă acest criteriu trebuie
să fie adevărat ori de câte ori se generează lista;
- criteriul de filtrare - perioada - trebuie să fie parametrizat,
adică utilizatorul să aibă posibilitatea să specifice valorile
de la ... până la ...
3. Rândurile rezultate în ce ordine trebuie listate, după ce caracteristici?
Exemple: cod, denumire, dată, grupă etc.
4. Dacă sunt necesare subtotaluri? Cum se grupează datele?
Sunt necesare mai multe nivele (grupe şi subgrupe)?
Atenţie! Ordinea de listare şi gruparea pentru subtotaluri trebuie să
fie în concordanţă.
Exemple:
- lista facturilor cu subtotaluri pe zile - ordinea trebuie să fie după
data facturii
- lista documentelor cu subtotal pe tip document şi în cadrul tipului de
document după dată - ordinea trebuie să fie tip document şi în cadrul
tipului de document data.
5. De ce tip este lista?
Listă simplă - enumerează datele găsite, eventual la final afişează
încă un rând de total.
Raport - datele sunt grupate, subgrupate, cu totalizare la
sfârşitul grupelor.
Centralizator - listează doar rândurile de total ale grupelor,
subgrupelor.
Extras - nu prezintă datele în coloane, ci afişează fiecare rând
rezultat sub formă de fişă.
Balanţă - prezintă pe orizontală evoluţia elementelor urmărite.
Exemple:
- listă: lista documentelor de ieşire cu un total la sfârşit
- raport: lista documentelor cu subtotal pe tip document şi în cadrul
tipului de document pe zile
- centralizator: totalul documentelor pe zile şi pe tip document
- extras: "fluturaş" la salarii
6. Dacă tipul listei este listă/raport/centralizator, cum să arate capul de tabel?
Să fie format din mai multe rânduri?
De ex. în primul rând cu denumirea coloanelor,
în al doilea rând numărul coloanelor şi formula de calcul
(col5=col2 x col4 / 100)
În general conţinutul listelor legate de domeniul lui hMARFA precum şi nivelul lor de agregare se bazează pe următoarele trei caracteristici: timp, articol şi partener.
Aceste caracteristici se pot organizeza la rândul lor în diferite grupe, astfel:
Putem privi aceste caracteristici ca şi nişte dimensiuni:
La intersecţia oricăror 3 linii de coordonate se află valorile urmărite, cum sunt: cantitatea, preţul unitar, valoarea, etc.
În această privinţă, putem spune că utilizatorul doreşte să vadă prin intermediul unei liste o secţiune din volumul de date cuprins între cele 3 coordonate, secţiune care la rândul ei poate fi dintr-o singură bucată sau nu, adică continuă sau nu.
Acest lucru ne pune în faţa unei provocări, fiindcă o listă poate să redea doar una sau două dimensiuni.
Soluţia este următoarea: pentru a putea satisface nevoia de informare a utilizatorului referitor la toate cele 3 dimensiuni, în locul unei singure liste creăm un set de liste, care prin diferitele grupări, subgrupări, ordonări furnizează datele detaliat/agregat la toate nivelele necesare.
Pentru ca listele dintr-un asemenea set să funcţioneze optim (timpul în care sunt generate să fie cât mai mic), în practică s-a consacrat ca datele să fie procesate în două faze:
Astfel, prima fază trebuie executată doar o singură dată pentru întregul set de liste, şi numai faza a doua se execută pentru fiecare listă.
Să luăm o temă concretă, de exemplu Vânzările, şi să vedem un set de liste prin care putem simula cele trei dimensiuni. Apoi o să amintim două tehnologii pentru realizarea seturilor de liste.
Din Vânzări, caracteristicile care ne interesează pentru crearea raportărilor periodice sunt:
Exemple de liste pe care le putem genera din aceste de date (conţinut şi modul de procesare a datelor):
Două tehnologii cu care putem crea seturi de liste:
a) Microsoft Excel, în care putem importa datele din programele HAMOR Soft cu una dintre posibilităţile prezentate în capitolul 15.2, urmând ca aceste date să fie centralizate, filtrate cu ajutorul lui PivotTabel. În acest caz nu putem vorbi de un set de liste propriu-zis, fiindcă utilizatorul este cel care instruieşte Excelul cum să execute faza 2 manipulând tabelul pivot. Dezavantajul este că listele nu sunt predefinite şi este responsabilitatea utilizatorului să se asigure că a obţinut ce a vrut. În schimb, avantajul acestei tehnologii este că utilizatorul nu este limitat la un număr de liste, ci poate obţine practic orice rezultat.
b) realizarea setului de liste cu instrumente dedicate HAMOR Soft, ca fişierele de export ale aplicaţiilor hMET2, sau programul hMARFE. În acest caz utilizatorul beneficiază doar de listele predefinite, avantajul lor fiind că au fost testate în prealabil şi că utilizatorul nu trebuie să gândească cum să proceseze datele pentru a obţine ceea ce vrea.
Observaţie
Pentru a ilustra problema dimensiunilor şi pentru ca ea să fie înţeleasă cât mai uşor, ne-am bazat pe un exemplu cu 3 dimensiuni (grafic doar trei dimensiuni putem reprezenta). Dar teoretic pot fi oricâte dimensiuni. De ex. în situaţia noastră de vânzări am putea lua ca a patra dimensiune furnizorul articolelor vândute, ca a cincea dimensiune data achiziţionării, caz în care am avea două dimensiuni de timp.