Delphi - A DecisionCube komponens

Decision Cube paletta 2. rész

forráskód letöltése
Az előző részben láthattunk egy példát arra, hogy hogyan lehet egy adathalmazt látványosan megjeleníteni, anélkül hogy egyetlen sor forráskódot is írnánk. Ebben a részben megismerkedünk a DecisionCube komponens tulajdonságaival és metódusaival, melyek használatát egy példaprogram segítségével szemléltetjük.
Az előző részben nagy vonalakban megismerkedtünk a Decision Cube paletta komponenseivel. Most ezek közül kiragadjuk a DecisionCube-ot, és ezt vizsgáljuk meg részletesebben.
Az előző részben létrehozott példaprogramunkat módosítsuk, töröljük le róla a grafikont. A grafikon helyén helyezünk el néhány szerkesztő mezőt és gombot, melyek segítségével lekérdezhetjük a DecisionCube néhány tulajdonságát.
Tulajdonságok
A DecisionCube komponens építi fel a memóriában a megjelenítendő adatokat. Ezeket a DataSet-ben beállított adatforrásból nyeri. Létrehoz a memóriában egy cache tárolót, amelybe ideiglenesen elhelyezi a megjelenítendő adatokat. Amíg a cache tároló feltöltődik, az nyilván időbe kerül. Minél több adattal dolgozunk, annál tovább tart feltölteni a tárolót. Szerencsére a komponens rendelkezik egy ShowProgressDialog tulajdonsággal. Ha ennek értékét igazra állítjuk, akkor a cache tároló feltöltődésének állapotát egy folyamatjelző (Progressbar) segítségével nyomon követhetjük.
A cache tároló által lefoglalt memóriaterületnek a méretét beállíthatjuk a MaxCells, MaxDimensions és MaxSummaries tulajdonságokon keresztül. Azonban ezek méretezése megfelelő körültekintést igényel. Ha túl nagyra vesszük a méreteket, akkor feleslegesen pazaroljuk a memóriát. Ha túl kicsire vesszük, akkor az adatok nem férnek el benne, és programunk hibaüzenettel leáll.
Tulajdonság Leírás
MaxCells A cellák maximális száma.
MaxDimensions A megjeleníthető adatdimenziók maximális száma.
MaxSummaries Az adatokból készülő összesítések maximális száma.
Ha duplán kattintunk a DecisionCube ikonján, vagy a DimensionMap tulajdonságon, akkor megjelenik a Decision Cube Editor.
A Dimension Settings fülön, egy listában (Available Fields) láthatjuk azokat az adatmezőket, amelyeket az adatforrás szolgáltat. Ha valamelyik mezőre rákattintunk, akkor jobb oldalt beállíthatjuk néhány tulajdonságát.
A Display Name-en keresztül állítható be, hogy mi legyen az adott mező felirata, amikor egy grafikus komponens megjeleníti.
Az alatta elhelyezkedő Type tulajdonság tartalmát nem szerkeszthetjük, csak tájékoztatási céllal szerepel az ablakban. Megtudhatjuk belőle, hogy az adott mező külön dimenziót (Dimension) képez-e, vagy csak összesítés (Sum).
Az Active Type értéken keresztül állíthatjuk be, hogy az adott mező mikor legyen látható. Active - mindig, As Needed – ha szükség van rá, Inactive – soha.
A Format egy String, amely az adat megjelenítésének formátumát határozza meg.
Ha a megjelenítendő adatoknak csak egy részhalmazát szeretnénk megjeleníteni, akkor használnunk kell a Grouping és Initial Value mezőket. Ha a Grouping értéke None, akkor mindent megjelenít. Ha más, akkor az intervallum kezdőértékét az Initial Value-n keresztül kell megadnunk.
A Decision Cube Editor Memory Control fülén két beállítás csoport helyezkedik el. A Cube Maximums csoportban beállíthatjuk a megfelelő maximum értékeket. A beállítható tulajdonságok ugyanazok, mint amelyek megjelennek az Object Inspector-ban. Itt láthatjuk a beállított és a szükséges értékeket egyaránt.
A Designer Data Options csoportban kiválaszthatjuk, hogy milyen információkat akarunk megjeleníteni.
Ha a program futása közben akarjuk lekérdezni a dimenziók, illetve összesítések számát, akkor használjuk a DimensionCount és SummaryCount tulajdonságokat. Mindkettő visszatérési értéke Integer.
Az aktuális összesítés sorszáma a CurrentSummary-n keresztül kérdezhető le. A visszatérési értéke ennek is Integer.
Metódusok
A DecisionCube cache tárolójának méretét az alábbi függvénnyel kérdezhetjük le.
function GetMemoryUsage: Integer;
Egy dimenzió elemeinek számát a GetDimensionMemberCount függvény adja vissza.
function GetDimensionMemberCount(Dimension: Integer): Integer;
A Dimension paraméterben a dimenzió sorszámát kell megadni. A sorszámozás mindig 0-val kezdődik.
Ha egy dimenzió nevét szeretnénk lekérdezni, akkor azt a GetDimensionName függvény használatával tehetjük meg.
GetDimensionName(Dimension: Integer): String;
Egy összesítés nevének lekérdezésére a GetSummaryName függvény szolgál.
function GetSummaryName(ISum: Integer): String;
Az ISum az összesítés sorszáma, amely a dimenziók számozásához hasonlóan 0-val kezdődik.
A ShowCubeDialog metódus meghívásával a program futása közben is megjeleníthetjük a Decision Cube Editor-t. Ilyenkor a felhasználó csak a mezők tulajdonságait változtathatja meg, a cache méretét nem. A cache aktuális és szükséges méretei csak tájékoztató jelleggel szerepelnek az ablakban.

Decision Cube paletta cikksorozat