Dinamički naslovi u kolonama tablice PDF Ispis E-mail
Ocjena: / 2
LošeOdlično 
Mustafa Bešlagić   
Četvrtak, 09 Listopad 2008

Problem mnogih OBI EE Analytics konzultanata za koji sad mogu reci da je kako tako riješen (objašnjenje koje ovdje navodim prošireno je rješenje koje se pojavilo na nekim OBI EE blogovima ali na žalost nije dovoljno jasno ne poznavateljima javascript-e a i ima određenih nedostataka).

Dakle, kako znamo OBI EE nema adekvatno rješenje za ovo. Istina, vi možete ručno promijeniti naslov kolone ali da nazive kolona preuzimate iz neke tablice iz baze to je bio science fiction.

Na webu se također mogu naći neka polovicna rješenja tipa da tablici na kojoj želite dinamičke naslove kolona bukvalno sve vrijednosti u kolonama pretvorite u karaktere i skrijete naslove kolona pa onda union-om spojite drugu tablicu (s tim da ovu drugu stavite iznad prije navedene) u kojoj vrijednosti (dinamički naslove) također pretvorite u karaktere i to bi bilo to. Međutim to i takvo rješenje nije dobro jer praktično gubite sva svojstva tipa drill ili navigate pa tablica izgleda kao u publisher-u bez ikakvog razloga da se nađe na dashboard-u.

Dok se Oracle ne sjeti ovaj feature staviti u OBI EE vi radite ovako:

Dakle zamislimo da imamo tablicu/izvješće  A koje ima dinamičke nazive kolona koje moramo povući iz tablice B.
Tablica A ima kolone salda tj. neki iznose u vremenskim razdobljima.
Tablica B ima parametre u kolonama koje filtriramo određenim uvjetima da bi dobili željene vrijednosti. Predpostavimo da su te vrijednosti 0, 30, 60, 90. Međutim te vrijednosti još nisu spremne pa pojedinačno svaku kolonu mijenjamo kalkulacijom da dobijemo:

"0 - 30", "31 - 60", 61 - 90", ">90"  Ovo ne želim pojašnjavati jer je pretrivijalno!!!

 Ok sada kada je sve spremno odemo na results Tablice B i otvorimo narrative text te unutar njegapostavimo jednu jednostavnu scriptu:

<script type="text/JavaScript">
var disp_x1 = ' @1 '; disp_x2 = ' @2 '; disp_x3 = ' @3 ';disp_x4 = ' @4 ';
</script>

Ova skripta nema nikakvog vidljivog izlaza već vrijednosti kolona smješta u promjenljive disp_xx.

Snimite ovaj request (npr. Tablica naslova) i idemo dalje.

Sada napravite drugi request tj tzv. Tablicu A. Za kolone koje imaju dinamičke naslove postavite custom column heading i stavite

za kolonu 1 : <div id="X1">R1</div>
za kolonu 1 : <div id="X2">R2</div>
za kolonu 1 : <div id="X3">R3</div>
za kolonu 1 : <div id="X4">R4</div>

Odite na Results i napravite static text view u njemu aktivirajte HTML prikaz te unesite:

<script type="text/JavaScript">
document.getElementById('X1').innerHTML=disp_x1;
document.getElementById('X2').innerHTML=disp_x2;
document.getElementById('X3').innerHTML=disp_x3;
document.getElementById('X4').innerHTML=disp_x4;
</script> 

odite na Compound Layout  view te u njemu postavite svoju tablicu i iza static text view (upravo ovim redoslijedom !!!)

Snimite i ovaj request (npr.Glavna tablica)

Sada odite na page gdje zelite da stoji Glavna tablica. Prvo stavite Tablicu naslova i odredite joj narrativ text view a ispod nje postavite Glavna tablica i odredite joj Compount Layout prikaz.

Ovo je mnogo bolje rješenjeod postojećih na webu jer rješava problem osvježavanja tablica pri promijeni page selectora akoGlavnu tablicu prikazujete u obliku Pivot table.

Još jedna bitna opaska.
U instanceconfig.xml definirajte <HardenXSS>false</HardenXSS> . Ova definicija kaze vasem prezentaciijskom serveru da html tagove ne prezentira kao tekst.

 
« Prethodna   Sljedeća »