Adatok nyomtatása – 4. rész
Adatokat már tudunk kezelni, de mi a helyzet akkor, amikor szükségünk van valaminek a nyomtatott formában való megjelenítésére. Ebben az esetben is használhatunk előre elkészített komponenseket, mivel a Delphibe egy QuickReport elnevezésű alkalmazást építettek be a készítők.
Ez a komponenspaletta látható az alábbi ábrán.
Amint látható számtalan eszköz áll rendelkezésünkre, amelyekkel sok szépnyomtatott anyagot állíthatunk elő. Nézzük meg, hogy melyik eszköz mire is szolgál.
|
QuickRep komponens, amely tulajdonképpen maga a riport lesz, amely nyomtatásban meg fog jelenni. Ez egy vizuális komponens, ami azt jelenti, hogy a formon megjelenik egy lap képe, amit a formon a kívánt helyre illeszthetünk. Minden nyomtatandó anyagnak erre kell kerülnie. |
||||||||||||||||||||||
|
A QRSubDetail komponens arra szolgál, hogy másik adatbázisból vagy adattáblából adatokat jeleníthessünk meg a riportunkban. Tipikus felhasználási területe a táblák összekapcsolásakor létrejövő Master-Detail kapcsolat, amelyet majd a következő számban nézünk meg részletesebben. |
||||||||||||||||||||||
|
QRBand egy nagyon gyakran használt komponens, mivel segítségével lehet a nyomtatandó lapon szakaszokat létrehozni. Az, hogy milyen szerepet töltsön be, a BandType tulajdonsága fogja meghatározni. Ezek lehetnek:
|
||||||||||||||||||||||
|
A QRChildBand segítségével a blokkok méretét terjeszthetjük ki. |
||||||||||||||||||||||
|
A QRGroup komponenssel csoportokat hozhatunk létre, ami azt jelenti, hogy a mezőket bizonyos szempont szerint csoportosítva jelenítjük meg. Minden csoporthoz tartozik fejléc, amelyben az a mező, vagy kifejezés van, amely alapján a csoportosítást el szeretnénk végezni. |
||||||||||||||||||||||
|
A QRText eszköz segítségével egyszerű szöveget helyezhetünk el a lapon. |
||||||||||||||||||||||
|
A QRDBText adattáblából szedi az információkat, ennek megfelelően természetesen rendelkezik DataField tulajdonsággal. |
||||||||||||||||||||||
|
A QRExpr komponenst kell akkor használnunk, amikor számított értékeket szeretnénk előállítani az adattáblában tárolt adatokból. A kívánt kifejezést az Expression tulajdonságba kell illesztenünk. A segítségünkre van az Expresson Builder nevű ablak, amelyben grafikus vezérlőelemek segítségével összeállíthatjuk a kívánt kifejezést. |
||||||||||||||||||||||
|
A QRSysData komponens a rendszer által szolgáltatott információk megjelenítésére használható. Azt, hogy mit mutasson, a Data tulajdonságában kell beállítani. Itt a következő értékek szerepelhetnek:
|
||||||||||||||||||||||
|
A QRMemo komponenssel többsoros szöveget helyezhetünk el a nyomtatandó dokumentumon. |
||||||||||||||||||||||
|
A QRRichEdit komponens nagyon hasonlít a QRMemohoz, de itt már formázhatjuk is a szöveget. |
||||||||||||||||||||||
|
A QRDBRichEdit segítségével adattáblából származó információt jeleníthetünk meg. |
||||||||||||||||||||||
|
A QRShape segítségével keretet helyezhetünk el a lapon. A Shape tulajdonságban állíthatjuk be, hogy milyen keretet szeretnénk. |
||||||||||||||||||||||
|
A QRImage hazsnálatával képet tehetünk a lapra. |
||||||||||||||||||||||
|
Ha a táblában képet is tárolunk, annak megjelenítését teszi lehetővé a QRDBImage. |
||||||||||||||||||||||
|
A nyomtatás előnézetét jeleníti meg ez a komponens. |
Most, hogy már tudjuk, hogy milyen komponensek állnak a szolgálatunkra, el is kezdhetjük a munkát velük. A nyomtatáshoz készítsünk egy új formot, amelyen helyezzünk el egy QuickRep komponenst.
A lapot vonszoljuk oda, ahova szeretnénk, célszerű a bal felső sarokban, mivel ekkor teljesen ki fogja tölteni a formot. Amint látható, a könnyebb tájékozódás érdekében egy vonalbeosztást kapunk, így szebb nyomtatott anyagokat készíthetünk.
A komponenshez állítsuk be a DataSet tulajdonságot. Ez, mint minden adatkezelési komponensnél azt jelöli ki, hogy honnan vegye a QuickRep az adatokat.
Ezután állítsuk be a lap tulajdonságait, amelyhez kapunk egy párbeszédablakot is. Ezt előhívni a QuickRep-en való dupla kattintással lehet.
Azt hiszem, hogy minden mező magáért beszél. Ha végeztünk, akár meg is nézhetjük a nyomtatási képet is a Preview gombra kattintva.
Most már csak arra van szükség, hogy elhelyezzük a kívánt mezőhivatkozásokat és más egyéb statikus információkat a lapunkon. Tegyünk le egy QRBand komponenst, amely automatikusan Title típusú lesz és ebbe egy QRText komponenssel adjunk a jelentésnek címet. Amennyiben a jelentésünk több oszlopot tartalmaz, szükség lehet még egy oszlopfejlécre is. Ehhez tegyünk le még egy QRBand komponenst és a BandType tulajdonságát állítsuk be rbColoumnHeader-re. Már csak az adatokat kell megjeleníteni, amihez, mint már tudjuk, egy Detail blokkra lesz szükségünk. Ezt szintén a QRBand fogja megvalósítani, amennyiben beállítjuk az rbDetail típusra.
Amikor készen van a jelentés szerkezete, akkor következik a tartalom meghatározása. Az oszlopfejlécre tegyünk le annyi QRText objektumot, amennyi oszlopot szeretnénk használni, majd ezek alá helyezzünk el a Detail boxban QRDBText elemeket. Mindegyik DataSet és DataField tulajdonságát állítsuk be. ha jól dolgoztunk, akkor megnézhetjük munkánk eredményét. kattintsunk duplán a QuickRep objektumon, ahogy válasszuk ki a Preview gombot.
Ez természetesen meg kell hívni a programunkból is. Ehhez az alábbi kódrészletet használhatjuk:
form_neve.QuickReport_neve.Prewiev;
Természetesen ki is nyomtathatjuk rögtön, ehhez A Print vagy a PrintBackGround metódust kell meghívni a fentiekhez hasonló formában.
form_neve.QuickReport_neve.Print;
form_neve.QuickReport_neve.PrintBackGround;
A következő részben megnézzük, hogyan lehet táblákat összekapcsolni a Master-Detail kapcsolattal.
Markó Imre - marko.imre@akribisbt.hu