Sunteți pe pagina 1din 123

Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence.

Teorie și practică, editura


ASE, 2015

Laborator 1.1

Ex 1: Încărcarea şi asocierea a două sau mai multe surse de date


➢ Prima sursă de date care va fi încărcată este fişierul Excel. Se parcurg următorii paşi:
1. Se lansează instrumentul Qlikview. Se selectează din meniul File, opţiunea New pentru a crea
un document Qlikview. Nu se va utiliza opţiunea Wizard pentru a crea un document. Se închide
fereastra Getting Started Wizard:Create a new document. Se va crea automat o pagină cu
denumirea Main;
2. Se selectează din meniu, opţiunea File/Edit script. Se deschide fereastra Edit Script şi se
selectează din meniu, opţiunea Tab/Insert tab at cursor. Se va crea un nou tab: surse de date
Excel;
3. În fereastra Edit Script (tab-ul Main) apar o serie de linii de cod (comenzi SET utilizate pentru
a iniţializa o serie de variabile ale sistemului);
4. Se selectează tab-ul Data şi se bifează caseta Relative paths (scriptul va cunoaşte locaţia, adică
folderul şi denumirea fişierului);
5. Click pe butonul Table files şi se deschide fereastra Open Local files. Se alege fişierul
exemplu.xlsx. Şi apoi click pe butonul Open;
6. Fişierul se deschide în fereastra File Wizard:type și se fac următoarele setări: tipul de fişier
este Excel (xlsx), se alege foaia corespunzătoare (caseta Tables: Vânzări), se includ etichetele
coloanelor (Labels: embedded Labels – dacă primul rând al fişierului conţine denumirea
câmpurilor) ;
7. Click pe butonul Finish şi se va crea automat scriptul pentru încărcarea fişierului. Se utilizează
comanda LOAD. Întrucât s-a selectat butonul Relative Paths, comanda Directory este plasată
înainte de LOAD. Apoi se asignează un alias la sursa încărcată şi anume Vanzari. Dacă
denumirea sursei conţine caractere speciale sau spaţii se utilizează [ ]:

Directory;
Vanzari:
LOAD ArtID, VanzID, CodClient, AgentID, cantitate, Vanzarea, Data
FROM exemplu.xlsx (ooxml, embedded labels, table is Vanzari);

Comanda LOAD este compusă din:


• denumirea câmpurilor care vor fi încărcate;
• clauza FROM care specifică locaţia sursei cu cale completă/relativă;
• atribut specific fiecărui tip de fişier sursă. De exemplu, pentru un fişier Excel: (ooxml,
embedded labels, table is Vanzari).
Se salvează scriptul (opţiunea File/Save entire document). Se salvează documentul Qlikview cu
denumirea: exemplu.qvw. Apoi se execută scriptul (opţiunea File/Reload). Datele vor fi încărcate în
documentul QlikView.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015
➢ Se incarca a doua sursă de date - fisierul excel Clienti

File/Table Viewer:

Figura 3.55 Tabele logice neasociate

➢ Redenumirea atributelor
Uneori atributele pe care nu dorim să le asociem, au aceeaşi denumire, sau atributele pe care dorim
să le asociem, nu au aceeaşi denumire. Pentru a asocia cele două tabele logice, se parcurg următorii
paşi:
1. Se selectează din meniu, opţiunea File/Edit script;
2. Pentru a asocia tabela logică Vanzari cu tabela logică Clienti, trebuie să redenumim atributul
Client din tabela logica Clienti. Pentru a redenumi un atribut, se utilizează opţiunea AS în
scriptul de încărcare. Se salvează şi apoi se execută scriptul (figura 3.56).

Figura 3.56 Tabele logice asociate

➢ Încărcarea unui fişier .csv. Se va încărca fişierul Judete.csv. Se parcurg următorii paşi:
1. Se selectează din meniu, opţiunea File/Edit Script;
2. Se poziţionează mouse-ul la sfârşitul scriptului pentru încărcarea tabelei Clienti. Se selectează
caseta de validare Relative paths;
3. Click pe butonul Table Files şi se alege fişierul Judete.csv. Şi apoi, click pe butonul Open;
4. În fereastra File Wizard: Type, se specifică tipul fişierului, setul de caractere (de exemplu,
Western european), dacă primul rând al fişierului conţine denumirea câmpurilor, tipul de
delimitator (; , sau tab) şi dacă se pot utiliza sau nu ghilimelele. Se fac următoarele setări:
Labels: embedded labels, File Type=Delimited, delimiter:comma;
5. Click pe butonul Finish. Se va crea următorul script:

Directory;
Judete:
LOAD Judet, Judetid, Resedinta, Regiune
FROM judete.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Se asociază alias-ul Judete pentru setul de date încărcat. Se poate seta caseta de validare Save before
Reload, din fereastra User Preferences (opţiunea Settings/User preferences) şi documentul se va
salva automat înainte de reîncărcarea datelor. Se execută scriptul. Modelul este prezentat în figura 3.57.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.57 Încărcarea unui fişier (csv)

➢ Încărcarea unui fişier text. Se va încărca fişierul Agenti.tab, un fişier text care utilizează ca
delimitator (tab). Fişierul nu conţine etichete/denumirile atributelor. Se parcurg următorii paşi:
1. Se selectează din meniu, opţiunea File/Edit Script. Se poziţionează mouse-ul la sfârşitul
scriptului pentru încărcarea fişierului Judete.csv;
2. Click pe butonul Table Files şi se alege fişierul Agenti.tab. Apoi, click pe butonul Open;
3. În fereastra File Wizard: Type, se fac următoarele setări: File Type=Delimited, Delimiter:
tab;
4. Se înlocuieşte @1 cu AgentID, @2 cu NumeAgent, @3 cu Pozitie, @4 cu Oras, @5 cu Judetid
5. Click pe butonul Finish. Se va crea următorul script:
Directory;
Agenti:
LOAD @1 as AgentID, @2 as NumeAgent, @3 as Pozitie, @4 as Oras, @5 as Judetid FROM
agenti.tab (txt, codepage is 1252, no labels, delimiter is '\t', msq);

Se salvează şi apoi se execută scriptul. Se deschide fereastra Table Viewer. Observăm ca s-a creat
tabela logică Agenti. De asemenea, au fost create automat şi asocierile (figura 3.59).

Figura 3.59 Modelul asociativ

➢ Se va incarca si sheet Articole din exemplu.xls

➢ Comanda LOAD INLINE poate fi folosită pentru a încărca un număr mic de înregistrări. Este
mai simplu de a le crea în script, decât de a le încărca dintr-un fişier extern. Ultima sursă va fi
încărcată cu comanda LOAD INLINE. Se parcurg următorii paşi:
1. se selectează din meniu, opţiunea File/Edit Script;
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015
2. se selectează din meniul asociat editorului, opţiunea Insert/Load Statement/Load Inline şi se
deschide fereastra Inline Data Wizard. Se vor introduce datele conform figurii 3.66.

Figura 3.66 Încărcarea datelor cu ajutorul comenzii LOAD INLINE

Se va genera următorul script (se va utiliza un alias pentru setul de date încărcat):
Categorii:
LOAD * INLINE [
CATEGORIEID, DenumireCategorie
1, Protectia muncii
2, Pneumatice
3, Auto
4, Constructii
5, Electrice
6, Chimice
7, Uleiuri
8, Truse
];

Se salvează şi apoi se execută scriptul. Modelul asociativ final este prezentat în figura 3.67. Se
observă că structura modelului asociativ seamănă, în acest exemplu, cu o schemă fulg de zăpadă. Tabela
logică Vanzari ar fi tabela de fapte, iar tabelele logice Clienti, Articole, Agenti, Judete, Categorii ar fi
tabele dimensionale.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.67 Modelul asociativ final

Fereastra Table Viewer


Pentru a vizualiza un model de date asociativ se utilizează din meniu, opţiunea File/Table Viewer,
sau combinaţie de taste CTRL+T. Se vizualizează tabelele logice şi asocierile dintre ele. Dacă mai
multe tabele sunt asociate prin aceeaşi cheie, se va indica cu un cerc mic albastru pe linia de conexiune.
Dacă ne plimbăm cu mouse-ul peste header-ul unei tabele logice, se afişează denumirea tabelei, numărul
de rânduri, numărul de atribute şi numărul de atribute cheie.

Figura 3.69 Fereastra Table Viewer

Dacă plasăm cursorul peste denumirea unui atribut, se afişează o serie de informaţii utile şi anume:
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015
• Denumirea atributului, iar dacă este cheie, apare între paranteze [Key]. Pot apare următoarele
situaţii:
o [Perfect Key] – fiecare rând conţine o valoare a cheii şi toate aceste valori sunt unice. În
acelaşi timp, subset ratio este 100%. Qlikview detectează automat dacă un atribut are valori
unice şi îl alege cheie primară;
o [Primary Key] – toate valorile cheii sunt unice, dar subset ratio <100%;
o [Key] – valorile cheii nu sunt unice.
• Information density indică procentul de tupluri nenule. De exemplu, atributul CodClient din
tabela logică Vanzari, are information density=100% (figura 3.70);
• Subset ratio indică procentul de valori distincte ale unui atribut dintr-o tabelă logică comparativ
cu toate valorile distincte ale acelui atribut, din întregul model de date. Este relevant numai
pentru atributele cheie, întrucât ele sunt prezente în multiple tabele. De exemplu, atributul
CodClient, din tabela logică Vanzari, conţine doar 24% din valorile posibile ce există în model
(subset ratio=24%), adică doar 24% din lista de clienţi au făcut tranzacţii;
• Tags indică tag-urile aplicate atributului. Unele dintre aceste tag-uri sunt generate automat (de
exemplu, tag-ul care indică dacă atributul este cheie sau tag-ul care indică tipul de dată). Alte
tag-uri pot fi aplicate manual;
• Opţional orice comentariu ataşat atributului.

Figura 3.70 Informaţii despre chei

Dacă se face click dreapta cu mouse-ul pe o tabelă logică şi apoi se selectează opţiunea Preview, se
vor afişa primele 1000 de înregistrări (figura 3.71). Meniul asociat ferestrei Table Viewer include
următoarele opţiuni:
• Export Image – salvează o imagine a modelului de date (format PNG/BMP);
• Export Structure – se poate exporta structura documentului QlikView. Se vor crea trei fişiere
text (.tab): un fişier cu informaţii despre tabelele logice ale modelului, un fişier cu informaţii
despre atribute şi un fişier cu informaţii despre mapările dintre atribute;
• Print – se poate tipări modelul de date sau copia în clipboard (copy Image);
• Auto-Layout – aranjează automat tabelele logice;
• Se poate seta dimensiunea de afişare a modelului (zoom). Implicit 100%;
• Se poate selecta Internal table View/Source Table View. Internal Table view este setarea
implicită şi arată cum sunt stocate datele în QlikView. Dacă există chei sintetice, sunt
vizualizate. Setarea Source table View arată cum citeşte QlikView datele, iar cheile sintetice
nu sunt afişate.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.71 Afişarea datelor dintr-o tabelă logică

Ex 2:Ataşarea de imagini la un model de date asociativ


Fişierul sursă Steme_regiuni.csv conţine numai două coloane: o coloană cu valorile câmpului
Regiune care va fi cheie şi o coloană cu denumirile fişierelor de tip imagine (împreună cu locaţia):
Regiune,I
Moldova,D:\qlikView\StemaMoldova.png
Muntenia,D:\qlikView\StemaMuntenia.png
Maramures,D:\qlikView\StemaMaramures.png
Oltenia,D:\qlikView\StemaOltenia.jpg
Banat,D:\qlikView\StemaBanat.jpg
Dobrogea,D:\qlikView\StemaDobrogea.jpg
Transilvania,D:\qlikView\StemaTransilvania.png
Crisana,D:\qlikView\StemaCrisana.png
Bucuresti,D:\qlikView\StemaBucuresti.jpg
Bucovina,D:\qlikView\StemaBucovina.jpg

Se parcurg următorii paşi:


1. Se selectează din meniu, opţiunea File/Edit Script. Click pe butonul Table Files. Se selectează
fişierul Steme_Regiuni.csv şi apoi click pe butonul Open;
2. Se deschide fereastra File Wizard Type. Se fac următoarele setări: Delimited: Comma,
Labels: Embedded Labels. Se va genera următorul script:
Directory;
StemeRegiuni:
INFO LOAD Regiune, I
FROM Steme_regiuni.csv
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Se utilizează opţiunea INFO pentru a asocia imaginile cu valorile atributului Regiune din tabela
logică Judete. În unele cazuri se preferă ca aceste informaţii să fie stocate în documentul Qlikview
(.qvw) şi se utilizează opţiunea BUNDLE INFO. Se va crea apoi, o listă cu regiunile. Dacă se selectează
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015
una dintre regiuni (de exemplu, Bucovina), un mic simbol (i) apare în colţul dreapta sus al listei, click
pe el şi se deschide fişierul (png/jpg) asociat (figura 3.72).

Figura 3.72 Asocierea unei imagini la un atribut al modelului

Ex 3: Modificarea structurii surselor de date


Se consideră fişierul crostable.xls cu informaţii despre cantităţile vândute de agenţi în fiecare lună:

Agenţi Ianuarie Februarie Martie Aprilie Mai Iunie


Ionescu Dan 160 336 545 152 437 100
Popescu Lucian 476 276 560 57 343 476
Predoiu Victor 251 591 555 195 341 399
Rus Matei 96 423 277 564 590 130

Dacă dorim să obţinem total cantitate vândută pentru fiecare agent, trebuie să creăm o expresie de
tipul:
Sum (Ianuarie) + Sum(Februarie) + Sum(Martie) + Sum(Aprilie) + Sum(Mai) +
+ Sum(Iunie)
De aceea, se va modifica structura fişierului de forma:

Agenţi Luna Vanzari


Ionescu Dan Ianuarie 160
Ionescu Dan Februarie 336
Ionescu Dan Martie 545
Ionescu Dan Aprilie 152
Ionescu Dan Mai 437
Ionescu Dan Iunie 1
… … …

Cu această structură, se poate crea expresia sum(Vanzari). Se parcurg următorii paşi:


1. Se va crea un document Qlikview: Crosstable.qvw;
2. Se selectează din meniu, opţiunea File/Edit Script. Click pe butonul Table Files şi se alege
fişierul crosstable.xls. Apoi click pe butonul Open;
3. Click pe butonul Next de două ori şi ajungem în fereastra File Wizard:Options;
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015
4. Click pe butonul Crosstable şi se deschide fereastra Crosstable Wizard unde vom seta
următorii parametri (figura 3.73):
• Qualifier fields – se specifică numărul de atribute care preced atributele care vor fi
transformate. În cazul nostru Qualifier field=1;
• Attribute field – denumirea atributului care va stoca valorile rezultate din transformare (în
cazul nostru Luna);
• Data Field – denumirea atributului care va stoca valorile măsurii/indicatorului, rezultate
din transformare (în cazul nostru Vanzari);
5. Click pe butonul ok apoi Finish.

Figura 3.73 Utilizarea opţiunii Crosstable Wizard

S-a generat următorul script:


Directory;
CrossTable(Luna, vanzari)
LOAD Agenti, Ianuarie, Februarie, Martie, Aprilie, Mai, Iunie
FROM crosstable.xls
(biff, embedded labels, table is [Foaie1$]);

Se salvează şi se execută scriptul. Apoi se va crea un obiect de tip tabelă pentru a afişa informaţiile.
Rezultatul:
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Ex 4: Utilizarea ierarhiilor

Modelul asociativ nu lucrează în mod implicit cu ierarhii, dar se pot crea şi utiliza, dacă dorim. Se
consideră fişierul ierarhie.xls cu informaţii despre regiunile, judeţele şi oraşele României, cu
următoarea structură:

Parent_ID Parent Child_ID Child


0 România
0 România 1 Banat
0 România 2 Dobrogea
0 România 3 Muntenia
0 România 4 Moldova
0 România 5 Maramureş
0 România 6 Oltenia
0 România 7 Crişana
0 România 8 Transilvania
0 România 9 Bucovina
1 Banat 11 Caras Severin
2 Dobrogea 21 Constanta
2 Dobrogea 22 Tulcea
3 Muntenia 31 Ilfov
11 Caras Severin 111 Rezita
21 Constanţa 211 Constanţa
22 Tulcea 221 Medgidia
3 Muntenia 32 Bucureşti
… … … …

Codurile pentru atributul Child_ID trebuie modificate, dacă dorim să avem informaţii despre toate
oraşele din România. Observăm că ierarhia are patru nivele (România-Regiune-Judeţ-Oraş). Se parcurg
următorii paşi:
1. Se creează documentul ierarhie.qvw;
2. Se selectează din meniu, opţiunea File/Edit script;
3. Click pe butonul Table files şi se alege fişierul ierarhie.xls. Click pe butonul Open;
4. Se deschide fereastra File wizard: Type. Se fac setările corespunzătoare pentru încărcarea unui
fişier de tip Excel;
5. Click butonul Next de două ori pentru a ajunge la fereastra File Wizard: option;
6. Click pe butonul Hierarchy şi se deschide fereastra Hierarchy Parameters (figura 3.74). Se
vor seta următorii parametri, conform figurii de mai jos:
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.74 Fereastra Hierarchy Parameters

• ID Field – stochează ID-urile corespunzătoare nodurilor copil;


• Parent ID Field – stochează ID-ul nodului părinte;
• Name field – stochează denumirea nodului copil;
• Parent Name – un şir utilizat pentru a denumi un nou câmp care va fi creat şi va conţine
denumirile nodurilor părinte;
• Path Name – un şir utilizat pentru a denumi un nou câmp care va fi creat şi va conţine lista
de noduri de la rădăcină (top level) la nodul corespunzător;
• Depth Name – denumirea unui nou câmp care va stoca numărul de nivele pentru fiecare
nod expandat. !!!!!!Parametrul Depth Name trebuie adăugat manual la comanda
Hierarchy generată de Wizard;

• Path Source – un atribut din sursa de date care conţine valorile ce ar trebui utilizate pentru
a popula ierarhia (adică nivelele ierarhice);
• Path Delimiter – defineşte şirul care ar trebui utilizat pentru a separa nivelele în ierarhie;
• Dacă câmpurile sursă au caractere speciale în denumire (de exemplu, spaţii) Hierarchy
Wizard nu le va include în script, deci trebuie să le adăugăm după ce scriptul a fost generat.
7. Click pe butonul OK şi revenim în fereastra File Wizard şi apoi click pe butonul Finish. Se va
genera următorul script:
HIERARCHY (Child_ID, Parent_ID, Child, ParentName, Child, Path, ' - ', HierarchyLevel)
LOAD Parent_ID, Child_ID, Parent, Child
FROM ierarhie.xls (biff, embedded labels, table is [Foaie1$]);

