Delphi - A Decision Cube paletta komponensei

Decision Cube paletta 1. rész

forráskód letöltése
Biztosan Ön is találkozott már olyan feladattal, hogy egy adathalmazt elemezni, csoportosítania kellett. Az üzleti döntéshozatal nélkülözhetetlen része az adatokat látványosan összesítő grafikon. Egy többdimenziós elemzési feladat megoldására fejlesztették ki a Decision Cube paletta komponenseit. Új sorozatunkon keresztül megismerheti ezeket a komponenseket és elsajátíthatja használatukat. Az első részben megnézzük, hogy hogyan lehet létrehozni az adatokból egy grafikont, egyetlen sor forráskód írása nélkül.
A paletta elemei
Név Leírás
DecisionCube A technológia lelke. Ez a komponens építi fel a megjelenítendő adathalmazt a memóriában.
DecisionQuery Ez a komponens szolgáltatja az adatokat. Egy SQL parancs megadásával a lekérdezés eredménytábláját közvetíti a többi komponens számára.
DecisionSource A DecisionCube komponenst hozzákapcsolja a vizuális komponensekhez. (Pivot, Grid, Graph)
DecisionPivot Egy vezérlőpult, amely az egyes dimenziók ki- és bekapcsolását teszi lehetővé.
DecisionGrid A DBGrid komponenshez hasonló formában jeleníti meg az elemzés adatait.
DecisionGraph Az elemzés adatait grafikon formájában jeleníti meg.
A komponensek használata
Most elkészítjük a példaprogramban szereplő elemzést. Példánkban a Delphi-hez mellékelt DBDemos adatbázist használjuk. Az elemzésünket úgy készítjük el, hogy egyetlen forráskódot sem írunk (egy SQL lekérdezés kivételével), csak összekapcsoljuk a paletta komponenseit.
Kezdjünk egy új alkalmazást. A Form-on helyezzünk el egy DecisionCube és egy DecisionQuery komponenst. A DecisionCube1 DataSet tulajdonságában állítsuk be a DecisionQuery1-et. Így a feldolgozandó adatokat a DecisionQuery1 fogja szolgáltatni.
A DecisionQuery1 komponens DataBaseName tulajdonságában válasszuk ki a DBDemos-t. Kattintsunk duplán a komponensen. Ekkor megjelenik a Decision Query Editor, ahol válasszuk ki az SQL Query fület. Itt gépeljük be az alábbi SQL lekérdezést.
SELECT Orders.PaymentMethod, SUM(Orders.AmountPaid), Customer.Country
FROM "Customer.db" Customer
INNER JOIN "Orders.db" Orders
ON  (Customer.CustNo = Orders.CustNo)  
GROUP BY Orders.PaymentMethod, Customer.Country
A DBDemos adatbázis Customer és Orders tábláit fogjuk használni. Mivel ezek már bőségesen fel vannak töltve adatokkal, felesleges lenne egy új adatbázist létrehozni. A két táblát a CustNo mezőn keresztül köthetjük össze. Az összesítést a vevők által kifizetett számlák (Orders.AmountPaid) és származásuk szerinti országonként (Customer.Country) végezzük.
Ha begépeltük a lekérdezést, kattintsunk az Edit Done feliratú gombra. Az OK gombbal zárjuk be az ablakot, majd az Active tulajdonságot állítsuk True-ra. Ezzel létrejön a kapcsolat az adatbázissal. A DecisionCube1 számára már csak a lekérdezés eredménytáblája továbbítódik.
Helyezzünk el a Form-on egy DecisionSource komponenst. DecisionCube tulajdonságán keresztül rendeljük hozzá a DecisionCube1-hez. Ez hasonló elven működik, mint a TTable és a TDataSource.
Most jöhetnek a grafikus komponensek. Először helyezzünk el egy DecisionGrid-et a Form felső részében úgy, hogy hagyjunk egy kis helyet a DecisionPivot számára. A DecisionGrid1 DecisionSource tulajdonságát állítsuk DecisionSource1-re, így azonnal láthatóvá válik a lekérdezés eredménye.
Ha ezzel végeztünk, akkor jöhet a vezérlőpult, azaz a DecisionPivot. Ennek a komponensnek is állítsuk be a DecisionSource tulajdonságát DecisionSource1-re. A komponens szélességét állítsuk akkorára, mint a táblázaté, így esztétikusan fognak elhelyezkedni egymás alatt. A Grid és Pivot elhelyezésének sorrendje nem számít, bármelyikük képes a másiktól függetlenül is működni. Próbálja ki, hogy mi történik akkor, amikor a Pivot egy gombjára rákattint.
Nem maradt más hátra, minthogy adatelemzésünket grafikon formájában is megjelenítsük. Ehhez helyezzünk el a táblázat alatt egy DecisionGraph komponenst. Ennek a szélességét is állítsuk ugyanakkorára, mint a táblázaté. A DecisionSource tulajdonságban itt is a DecisionSource1-et állítsuk be. Máris megjelentek a grafikonok, amelyek a DecisionPivot-nak megfelelően jelennek meg.
Indítsuk el programunkat, és próbáljuk ki mi történik akkor, ha a DecisionPivot gombjait használjuk.

Decision Cube paletta cikksorozat