Hogyan lehet formázni a Measure-öket?

Az Analysis Services 2000 még nem adta meg a measure-ök formázásának lehetőségét. Számított mezőt lehetett formázni, de masure-t nem. Ha értéktől függően eltérő színnel szerettünk volna megjeleníteni egy maseure-t, akkor létre kellett hozni rá egy számított mezőt, azt lehetett színezni, az eredeti mesasure-t pedig el kellett tüntetni. Ez a módszer természetesen működik az Analysis Services 2005-ben is, de van helyette egy sokkal jobb megoldás.

Az Analysis Services 2005 megteremti számunkra a measure-ök formázásának közvetlen lehetőségét. Az alábbi MDX Script segítségével az adatkocka forint értékét 2006 augusztusában pirosra színezhetjük: (a példának kevés gyakorlati jelentősége van, de remekül szemlélteti a SCOPE MDX script utasítás lehetőségét)

Scope ([Idöszak].[Hónap].&[Augusztus 2006]);

Fore_Color([Measures].[Ft]) = 255;

EndScope

 

SCOPE MDX Script utasítás

A fenti példa a formázás magyarázatán kívül remek lehetőséget kínál arra, hogy bemutassa a SCOPE MDX utasítás működését.

A Scope MDX Script utasítással kijelölhetjük az adatkockánk egy részkockáját, és ezen a részkockán ezután különböző műveleteket hajthatunk végre. A legegyszerűbb példa erre a fenti színezés.

Szeletelés a Scope MDX Script utasítással

Szeletelés a Scope MDX Script utasítással

A példában nem csináltunk mást, mint kijelöltük az adatkocka [Augusztus 2006], [Ft] kétdimenziós részkockáját és utána azt mondtuk, hogy ezen részkocka minden egyes eleme legyen piros.

A SCOPE MDX Script utasítással kijelölt részkocka elemeit nem csak formázhatjuk, hanem értékeit is megváltoztathatjuk. Kinullázhatunk például egy teljes részkockát, vagy bonyolult számított mezőket helyettesíthetünk egy hatékonyabb MDX Script utasítással.

Ha számított mezőnk értéke a dimenzió elemek kombinációjától függ, akkor célszerű egy bonyolult iif vagy case szerkezetet kiváltani egy hatékony SCOPE utasítással. Tehát egy IIF dimension.currentmembet is [A] then képlet1 számítást célszerű helyettesíteni egy SCOPE dimension.A; Képlet1; End SCOPE MDX Script utasítással. Ez utóbbi scope szintaxis mindamellett, hogy szebb is, sokkal hatékonyabban működik, mint az iif-es megfelelője.

Felhasznált irodalom:

Kővári Attila - BI projekt

Új hozzászólás