Se salvează şi apoi se execută scriptul. Se va crea apoi, un tabel (ordonare după HierarchyLevel).
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015
Rezultatul:

Tabela logică creată are un atribut pentru fiecare nivel ierarhic şi o înregistrare pentru fiecare nod.
Au fost create noi câmpuri: Path, HierarchyLevel (figura 3.75).

Figura 3.75 Tabela logică creată

În cazurile în care un nod are mai mulţi părinţi, tabela va avea mai multe înregistrări pentru acel nod.
De asemenea, nodurile orfane vor fi excluse. O astfel de structură poate fi utilizată cu o tabelă pivot,
sau într-un grup ierarhic de dimensiuni. Câmpurile create pot fi utilizate, de asemenea, în liste pentru a
face selecţii. De exemplu, se va crea o listă de tip arbore/ierarhie:
1. Din meniul principal, se selectează opţiunea Layout|New Sheet Object|List box;
2. Se alege Titlu=Ierarhie;
3. Se selectează din lista Field, atributul Path;
4. În tab-ul General se marchează caseta de validare Show as Tree View şi se introduce (-) ca
separator;
5. Click pe butonul OK.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015
Rezultatul:

Ex 5: Utilizarea clauzei Generic


Se consideră următoarea sursă de date generic.xlsx care stochează valorile unor atribute. Sunt diferite
atribute pentru diferite obiecte, unele atribute se regăsesc la mai multe obiecte:

Obiect Atribut Valoare


minge culoare galben
minge greutate 120g
minge diametru 8cm
moneda culoare aurie
moneda valoare $100
moneda diametru 2.5cm
Hochei Puc culoare negru
Hochei Puc diametru 7.62cm
Hochei Puc grosime 2.5cm
Hochei Puc greutate 165g

Se va utiliza clauza GENERIC care va converti această sursă într-o tabelă logică specifică
modelului de date asociativ. Se parcurg următorii paşi:
1. Se creează un document Generic.qvw;
2. Se selectează din meniu, opţiunea File/Edit Script şi se încarcă fişierul Excel. Se va genera
următorul script (se va adăuga clauza GENERIC):
Directory;
Generic LOAD Obiect, Atribut, Valoare
FROM generic.xlsx
(ooxml, embedded labels, table is Foaie1);

Qlikview va transforma şi procesa conţinutul sursei astfel încât vom avea toate atributele (culoare,
greutate, diametru, grosime etc.) stocate în tabele logice separate şi asociate cu obiectul corespunzător
(figura 3.76). Fiecare tabelă logică va avea un număr de rânduri, în funcţie de numărul de obiecte care
au acelaşi atribut.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.76 Utilizarea opţiunii Generic

Ex 6: Realizarea joncţiunilor
Pentru a realiza joncţiuni se utilizează clauza JOIN a comenzii LOAD. Se realizează o joncţiune de
tip outer join (joncţiune externă completă) pe atributele care au aceeaşi denumire. Se consideră
următorul exemplu:
1. Se va crea un document Qlikview: Jonctiuni.qvw
2. Se selectează din meniu, opţiunea File/Edit Script şi se va crea următorul script:
Tari:
LOAD * INLINE [
Tara, Vanzari_realizate,Vanzari_Preconizate
USA, 1000,800
UK, 800,800
Germania, 900, 700
];

Join LOAD * INLINE [


Tara, Costuri
USA, 800
UK, 800
Italia, 1000
];

3. Se salvează şi apoi se execută scriptul;


4. Se poate crea un tabel (table box) în pagină, sau se selectează opţiunea File/Table Viewer
pentru a deschide fereastra Table Viewer. S-a preferat crearea unui tabel pentru a vizualiza
rezultatul joncţiunii:

Rezultatul:

Se pot crea următoarele tipuri de joncţiuni: INNER JOIN, OUTER JOIN (joncţiune externă
completă), LEFT JOIN şi RIGHT JOIN:
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

INNER JOIN (joncţiune de egalitate)

Rezultatul:

LEFT JOIN (joncţiune externă stânga)

Rezultatul:

RIGHT JOIN (joncţiune externă dreapta)

Rezultatul:

Ex 7: Concatenarea surselor de date


Dacă două seturi de date au o structură identică, conţin exact aceleaşi atribute (număr de atribute şi
denumiri), Qlikview le va concatena automat şi le va trata ca o singură tabelă logică (concatenare
naturală/implicită). Ordinea în care atributele sunt definite în scriptul de încărcare nu este relevantă
pentru concatenarea naturală. Se poate utiliza şi clauza CONCATENATE pentru a concatena două
seturi de date:
1. Se selectează din meniu, opţiunea File/Edit Script. Se va crea un nou tab Concatenare;
2. Se va crea următorul script (scripturile anterioare se vor comenta):

Tari:
LOAD * INLINE [
Tara, Vanzari_realizate,Vanzari_Preconizate
USA, 1000,800
UK, 800,800
Germania, 900, 700
];

concatenate LOAD * INLINE [


Tara, Costuri
USA, 800
UK, 800
Italia, 1000
];

3. Se salvează şi se execută scriptul;


Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015
4. Se selectează din meniu, opţiunea File/Table Viewer sau se va crea un tabel, în pagina de lucru,
pentru a afişa rezultatul concatenării.

Rezultatul:

Rândurile din al doilea set de date au fost adăugate la primul set de date. Se poate preciza între
paranteze care este setul de date la care se face concatenarea. Când două seturi de date au aceleaşi
atribute, se vor concatena automat. Se consideră următorul script:

Tari1:
LOAD * INLINE [
Tara, Vanzari_realizate,Vanzari_Preconizate
USA, 1000,800
UK, 800,800
Germania, 900, 700
];

Tari2:
LOAD * INLINE [
Tara, Vanzari_realizate,Vanzari_Preconizate
Italia, 1000,800
Romania, 800,800
Spania, 900, 700
];

Rezultatul scriptului este un singur set de date:

În cazul în care dorim să evităm comportamentul implicit în cazul concatenării naturale, se poate
adăuga clauza NOCONCATENATE la comanda LOAD pentru al doilea set de date. QlikView le
tratează ca tabele logice diferite, în modelul de date. De exemplu, se precizează în comanda LOAD
pentru Tari2, clauza NOCONCATENATE:

Tari1:
LOAD * INLINE [
Tara, Vanzari_realizate,Vanzari_Preconizate
USA, 1000,800
UK, 800,800
Germania, 900, 700
];
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015
Tari2:
noconcatenate LOAD * INLINE [
Tara, Vanzari_realizate,Vanzari_Preconizate
Italia, 1000,800
Romania, 800,800
Spania, 900, 700
];

Se va deschide File/Table Viewer şi se observă că s-a creat o tabelă logică $Syn1Table, precum şi o
cheie sintetică $Syn1 (figura 3.77).

Figura 3.77 Utilizarea opţiunii NONCONCATENATE

!!!!!Despre chei sintetice la sf.laboratorului

Ex 8: Utilizarea datelor existente în paginile Web


