Documente Academic
Documente Profesional
Documente Cultură
Generator de rapoarte
Manual de utilizare
Prezentare generala
Accesarea Generatorului de rapoarte se poate face prin dou modaliti:
Fereastra principal
Se alege un titlu pentru raport, categoria este implicit aleas ca fiind un raport
personalizat, iar ablonul reprezint un punct de start n crearea unui nou raport, adic se
va face o copie a raportului selectat, el putnd fi modificat fr repercusiuni asupra
originalului.
3. Parametrii raportului
Orice raport trebuie s poat fi generalizat (e.g.: s se poat aplica mai multor
documente de acelai fel) sau s poat fi personalizat introducndu-se filtre. Aici intervin
parametrii raportului. Ei sunt definii din fereastra Lista de campuri, efectund click
dreapta pe opiunea Parameters i alegnd Add Parameter:
4. Scriptul SQL
Orice raport, indiferent de destinaia acestuia, va avea la baz o surs de date.
Aceasta surs de date este definit prin meniul Script SQL Editeaz script SQL. Aceast
opiune de meniu permite introducerea unui script SQL.
Scriptul SQL poate fi sub forma unei proceduri stocate:
Se pot folosi scripturile SQL din rapoarte similare pentru a avea un punct de plecare
n raportul nou.
Un script SQL permite un singur rezultat (o singur comand SELECT care aduce
informaii din baza de date). El va fi executat pe un server Microsoft SQL Server (minim
versiunea 2005) i de aceea scriptul scris fie trebuie sa fie n concordan cu standardele
Microsoft SQL Server 2005 (sau mai mare) fie s fie ANSI SQL.
! Atenie !
Procedurile stocate i tabelele livrate cu aplicaia nu trebuie sub nici o msur
modificate. Modificarea acestora va conduce la coruperea bazei de date!
Dac se dorete crearea de proceduri stocate sau tabele, altele dect cele
livrate mpreun cu aplicaia, numele procedurilor stocate trebuie s nceap cu
UserSP_, iar numele tabelelor trebuie s nceap cu UserTable_!
Exemplu de creare a unei proceduri stocate:
CREATE PROCEDURE UserSP_MACHETA_FacturaVanzare_v2
@documentId INT
AS
BEGIN
SELECT
*
FROM
Documents d
WHERE
d.Id = @documentId
END
Exemplu de creare a unei tabele:
CREATE TABLE UserTable_RaportVanzari_Cache
(
Id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
Valoare DECIMAL(28,6) NULL,
NumeArticol NVARCHAR(MAX) NOT NULL
)
Create n acest fel, aceste proceduri stocate i/sau tabele nu vor afecta
integritatea bazei de date.
5. Filtrarea raportului
Un raport poate fi filtrat n mod interactiv dup urmtoarele criterii:
-
Ageni
Articole
Categorii de articole
abloane de articole
Conturi
Bnci
Parteneri
Case
Depozite
Pentru a se realiza aceast filtrare, codul SQL trebuie scris ntr-un mod
corespunztor:
n seciunea proieciilor trebuie s existe o legtur cu tabela de filtrare, denumit
ReportFilters.
Aceast legtur trebuie s arate identic exemplelor ce urmeaz.
.1. Primul pas (pentru toate tipurile de filtrri) este preluarea ID-ului de utilizator:
DECLARE @userId AS INT
SELECT @userId = @userIdInt
Unde @userIdInt este parametru al procedurii stocate. Dac o procedur stocat
rulat n raport conine parametrul @userIdInt, acesta va fi completat automat, la rulare,
cu IDul utilizatorului curent. Acest fapt ajut n cazul n care doi utilizatori acceseaz
rapoarte. Filtrele sunt salvate n raport mpreun cu IDul de utilizator, astfel fiecare
utilizator va avea filtrul su ales.
.2. Al doilea pas este definirea identificatorului de entitate pentru filtrare:
DECLARE @agentEntity AS INT
SELECT
@agentEntity = l.Id
FROM
Lookup AS l
INNER JOIN Lookup_Types lt
ON lt.Id = l.LookupTypeId
AND LTRIM(RTRIM(UPPER(lt.[Value]))) = 'ENTITY'
WHERE
LTRIM(RTRIM(UPPER(l.[Value]))) = 'AGENT'
.3. n final, al treilea i ultimul pas, adugarea filtrrii:
INNER JOIN ReportFilters rfAgents
ON ISNULL(agent.Id,'') = ISNULL(ISNULL(rfAgents.EntityId,
agent.Id),'')
AND rfAgents.LookupEntityId = @agentEntity
AND rfAgents.UserId = @userId
Atenie la linia:
INNER JOIN ReportFilters rfAgents
Trebuie sa arate exact aa cum a fost prezentat pentru a avea efect. nainte de
afiarea formei de previzualizare, se caut n codul SQL linii de forma de mai sus, iar in
funcie de alias-ul tabelei ReportFilters se afieaz un anumit filtru.
n continuare sunt prezentate cteva din filtrele posibile (codul SQL pentru filtrare).
Parteneri
DECLARE @partnerEntity AS INT
SELECT @partnerEntity = l.Id
FROM Lookup l INNER JOIN Lookup_Types lt ON lt.Id = l.LookupTypeId
AND LTRIM(RTRIM(UPPER(lt.[Value]))) = 'ENTITY'
WHERE LTRIM(RTRIM(UPPER(l.[Value]))) = 'PARTNER'
INNER JOIN ReportFilters rfPartners
ON ISNULL(partner.Id,'') = ISNULL(ISNULL(rfPartners.EntityId,
partner.Id),'')
AND rfPartners.LookupEntityId = @partnerEntity
AND rfPartners.UserId = @userId
Articole
DECLARE @articleEntity AS INT;
SELECT @articleEntity = l.Id
FROM Lookup l INNER JOIN Lookup_Types lt ON lt.Id = l.LookupTypeId
AND LTRIM(RTRIM(UPPER(lt.[Value]))) = 'ENTITY'
WHERE LTRIM(RTRIM(UPPER(l.[Value]))) = 'ARTICLE'
INNER JOIN ReportFilters rfArticles
ON ISNULL(article.Id,'') = ISNULL(ISNULL(rfArticles.[EntityId],
[article].[Id]),'')
AND rfArticles.LookupEntityId = @articleEntity
AND rfArticles.UserId = @userId
Depozite
DECLARE @warehouseEntity AS INT;
SELECT @warehouseEntity = l.Id
FROM
Lookup AS l INNER JOIN Lookup_Types AS lt ON lt.Id =
l.LookupTypeId AND LTRIM(RTRIM(UPPER(lt.[Value]))) = 'ENTITY'
WHERE LTRIM(RTRIM(UPPER(l.[Value]))) = 'WAREHOUSE';
Ageni 'AGENT'.
Articole - 'ARTICLE'.
Categorii de articole - 'ARTICLECATEGORY'.
abloane de articole - 'ARTICLETEMPLATE'.
Conturi - 'ACCOUNTINGPLAN'.
Bnci - 'BANK'.
Parteneri - 'PARTNER'.
Case - 'TREASURYHOUSE'.
Depozite - 'WAREHOUSE'.
Ageni rfAgents.
Articole rfArticles
Categorii de articole - rfArticleCategories
abloane de articole - rfArticleTemplates
Conturi - rfAccountingPlans
Bnci - rfBanks
Parteneri - rfPartners
Case - rfTreasuryHouses
Depozite rfWarehouses
10
6. Design-ul raportului
Un raport este compus din mai multe benzi. Fiecare band n parte, cu excepia benzii de
detalii, este compus din dou componente: nceput/antet (Header) i sfrit (Footer):
Lista benzilor
1. TOP MARGIN reprezint marginea superioar a paginii. n general se pot introduce
informaii legate de paginare, titlul raportului, data listrii, etc.
2. REPORTHEADER antetul raportului este o band care apare o singur dat ntrun raport, la nceputul acestuia. Utilitate: introducere titlu raport, informaii
raport (date client, date furnizor, etc)
3. PAGEHEADER antetul paginii o band care apare pe fiecare pagina, la nceputul
acesteia. Utilitate: afiare cap de tabel sau alte informaii pertinente unei pagini.
4. GROUPHEADER antetul unei grupri o band mai special care permite o grupare
a informaiilor rezultate din scriptul SQL. De exemplu, dac se afieaz o list de
articole rezultat din facturile de vnzare, acestea pot fi grupate dup denumirea
lor (ArticleName). n acest fel se asigur unicitatea articolelor. Aceast band
poate s apar de mai multe ori pe o pagin sau pe raport, n funcie de rezultatul
gruprii. Se pot aduga mai multe grupri pe un raport, n funcie de necesitate.
11
5. DETAIL poate cea mai important band a unui raport reprezint acea parte a
raportului care enumer rezultatul scriptului SQL. Daca acest rezultat conine 10
rnduri, amplasarea n aceast band unui singur cmp din lista de cmpuri
conduce la afiarea tuturor celor 10 rnduri.
6. GROUPFOOTER reprezint sfritul unei grupri. n aceast band se pot face
subtotaluri, sau afia informaii pertinente acelei grupri.
7. REPORTFOOTER apare o singur dat pe raport, la sfritul su. n general, n
aceast band se afieaz totalurile pe raport.
8. PAGEFOOTER reprezint sfritul paginii, aceast band apare pe fiecare pagin
n parte. Se pot afia subtotaluri pe pagin, sau alte informaii.
9. BOTTOM MARGIN marginea inferioar a paginii band folosit n special pentru
afiarea paginii curente, a datei listrii sau alte informaii.
Pe toate paginile
Nu mpreun cu antetul raportului
Nu mpreun cu sfritul raportului
Nu mpreun cu antetul i sfritul raportului
12
2. GROUPHEADER
Se poate alege cmpul sau cmpurile dup care se face gruparea. Se poate specifica
modul de mprire a gruprii pe pagin (legat de ultimul rnd din DETAIL sau pe toat
pagina). Se poate specifica ordinea (n cazul mai multor grupri). Se poate alege modalitatea
de ordonare a informaiilor afiate in aceast band.
3. DETAIL
Se poate alege cmpul dup care se face ordonarea rndurilor n aceast band. Bifa
Keep Together va menine mpreun informaiile pentru un rnd din aceast band n cazul
n care s-ar mpri pe mai multe pagini.
13
4. GROUPFOOTER
Se poate alege ca sfritul gruprii s fie n permanen legat de ultimul rnd din
banda DETAIL. Se poate afia pe fiecare pagin. Se poate afia n josul paginii, oarecum similar
PAGEFOOTER-ului.
n rest, opiunile benzilor sunt oarecum similare.
14
Data Binding reprezint legtura cu sursa de date din scriptul SQL. Se alege automat
la tragerea unui cmp pe raport. Format String permite afiarea ntr-un anumit mod al
informaiilor din cmp. De exemplu, pentru un coninut de tip dat (DATETIME/DATE) se
poate alege modul de afiare: zz/LLLL/aaaa (dd/MMMM/yyyy) sau aa.ll.zz (yy.MM.dd). Exist
presetri pentru aceste tipuri de afiri din care se pot alege. Summary permite calcule pe
seturi de date (sume, medii, maxime, minime, etc). Angle specific unghiul la care este
afiat cmpul.
2. Checkbox
Acest tip de control poate fi legat la un cmp din baza de date de tipul BIT.
15
3. Rich Text
Acest control poate afia textul n mai multe formate, cu fonturi diferite, stiluri
anume, etc. n general utilizat pentru text static (care nu vine din baza de date/scriptul
SQL).
4. Picture Box
5. Table
Se poate afia un tabel, chiar i independent de baza de date. Pentru ca datele din
scriptul SQL s fie afiate n tabel, acesta trebuie amplasat in banda Detail, iar in celulele
sale trebuie aduse cmpurile din lista de cmpuri.
16
Control Tags
Cteva tipuri de controale (XRLabel, Label, TableCell, PictureBox) pot avea unele
caracteristici care vin n ajutorul crerii unui raport. Se pot afia informaii n mod automat
n funcie de informaia trecut n proprietatea Tag a controlului. Exemplu:
17
AppNameLabel
SocietyLogo
SocietyName
SocietyCIF
SocietyRegCom
SocietyAdress
ReportCurrency
Explicaie
Rotunjete valoarea cmpului pe care este la numrul de zecimale
setat pe societate.
Rotunjete valoarea cmpului la numrul de zecimale pentru
cantitate (n general 3).
Rotunjete valoarea cmpului la numrul de zecimale folosit la
afiarea unui curs valutar
Insereaz numrul paginii.
Insereaz data listrii raportului.
Leag label-ul pe care este setat acest tag se setarea din parametri
societate: afiare dat listare pe rapoarte. n general se folosete la
controale cu coninut de genul: Data listrii:
Insereaz numele aplicaiei din care a fost listat.
Pus pe un control de tip PictureBox, va afia n acesta logo-ul
societii curente.
Insereaz numele societii curente.
Insereaz CIF-ul societii curente.
Insereaz nr. reg. com. al societii curente.
Insereaz adresa societii curente.
Insereaz deviza folosit n raport.
18
Salvarea raportului
Dup crearea unui raport, pentru ca acesta s devin utilizabil, el trebuie salvat ntrun format proprietar Ciel (.cielrep). Se va accesa din meniul File Salvare pachet:
19
Utilizarea pachetului
20
Dup salvarea pe disc a pachetului, el se poate ncrca n aplicaia Ciel V7 n modul urmtor:
De acum nainte, listarea implicit a unei facturi de vnzare se va face folosind macheta nou
creat.
Listarea unui document se poate face alegnd macheta n
momentul listrii:
Dup salvare, acest raport personalizat poate fi accesat din meniul Rapoarte Rapoarte
personalizate.