Se pot încărca în model, seturi de date existente în paginile Web. De exemplu, putem prelua cursul
valutar de pe site-ul BNR [http://www.bnr.ro/Cursul-de-schimb-524.aspx]. Se pot descărca seturile de
date şi ca fişiere: csv, Excel, HTML, XML (figura 3.80).
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.80 Utilizarea unei pagini Web

Se parcurg următorii paşi:


1. Se deschide Qlikview şi se va crea un nou document: sursaWeb.qvw;
2. Se selectează din meniu, opţiunea File/Edit Script. Se deschide fereastra Script editor. Click
pe butonul Web Files pentru a genera scriptul de încărcare. Se deschide fereastra File Wizard:
Source şi vom selecta butonul Internet File, apoi vom tasta:
http://www.bnr.ro/Cursul-de-schimb-524.aspx (figura 3.81);
3. Click pe butonul Next;
4. Se deschide fereastra File Wizard: Type, în care apar datele. Observăm că nu se încarcă corect,
de exemplu, în coloana 6.mar.2014 apar simbolurile monedelor. Click pe butonul Next (figura
3.82);
5. Se deschide fereastra File Wizard: Transform. Click pe butonul Enable Tranformation
Step. Se va deschide fereastra File Wizard: Tranform (figura 3.83, figura 3.84);
6. Se va modifica header-ul pentru coloana în care apar simbolurile şi pentru ultima coloană (tab-
ul Column şi butonul Label) (figura 3.85);
7. Apoi, selectăm butonul Rotate şi butonul Transpose. Se vor inversa liniile cu coloanele.
Observăm că pe primul rând apar denumirile valutelor. Le putem şterge (figura 3.86).
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.81 Fereastra File Wizard: Source

Figura 3.82 Fereastra File Wizard: Type


Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.83 Fereastra File Wizard: Transform-Enable Transformation Step

Figura 3.84 Fereastra File Wizard: Transform


Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.85 Fereastra File Wizard: Transform, tab-ul Column

Figura 3.86 Fereastra File Wizard: Transform, tab-ul Rotate

Selectăm tab-ul Garbage (figura 3.87) şi click pe butonul Conditional delete. Se deschide fereastra
Specify Row Condition. Selectăm condiţia Range, apoi selectăm opţiunile From, To şi Select fără să
modificăm setările. Se va activa butonul Add. În fereastra de condiţii (figura 3.88) apare automat
următoarea expresie: RowCnd(Interval, Pos(Top, 1), Pos(Top, 1), Select(1, 0)).
Vom schimba şi eticheta pentru prima coloană, în loc de simbol tastăm Data.

Click pe butonul Next, apoi Finish pentru a genera scriptul de încărcare.


LOAD Data, AUD, BGN, CAD, CHF, CZK, DKK, EGP, EUR, GBP, HUF, JPY, MDL, NOK, PLN,
RUB, SEK, TRY, USD, ZAR, BRL, CNY, INR, KRW, MXN, NZD, RSD, UAH, AED, XAU, XDR
FROM [http://www.bnr.ro/Cursul-de-schimb-524.aspx]
(html, codepage is 1252, embedded labels, table is @1, filters(Top(2, 'simbol'), Top(7, '6 mar.2014'),
Transpose(), Remove(Row, RowCnd(Interval, Pos(Top, 1), Pos(Top, 1), Select(1, 0))), Top(1, 'Data')
));
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Figura 3.87 Fereastra File Wizard: Transform, tab-ul Garbage

Figura 3.88 Fereastra Specificy Row Condition


De asemenea, trebuie să modificăm setările regionale, pentru a corespunde cu formatul BNR:
SET ThousandSep='.';
SET DecimalSep=',';
SET MoneyThousandSep='.';
SET MoneyDecimalSep=',';
SET MoneyFormat='$#.##0,00;($#.##0,00)';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD MMM.YYYY';
SET MonthNames='ian;feb;mar;apr;mai;iun;iul;aug;sep;oct;noi;dec';
SET DayNames='Lun;Mar;Mie;Joi;Vin;Sam;Dum';
Se salvează documentul sursaWeb.qvw şi apoi se execută scriptul. Putem crea un tabel pentru
evoluţia cursului valutar.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015

Rezultatul:
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2

Ex 9: Dimensiune Timp în modelul asociativ


Sintaxa comenzii LOAD
[https://help.qlik.com/en-US /qlikview /November2017 /Subsystems /Client/Content
/Scripting/ScriptRegularStatements/Load.htm /]

Syntax:
LOAD[ distinct] fieldlist
[(from file [ format-spec] |
from_field fieldassource [format-spec]
inline data [ format-spec ] |
resident table-label |
autogenerate size )]
[where criterion | while criterion]
[group_by groupbyfieldlist]
[order_by orderbyfieldlist]

autogenerate is used if data should be automatically generated by QlikView.


size ::= number, number is an integer indicating the number of records to be generated.
resident is used if data should be loaded from a previously loaded table.

Timpul este foarte important în analiză, respectiv în aplicaţiile BI.


Tabela logică Vânzări conţine atributul Data. La încărcarea ei în model, se vor ordona rândurile,
după valorile atributului Data:

LOAD ArtID, VanzID, CodClient, AgentID, cantitate, Vanzarea, Data


FROM exemplu.xlsx (ooxml, embedded labels, table is Vanzari)

Se adauga la script (in fisierul exemplu.qvw):


LOAD ArtID, VanzID, CodClient, AgentID, cantitate, Vanzarea, Data resident Vanzari
ORDER BY Data ASC;

Pentru a crea o tabelă logică Timp se parcurg următorii paşi:


1. Se utilizeaza documentul Qlikview exemplu.qvw;
2. Se va crea un nou tab Timp, după tab-ul surse de date;
3. Se stabileşte valoarea minimă, respectiv valoarea maximă pentru atributul Data. Se va utiliza
funcţia Peek() care va returna valoarea atributului Data din prima înregistrare/ultima
înregistrare.

Peek(field_name[, row_no[, table_name ] ] )

Where row_no The row in the table that specifies the field required

Aceste valori vor fi stocate în două variabile: varMinDate şi varMaxDate. Se utilizeaza cda LET:
Let variablename=expression

let evaluates the expression on the right side of the ' =' before it is assigned to the variable.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
Let varMinDate = Num(Peek('Data',0,'Vanzari'));
Let varMaxDate = Num(Peek('Data',-1,'Vanzari'));

4. Se va crea o tabelă logică temporară TempTimp pentru care se vor genera automat rânduri,
utilizând opțiunea Autogenerate. Fiecare rând conţine un element de dată;

TempTimp:
Load
date($(varMinDate) + rowno()-1) As TempData
Autogenerate $(varMaxDate)-$(varMinDate) + 1;

[TempTimp:
Load
$(varMinDate),$(varMaxDate),RowNo(),
$(varMinDate) + rowno() - 1 as Num,
date($(varMinDate) + rowno() - 1) as TempData
AUTOGENERATE $(varMaxDate)-$(varMinDate) + 1; ]

5. Se va crea tabela logică Timp. Se vor încărca elementele de dată din tabela temporară
TempTimp şi pentru fiecare element de dată se vor utiliza diferite funcţii calendaristice pentru
a extrage o serie de informaţii utile, cum ar fi: săptămâna, luna, anul corespunzător, denumirea
zilei, prima zi din săptămâna din care face parte elementul de dată, ultima zi din săptămâna din
care face parte elementul de dată etc (figura 3.78):

Timp:
Load
TempData As Data,
Week(TempData) As Saptamana,
Month(TempData) As Luna,
Year(TempData) As An,
Week (TempData) & '-'& Year(TempData)as SaptamanasiAn,
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
WeekDay(TempData) as denumire_zi,
WeekStart(TempData, 0, 0) AS prima_zi_sapt,
WeekEnd(TempData, 0, 0) AS ultima_zi_sapt,
Weekyear(TempData) as anul_pt_sapt,
Month(TempData) & '-' &Year(TempData) AS LunasiAn,
MonthStart(TempData) as prima_zi_luna,
MonthEnd(TempData) as ultima_zi_luna,
'Trim' &Ceil(Month(TempData)/3) AS Trimestru,
QuarterStart(TempData) as prima_zi_trim,
QuarterEnd(TempData) as ultima_zi_trim,
YearEnd(TempData) as ultima_zi_an,
DayNumberOfYear(TempData) as numartotalzile
resident TempTimp
ORDER BY TempData ASC;
//se sterge tabela temporara
DROP TABLE TempTimp;

Figura 3.78 Tabela logică Timp. Table Viewer


Se salvează, apoi se execută scriptul. În modelul de date s-a creat tabela logică Timp asociată cu
tabela logică Vanzari (figura 3.79).
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2

Figura 3.79 Tabela logică Timp

Ex 10: Chei sintetice, dependenţe circulare, tabele de legătură


Când două seturi de date au mai multe atribute comune, se creează automat o cheie compusă numită
cheie sintetică. Prezenţa cheilor sintetice în modelul de date, poate afecta performanţa aplicaţiei (un
timp de răspuns mai mare). De asemenea, modelul devine mai dificil de înţeles. De aceea, cheile
sintetice trebuie evitate.
În exemplul de mai jos, cele două seturi de date Vanzari.csv şi Calendar.csv au două atribute
comune: trimestru şi luna. Se creează o cheie formată din combinaţia celor două atribute ($Syn1). În
model, apare o nouă tabelă logică denumită $Syn 1 Table care stochează toate combinaţiile de valori
pentru cele două atribute care formează cheia sintetică. Această tabelă logică asigură legătura dintre
cele două seturi de date.
Fişierul Vanzari.csv are următoarea structură:
Trimestru,Luna,Prodid,Cantitate
1, 1, 1, 12
1, 2, 1, 10
1, 3, 1, 11
2, 4, 1, 15
1, 1, 2, 60
1, 2, 2, 90
3, 8, 1, 10
3, 9, 2, 20

Fişierul Calendar.csv are următoarea structură:


Luna,DenumireLuna,Trimestru
1,Ianuarie,1
2,Februarie,1
3,Martie,1
4,Aprilie,2
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
5,Mai,2
6,Iunie,2
7,Iulie,3
8,August,3
9,Septembrie,3
10,Octombrie,4
11,Noiembrie,4
12,Decembrie,4

Se parcurg următorii paşi:


1. Se selectează din meniu, opţiunea File/Edit Script;
2. Click pe butonul Table files şi se selectează fişierul vanzari.csv. Se deschide fereastra File
Wizard Type şi se selectează în caseta Labels: Embedded Labels;
3. Click pe butonul Finish. Se va genera următorul script:
Vanzari:
LOAD Trimestru, Luna, Prodid, Cantitate
FROM vanzari.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Se repetă paşii şi pentru fişierul Calendar.csv. Se va genera următorul script:


Calendar:
LOAD Luna, DenumireLuna, Trimestru
FROM calendar.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Se salvează şi se execută scriptul. Modelul creat este prezentat în figura 3.89.

Figura 3.89 Generarea cheilor sintetice

Pentru a şterge cheile sintetice există următoarele metode:


1. Se pot redenumi acele atribute care apar în cheia sintetică, dar care ar putea să nu fie o parte a
asocierii dintre cele două seturi de date;
2. Se pot şterge atributele comune dintr-un set de date (se şterg de fapt din scriptul de încărcare);
3. Se poate crea o cheie compusă prin concatenarea tuturor atributelor comune care reprezintă
asocierea dintre cele două seturi de date. Apoi se şterg atributele comune din scriptul de
încărcare.
Pentru exemplul nostru, vom utiliza ultima metodă şi vom crea o cheie compusă formată din
atributele comune Trimestru şi Luna. Apoi, vom şterge atributele comune din setul de date Vanzari (din
scriptul de incarcare), dar le vom păstra în setul de date Calendar.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
Scriptul se va modifica astfel:
Vanzari:
LOAD Trimestru&'|'&Luna as TrimLuna, Prodid, Cantitate
FROM vanzari.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Calendar:
LOAD Trimestru&'|'&Luna as TrimLuna, Luna, DenumireLuna, Trimestru
FROM calendar.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

S-a utilizat (&) pentru a crea cheia compusă şi un alias pentru denumirea ei. Tabela $Syn1table,
precum şi cheia sintetică au fost eliminate (figura 3.90).

Figura 3.90 Eliminarea cheilor sintetice

Dependenţe circulare
Se consideră următoarele fişiere (csv):
Vanzari1.csv:

Produse.csv:

Buget.csv

Se parcug următorii paşi:


Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
1. Se creează un document: dependente circulare.qvw;
2. Se selectează opţiunea File/Edit script şi se încarcă cele trei surse. Se va crea următorul script:
Directory;
Vanzari:
LOAD An,
Luna,
prodid,
Vanzarea

FROM vanzari1.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Directory;
Buget:
LOAD categorieID,
An,
Buget
FROM buget.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Directory;
Produse:
LOAD prodid,
denumire,
categorieID
FROM produse.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

3. Se salvează şi apoi se execută scriptul. În urma execuţiei apare următorul mesaj:

Iar modelul arată astfel (figura 3.91):


Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2

Figura 3.91 Dependenţe circulare

Se creează dependenţe circulare. Tabela logică Produse este asociată direct cu tabela logică Buget
prin atributul categorieID şi indirect prin tabela logică Vanzari. Tabela logică Vanzari este asociată cu
tabela logică Buget prin atributul An şi cu tabela logică Produse prin atributul prodid. Datele formează
o anomalie: Produsul A (prodid=1) este vândut în anul 2000 în lunile ianuarie şi februarie. Vânzările
din 2000 sunt asociate cu bugetul din 2000 şi avem două bugete pentru categoria 1 şi categoria 2, deci
produsul A se asociază cu categoria 1, dar şi cu categoria 2, ceea ce nu este corect.

Pentru a evita rezultate incorecte, Qlikview setează una sau mai multe tabele ca fiind „loosely
coupled-cuplate slab” şi afişează un mesaj de atenţionare. În exemplul nostru, tabela logică Vanzari este
„slab cuplată” cu tabela Produse şi tabela Buget, ceea ce înseamnă că deducţia logică nu poate fi
propagată prin această tabelă. În fereastra Document properties (opţiunea Settings/Document
properties) se poate stabili care tabelă este utilizată ca tabelă „slab cuplată” (figura 3.92). În funcţie de
ce tabelă alegem, vom obţine rezultate diferite din deducţia logică.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2

Figura 3.92 Fereastra Document properties

De ce apare dependenţa circulară? În exemplul nostru, din cauză că cele două tabele logice Vanzari
şi Buget au granularităţi diferite. Bugetul este la nivel de an şi categorie de produse, iar vânzările sunt
la nivel de lună, an şi produs. Ele se asociază cu tabela logică Produse la nivele de granulaţie diferite
(prodid respectiv categorieid). Este o situaţie des întâlnită atunci când în modelul asociativ se încarcă
multiple tabele de fapte cu granulații diferite şi care au mai multe dimensiuni comune.
Pentru a elimina dependenţele circulare, o soluţie ar fi concatenarea celor două tabele (Vanzari si
Buget) cu ajutorul cheilor generice (pt concatenare, tabelele treb sa aiba aceeasi structura). În locul cheii
prodid a tabelei logice Produse se utilizează chei generice. Aceste chei se vor crea ţinând cont de faptul
că un produs face parte dintr-o anumită categorie. Se utilizează funcţia applymap().

Sintaxa:
applymap(‘mapname’, lookupkey [ , defaultexpr ] ) ---------seamana cu vlookup() din Excel

where:
• mapname is the name of mapping table, that has been already created through the
mapping load. Its name must be enclosed in single quotes.
• lookupkey is the expression, the result of which should be mapped.
• defaultexpr is an optional expression, which will be used as default mapping value, if
the mapping table does not contain a matching value for lookupkey. If no default value
is given, the value of lookup will be returned as is.

În unele cazuri trebuie să utilizăm aceeaşi sursă de date de mai multe ori, în timpul execuţiei
scriptului. Pentru că sursa este deja încărcată în RAM, se poate accesa utilizând opţiunea RESIDENT
LOAD.

Clauza MAPPING a comenzii LOAD/SELECT se utilizează pentru a crea o tabelă de mapare


temporară. O tabelă de mapare e formată din două coloane: prima coloană conţine valorile de
comparaţie (de exemplu, denumirea tabelei/atributului) şi a doua coloană conţine valorile dorite pentru
mapare (de exemplu, categoria de produse). Tabelele de mapare sunt stocate temporar în RAM, apoi
sunt şterse automat după execuţia scriptului.
Conţinutul unei tabele de mapare poate fi accesat utilizând: funcţia applymap(), funcţia
mapsubstring(), comanda MAP/RENAME. O tabelă de mapare poate fi utilizată şi pentru a înlocui
valorile atributelor sau denumirea atributelor, în timpul execuţiei scriptului.
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
Scriptul modificat:
Produse:
Load prodid, denumire, categorieID from produse.csv
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Prodid_to_categorieID:
Mapping Load prodid, categorieID resident Produse;

//se concatenează cele două tabele logice Vanzari şi Buget


//pt concatenare treb sa aiba aceeasi structura
//se utilizeaza applymap() – daca exista categorie pt prodid specificat, se concateneaza cu
prodid si formeaza cheia %prodid

Tabela:
Load Vanzarea as Valoare, An, Luna,
Applymap('Prodid_to_categorieID', prodid, null()) &'|'& prodid as %prodid,
'vanzari' as type
FROM vanzari1.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

// se utilizează chei generice, dar şi simbolul N/A pentru nivelul de detaliu:


Concatenate (Tabela) load Buget as Valoare, An,
categorieID & '|' &'N/A' as %prodid, 'buget' as type
from buget.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

// se creează o tabelă de legătură care va asocia tabela Produse cu cele două tabele Vanzari
şi Buget concatenate

[Produse link tabela]:


//pt concatenare treb sa aiba aceeasi structura
Load distinct categorieID &'|'&prodid as %prodid, categorieID, prodid resident Produse;
Load distinct categorieID &'|'&'N/A' as %prodid, categorieID, Null() as prodid
resident produse;
Drop field categorieID from Produse;
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2

Fara tabela de legatura

Modelul rezultat, precum si conţinutul tabelei Tabela.sunt prezentate în figura 3.93,

Figura 3.93 Modelul rezultat

Cheile generice conţin informaţii atât despre nivelele superioare, cât şi despre cele inferioare ale
ierarhiei (prodid>categorieid) şi pot fi utilizate fie numai pentru nivelul superior sau pentru ambele
nivele ale ierarhiei. În acest mod se va realiza o asociere corectă între înregistrările din tabela rezultată
prin concatenare şi tabela logică Produse (înregistrările din tabela logică Vanzari se leagă la nivel de
produs, iar înregistrările din tabela logică Buget se leagă la nivel de categorie şi nu la nivel de produs).
Cheile generice trebuie să fie mapate la cheile reale, utilizând tabela de legătură Produse link tabela
(figura 3.94).
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
Un table box
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2

Ex 11: Alt exemplu de utilizare pt: Load ..... mapping


- Mapping LOAD– precizeaza ca tabela Map_price este o tabela de mapare (lookup table)
- Tabela de mapare are doar doua coloane, prima este valoarea de cautare (lookup value) – atributul
Categorie, a doua coloana contine val. mapate—atributul Pret
- tabela de mapare se apeleaza cu applymap()

Map_Pret:
Mapping LOAD * INLINE [
Categorie, Pret
Adult, 10
Child, 5
Student, 6
Senior, 6
LoyalMember, 5
];

Tichete:
LOAD * INLINE [
Nume, Categorie
Ann, Student
David, Adult
Sara, Senior
Keith, Child
Tom, Adult
Dave, Student
Sam, Adult
Monica, LoyalMember
Ethan, Student
Rose, Child
];

Preturi_tichete:
Load Nume, Categorie, ApplyMap ('Map_Pret', Categorie) as
Pret_tichet Resident Tichete;

Drop Table Tichete;


Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2

EX 12: Două tabele de fapte cu două atribute comune şi conectate la o


dimensiune comună.

Se pot extrage şi încărca date din baze de date relaţionale tranzacţionale, cu o structură normalizată.
Dar, sursa de date poate fi şi un depozit de date cu o structură stea/fulg de zăpadă/combinaţii cu una sau
mai multe tabele de fapte şi multe tabele dimensionale.
În cazul în care modelul dimensional este o simplă schemă stea /fulg de zăpadă, cu o singură tabelă
de fapte, modelul asociativ creat are o structură identică cu schema stea/fulg de zăpadă sursă.

Situaţia se schimbă atunci când modelul dimensional include multiple tabele de fapte cu dimensiuni
comune. La încărcarea acestor tabele de fapte, Qlikview va genera chei sintetice, tabele sintetice şi
uneori dependenţe circulare care trebuie evitate fie prin:
1. concatenarea tabelelor de fapte;
2. crearea unei tabele de legătură. Tabela de legătură este o soluţie bună pentru acele modele în
care avem mai multe tabele de fapte cu granulaţii diferite. În acest caz, modelul asociativ
trebuie să aibă structura din figura 3.96;
În următorul exemplu, vom simula cazul a două tabele de fapte cu două atribute comune şi conectate
la o dimensiune comună.
Vom utiliza următoarele fişiere (csv):
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2

Vanzari1.csv:

Produse.csv:

Buget1.csv

Tabela de fapte Tabela


dimensională
Tabela de legătură
Tabela de fapte
Tabela
dimensională

Figura 3.96 Utilizarea tabelei de legătură


Tabela
dimensională
Se parcurg următorii paşi:
1. Se creează un nou document: Tabele_de_legatura.qvw;
2. Se selectează opţiunea File/Edit script şi se vor încărca sursele de mai sus. Se va genera
următorul script:

Directory;
Vanzari:
LOAD An,
Luna,
prodid,
Cantitate,
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
Vanzarea
FROM
vanzari1.csv
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Directory;
Buget:
LOAD An,
prodid,
buget
FROM
buget1.csv
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Directory;
Produse:
LOAD prodid,
denumire,
categorieID
FROM
produse.csv
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Se salvează şi apoi se execută scriptul. Modelul de date creat este prezentat în figura 3.97.

Figura 3.97 Modelul asociativ creat

Observăm că s-a creat o tabelă sintetică $Syn1 Table cu atributul $Syn1-cheie sintetica. Atributele
prodid şi An sunt comune tabelelor logice Buget şi Vanzari.

Table Viewer - $Syn1 Table


Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
Pentru a elimina cheia sintetică, vom utiliza o tabelă de legătură. Tabela de legătură conţine toate
combinaţiile posibile de valori pentru setul de atribute comune şi printr-o cheie unică este asociată la
tabelele originale. De asemenea, se va crea o cheie compusă pentru a asocia cele trei tabele logice. Cheia
compusă este obţinută prin concatenarea câmpurilor comune (An&'|'&prodid as cheie). Apoi se vor
şterge atributele comune din model.

Scriptul se va modifica astfel:

Vanzari:
Load An&'|'&prodid as cheie, Cantitate, Vanzarea, Luna, An, prodid
FROM vanzari1.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Buget:
Load An&'|'&prodid as cheie, buget, An, prodid
FROM buget1.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

//se utilizează clauza DISTINCT pentru a elimina duplicatele


Legatura:
Load distinct An&'|'&prodid as cheie, An, prodid resident Vanzari;
concatenate(Legatura)
Load distinct An&'|'&prodid as cheie, An, prodid resident Buget where not exists (cheie);

Produse:
LOAD prodid, denumire, categorieID
FROM produse.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

drop fields An, prodid from Vanzari;


drop fields An, prodid from Buget;

Se salvează şi se execută scriptul. Modelul reproiectat este prezentat în figura 3.98. Cheia sintetică
a fost ştearsă şi tabelele logice Vanzari şi Buget sunt acum asociate la tabela logică Produse indirect
prin tabela de legătură.

Figura 3.98 Modelul reproiectat


Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura
ASE, 2015 Laborator 1.2
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică,
editura ASE, 2015- Lab. 2

Laborator 2

Realizarea unei soluţii BI utilizând Qlikview


Un document Qlikview (fişier QVW) este compus din două elemente:
• Setul de date analizat care include toate sursele de date necesare pentru a
crea modelul de date;
• Interfaţa prin care utilizatorul analizează datele.
Pentru a extrage datele din diferite surse de date, se utilizează un script.
Scriptul include comenzi SELECT-SQL, dacă datele sunt extrase din baze de date
relaţionale sau comenzi LOAD, dacă datele sunt extrase din fişiere (text, Excel,
csv, html etc.) (figura 5.1).

Fişiere text,csv,
excel
Baze
de date

Select load

script

Open
Qlikview
QlikView fisier (qvw)
Save

Figura 5.1. Încărcarea datelor în documentul Qlikview [Qlikview, 2011b]

Un document QlikView este format din mai multe pagini (sheet). O pagină
poate conţine mai multe obiecte cum ar fi: liste, casete statistice, diferite tipuri de
grafice, obiecte de tip slider/calendar, containere, liste multiple etc. Fereastra de
proprietăţi ale unui obiect se accesează prin combinaţia de taste CTRL+ALT+S,
sau click cu butonul dreapta al mouse-ului pe obiect şi se selectează opţiunea
Properties din meniul asociat. Principalele obiecte ale unei pagini sunt:
Lista (List box) (prima icoană din stânga, din bara de butoane prezentată mai
jos) afişează valorile unui atribut din modelul de date (de exemplu, atributul
Regiune). Se utilizează pentru a face selecţii şi filtrări de date. Toate obiectele cu
2 Business Intelligence. Teorie şi practică

excepţia butoanelor, obiectelor de tip text şi obiectelor de tip linie/săgeată pot fi


utilizate pentru selecţii.

Caseta statistică (Statistics box) (a doua icoană din stânga) permite realizarea
unor statistici, utilizând valorile unui singur atribut. De exemplu, se poate crea o
casetă statistică pentru atributul Numar angajati, care va afişa numărul mediu,
numărul maxim şi numărul minim de angajaţi.

Caseta pentru introducere date (Input box) (a şasea icoană din stânga)
permite modificarea valorilor unei variabile (de exemplu, valoarea variabilei vTop).

Lista multiplă (Multi box) (a patra icoană din stânga) afişează valorile mai
multor atribute, fiecare atribut pe o singură linie. Se pot selecta valorile acestor
atribute. De exemplu, se poate crea o listă multiplă care va afişa informaţii despre
companii (denumire, categorie, regiune). O valoare va fi afişată în lista multiplă,
numai dacă este opţională/selectată.
Dezvoltarea şi implementarea soluţiilor BI 3

Tabelul (Table box) (a treia icoană din stânga) nu se foloseşte pentru a afişa
agregări calculate. De exemplu, se poate crea un tabel care va afişa indicatorii
profit net, cheltuieli operaționale, profit operațional şi venituri operaționale pentru
fiecare combinaţie posibilă dintre valorile atributelor: Denumire, An, Trimestru şi
Regiune.

Grafice. Se pot crea diferite tipuri de grafice: linie, bară, scatter, mekko, funnel,
gauge, tabelă liniară/straight, tabelă pivot etc.
Butoanele se pot utiliza pentru a se executa diferite comenzi sau acţiuni: export
de date în fişiere, ştergerea selecţiilor, crearea unui bookmark etc. De exemplu, se
poate crea un buton Anuleaza selectii pentru a anula selecţiile curente.

Selecţia curentă. Qlikview are o opţiune care arată utilizatorului care sunt
selecţiile curente şi anume din meniu, opţiunea View/Current Selections sau
combinaţia de taste CTRL+Q. De asemenea, se pot crea astfel de obiecte.

Sursele de date [http://www.transtats.bts.gov] au fost prelucrate şi


transformate în următoarele fişiere:
Fişierul Financiar.xls: Companie_ID, Denumire, Categorie_ID, AN,
TRIMESTRU, Regiune_ID, NETPROFIT (profitul net), OP_PROFIT (profitul

3
4 Business Intelligence. Teorie şi practică

operaţional), OP_VENITURI (venituri operaţionale), OP_CHELTUIELI (cheltuieli


operaţionale). Indicatorii financiari (NETPROFIT, OP_PROFIT, OP_VENITURI şi
OP_CHELTUIELI) sunt specificaţi la nivel de trimestru, pentru fiecare companie.
De asemenea, fişierul include numai perioada 2000-2012.
Veniturile operaţionale includ veniturile obţinute din activităţile de bază
(transportul pasagerilor, a poştei, a bagajelor, taxe etc.).
Cheltuielile operaţionale includ cheltuieli datorate activităţilor de bază
(mentenanţă, promoţii, servicii oferite pasagerilor etc.).
Profitul net se calculează ca diferenţa dintre total venituri şi total cheltuieli,
existând şi alte venituri, decât cele menţionate mai sus, precum şi alte cheltuieli
(figura 5.5).

Figura 5.5 Fişierul Financiar.xls

Fişierul Cheltuieli salariale.xls: Companie_ID, Denumire, Regiune_ID,


Categorie_ID, AN, TRIMESTRU, SAL_MGT (salarii personal conducere),
SAL_FLIGHT (salarii personal de zbor), SAL_MAINT (salarii personal
mentenanţă), SAL_TRAFFIC (salarii personal trafic), SAL_OTHER (salarii alte
categorii de personal), TOTALSALARII, TOTALBENEFICII (cheltuieli de personal,
impozite pe salarii, alte beneficii, pensii), CHELTUIELI_SAL (TOTALSALARII+
TOTALBENEFICII) (figura 5.6).
Indicatorii: SAL_MGT, SAL_FLIGHT, SAL_MAINT, SAL_TRAFFIC,
SAL_OTHER, TOTALSALARII, TOTALBENEFICII şi CHELTUIELI_SAL au
aceeaşi granulaţie ca şi indicatorii financiari, adică sunt specificaţi la nivel de
trimestru, pentru fiecare companie.
Dezvoltarea şi implementarea soluţiilor BI 5

Figura 5.6 Fişierul Cheltuieli salariale.xls

Fişierul Angajati-categorii-an.xls: AN, Companie_ID, Denumire,


Categorie_ID, Regiune_ID, MGT (numărul de persoane-personal de conducere),
FLIGHT (personal de zbor), MAINTENANCE (personal de întreţinere), TOTAL
(figura 5.7).
Indicatorii: MGT, FLIGHT, MAINTENANCE şi TOTAL pot fi utilizaţi pentru a
analiza evoluţia în timp a personalului implicat în activităţile companiilor aeriene,
pe categorii de personal, la nivel de companie/categorie, pentru o anumită perioadă
de timp etc.
O companie aeriană este inclusă într-o anumită categorie, în funcţie de
veniturile anuale realizate.
Fişierul Categorie_companie.csv conţine informaţii despre categoriile existente:
Cod, Descriere
"1","Companii aeriene regionale mari (cu venit anual intre 20mil-100 mil$"
"2","Companii aeriene nationale (cu un venit anual intre 100 mil$-1 miliard$)"
"3","Companii aeriene mari (cu un venit anual> 1miliard $)"

5
6 Business Intelligence. Teorie şi practică

Figura 5.7 Fişierul Angajati-categorii-an.xls

De asemenea, o companie aeriană poate efectua zboruri în una sau mai multe
regiuni geografice.
Fişierul Regiuni.csv conţine informaţii despre regiunile geografice:
Cod, Descriere
"A","Atlantic"
"D","Intern"
"I","International"
"L","America Latina"
"P","Pacific"

Ex1: Crearea modelului de date

Se va crea un fisier qlikview analiza.qvw


Se vor incarca sursele de date
• Financiar.xls
• Cheltuieli salariale.xls,
• Angajati-categorii-an.xls,
• Regiuni.csv,
• Categorie_companie.csv
Dezvoltarea şi implementarea soluţiilor BI 7

Se obtine urm model:

Se obs. aparitia cheilor sintetice, pe care treb sa le eliminam.


• Tabelele Financiar si Cheltuieli au acceasi cheie sintetica $Syn3 (au
aceeasi granulatie). Se vor jonctiona.
• Tabela Angajati are alta granulatie.
• Se crea o schema stea. Se vor crea mai intai dimensiunile: Categorii
si Regiuni

Pentru încărcarea corecta a surselor de date si eliminarea cheilor sintetice, se


utilizează următorul script:

Categorii:
LOAD Cod as Categorie_ID, Descriere as Categorie
FROM Categorie_Companie.csv
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Regiuni:
LOAD Cod as Regiune_ID, Descriere as Regiune
FROM REGIUNI.csv (txt, codepage is 1252, embedded labels, delimiter is ',',
msq);

Financiar:
LOAD AutoNumber(AN&Regiune_ID&Categorie_ID&Companie_ID) as
FinanciarAngajatiID, NETPROFIT, OP_PROFIT , OP_VENITURI,
OP_CHELTUIELI, AN, TRIMESTRU, Companie_ID, Categorie_ID, Regiune_ID,

7
8 Business Intelligence. Teorie şi practică

Denumire
FROM financiar.xls (biff, embedded labels, table is [financiar$]);

JOIN load//joncțiune financiar cu cheltuieli-salariale, au aceeași cheie


AutoNumber(AN&Regiune_ID&Categorie_ID&Companie_ID) as
FinanciarAngajatiID, SAL_MGT, SAL_FLIGHT, SAL_MAINT, TOTALSALARII,
TOTALBENEFICII, CHELTUIELI_SAL, AN, TRIMESTRU, Companie_ID,
Categorie_ID, Regiune_ID
FROM cheltuieli salariale.xls (biff, embedded labels, table is
[cheltuielisalariale$]);

Angajati:
LOAD AN, Companie_ID, Categorie_ID, Regiune_ID, MGT, FLIGHT,
MAINTENANCE, TOTAL,
AutoNumber(AN&Regiune_ID&Categorie_ID&Companie_ID) as
FinanciarAngajatiID
FROM angajati-categorii-an.xls (biff, embedded labels, table is [angajati$]);

Companii:
LOAD distinct Companie_ID, Denumire resident Financiar;

Key:
Load distinct FinanciarAngajatiID, AN, Regiune_ID, Categorie_ID, Companie_ID
Resident Financiar;
Join(Key)
Load distinct FinanciarAngajatiID, AN, Regiune_ID, Categorie_ID, Companie_ID
Resident Angajati;

Drop fields AN, Regiune_ID, Companie_ID, Categorie_ID from Angajati;


Drop fields AN, Regiune_ID, Companie_ID, Categorie_ID, Denumire from
Financiar;

Modelul de date asociativ creat este prezentat în figura 5.9. Din meniu se
selectează opţiunea File/Save As şi se salvează documentul cu denumirea
analiza.qvw.
Dezvoltarea şi implementarea soluţiilor BI 9

Figura 5.9 Modelul de date

Ex2: Crearea unei pagini


Se pot crea pagini, se pot adăuga obiecte într-o pagină, se pot dimensiona şi
poziţiona obiectele în pagină.
Un document QlikView conţine mai multe pagini. Aceste pagini vor fi
conectate logic. De exemplu, o selecţie făcută într-o pagină va afecta toate
obiectele din celelalte pagini.
Fiecare pagină are un tab asociat. Pentru a activa o pagină, se face click cu
mouse-ul pe tab-ul asociat. Se utilizează fişierul analiza.qvw şi se parcurg
următorii paşi:
1. Din meniu, se selectează opţiunea Layout|Add sheet, sau butonul Add
sheet din bara de butoane;
2. Click cu butonul dreapta al mouse-ului pe suprafaţa paginii şi se selectează
opţiunea Properties din meniul asociat;
3. Se deschide fereastra Sheet Properties;
4. În tab-ul General, se stabileşte denumirea paginii (Title: Evolutie
personal);
5. În tab-ul Fields, se selectează atributul Denumire şi se mută în caseta
Fields Displayed in Listboxes;
O pagină poate fi copiată cu opţiunea Copy Sheet (click cu butonul dreapta al
mouse-ului pe suprafaţa paginii). Toate obiectele din pagină sunt copiate.

9
10 Business Intelligence. Teorie şi practică

Mutarea unei pagini


Se poate schimba poziţia unei pagini. Click cu butonul dreapta al mouse-lui pe
tab-ul asociat paginii create şi se selectează opţiunea Promote Sheet din meniu
asociat, sau butonul Promote sheet din bara de butoane.

Prima icoană din stânga (din bara de butoane) adaugă o pagină. A treia icoană
mută pagina curentă la stânga. Ultima icoană este utilizată pentru a deschide
fereastra Properties (pentru pagina curentă). Avem aceleaşi opţiuni, dacă utilizăm
din meniu, opţiunea Layout. Apare în plus opţiunea Remove Sheet, pentru a
şterge pagina curentă.

Ex3: Crearea listelor (list box)


1. Din meniu se selectează opţiunea Layout|New Sheet object (sau opţiunea
New Sheet Object din meniul asociat butonului dreapta al mouse-ului,
apoi opţiunea List Box);
2. În pagina creată anterior, se va crea o listă cu anii. În tab-ul General (List
Box Properties), se alege câmpul AN din lista de câmpuri şi titlul listei
este identic cu denumirea câmpului (se bifează caseta Use as Title).

Rezultatul:

Mutarea unui obiect


Pentru a muta un obiect se utilizează combinaţia de taste CTRL+săgeată, sau
combinaţia de taste CTRL+SHIFT+săgeată. Butonul Undo Layout Change (sau
combinaţia de taste CTRL+Z) din bara de butoane anulează ultima modificare (se
referă la mutarea, dimensionarea şi ştergerea obiectelor, la proprietăţi ale
documentului/paginii/obiectului) [Redmond, 2013; Qlikview, 2010; Qlikview,
2011b].

Alinierea obiectelor în pagină:


1. Se selectează listele Denumire şi AN ;
2. Din meniu, se selectează opţiunea Layout|Align|Distribute|Left Align;
Pentru a aranja obiectele, se poate selecta din meniu, opţiunea
Layout|Rearrange sheet objects. Uneori este necesar să selectăm această opţiune
de mai multe ori, pentru a aranja obiectele. Sau se selectează obiectele şi se
Dezvoltarea şi implementarea soluţiilor BI 11

utilizează butoanele din bara de butoane. Dacă nu apare bara de butoane, atunci se
selectează din meniu opţiunea View|Toolbars|Design.

Minimizarea şi maximizarea unui obiect


Listele şi alte obiecte pot fi minimizate. Se selectează lista Denumire şi se
deschide fereastra Properties. În tab-ul Caption, se bifează casetele Allow
Minimize|AllowMaximize.

Rezultatul:

Schimbarea bordurii unui obiect:


1. Se selectează lista Denumire şi se deschide fereastra Properties;
2. În tab-ul Layout, se alege o altă bordură (de exemplu, Border
style=depressed);
3. Dacă se doreşte ca toate obiectele din document să aibă aceeaşi bordură, se
utilizează din meniu, opţiunea Settings| Document Properties|tab-ul
Layout.
Pentru a modifica fontul, se selectează tab-ul Font din fereastra Properties.
Dacă se doreşte schimbarea fontului pentru tot documentul, se utilizează din
meniu, opţiunea Settings|Document Properties|tab-ul Font.

Copierea formatului de afişare de la un obiect la alt obiect


Dacă se doreşte copierea unui format de la un obiect la alt obiect, se utilizează
opţiunea Format Painter. De exemplu, pt. lista Denumire se modifica Border
width=10, Font=Tahoma 12. Apoi se parcurg următorii paşi:
1. Se selectează obiectul cu formatul corect, de exemplu lista AN;
2. Se selectează opţiunea Format painter din bara de butoane;
3. Click pe lista Denumire. Bordura şi titlu se modifică. Pentru anularea
modificărilor, din meniu, se selectează opţiunea Edit | Undo Layout
change.

11
12 Business Intelligence. Teorie şi practică

Rezultatul:

Obiecte cu aceleaşi proprietăţi (linked objects)


Sunt obiecte care partajează toate proprietăţile cu excepţia: dimensiunii, a
poziţiei şi a stării (minimizată, normală sau maximizată). Orice modificare a
proprietăţilor unui obiect se va reflecta automat în toate obiectele asociate (linked
objects) care pot fi în aceeaşi pagină sau în pagini diferite.

Pentru a crea obiecte asociate se parcurg următorii paşi:


1. Click cu butonul dreapta al mouse-ului pe lista An, din pagina Evoluţie
personal şi se selectează din meniul asociat, opţiunea Copy to Clipboard
– Object;
2. Se va crea o noua pagina (sheet) Analiza financiara
3. Click cu butonul dreapta al mouse-ului pe pagina Analiza financiara şi se
selectează din meniul asociat, opţiunea Paste Sheet Objects as Link. Se
deschide apoi fereastra de proprietăţi a listei An din pagina Evoluţie
personal, se modifică bordura, se salvează. Se observă că şi lista An din
pagina Analiza financiara va avea aceeaşi bordură.
Opţiunea Copy to clipboard permite copierea: valorilor, a imaginii şi a
obiectului dintr-o pagină în altă pagină.

Pentru a afişa conţinutul unei liste pe mai multe coloane, se parcurg


următorii paşi:
1. Se anulează selecţia anterioară;
2. Se deschide fereastra Properties pentru lista An;
3. Se alege tab-ul Presentation;
4. Se debifează caseta Single Column. Se bifează caseta Cell Borders.

Rezultatul:
Dezvoltarea şi implementarea soluţiilor BI 13

Valorile sunt ordonate pe coloane. Dacă se doreşte ca valorile pentru lista An să


fie ordonate pe rânduri, în tab-ul Presentation, se debifează caseta Order by
column.

Rezultatul:

Schimbarea ordinii de sortare


În listele ale căror valori nu sunt în totalitate vizibile (apare bara de defilare),
valorile sunt ordonate după starea lor logică: selectată, posibilă sau exclusă
(opţiunea Sort by State din tab-ul Sort, fereastra Properties). Valorile selectate şi
cele posibile sunt întotdeauna vizibile în document. Se poate modifica ordinea de
sortare astfel:
1. Se alege lista Denumire şi se deschide fereastra Properties pentru listă;
2. În tab-ul Sort, se bifează caseta State şi caseta Text (Z >A).
Atâta timp cât nu se face o selecţie, valorile din lista Denumire sunt ordonate
descrescător. Când se face o selecţie, ordonarea este determinată de „starea”
valorilor. Valorile selectate (verzi) şi cele posibile (albe) vor fi plasate la începutul
listei.

Schimbarea formatului numeric


Datele numerice pot fi de diferite tipuri şi pot fi formatate în diferite moduri.
Se parcurg următorii paşi:
1. Se selectează lista An şi se deschide fereastra Properties, tab-ul General;
2. În tab-ul Number, formatul pentru câmpul AN este dezactivat, deoarece
toate formatele sunt moştenite de la setările implicite ale documentului,
care depind de setările regionale ale calculatorului;
3. Se bifează caseta de validare Overide document Settings, pentru a crea un
format diferit pentru această listă;
4. Se selectează formatul dorit.

Alinierea valorilor:
1. Pentru lista Denumire, se deschide fereastra Properties;
2. În tab-ul Presention, în grupul Alignment, se selectează butonul Right
pentru text.

13
14 Business Intelligence. Teorie şi practică

Rezultatul:

Ex4: Realizarea selecţiilor

Selecţiile se pot realiza în diferite moduri şi anume:


1. Se selectează din lista Denumire, compania Aerodynamics Inc. Valoarea
selectată are culoare verde şi automat se vor afişa valorile asociate din
toate obiectele paginii/paginilor (în cazul nostru, listele An şi Regiune).
Valorile posibile sunt albe, cele excluse au culoarea gri. Listele nu afişează
duplicatele;
2. Pentru a selecta mai multe companii, se utilizează tasta CTRL;
3. Pentru a anula selecţia se utilizează butonul Clear din bara de butoane.

Rezultatul:

Anularea selecţiei:
1. Se utilizează butonul Clear din bara de butoane;
2. Sau se selectează o altă valoare (de exemplu, Alaska Airlines Inc).
Qlikview reţine ultimele 100 de selecţii;
3. Sau click pe butonul Back din bara de butoane, pentru a reveni la selecţia
anterioară.

Combinarea selecţiilor (operatorul AND):


1. Se anulează selecţia anterioară;
Dezvoltarea şi implementarea soluţiilor BI 15

2. Dorim să afişam firmele care au realizat zboruri în regiunea Pacific, în


2009. Vom selecta din lista AN, anul 2009 şi din lista Regiune, Pacific.
Selecţia curentă este afişată în fereastra Current selections (din meniu,
opţiunea View| Current selections sau combinaţia de taste CTRL+Q), sau
se poate crea un obiect de tip Current selection.

Rezultatul:

Ex 5: Crearea unei casete de selecţie (current selection box):


1. Se anulează selecţiile curente;
2. Se selectează butonul Create current selection box din bara de butoane,
sau din meniu, opţiunea Layout |New Sheet object |Current selection
Box, sau click cu butonul dreapta al mouse-ului pe suprafaţa paginii. Se
selectează opţiunea New Sheet Object din meniu asociat, apoi opţiunea
Current selection box;
3. Se deschide fereastra New current selection box, iar în tab-ul General se
bifează caseta Use Column labels. Se poate stabili şi un titlu: Selectia
curenta.

Rezultatul:

Acest obiect ne permite să interacţionăm cu selecţiile în diferite moduri şi


anume:
• Se şterg filtrele: click pe icoana Erase pentru oricare dintre câmpurile
selectate şi selecţia pe acel câmp va fi ştearsă;

15
16 Business Intelligence. Teorie şi practică

• Se modifică selecţiile: click pe icoana drop-down (săgeata în jos) şi va fi


afişată o listă de valori ale acelui câmp. Se poate selecta o altă valoare;
• Click cu butonul dreapta pe fiecare dintre filtrele afişate şi apare un meniu
din care se pot selecta opţiunile: Select excluded, Select All, Clear sau
Clear Other Fields.

Căutarea de valori:
1. Se anulează selecţiile anterioare;
2. Se activează lista Denumire (click pe eticheta listei). Click pe icoana
Search, sau din meniu, opţiunea Edit |Search, sau tasta F3;
3. Se tastează literele “Inc”. În listă se vor afişa numai companiile care conţin
şirul “Inc”. Se poate utiliza şi (*.*).

Afişarea opţiunii de căutare pentru un obiect de tip listă:


1. Se deschide fereastra de proprietăţi asociată listei Denumire (click cu
butonul dreapta al mouse-ului pe listă şi se selectează opţiunea Properties
din meniul asociat);
2. Se selectează tab-ul Caption şi se bifează caseta Search, din lista Special
Icons. De regulă, o listă are asociată această opţiune.

Rezultatul:

Ex6: Caseta statistică


O casetă statistică permite realizarea unor statistici, utilizând valorile unui
singur atribut. Poate fi mutată, redimensionată, copiată şi închisă. Se pot utiliza o
serie de funcţii statistice: sum(), min(), max(), average(), count() etc. Dacă nu se
face nicio selecţie în document, valorile afişate în caseta statistică sunt calculate
utilizând toate valorile posibile ale atributului asociat. Pentru a crea o casetă
statistică se parcurg următorii paşi:
1. Se anulează selecţiile anterioare;
2. Click cu butonul dreapta al mouse-ului pe pagina Evolutie personal şi se
alege din meniul asociat, opţiunea New Sheet Object|Statistics box. Se va
crea o casetă statistică cu titlu Numar angajati;
3. În tab-ul General, se alege din lista Field, câmpul TOTAL;
Dezvoltarea şi implementarea soluţiilor BI 17

4. Din lista Available Functions se aleg următoarele funcţii: average(),


min(), max() şi se mută în lista Displayed Functions, utilizând butonul
Add;
5. Pentru a limita numărul de zecimale pentru valorile funcţiei average(), în
tab-ul Number, din lista Functions, se selectează Average şi se bifează
caseta de validare Overide Default Settings;
6. Se selectează butonul radio Fixed to şi se setează la: 2 decimals;
7. De asemenea, se modifică separatorul pentru virgule (,) si pentru mii (.).

Rezultatul:

În casetă se vor afişa: numărul maxim de angajaţi, numărul minim de angajaţi


şi media. Se poate crea o casetă statistică şi din meniu, opţiunea Layout|New
Sheet Object|Statistics box, sau se selectează butonul Create Statistics box, din
bara de butoane.

Selecţii într-o casetă statistică:


1. Se anulează selecţiile anterioare;
2. Click cu mouse-ul pe funcţia Max şi se va afişa compania cu cei mai mulţi
angajaţi şi anume American Airlines Inc;

Rezultatul:

3. Se anulează selecţia.

Ex 7: Crearea unui obiect de tip bookmark (selecţie salvată)


Se parcurg următorii paşi:
1. Se anulează toate selecţiile;
2. Se selectează butonul Create Bookmark object din bara de butoane, sau
din meniu, opţiunea Layout|New Object sheet|Bookmark object;
17
18 Business Intelligence. Teorie şi practică

3. În tab-ul General, se stabileşte Titlu = Bookmark;


4. Se fac câteva selecţii în listele existente şi apoi click pe butonul Add
Bookmark din obiectul de tip bookmark creat. Denumirea implicită pentru
bookmark este data curentă. Primul bookmark dintr-o zi are numărul 1, al
doilea, numărul 2 etc. Se tastează numele bookmark-ului: Bookmark1.
Lista de bookmark-uri create (max 10) sunt afişate în meniu, opţiunea
Bookmarks|Document Bookmarks.
5. Se anulează selecţiile;
6. Se selectează apoi, Bookmark1 din obiectul de tip bookmark şi se observă
selecţia curentă.

Rezultatul:

Putem crea un bookmark dinamic, adică expresia de căutare este interpretată de


fiecare dată, când bookmark-ul este selectat.
Se va crea un bookmark care va selecta întotdeauna primele 10 companii în
funcţie de veniturile operaţionale:
1. Se anulează toate selecţiile;
2. Click cu butonul dreapta al mouse-lui pe lista Denumire şi se selectează
opţiunea Advanced search din meniul asociat. Se deschide fereastra
Advanced Search;
3. În caseta Search expression se introduce următoarea expresie:
=rank(sum(OP_VENITURI))<=10
4. Click pe butonul Go pentru a executa căutarea şi se observă modificările în
lista Denumire;
5. Click pe butonul Close pentru a închide fereastra Advanced Search;
6. Se selectează din meniu, opţiunea Bookmarks |Add bookmark;
7. Se tastează denumirea: Primele 10 companii dupa veniturile operationale;
8. Se bifează caseta de validare Make bookmark apply on top of current
selection. Apoi click pe butonul OK pentru a salva setările.
Se anulează toate selecţiile. Se selectează anul 2012, regiunea America Latină şi
apoi bookmark-ul creat anterior. Se vor afişa primele 10 companii (după veniturile
operaţionale) care au operat în America Latină, în 2012.
Dezvoltarea şi implementarea soluţiilor BI 19

Rezultatul:

Realizarea graficelor
Graficele pot fi de tip: bară, scatter, linie, combo (bara/linie), grid, gauge,
funnel, mekko, tabelă pivot/liniară etc. Un grafic se poate crea utilizând opţiunea
Quick Chart Wizard din meniul Tools, sau butonul Create Chart din bara de
butoane, sau opţiunea New sheet Object|Chart din meniul asociat butonului
dreapta al mouse-ului. Fereastra Properties diferă de la un tip de grafic la alt tip de
grafic.

Ex 8: Prima analiză va fi analiza profitului operaţional pe ani şi se va utiliza un


grafic de tip bară. Se parcurg următorii paşi:
1. Se selectează butonul Create Chart din bara de butoane. Se deschide
fereastra Create Chart, tab-ul General. Se stabileşte titlul ferestrei
(Window title= Profit operational/pierdere (mil$));
2. Se alege ca tip de grafic: bara (Bar Chart). Apoi click pe butonul Next;
3. În fereastra Dimensions, se alege din lista Available fields, câmpul AN şi
se adaugă în lista Used Dimensions. Apoi, click pe butonul Next. O
dimensiune este un câmp după care datele sunt agregate în grafic;
4. În fereastra Edit Expression se va introduce următoarea expresie:
Sum (OP_PROFIT). Se poate tasta direct expresia, sau se alege din lista de
câmpuri, câmpul OP_PROFIT şi din lista de funcţii, funcţia sum(), apoi se
selectează butonul Paste. Eticheta expresiei (label) este: Profit
operaţional/pierdere (mil$).

19
20 Business Intelligence. Teorie şi practică

Rezultatul:

Pentru a arăta mai bine graficul, se pot face următoarele modificări:


1. În tab-ul Caption, se deselectează caseta Show caption;
2. În tab-ul Number, se selectează butonul Fixed to 2 decimals;
3. În tab-ul Axes, se bifează caseta Show grid, din zona Expression Axes. Se
modifică Primary Dimension Labels=diagonal.

Rezultatul:

Ex 9: Clonarea unui grafic şi detaşarea clonei


Pentru a clona un grafic, se parcurg următorii paşi:
1. Click cu butonul dreapta al mouse-ului pe grafic şi se alege din meniul
asociat, opţiunea Clone. Apare un grafic identic;
2. Click cu butonul dreapta al mouse-ului pe noul grafic şi se alege din
meniul asociat, opţiunea Detach. Un grafic detaşat nu se actualizează
Dezvoltarea şi implementarea soluţiilor BI 21

atunci când se fac selecţii. Poate fi util atunci când se doreşte o evidenţă a
modificărilor;
3. Se ataşează din nou graficul (opţiunea Attach din meniu asociat butonului
dreapta al mouse-ului);
4. Se anulează selecţiile.

Ex 10: Utilizarea grupurilor ciclice


Grupurile ciclice (Cyclic groups) sunt definite ca o listă de dimensiuni, din care
utilizatorul poate selecta dimensiunea dorită. Se parcurg următorii paşi:
1. Din meniu, se selectează opţiunea Settings |Document properties |tab-ul
Group;
2. Click pe butonul New. Se deschide fereastra de dialog Group settings;
3. Se stabileşte denumirea grupului. Se selectează opţiunea Cyclic group;
4. Se selectează din lista de câmpuri, atributele care vor fi incluse în grup
(regiune, categorie). Ordinea din listă nu contează. Când se utilizează ca
dimensiune într-un grafic, se poate alege pentru axa X, unul dintre
câmpurile grupului, în timp ce se păstrează aceeaşi expresie pe axa Y.
5. Se va clona graficul construit anterior, apoi in fereastra Properties, tab-ul
Dimensions se alege ca dimensiune grupul ciclic.

Se pot crea de asemenea, şi grupuri ciclice de expresii. Se va clona din nou


graficul creat anterior.
Se deschide fereastra Properties pentru graficul creat anterior. Se selectează
tab-ul Expression şi click pe butonul Add. În fereastra Edit Expression se
21
22 Business Intelligence. Teorie şi practică

tastează următoarea expresie: Sum(OP_VENITURI), Label=Venituri operationale.


Cu expresia anterioară selectată, se face click pe butonul Group. Automat se va
crea un grup ciclic de expresii.
Click pe butonul Add pentru a adăuga următoarea expresie:
sum(OP_CHELTUIELI), Label=Cheltuieli operationale, click apoi pe butonul
Group.
În tab-ul Number, se stabileşte formatul expresiilor: Fixed to 2 decimals și
separatorii pentru partea zecimală (,) și mii (.). De asemenea, se va alege ca
dimensiune Anul

Rezultatul:

Logica asociativă a instrumentului Qlikview ne dă libertatea de a utiliza orice


atribut ca dimensiune, în orice ordine dorim.
Pt toate graficele create, se va selecta casuta AutoMinimize, tab-ul Caption, si
casuta Show caption.

Ex 11: Grupurile de atribute pot fi: ierarhice (drill-down) şi ciclice. Se pot


defini grupuri ierarhice/grupuri ciclice, şi apoi se pot crea grafice cu aceste grupuri.
Un grup ierarhic permite utilizatorilor să facă drill down pe nivelele ierarhiei.

Se va crea un grup ierarhic format din atributele An şi Trimestru:


Dezvoltarea şi implementarea soluţiilor BI 23

1. Se deschide fereastra de proprietăţi pentru graficul anterior;


2. Se selectează tab-ul Dimensions, apoi click pe butonul Edit groups;
3. Se deschide fereastra de dialog Groups, click pe butonul New. În fereastra
de dialog Group settings, se introduce Group name=Timp, butonul radio
Drill down este selectat;
4. Din lista Available Fields, se adaugă atributele AN şi TRIMESTRU la lista
Used Fields. Fiecare atribut utilizează, în mod implicit, denumirea sa ca
etichetă în grafic. Se poate specifica o etichetă diferită (opţiunea Label, în
partea de jos a listei Used Fields).
Se observă grupul creat în lista Available Fields/Group, din tab-ul
Dimensions. Se selectează grupul şi se adaugă în lista Used Dimensions.
Putem să facem drill down prin click pe una dintre barele graficului care iniţial
reprezintă un an (de exemplu, anul 2004) şi se va afişa evoluţia profitului
operaţional pe trimestrele anului 2004.

Rezultatul:

Se poate reveni la nivel de an, dacă se face click pe icoana asociată grupului.

Pentru a afişa valorile pe barele graficului, se bifează caseta Values on data


points, din tab-ul Expression.

23
24 Business Intelligence. Teorie şi practică

În tab-ul General, se va modifica titlul ferestrei (Window title): ='Indicatori la


nivel de' & GetCurrentField(Timp).
Funcţia Getcurrentfield() utilizează ca parametru denumirea grupului ierarhic şi
returnează denumirea câmpului curent.

Rezultatul:

Se pot face selecţii de date într-un grafic. Se plasează cursorul pe grafic, apoi cu
butonul stânga al mouse-ului apăsat, se trasează o zonă de selecţie. Graficul va
afişa informaţii despre anii selectaţi din grafic. Modificarea este reflectată şi în lista
AN. De asemenea, se pot face selecţii prin click cu mouse-ul pe anii din grafic.

Unele grafice pot fi vizualizate în mai multe moduri. Se selectează din fereastra
Properties, tab-ul General, din lista Fast type Change, tipurile de grafice dorite,
de exemplu, bară şi linie. Se va bifa caseta Show Caption, din tab-ul Caption. Se
observă că lângă icoana de minimizare, a apărut o nouă icoană asociată graficului
de tip linie. Se poate selecta şi se modifică tipul de grafic.
Dezvoltarea şi implementarea soluţiilor BI 25

25
26 Business Intelligence. Teorie şi practică

Ex 12: Schimbarea culorilor:


1. Se selectează graficul, se deschide fereastra Properties;
2. Se selectează tab-ul Colors, apoi se bifează caseta Multicolored;

Rezultatul:

Ex. 13: Graficele pot fi complexe cu multe dimensiuni şi expresii. Se va crea un


grafic cu două dimensiuni şi o expresie: profitul operaţional la nivel de companie.
Pentru fiecare companie, profitul operaţional este afişat pe ani:
1. Se va crea un nou grafic de tip bară;
2. În tab-ul Dimensions, se mută atributele Denumire, AN în lista Used
dimensions;
3. Expresia este sum(OP_PROFIT), eticheta=Profit operational/pierdere
(mil$) ;
4. În pagina Style, se setează opţiunea Subtype la Stacked;
5. În pagina Dimensions Limits, se bifează caseta Restrict which values are
displayed using the first expression şi se selectează butonul Show only.
Selectăm Largest şi introducem valoarea 5 pentru dimensiunea Denumire
(primele 5 firme după profit);
6. Se deselectează caseta Show Others;
7. În tab-ul Axes, se selectează afişare înclinată pentru opţiunea Primary
Dimension Labels.
Dezvoltarea şi implementarea soluţiilor BI 27

O bară reprezintă profitul operaţional/pierderea pentru o anumită companie, dar


este împărţită în secţiuni de culori diferite reprezentând diferiţi ani.

Rezultatul:

Ex 14: Tabela pivot şi tabela “straight”/linie


Pentru a schimba un grafic de tip bară într-o tabelă pivot se parcurg următorii
paşi:
1. Se va clona graficul anterior şi se deschide fereastra Properties;
2. În pagina General, se schimbă titlul ferestrei în Tabela pivot;
3. Se selectează ca tip de grafic: Pivot table;
4. În pagina Sort, se ordonează valorile atributului Denumire de la A la Z
(caseta Text este bifată).

Tabela pivot rezultată:

27
28 Business Intelligence. Teorie şi practică

Se adaugă atributul TRIMESTRU în lista Used Dimensions (fereastra


Properties|tab-ul Dimensions)

Rezultatul:

Se pot ajusta coloanele utilizând opţiunea Fit Columns to data din meniul
asociat butonului dreapta al mouse-ului. Este posibil drill down la un nivel de
detaliu prin click pe icoana (+) (caseta Allways full expanded, din tab-ul
Presentation, nu este bifată).

Tabela pivot poate afişa totaluri pe trimestru astfel:


1. În fereastra Properties, se selectează tab-ul Presentation şi în caseta
Dimensions and Expressions se selectează atributul TRIMESTRU;
2. Apoi se bifează caseta Show Partial Sums.

Rezultatul:

Ex 15: Crearea unei tabele de tip “straight”/linie


Poate conţine dimensiuni şi expresii calculate şi este utilizată pentru a afişa
indicatori KPI. Acest tip de tabelă nu poate afişa totaluri parţiale. Orice coloană din
tabelă poate fi sortată şi fiecare dintre rândurile sale conţine o combinaţie de
dimensiuni şi expresii.
Dezvoltarea şi implementarea soluţiilor BI 29

Pentru a crea o tabelă de tip “straight” se parcurg următorii paşi:


1. Se minimizează tabela pivot;
2. Se creează un nou obiect de tip grafic;
3. Se alege tipul straight table, se tastează denumirea ferestrei: Tabela de tip
straight;
4. În pagina Dimensions, se mută câmpurile AN, Denumire şi TRIMESTRU
în caseta Used Dimensions;
5. În pagina Edit Expression se introduce expresia: Sum(OP_PROFIT),
eticheta expresiei este Profit operational/pierdere;

Rezultatul:

Fiecare rând din tabelă reprezintă o posibilă combinaţie de date. De asemenea,


se afişează şi un total general. Sortarea se face după atributul AN. Se poate
modifica atributul după care se face sortarea astfel:
1. Click cu butonul dreapta al mouse-ului pe coloana Denumire şi se alege
opţiunea Sort din meniul asociat;
2. Ordinea coloanelor rămâne aceeaşi, dar ordonarea rândurilor se face după
câmpul Denumire.

Rezultatul:

Mutarea unei coloane


Dorim ca atributul Denumire să fie prima coloană din tabelă. Se ţine apăsat
butonul stânga al mouse-ului pe titlul coloanei Denumire şi se „trage” în poziţia
dorită.

Se pot utiliza culori diferite pentru a diferenţia valorile expresiilor din tabelă:
1. Se deschide fereastra de proprietăţi a tabelei;
29
30 Business Intelligence. Teorie şi practică

2. În tab-ul Visual Cues, expresia utilizată este Profit operational/Pierdere.


Sunt patru categorii: upper, normal, lower şi text. Dorim să evidenţiem
toate valorile >0. Se tastează 0 în caseta Upper;
3. Există două butoane pentru culori şi trei casete de validare pentru a seta
modul cum va apare textul şi/sau fundalul valorilor. Dorim să aplicăm
culoarea verde la valorile care aparţin categoriei Upper. Click pe butonul
Text şi se alege culoarea verde;
4. Apoi se bifează caseta Bold;
5. Se repetă paşii pentru cazul în care profitul < 0: culoarea va fi roşie, textul
va fi italic;
6. În tab-ul Expression, selectăm butonul No Totals.

Rezultatul:

Se pot face selecţii în tabela de tip pivot/straight. De exemplu, click pe valoarea


2004 din coloana AN şi se vor afişa informaţii numai despre anul 2004. Se poate
selecta şi o valoare a expresiei, ceea ce presupune o selecţie indirectă a acelor
valori din dimensiuni (coloane/rânduri) care sunt utilizate pentru a calcula expresia.
De exemplu, click pe valoarea 170.54 din coloana Profit operational/pierdere. S-a
selectat de fapt anul 2006, trimestru 2 şi compania Aerodynamics Inc.

Rezultatul:
Dezvoltarea şi implementarea soluţiilor BI 31

Pentru selecţii multiple şi complexe, există o altă opţiune numită drop-down


select. Această opţiune face posibilă transformarea unei coloane de tip dimensiune
într-o listă drop-down cu posibilităţi de căutare complexe:
1. Se deschide fereastra de proprietăţi a tabelei de tip “straight”;
2. Se selectează tab-ul Presentations. Se selectează atributul AN în caseta
Columns şi apoi se bifează caseta Dropdown Select;
3. Se repetă paşii pentru atributele Denumire şi TRIMESTRU;
Se selectează din lista AN, valorile: 2000, 2001 şi 2002. Apoi, click pe icoana
drop-down din coloana Denumire. Când apare lista drop-down se tastează „H*”. Se
vor afişa informaţii numai despre companiile a căror denumire începe cu „H” şi
numai pentru anii 2000-2002.

Rezultatul:

Pentru a nu încărca prea mult pagina, vom seta ca un singur grafic/tabelă să fie
afişat/afişată la un moment dat. În tab-ul Caption, din fereastra de proprietăţi, se
bifează caseta de validare Autominimize.

Ex 16: Se va crea un grafic de tip bară cu dimensiunea Denumire şi două


expresii sum(OP_PROFIT) şi avg(TOTAL). Se parcurg următorii paşi:
1. În tab-ul General se specifică titlul ferestrei: Angajati versus profit
operational;
2. Se bifează caseta de validare Show title in the chart şi se tastează
Angajati versus profit operational în casetă;
3. În tab-ul Expression, click pe butonul Add şi se deschide fereastra Edit
expression. Se introduce expresie sum(OP_PROFIT) cu eticheta Profit

31
32 Business Intelligence. Teorie şi practică

operational/pierdere şi expresia avg(TOTAL) cu eticheta Nr. mediu


angajaţi;
4. Se restricţionează afişarea doar a primelor cinci companii, utilizând prima
expresie, adică Profitul operaţional. Caseta Show Others nu este selectată.
Ambele expresii sunt afişate pe o singură axă, dar magnitudinea numerelor
pentru cele două expresii diferă foarte mult. Numărul de angajaţi uneori nu este
vizibil.

Rezultatul:

Putem să folosim axe diferite pentru cele două expresii:


1. Se deschide fereastra de proprietăţi şi se selectează tab-ul Axes;
2. Se selectează expresia Nr. mediu angajaţi în caseta Expression axes şi
apoi se selectează butonul radio Right(top) din caseta Position.

Rezultatul:
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Laborator 3
Ex 1: Transformarea unui grafic de tip bară într-un grafic de tip combo
Într-un grafic combo se pot combina facilităţile unui grafic de tip bară cu ale unui grafic de tip linie.
De exemplu, o expresie este prezentată ca bare, iar a doua expresie ca linii şi/sau simboluri. Se parcurg
următorii paşi:
1. Pentru graficul anterior (din lab 2), se deschide fereastra Properties şi se selectează icoana
combo chart din tab-ul General;

2. În tab-ul Expression, se selectează Profitul operaţional/pierdere şi se bifează caseta Bar sub


Display options. Casetele Line şi Symbol nu sunt bifate;
3. Se selectează Nr. mediu angajaţi şi se bifează casetele Symbol şi line (optiunea Smooth), iar
caseta Bar nu este selectată.

Rezultatul:

1
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Ex 2: Expresiile din Qlikview sunt similare cu formulele din Excel sau funcţiile din SQL. Fereastra
Edit Expression verifică automat sintaxa, iar dacă apare o eroare, expresia se va colora în roşu şi se va
afişa mesajul “Error in expression”. În partea de jos a ferestrei sunt o serie de tab-uri şi anume:
• Fields – se pot selecta atributele care vor fi agregate;
• Functions –se pot selecta funcţiile utilizate în expresii;
• Variabile – pot fi utilizate pentru a stoca expresii şi valori. De exemplu, în loc de a tasta
expresie sum(OP_PROFIT) în caseta Edit Expression, se poate crea o variabilă care conţine
definiţia expresiei şi putem selecta variabila din listă. Rezultatul este acelaşi.
• Imagini. Sunt unele obiecte, de exemplu, obiecte de tip text sau chiar tabele de tip “straight”
care pot afişa rezultatul unei expresii ca o imagine. Se pot alege diferite simboluri din caseta
Image, sau click pe butonul Advanced şi se aleg simbolurile dorite.

De exemplu, se verifică dacă sum(OP_PROFIT)>0 şi se va afişa o săgeată verde în sus, altfel se va


afişa o săgeată roşie în jos. Se deschide fereastra de proprietăţi a tabelei “straight” şi :
• Se va adauga din nou masura sum(OP_PROFIT)
• Se modifică expresie astfel:
If(sum(OP_PROFIT)> 0, 'qmem://<bundled>/BuiltIn/arrow_n_g.png',
'qmem://<bundled>/BuiltIn/arrow_s_r.png')

Se alege imaginea , apoi paste

2
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

De asemenea, trebuie să setăm modul de afişare (tab-ul Expression, Display Option, caseta
Representation: Image).

Se va adauga din nou masura sum(OP_PROFIT). Putem să schimbăm şi fundalul unei expresii în funcţie
de valorile sale. De exemplu, vom face următoarele modificări:
1. Click cu mouse-ul pe expresie creata şi selectăm atributul background color;

3
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

2. Introducem următoarea expresie în caseta Definition:


If(sum(OP_PROFIT) >= 0, Green(),LightRed())
3. Click butonul OK pentru a închide fereastra Edit Expression;
4. Apoi se selectează atributul Text Color şi în caseta Definition se tastează white();

Ex 3: De asemenea, în tabelele “straight”/pivot nu toate expresiile trebuie să fie numerice. În tab-ul


Expression din fereastra de proprietăţi, există caseta Representation, implicit setată pe text, dar are şi
alte opţiuni:
• Image: de exemplu, se poate afişa o săgeată în sus, atunci când un indicator are valori pozitive,
sau o săgeată în jos, pentru valori negative;
• Circular Gauge: se poate include un grafic de tip gauge în celulele tabelei;
• Linear Gauge: ocupă în principal spaţiu pe orizontală şi este mai bun decât cel circular;
• Traffic Light Gauge: se utilizează un semafor;
• LED Gauge: trebuie precizate toate setările specifice unui grafic de tip gauge;
• Mini chart: arată direcţia de evoluţie a unui indicator, utilizând un grafic de tip linie;
• Link: permite hyperlink-uri în celulele tabelei. Se utilizează un tag <url>.

De exemplu, dorim să afişăm într-o tabelă „straight”, profitul operaţional ca valori, dar şi sub forma
unui minigrafic:
1. Vom copia tabela „straight” creată anterior (opţiunea Copy to clipboard/Object, apoi Paste
Sheet Object). Redenumim tabela (Window title: Tabela straight modificata);

4
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

2. În tab-ul Dimensions, din fereastra de proprietăţi, ştergem atributul TRIMESTRU din lista Used
Dimensions;
3. În tab-ul Expression, vom crea expresia sum(OP_PROFIT), eticheta expresiei este Profit ca
minichart;
4. Alegem din caseta Representation opţiunea Minichart;
5. Apare butonul Mini chart settings. Click pe acest buton şi se deschide fereastra Mini Chart
settings. Se alege dimensiunea după care se va construi graficul: TRIMESTRU şi modul de
afişare (Mode: Bars);
6. Click butonul OK pentru a închide ambele ferestre.

Rezultatul:

Ex 4: Crearea unui grafic de tip gauge


Se va crea un grafic de tip gauge care va afişa cât reprezintă procentual salariile personalului de
conducere din total cheltuieli salariale. Se parcurg următorii paşi:
1. Se selectează icoana Create Chart din bara de butoane;
2. În fereastra General, se selectează tipul graficului: gauge;
3. Se stabileşte titlu (Window Title)=Salarii personal conducere/Cheltuieli salariale. Apoi click
butonul Next;
4. Acest tip de grafic nu utilizează dimensiuni. Se va trece la fereastra Edit Expression;
5. Se adaugă următoarea expresie: Sum (SAL_MGT)/Sum (CHELTUIELI_SAL);
6. Eticheta expresiei este Salarii personal conducere/Cheltuieli salariale;
7. Click butonul Next de trei ori până la fereastra Presentation şi se setează (sub Gauge Settings)
valorile min şi max: 0 şi 1;
8. În caseta Segment setup se vor adăuga două segmente prin click pe butonul Add, de două ori.
Caseta de validare Autowidth segments nu se selectează. Dacă se bifează caseta Autowidth
segments, dimensiunile segmentelor se stabilesc în funcţie de valorile min şi max. Dacă dorim
să evităm acest lucru, setăm noi segmentele astfel:
• Segmentul 1:
o lower bound = 0.0, click pe butonul de culoare. Se deschide fereastra Color Area, se
selectează butonul Solid Color şi se alege culoarea verde deschis;
• Segmentul 2:
o Lower Bound: 0.25
o Se selectează butonul Solid Color şi se alege culoarea galbenă;
• Segmentul 3:

5
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

o Lower Bound: 0. 5
o Se selectează butonul Solid Color şi se alege culoarea portocaliu;
• Segmentul 4:
o Lower Bound: 0.75
o Se selectează butonul Solid Color şi se alege culoarea roşie.
Graficul va afişa valori procentuale de la 0 la 100%. S-au definit 4 segmente. Se setează numai limita
inferioară a fiecărui segment. Limita superioară este definită automat de limita inferioară a segmentului
următor, sau de limita superioară a graficului. Segmentul 1 este de la 0 la 25%, segmentul 2 de la 25-
50% etc.
9. În tab-ul Presentation se bifează casetele de validare Show Scale, Show Labels on every
major unit, Hide segment boundaries şi Hide Gauge Outlines;
10. Se setează Show Scale = 5 Major units, se setează Show Labels on every to 1 Major Unit.
Se vor afişa limitele fiecărui segment: 0, 25%, 50%, 75% şi 100%.
11. Click butonul Next, de trei ori până la fereastra Number. Se va seta formatul Integer şi se
bifează caseta Show in Percent (%);
12. Click butonul Next şi se deschide fereastra Font. Se setează Size = 10;
13. Click butonul Finish.

Rezultatul:

Pentru a vedea exact ce reprezintă fiecare număr din grafic, se parcurg următorii paşi:
1. Se deschide fereastra Properties;
2. În tab-ul Presentation, click pe butonul Add (secţiunea Text in chart). Se deschide fereastra
Chart Text;
3. Se adaugă următoarea expresie în caseta Text, prin click pe butonul (…):
=Num (Sum (SAL_MGT) / Sum (CHELTUIELI_SAL), '##,##%')
Se pune semnul (=) în faţa expresiei, pentru a fi interpretată ca o expresie. Se utilizează funcţia
Num() pentru a afişa procentual. Atenție la setările din script.
4. În fereastra Chart text, se setează opţiunile: Alignment =centered, Font =Tahoma, Font
style=regular şi Size=14;

6
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

5. Click pe butonul OK pentru a salva setările. Textul adăugat va fi plasat în colţul stânga sus al
obiectului. Se activează graficul (click pe titlu) şi apoi se apasă combinaţia de taste Ctrl+Shift.
Apare o bordură roşie în jurul textului şi putem muta textul unde dorim;
6. Se deschide fereastra de proprietăţi. În tab-ul Colors, se mută Transparency slider la 100%;
7. În tab-ul Caption, caseta de validare Show caption nu se selectează;
8. Click pe butonul OK pentru a salva setările.

Rezultatul:

Ex 5: Crearea unui obiect de tip text box/caseta pentru afişare texte


Un astfel de obiect se foloseşte pentru a afişa un text explicativ, o imagine sau pentru a crea zone
colorate în pagină. Vom crea un obiect de tip text box. Se parcurg următorii paşi:
1. Click cu butonul dreapta al mouse-ului oriunde pe un spaţiu gol din pagină şi se selectează din
meniul asociat opţiunea New Sheet object|Text object;
2. În caseta Text se introduce următoarea expresie:
=Num(avg (MGT), '#.##0,00')
Un obiect de tip text box nu are tab-ul Number în fereastra de proprietăţi, de aceea, s-a utilizat
funcţia Num() pentru a formata corect rezultatul expresiei.
3. Mutăm Transparency slider la 100%;
4. În tab-ul Font se setează font=Tahoma, font style=bold, size=16;
5. În tab-ul Caption, se bifează caseta de validare Show caption, iar în caseta Title text se
introduce: Număr mediu de manageri;
6. Se setează, din zona Caption alignment, caseta Horizontal: centered;
7. Se seteaza din tab-ul Layout, Border Width=2, Shadow Intensity=Medium;
8. Se bifează caseta de validare Wrap text şi în caseta Caption Height se introduce valoarea 2.
Obiectul creat va fi poziţionat sub obiectul de tip gauge (figura 5.15).

7
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Figura 5.15 Crearea unui obiect de tip text

Ex 6: Dacă dorim să afişăm o icoană de atenţionare pe obiectul de tip text box Profit Net, atunci când
profitul este negativ, se parcurg următorii paşi:
1. Din meniu, se selectează opţiunea Layout|New sheet object|Text object;
2. În tab-ul General se tastează în zona Text:
=num(sum(NETPROFIT), '#.##0,00')
3. În tab-ul Caption se bifează caseta de validare Show caption şi Title text: Profitul net (mil $),
4. Se bifează caseta de validare Wrap text şi în caseta Caption Height se introduce valoarea 2;
5. În tab-ul Font, se alege: tahoma, bold, 14;
6. Click pe butonul OK pentru a închide fereastra şi a salva setările.

Apoi se va crea un alt obiect de tip text box cu următoarele setări:


1. În tab-ul General, se selectează butonul radio Image localizat în secţiunea Background şi
click pe butonul Change;
2. Se selectează fişierul warning.jpeg (se poate descărca de pe Internet);
3. Transparency slider este < 50% pentru a fi vizibilă icoana;
4. În tab-ul Layout, se setează din zona Layer: Top. În acest caz, icoana este întotdeauna
suprapusă peste obiectul de tip text creat anterior. Altfel nu se va putea selecta cu mouse-ul.
Opțiunea Styling Mode (Settings/Document Properties) este setată Advanced;
5. În tab-ul Layout, se selectează butonul radio Conditional (sub Show) şi se introduce expresia:
Sum([NETPROFIT]) < 0. În acest caz, icoana se va afişa numai pentru un profit net < 0;
6. Click pe butonul OK pentru a închide fereastra de proprietăţi (figura 5.16).

8
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Figura 5.16 Crearea unui obiect de tip text box care afişează şi o imagine

Se pot asocia acţiuni la obiectele de tip text, obiecte de tip linie/săgeată sau butoane. De exemplu,
dacă facem click pe obiectul de tip text Profitul net să se deschidă pagina Analiza financiară. Se parcurg
următorii paşi:
1. Se va deschide fereastra de proprietăţi corespunzătoare paginii;
2. În tab-ul General, se setează sheetID=Analiza_FIN şi click pe butonul OK;
3. În pagina Evolutie personal click pe obiectul de tip text Profitul net şi se deschide fereastra de
proprietăţi;
4. În tab-ul Actions, click pe butonul Add;
5. Se selectează opţiunea Layout din secţiunea Action Type şi opţiunea Activate Sheet din
secţiunea Action. Click pe butonul OK;
6. În tab-ul Actions, se introduce Analiza_FIN în caseta SheetID. Apoi click pe butonul OK.

9
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Ex 7: Utilizarea variabilelor în grafice


Se va crea o variabilă care va stoca expresia Sum (SAL_MGT)/Sum (CHELTUIELI_SAL):
1. Din meniu se selectează opţiunea Settings|Variable overview (sau combinaţia de taste
CTRL+ALT+V) pentru a deschide fereastra Variable Overview;
2. Click pe butonul Add pentru a introduce în caseta Variable Name: eprocent şi apoi click pe
butonul OK;
3. Se selectează variabila creată şi se introduce în caseta Definition următoarea expresie: Sum
(SAL_MGT)/Sum (CHELTUIELI_SAL)
4. În caseta Comment se introduce descrierea variabilei: Salarii personal conducere/cheltuieli
salariale;
5. Click pe butonul OK pentru a închide fereastra Variable Overview;
6. Se selectează pagina Evolutie personal şi se deschide fereastra de proprietăţi pentru graficul
gauge;
7. În tab-ul Expression, se înlocuieşte expresia definită anterior cu următoarea expresie:
=Num($(eprocent), '##.#%')
8. Click pe butonul OK.
Dacă această variabilă se va modifica, modificările se vor reflecta automat în grafic.

Ex 8: Grafic de tip plăcintă


Un indicator important este cota de piaţă pe care o putem calcula utilizând următoarea formulă:
cota de piaţă a firmei X = (veniturile operaţionale realizate de firma X în perioada Y) / (total venituri
operaţionale realizate în perioada Y). Se va utiliza un grafic de tip plăcintă:
1. Se va crea o variabilă vTOTAL=sum(OP_VENITURI);
2. Click cu butonul dreapta al mouse-ului pe suprafaţa paginii Evolutie personal şi se selectează
opţiunea New Sheet Object|Chart din meniul asociat;
3. În tab-ul General, se selectează ca tip de grafic: Pie chart şi titlu: Cota de piaţă. Apoi click pe
butonul Next;
4. În tab-ul Dimension, se selectează atributul Denumire din lista Available Fields /Groups şi se
mută în lista Used Dimensions;
5. În fereastra Edit expression se introduce următoarea expresie: sum(OP_VENITURI)/vTOTAL.
Se introduce eticheta Cota de piaţa;
6. Click pe butonul Finish.

Rezultatul:

10
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Pentru a afişa cei mai mari jucători pe piaţă, în 2012, se vor face următoarele modificări:
1. Se deschide fereastra de proprietăţi a graficului. În tab-ul Dimension Limits, se bifează caseta
de validare Restrict which values are displayed using the first expression;
2. Se selectează butonul radio Show only;
3. Se selectează Largest 5 values. Caseta Show Others nu este selectată;
4. În tab-ul Expressions se bifează caseta Value on data Points;
5. În tab-ul Number se selectează Fixed to 2 decimals și caseta Show in Procent. Click pe
butonul OK.
Rezultatul:

Opţiunea Dimension Limits poate fi setată doar numai pentru prima expresie. În cazul în care
graficul are mai multe expresii, celelalte expresii nu se iau în considerare.
Putem adăuga denumirea companiei lângă cota procentuală astfel:
1. În tab-ul Expression, se selectează butonul Add pentru a adăuga o nouă expresie: If
(count(distinct Denumire) = 1, Denumire, 'Others'), eticheta Denumire. Se verifică dacă
secţiunea curentă (felia) din grafic corespunde unei singure companii şi atunci se afişează
denumirea companiei;
2. Se bifează caseta Values on Data Points;
3. În tab-ul Presentation, caseta Show legend nu se selectează;
4. În tab-ul Caption, caseta Show Caption nu se selectează;
5. Click pe butonul OK.

11
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Rezultatul:

Daca vreau sa nu se afiseze, daca facem selectii in lista Denumire:


1. Se deschide fereastra Properties, in tab-ul Layout, in zona Show se bifeaza casuta
Conditional si se tasteaza:
GetSelectedCount(Denumire)=0

Ex 9: Graficul de tip Grid poate conţine trei dimensiuni diferite. În următorul exemplu, s-au utilizat
dimensiunile AN, TRIMESTRU şi Regiune. Dimensiunea bulinei reprezintă veniturile operaţionale
sum(OP_VENITURI).

Rezultatul:

Se observă că cele mai mari venituri sunt în trimestrele 2, 3 anul 2011, respectiv 2012 şi pentru
zborurile interne.

12
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Ex 10: Grafic de tip Trellis nu este un tip de grafic, ci o opţiune care există la toate tipurile de grafice,
cu excepţia tabelelor pivot/”straight”. Se utilizează în cazul unui grafic de tip linie, bară sau scatter. Se
creează un grid în care, pentru fiecare valoare distinctă a primei dimensiuni, se va crea un grafic separat.

În următorul exemplu, s-a creat un grafic de tip linie cu două dimensiuni Regiune şi TRIMESTRU şi
expresia: sum(NETPROFIT)/sum(OP_VENITURI), eticheta Profit net marginal.
Optiunea Trellis poate fi setată în fereastra de proprietăţi, tab-ul Dimensions. Se selectează butonul
Trellis pentru prima dimensiune (dimensiunea Regiune) şi se deschide fereastra Trellis Settings. Se
setează opţiunile Number of columns, Fixed=2 şi Number of rows, Fixed=2. Caseta Enable Trellis
Chart este selectată. Fiecare grafic afişează profitul net marginal pe trimestre şi regiuni, pentru anul
2011.

Rezultatul:

Ex 11: Obiect de tip tabel (table box)


Coloanele unui tabel pot fi încărcate din diferite surse. Tabelul nu poate afişa valori calculate. Pentru
a crea un tabel se parcurg următorii paşi:
1. Se selectează pagina Analiza financiara;
2. Click pe butonul Create table box din bara de butoane;
3. În fereastra de proprietăţi, în tab-ul General, se precizează titlul Situaţie financiară detaliată;
4. Se aleg următoarele atribute: Regiune, Denumire, AN, TRIMESTRU, NETPROFIT,
OP_VENITURI, OP_CHELTUIELI, OP_PROFIT.
5. Se modifică, pentru toţi indicatorii, separatorul pentru partea zecimală (,) şi pentru mii (.).

Pentru a ajusta lăţimea coloanelor, click cu butonul dreapta al mouse-ului pe una dintre coloane, şi
se alege opţiunea Fit columns to data sau Equal Column Width. Se poate alege coloana după care se
face sortarea informaţiilor (click cu butonul dreapta al mouse-ului pe coloana dorită şi se alege din
meniul asociat opţiunea Sort). Se pot exporta valorile din tabel. Se alege opţiunea Export din meniul
asociat butonului dreapta al mouse-ului. Se exportă într-un fişier (.qvo) specific Qlikview care poate fi
asociat cu orice program (inclusiv Excel).

13
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Rezultatul:

Ex 12: Lista multiplă (multi box)


Pentru a crea o listă multiplă se parcurg următorii paşi:
1. Click pe butonul Create Multi box din bara de butoane sau se selectează din meniu opţiunea
Layout|New Sheet Object |Multi box;
2. În tab-ul General, se introduce titlul informaţii despre companii;
3. Se selectează câmpurile Denumire, Categorie şi Regiune din lista Available Fields şi se mută
în lista Fields displayed in multibox;
4. Apoi click pe butonul OK.

Rezultatul:

Dacă se selectează compania Asia Pacific, se observă că nu se afişează regiunea. Compania îşi
desfăşoară activitatea în mai multe regiuni şi anume „Intern” şi „International”.

Rezultatul:

Putem stabili criterii de căutare complexe. De exemplu, dorim să afişăm informaţii numai despre
companiile cu activitate în regiunea “Intern”, cu excepţia companiilor cu venituri mai mari de 1 miliard
$:
1. Click pe Denumire pentru a deschide lista de valori;
2. Click cu butonul dreapta al mouse-lui oriunde pe lista de valori şi se selectează opţiunea
Advanced Search din meniul asociat;
3. În caseta Search Expression se introduce următoarea expresie:

14
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

= [Categorie] <> 'Companii aeriene mari(cu un venit anual> 1miliard $)' and [Regiune] =
'Intern'
4. Click pe butonul Go pentru a se aplica selecţia şi apoi click pe butonul Close pentru a închide
fereastra Advanced search. Observăm în obiectul de tip „selecţie curentă”, expresia utilizată
pentru selecţie:

Rezultatul:

Ex 13: Butoane
Butoanele se pot utiliza pentru a se executa diferite comenzi sau acţiuni: export de date în fişiere,
ştergerea selecţiilor, crearea unui bookmark etc. Se va crea un buton în pagina Dashboard:
1. Click pe butonul Create button din bara de butoane;
2. Se deschide fereastra de proprietăţi;
3. În tab-ul General, se tastează în caseta Text următorul text: Anulează selecţii;
4. Din caseta Background se alege Aqua;
5. Click pe caseta Color şi se alege culoarea verde din fereastra Color;
6. În tab-ul Actions, click pe butonul Add. Se deschide fereastra Add Action. Se alege din lista
Action type, opţiunea Selection şi din lista Action, opţiunea Clear All;
7. În tab-ul Font se alege culoarea roşu.

Rezultatul:

Dacă dorim să exportăm date din anumite câmpuri într-un fişier (de exemplu, Excel), vom utiliza ca
acţiune (Action type: external, Action: export). Putem lansa o aplicaţie utilizând ca acţiune (Action

15
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

type:external, action:launch), apoi se specifica aplicaţia (de exemplu, C:\Program Files\Microsoft


Office\Office12\EXCEL.EXE) .

Ex 14: Variabile
Variabilele pot fi utilizate şi în scripturi. De exemplu, dorim să utilizăm o variabilă vDateToday care
va stoca data curentă:
LET vDateToday = Today();

Funcţia TODAY() returnează data curentă.

Apoi se va crea o caseta text in care se va afisa data curenta. In caseta text

Rezultatul:

Qlikview are două comenzi care pot fi utilizate pentru a asigna o valoare la o variabilă: SET şi LET.
Diferenţa dintre cele două comenzi este că SET asignează o valoare, în timp ce LET mai întâi evaluează
expresia şi rezultatul îl asignează variabilei (set variablename = string sau let variable = expression).

Exemple:
valoarea variabilei vVariable
SET vVariable = 1; 1
LET vVariable = 3 + 4; 7

Variabilele în QlikView sunt utilizate pentru a stoca:


• o valoare constantă sau stabilită pe baza unei formule;
• definiţia unei expresii care poate fi utilizată în grafice.

Pentru a crea/modifica o variabilă se utilizează fereastra Variable Overview (combinaţia de taste


CTRL+ALT+V, sau din meniu opţiunea Settings|Variable Overview).

Click pe butonul Add şi se deschide fereastra New variable unde se tastează denumirea noii
variabile (Variable1 este denumirea implicită). Se modifică în vTop. Click butonul OK. Se selectează
variabila creată şi în zona Definition se tastează valoare 5. Apoi, în zona Comment se adaugă următorul
comentariu: Variabila utilizată pentru a modifica dinamic numărul de valori afişate în graficul Top N.

Se creează apoi un grafic de tip bară cu dimensiunea Denumire şi ca expresie Sum(OP_VENITURI).


Din tab-ul Sort sortăm companiile după Y-Value în ordine descrescătoare.

16
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Rezultatul (selectăm anul 2011):

Trebuie să limităm numărul de bare afişate şi vom utiliza variabila vTop. Se deschide fereastra de
proprietăţi pentru grafic. În tab-ul Dimension Limits se bifează caseta de validare Restrict which
values are displayed using the first expression şi se vor seta următoarele:
• se selectează butonul Show only;
• din casetă se va selecta Largest;
• în caseta Values se introduce $(vTop);
• caseta de validare Show Others nu este selectată.

Rezultatul:

17
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Există două moduri prin care valoarea unei variabile poate fi schimbată şi anume:
• utilizarea unei casete pentru introducere date (Input box);
• utilizarea unui obiect de tip slider.

Ex 15: Utilizarea unei casete pentru introducere date (Input box)


Pentru a crea un astfel de obiect, se parcurg următorii paşi:
1. Se selectează din meniu, opţiunea Layout|New sheet Object|Input Box;
2. În tab-ul General, se stabileşte titlu Introduce valoare;
3. Din lista de variabile Available Variables se va selecta variabila vTop şi se mută în lista
Displayed Variables;
4. Se selectează eticheta (caseta Label) şi se introduce textul Top valori;
Atunci când obiectul este creat, valoarea implicită este 5 (stabilită la definirea variabilei). Se poate
modifica această valoare.

Rezultatul:

Se poate modifica titlul graficului, şi anume se va afişa Top n companii după veniturile operaţionale.
Se va introduce următoarea expresie:
='Top ' & vTop& ' Companii după veniturile operaţionale '

Rezultatul:

18
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Ex 16: Utilizarea unui obiect de tip slider


Se utilizează pentru a modifica valoarea unei variabile. Se parcurg următorii paşi:
1. Click cu butonul dreapta al mouse-lui pe pagina şi se alege din meniul afişat opţiunea New
Sheet Object|Slider\Calendar object;
2. În tab-ul General, se selectează din caseta Input Style: Slider;
3. Din secţiunea Data se activează butonul Variables şi se selectează variabila vTop;
4. Se va seta Min value = 3 şi Max value = 10 (şirul de valori ale obiectului de tip slider);
5. Se bifează caseta de validare Static Step şi se alege valoare 1. În obiectul de tip slider sunt
utilizate numai numere întregi;
6. Click pe butonul OK şi se va crea un obiect de tip slider orizontal. Putem să-i schimbăm modul
de afişare (tab-ul Presentation).

Rezultatul:

Ex 17: Utilizarea variabilelor pentru a stoca valoarea unei expresii/definiţii de expresii


Se parcurg următorii paşi:
1. Se deschide fereastra Variable Overview, click butonul Add. Se va crea variabila vTotal, click
pe butonul OK;
2. Selectăm variabila şi în zona Definition se introduce următoarea expresie:

19
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

=Sum(OP_VENITURI) – se va calcula venitul total pentru toate companiile;


3. Click pe butonul OK pentru a închide fereastra;
4. Se va crea o tabelă de tip “straight” cu dimensiunea Denumire şi expresia:
Sum(OP_VENITURI) / (vTotal)
5. În tab-ul Number, se stabileşte pentru expresie un format cu două zecimale (Fixed to 2
decimals) şi se specifică că va fi afişată procentual (Show in percent(%)). Se va afişa pentru
fiecare companie cât reprezintă procentual veniturile sale din total venituri. Se va sorta
descrescător după valoarea procentuală.

Rezultatul:

Ex 18: De asemenea, cu ajutorul variabilelor se pot schimba, în mod dinamic, indicatorii vizualizaţi
într-un grafic/în mai multe grafice. Se parcurg următorii paşi:
1. Se deschide fereastra Variable Overview şi se creează două variabile: eCheltuieli cu definiţia:
sum(OP_CHELTUIELI) şi eVenituri cu definiţia: sum(OP_VENITURI);
2. Se deschide fereastra Edit Script şi se adaugă un nou tab Indicatori;
3. În acest tab se adaugă o nouă tabelă utilizând opţiunea Insert|Load Statement|Load Inline,
din meniu:

Se va genera următorul cod:

LOAD * INLINE [
Indicatori, eIndicator
Cheltuieli, eCheltuieli
Venituri, eVenituri];

4. Se salvează scriptul şi apoi se execută. Se adaugă o nouă tabelă logică la model;


5. Se va crea o listă Indicatori în pagina Analiza financiară.

20
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

6. În fereastra de proprietăţi a listei, în tab-ul General se bifează caseta Always one selected
value. Pentru a se activa această opţiune, trebuie selectată anterior o valoare din listă;
7. Se va crea un grafic de tip plăcintă a cărui expresie va fi modificată dinamic, utilizând lista
Indicatori. Se fac următoarele setări:
• Se stabileşte titlul ferestrei:
= Indicatori &' după Companie';
• Se dezactivează caseta de validare Show Title in chart;
• Se setează ca dimensiune a graficului atributul Denumire;
• Se stabileşte ca expresie: $($(=eIndicator));
S-au utilizat două semne ($): primul (din interior) extrage valoarea din tabela logică creată,
după ce utilizatorul a selectat unul dintre indicatorii, din lista Indicatori (adică specifică ce
variabilă va fi evaluată), al doilea ($) evaluează acea variabilă.
• În tab Presentation, se marchează caseta Limit Legend = 20;
• În caseta Text in Chart se introduce textul: = Indicatori;
• În tab-ul Dimension Limits se limitează numai la primele 5 firme după valoarea
indicatorului selectat;
• În tab-ul Expression se selectează caseta Relative și caseta Values on Data Points.

Rezultatul:

21
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Ex 19: Crearea unei dimensiuni secundare intr-un grafic de tip bara


1. Se va crea un grafic de tip bara cu An si Trimestru ca dimensiuni si expresia:
Sum(OP_PROFIT)

2. Se adauga a doua expresie cu val 0

22
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

3. In tab Presentation, se deselecteaza Show Legend

!!!!!!!Cele doua dimensiuni treb sa fie intr-o ierarhie

23
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Ex 20: Crearea de custom pop-up


Se va crea un nou fisier Qlikview.

Scriptul:

LOAD * INLINE [
Country, Sales, Costs
USA, 1000, 800
UK, 800, 700
Germany, 900, 1000
Japan, 600, 400]

Se parcurg urm pasi:

1. Se va crea un bar chart, titlu Sales versus Costs by country :

Dimension Country
Indicator 1 Sum(Sales)
Indicator 2 Sum(Costs)

2. Click pe Finish.

3. Se selecteaza graficul si Copy to clipboard/object, Paste sheet object


4. Se deschide fereastra de prop. pt al doilea grafic si se fac urm modificari in tab Presentation.

24
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

5. Se adauga Indicator 3 si se fac urm modificari:

Se va observa noul pop-up ce afiseaza cand se plimba mouse-ul peste barele coresp Sales /Costs

6. Se desch. fereastra de propr. si se fac urm.modificari pt indicatorul 3:

25
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

= Country & chr(10)


& 'Sales : ' & Num(Sum(Sales), '$(MoneyFormat)') & chr(10)
& 'Costs : ' & Num(Sum(Costs), '$(MoneyFormat)') & chr(10)
& 'Margin : ' & Num(Sum(Sales)-Sum(Costs), '$(MoneyFormat)')
& chr(10) & 'Margin % : ' & Num(1-(Sum(Costs)/Sum(Sales)), '0.0%')

In script:
SET MoneyFormat='$#,##0.00;($#,##0.00)';

Rezultatul:

26
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Laborator 4
Triggeri/declanşatori
Ex 1: Se va crea un trigger care se va declanşa la deschiderea documentului şi va afisa (restore) tabela
straight Cota piata. Aceasta tabela este minimizata initial. Fiecare obiect are un ID, in cazul tabelei,
ObjectID=CH25

1. Din meniu se selectează opţiunea Settings|Document properties|tab-ul Triggers;


2. Se selectează din lista Document Event triggers: On Open;
3. Click pe butonul Add action(s) şi se deschide fereastra Actions. Click pe butonul Add;
4. În fereastra Add Action se selectează din lista Action Type: Layout si din lista Action: Restore
Object. Apoi, click pe butonul OK;
5. In fereastra Action, se introduce in caseta Object ID: CH25;
6. Click pe butonul OK. Se observă că triggerul On Open Document Event are asociată o acţiune
(<Has action(s)>). Click pe butonul OK pentru a închide fereastra Document Properties;
7. Se salvează documentul, apoi se închide;
8. Se redeschide documentul.

1
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Alerte

Ex 2: Se va crea o alertă care va afişa următorul mesaj: „Nr de ani cu profit net anual >0:” Se va combina
căutarea complexă cu un bookmark şi o alertă. Se parcurg următorii paşi:
1. Se selectează opţiunea Advanced Search pentru lista AN. Se introduce următorul criteriu de
căutare:
=sum(TOTAL <AN> NETPROFIT)>0;

Apoi selectam butonul GO

[Clauza TOTAL este utilizată în funcţiile de agregare pentru a realiza agregarea setului de date curent
selectat. Clauza TOTAL poate fi urmată de o listă de atribute puse între < >. Aceste atribute trebuie să fie
un subset al dimensiunilor graficului. În acest caz, agregarea se va face pentru fiecare combinaţie de valori
ale atributelor specificate în listă.

Exemplu: sum(TOTAL OP_VENITURI) -returneaza total venituri pentru selecţia curenta.]

2. Se va crea un bookmark cu denumirea Anii cu profit >0 ;


3. Se selectează din meniu opţiunea Tools|Alerts;
4. Click pe butonul Add;
5. În caseta Description se introduce textul Alerta;
6. Se selectează din caseta Bookmark, bookmark-ul creat anterior;
7. În caseta Condition se introduce expresia:
=Count(distinct AN) >0;

8. În caseta Message se introduce următorul text:

2
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

='Număr de ani cu profit net anual >0= ' & Count(Distinct AN)& chr(13) & 'Anii: ' &
Concat(DISTINCT AN, ', ')
9. Se activează evenimentele OnOpen, OnPostReload;
10. Click pe butonul OK pentru a închide fereastra;
11. Se salvează documentul, apoi se închide;
12. Se redeschide documentul .

Analiza complexă a datelor utilizând Qlikview Set Analysis


Expresiile din Set Analysis includ o funcţie de agregare (sum, count, max, min etc.) şi trei elemente
care trebuie definite: identificatorii, operatorii şi modificatorii setului de date.

Identificatorii sunt utilizaţi pentru a specifica în mod explicit setul de date utilizat. Sunt similari clauzei
FROM din SELECT-SQL. Identificatorii sunt incluşi între { }.

De exemplu, Sum ({identificator} OP_VENITURI) şi poate avea următoarele valori:


1 = se ia în considerare tot setul de date asociat documentului;
$ = se ia în considerare numai setul de date asociat selecţiilor curente;
$1 = se ia în considerare setul de date asociat selecţiei anterioare;
1-$ = se iau în considerare, din tot setul de date, numai acele date care nu sunt selectate în selecţiile
curente;

Exemple:
Sum({1}OP_VENITURI) – total venituri pentru tot setul de date;
Sum({$1} OP_VENITURI) – total venituri pentru setul de date asociat selecţiei anterioare;
Sum ({Bookmark1} OP_VENITURI) – total venituri pentru setul de date definit de bookmark1;

3
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Modificatorii setului de date sunt similari clauzei WHERE din SELECT-SQL. Sunt utilizaţi pentru a
modifica setul de date stabilit de identificatori şi apoi utilizat în agregare.
Se precizează de forma:
Sum ({identificator <modificatorii setului de date>} OP_VENITURI) (figura 5.20).

Exemplu:
Sum ({1 <AN = {2007}>} OP_VENITURI) – total venituri pentru anul 2007

Expresia se pune între { }

=sum({1-$<An=2012>}OP_VENITURI)

identificator Modificatorii se pun între < >

Figura 5.20 Definirea unei expresii utilizată de Set Analysis

Ex 3: Pentru a înţelege mai bine Set Analysis se va utiliza următoarea sursă de date:

Companie An Venituri
A 2011 10000
B 2011 10000
C 2011 10000
A 2012 10000
B 2012 10000
C 2012 10000
D 2012 10000
E 2012 10000
A 2013 10000
B 2013 10000
C 2013 10000
D 2013 10000
E 2013 10000
F 2013 10000
G 2013 10000

Pentru a realiza analize cu Set Analysis se parcurg următorii paşi:


1. Se va crea un nou document SetAnalysis.qvw.
2. Se incarca sursa prezentata mai sus (se va crea un fisier excel cu aceste date)

4
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Se vor utiliza două liste: An şi Companie şi tabele pivot:

Prima tabela pivot

Selecţia curenta Selecţia curentă Tot setul de date Selecţia anterioară

A doua tabela pivot:

Este exclusă selecţia Setul de date comun


Selecţia curentă
curentă selecţiei curente
şi bookmark1

Selecţia este stabilită de bookmark1


Setul de date care nu este comun
(adică numai pentru companiile A, B, C)
selecţiei curente şi bookmark1

5
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Alte tabele pivot:

Selecţia curentă: An=2012


Funcţia de agregare: sum()
Expresia: sum(Venituri)

Selecţia curentă: An=2012


Funcţia de agregare: sum()
Expresia pentru anul curent: sum(Venituri)
Expresia pentru anul anterior: Sum({$<An={$(=Max(An)-1)}>}Venituri)

3. Se defineşte expresia de bază Sum (Venituri);


4. Se defineşte identificatorul care va stabili setul de date utilizat în analiză. Între { } se defineşte
identificatorul: Sum({$}Venituri);

Se poate modifica dinamic setul de date utilizat în analiză, ţinând cont de selecţiile curente ale
utilizatorilor. Se pot include funcţii în definiţia setului de valori ale unui câmp (din setul de date utilizat
pentru analiză).
De exemplu, Sum({$<An={$(=Max(An))}>} Venituri). Simbolul ($) din $(=Max(An) se utilizează
pentru a evalua expresia inclusă între paranteze (adică se returnează ultimul an din selecţia curentă).

Dacă se doreşte setul de date corespunzător anului anterior, indiferent ce an selectează utilizatorul, se
utilizează expresia: Sum({$<An={$(=Max(An)-1)}>} Venituri).

Dacă utilizatorul modifică selecţia (adică va selecta un alt an), se modifică automat şi setul de date
utilizat în analiză (întotdeauna va fi pentru anul anterior).

6
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Pentru a stabili setul de date analizat, se pot utiliza şi două funcţii:


• Funcţia P() utilizează toate valorile posibile ale unui atribut;
• Funcţia E() utilizează toate valorile excluse ale unui atribut.

Ex 4
De exemplu, dorim să afişăm vânzările curente ale companiilor care au avut vânzări anul trecut. Se va
utiliza următoarea expresie:
sum({<An={$(=Max(An))},Companie=P({<An={$(=Max(An)-1)}> } Companie ) > } Venituri )

Rezultatul:

7
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Crearea de scenarii comparative


Stările alternative permit utilizatorilor să realizeze comparaţii între două sau mai multe seturi de date,
fără a crea expresii Set Analysis complexe sau scripturi de încărcare. Stările alternative sunt utile atunci
când se fac selecţii diferite, utilizând aceeaşi dimensiune (atribut). Există două stări utilizate în mod implicit
într-un document QlikView şi anume:
• Starea implicită. Un document Qlikview este întotdeauna în stare implicită. Starea implicită este
reprezentată de simbolul ($) într-o expresie. Toate selecţiile făcute de utilizatori sunt în starea
implicită;
• Starea moştenită. Un obiect poate moşteni o stare de la obiectul părinte (pagină şi container).
Obiectele unei pagini sunt întotdeauna într-o stare moştenită.

Ex 5: Se va realiza o analiză comparativă a veniturilor realizate în regiunea „Intern” cu veniturile realizate


în regiunea „America Latină” (această analiză se poate realiza şi cu Set Analysis). Se parcurg următorii
paşi:
1. Se va utiliza documentul exemplu.qvw. Se va crea o nouă pagină Analiza comparativă;
2. Se selectează din meniu, opţiunea Settings|Document Properties şi se activează tab-ul General
al ferestrei Document Properties;
3. Click pe butonul Alternate States şi apare următoarea fereastră Alternate States
4. Click pe butonul Add şi se introduce Grupa A în fereastra New State Name;
5. Apoi se va crea cealaltă stare şi anume, Grupa B;
6. Aceste două stări vor fi utilizate pentru a salva două seturi de date diferite pe care dorim să le
analizăm;
7. Avem deja create următoarele liste: Regiune, Denumire (in pagina Dashboard) . Se va crea un
container cu aceste liste;
8. Se deschide fereastra de proprietăţi pentru container. Din tab-ul General, se selectează Grupa A în
caseta Alternate State. Această casetă este valabilă, dacă facilitatea Alternate States a fost activată,
prin definirea unei stări alternative în fereastra Document Properties ;

9. Se introduce ca titlu al containerului Regiuni-Grupa A;


10. Se copiază containerul prin copierea lui în clipboard şi apoi opţiunea Paste Sheet Object;
11. Pentru containerul copie, titlul este Regiuni-Grupa B şi starea alternativă: Grupa B;
12. După aranjarea celor două containere, avem următorul rezultat

8
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Se va crea un grafic de tip bară pentru a vizualiza cele două seturi de date:
1. Se vor crea si listele AN, TRIMESTRU in pagina Analiza comparativă;
2. Se va crea graficul de tip bară, titlu graficului: Grupa A versus Grupa B. Caseta Show Title in
chart nu este selectată. Se alege dimensiunea AN;
3. Se vor crea două expresii:
Grupa A: sum({[Grupa A]<AN=p(AN)>} [OP_VENITURI])
Grupa B: sum({[Grupa B]<AN=p(AN)>} [OP_VENITURI])

Funcţia P() utilizează toate valorile posibile ale unui atribut. Expresiile precedente vor lua în considerare
numai selecţiile făcute pe atributul AN (starea implicită a documentului) şi le adaugă la toate selecţiile făcute
de stările alternative. Selecţiile făcute pe celelalte câmpuri care nu apar în stările alternative, nu sunt luate
în considerare:.
4. În tab-ul Axes, se selectează butonul Primary Dimension Labels: orientare pe diagonală;
5. În tab-ul Number, se setează pentru ambele expresii formatul: Fixed 2 decimals.

Utilizarea stărilor alternative poate crea confuzie utilizatorilor finali. De aceea, este important de a
eticheta corespunzător obiectele care utilizează stări alternative şi de a utiliza obiecte de tip „selecţie
curentă”. Se vor crea două obiecte de tip „selecţie curentă” pe care le vom asocia celor două stări. În
fereastra de proprietăţi, tab-ul General, în caseta Alternate state se selectează: Grupa A sau Grupa B. În
figura de mai jos, se afişează comparativ veniturile obţinute în regiunea „America Latină” faţă de veniturile
obţinute în regiunea „Intern”, în 2010.

Lista AN nu a fost asociată stărilor alternative create. Selecţia AN=2010 se aplică la ambele stări
alternative, deşi observăm că în obiectele de tip „selecţie curentă” nu apare şi selecţia AN=2010.

9
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Utilizarea stărilor alternative

Ex 6: Analiza datelor utilizând diferite perioade de timp


Pentru a realiza aceste tipuri de analize, se va utiliza documentul exemplu.qvw (cu modelul de mai jos-
laboratorul 1).

Se va modifica scriptul pt generarea tabelei logice Timp astfel:

10
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

• se va asigna pentru fiecare combinaţie An&Luna şi An&Trimestru, un ID unic utilizând funcţia


Autonumber();
• fiecare dată calendaristică va fi asociată cu un număr întreg, utilizând funcţia autonumber()

Let varMinDate = Num(Peek('Data',0,'Vanzari'));


Let varMaxDate = Num(Peek('Data',-1,'Vanzari'));
TempTimp:
Load
date($(varMinDate) + rowno()-1) As TempData
Autogenerate
$(varMaxDate)-$(varMinDate) + 1;

Timp:
LOAD *,
Autonumber(Data) as DataID,
autonumber(An&Luna, 'LunaID') as LunaID,
autonumber(An&Trimestru, 'TrimestruID') as TrimestruID;

Load
TempData As Data,
Week(TempData) As Saptamana,
Month(TempData) As Luna,
Year(TempData) As An,
Week (TempData) & '-'& Year(TempData)as SaptamanasiAn,
WeekDay(TempData) as denumire_zi,
WeekStart(TempData, 0, 0) AS prima_zi_sapt,
WeekEnd(TempData, 0, 0) AS ultima_zi_sapt,
Weekyear(TempData) as anul_pt_sapt,
Month(TempData) & '-' &Year(TempData) AS LunasiAn,
MonthStart(TempData) as prima_zi_luna,
MonthEnd(TempData) as ultima_zi_luna,
'Trim' &Ceil(Month(TempData)/3) AS Trimestru,
QuarterStart(TempData) as prima_zi_trim,
QuarterEnd(TempData) as ultima_zi_trim,
YearEnd(TempData) as ultima_zi_an,
DayNumberOfYear(TempData) as numartotalzile
resident TempTimp
ORDER BY TempData ASC;
DROP TABLE TempTimp;

11
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Se vor crea trei liste: An, Trimestru, Luna şi o tabelă pivot cu dimensiunea Oras şi expresia
sum(Vanzarea).

Rezultatul:

Să presupunem că utilizatorul doreşte să compare vânzările din: An=2013, Trimestru=Trim2,


Luna=Iunie cu vânzările din luna anterioară (în cazul nostru, luna mai). Se va crea o nouă expresie de
forma:
sum({$<LunaID ={$(=max(LunaID)-1)}> } Vanzarea).

Această expresie va returna 0, deoarece valoarea pe care o dorim (adică luna mai) este exclusă din
selecţia curentă a utilizatorului. Utilizatorul a selectat doar luna iunie. Din acest motiv, vom ignora selecţiile
făcute de utilizator pentru atributul Luna.

12
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Daca erau selectate ambele luni:

Expresia se modifică astfel:


sum({$<LunaID ={$(=max(LunaID)-1)}, Luna=> } Vanzarea)

şi va avea eticheta Luna anterioara, unde <Luna= > va returna setul de date pentru toate lunile valabile,
mai puţin cele excluse de altă selecţie şi apoi se va asigna valoarea dorită (5) la câmpul LunaID, pentru a
returna numai datele din luna mai.

13
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Rezultatul:

Dacă utilizatorul selectează An=2013, Trimestru=Trim2, Luna=Aprilie. Expresia de mai sus returnează
vânzările din luna martie? Răspunsul este nu. Deoarece luna martie nu este selectată şi nu face parte din
trimestru 2, deci este exclusă din selecţii.

Rezultatul:

Expresia se va modifica astfel:


sum({$<LunaID ={$(=max(LunaID)-1)}, Trimestru=,Luna=> } Vanzarea)

14
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

unde <Trimestru=, Luna=> înseamnă toate trimestrele şi toate lunile valabile

Rezultatul:

Să presupunem că selecţia curentă este: An=2013, Trimestru=Trim1, Luna=Ianuarie.

Dacă dorim să afişăm vânzările din luna anterioară (Decembrie 2012), expresia se modifică astfel:
sum({$<LunaID ={$(=max(LunaID)-1)}, An=, Trimestru=,Luna=> } Vanzarea)

15
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

În tabela pivot se vor adăuga următoarele expresii:


Vânzările de acum două luni
sum({$<LunaID ={$(=max(LunaID)-2)}, An=,Trimestru=,Luna=> } Vanzarea)

Vânzările din aceeaşi lună, anul anterior


sum({$<LunaID ={$(=max(LunaID)-12)}, An=,Trimestru=,Luna=> } Vanzarea)

Vânzările din luna curentă versus luna anterioară (se va afişa procentual)
(sum(Vanzarea)-sum({$<LunaID ={$(=max(LunaID)-1)}, An=,Trimestru=,Luna=> }
Vanzarea))/sum({$<LunaID ={$(=max(LunaID)-1)}, An=,Trimestru=,Luna=> } Vanzarea)

În tab-ul Number, se fac următoarele setări: formatul pentru expresii este Fixed to 2 decimals, iar
pentru ultima expresie se bifează şi caseta Show in Percent (%). În exemplu nostru, luna curentă este
aprilie, 2013.

Ex 7: Se pot utiliza şi variabile cu parametri. Se deschide fereastra Variable Overview şi se creează


o variabilă vSetLuna cu următoarea definiţie:
LunaID ={$(=max(LunaID)-$1)}, An=,Trimestru=,Luna=

În definiţia acestei variabile, s-a utilizat un parametru ($1) care va permite


să utilizăm aceeaşi variabilă pentru a afişa informaţii despre luna
curentă (parametru=0), luna anterioară (parametru=1), două luni anterioare (parametru=2) etc.

Se va crea o tabelă de tip “straight” cu dimensiunea Oras şi următoarele trei expresii:


=sum({$<$(vSetLuna(0))>} Vanzarea), cu eticheta=Luna curentă
=sum({$<$(vSetLuna(1))>} Vanzarea), cu eticheta=Luna anterioară
=sum({$<$(vSetLuna(2))>} Vanzarea), cu eticheta=două luni anterioare

16
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Rezultatul:

Ex 8: Următoarele expresii calculează vânzările pentru diferite perioade de timp specificate:


YTD (Year To Date) este perioada cuprinsă între prima zi a anului curent şi data curentă. De exemplu,
dorim să afişăm vânzările de la începutul anului 2012 până la 01/10/2012 (formatul implicit este
M/D/YYYY).

[SET DateFormat='M/D/YYYY';]

Se vor crea listele: An, Trimestru, Luna şi Data şi o tabelă pivot cu două dimensiuni: Oras şi Data şi
expresia YTD:
Sum({<An=, Luna=, Trimestru=, Data={">=$(=YearStart(Max(Data)))<=$(=Max(Data))"}>}
Vanzarea)

Funcţia Yearstart() returnează prima zi din anul din care face parte data specificată, în formatul implicit,
precizat în scriptul de încărcare. În tab-ul Presentation, din fereastra de proprietăţi a tabelei pivot, se
bifează caseta Show Partial Sum pentru câmpurile Oras şi Data. Formatul pentru expresie este Fixed to
2 decimals.
Dacă s-a selectat data 01/10/2012, atunci YTD este de la 01/01/2012 până la 01/10/2012. Se vor afişa
vânzările detaliate pe zile, cu total pe oraşe, pe zile şi pe perioada selectată.

17
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Rezultatul:

QTD (Quarter to Date) este perioada cuprinsă între prima zi a trimestrului curent (in cazul nostru trim.
2) şi data curentă (in cazul nostru 5/1/2012). Înlocuim în expresie, funcţia Yearstart() cu funcţia
Quarterstart():

Sum({<An=, Luna=, Trimestru=, Data={">=$(=QuarterStart(Max(Data)))<=$(=Max(Data))"}>}


Vanzarea)

Rezultatul:

18
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Dacă în tabela pivot, înlocuim atributul Data cu atributul Luna (in fereastra Dimensions), vânzările se
vor afişa pe luni, pentru perioada specificată.

Rezultatul:

19
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

MTD (Month to Date) este perioada cuprinsă între prima zi a lunii curente şi data curentă. Se utilizează
expresia:
Sum({<An=, Luna=, Trimestru=, Data={">=$(=MonthStart(Max(Data)))<=$(=Max(Data))"}>}
Vanzarea)

WTD (week to date) este perioada cuprinsă între prima zi a săptămânii curente şi data curentă. Se
utilizează expresia:
Sum({<An=, Luna=, Trimestru=, Data=,
DataID={">=$(=Num(WeekStart(Max(Data))))<=$(=Max(Data))"}>} Vanzarea)

Ex 9: Se va utiliza o tabela pivot, dimensiunea Oras si expresiile:


Vânzările din trimestrul anterior:
sum({$<TrimestruID={$(=max(TrimestruID)-1)},An=,Trimestru=,Luna=>}Vanzarea)

Vânzările din acelaşi trimestru, anul anterior:


sum({$<TrimestruID={$(=max(TrimestruID)-4)},An=,Trimestru=,Luna=>}Vanzarea)

Vânzările din anul anterior versus anul selectat


Pentru anul curent selectat (adică pentru 2013):
Sum({<An= {$(=max(An))}, Trimestru=, Luna=>}Vanzarea)

Pentru anul anterior (adică pentru 2012, indiferent de selecţiile din listele Trimestru, Luna):
Sum({<An= {$(=max(An)-1)}, Trimestru=, Luna=>}Vanzarea)

Ex 10: Putem utiliza stările alternative pentru a compara două perioade de timp. Vom crea două stări:
Perioada A şi Perioada B. De asemenea, vom crea două containere ce includ listele An, Luna şi Oras şi
care se vor asocia cu cele două stări.

20
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Se pot crea două grafice de tip linie pentru care se vor face următoarele setări:
• În tab-ul General, se selectează din caseta Alternate State: Perioada A/Perioada B;
• Se stabileşte titlul ferestrei (Window title): ='Analiza comparativa:'&statename()
• Se bifează caseta Show title in chart şi se copiază titlul ferestrei;
• Se alege ca dimensiune câmpul Luna;
• Expresia utilizată este sum(Vanzarea) cu eticheta Perioada A pt primul grafic si cu eticheta
Perioada B pt al doilea grafic;
• Se deschide fereastra de proprietăţi pentru grafic. În tab-ul Expression, se bifează doar caseta Line
pentru ambele expresii. În tab-ul Number, se bifează caseta Fixed to 2 decimals pentru ambele
expresii. Se vor modifica şi separatorii pentru partea zecimală (,) şi pentru mii (.) (daca nu s-au
modificat din script).

21
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Utilizarea stărilor alternative pentru a compara două perioade de timp

Ex 11: Utilizarea clauzei TOTAL în funcţiile de agregare


Clauza TOTAL este utilizată în funcţiile de agregare pentru a realiza agregarea setului de date curent
selectat. Dacă apare clauza TOTAL înaintea unei expresii, calculele vor fi făcute pentru toate valorile
posibile date de selecţiile curente, indiferent de dimensiunile graficului.

Se considera urm. sursa Excel:

Regiune An Vanzari
R1 2010 100
R1 2011 200
R2 2010 300
R2 2011 400
R3 2010 100
R3 2011 200

1. Se va crea un nou document


2. Se vor crea doua liste An, Regiune si o tabela straight cu dimensiunile An, Regiune si urm expresii:
Sum(Vanzari),
sum(TOTAL Vanzari),
sum(Vanzari)/sum(Total Vanzari),
sum(Vanzari)/vTOTAL
3. Variabila vTOTAL:
=sum(Vanzari)

22
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

Se tine cont de selectia curenta

Clauza TOTAL poate fi urmată de o listă de atribute puse între < >. Aceste atribute trebuie să fie un
subset al dimensiunilor graficului. În acest caz, agregarea se va face pentru fiecare combinaţie de valori ale
atributelor specificate în listă.
Se va crea urm tabela straight si se va obs. modul de agregare a datelor pentru selectia curenta:

23
Mihaela Muntean, Ana-Ramona Bologa, Business Intelligence. Teorie și practică, editura ASE, 2015

24

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