Delphi - Az RvSystem komponens használata

Nyomtatás a Rave komponensekkel 9. rész

forráskód letöltése
Ebben a részben megismerkedünk az RvSystem komponens használatával. Eddig az RvProject komponenst használtuk a nyomtatási kép megjelenítésére és a nyomtatás végrehajtására. Amikor az Execute metódust meghívtuk, akkor minden alkalommal megjelent egy ablak, amely segítségével kiválaszthattuk a megfelelő műveletet. Ez nem mindig szerencsés megoldás. Többek között erre a problémára is megoldást kínál az RvSystem komponens.
A példaprogramban a sorozat nyolcadik részében készült Project1.NDR állományt fogjuk felhasználni. Ezt az állományt helyezzük el abba a könyvtárba, ahová a Delphi példaprogramot menteni fogjuk.
Az RvSystem egy meglehetősen összetett komponens. Az RvNDRWriter, RvRenderPreview és RvRenderPrinter komponensek tulajdonságait egyesítették a könnyebben használhatóság érdekében. Az RvSystem a három komponens ötvözete.
Eltérően az RvProject komponenstől, az RvSystem NDR állományokat használ, nem pedig RAV-okat. Lehetőségünk van megjeleníteni ugyanazt a dialógusablakot, amely az RvProject esetén mindig megjelent, de le is tilthatjuk azt.
Ha le van tiltva a dialógusablak használata, akkor a DefaultDest tulajdonság értéke határozza meg, hogy a nyomtatás hova történjen. rdFile – állományba, rdPreview – nyomtatási képre, rdPrinter – nyomtatóra.
A nyomtatási kép ablakának címét a TitlePreview, a dialógusablak címét a TitleSetup tulajdonságokon keresztül módosíthatjuk.
A nyomtatási képet megjelenítő ablak lehet modális, vagy nem modális. Ha a SystemOptions property soPreviewModal mezőjének értéke igaz, akkor az ablak modális lesz. Ha az soAllowPrintFromPreview értékét hamisra állítjuk, akkor letilthatjuk a nyomtatási kép ablakból történő nyomtatást.
A dialógusablakot itt is az Execute metódus meghívásával jeleníthetjük meg.
A mellékelt példaprogram bemutatja, hogy hogyan lehet a komponenst használni dialógusablakkal és a nélkül. A gyakoribb eset az, hogy dialógusablakok nélkül nyomtatjuk ki az alkalmazásunk által generált listákat. Erre pedig az RvProject komponens nem alkalmas.
SystemFiler property
A FileName tulajdonságban kell megadnunk azt az NDR állományt, amelynek tartalmát fel akarjuk használni.
A StreamMode értéke határozza meg, hogy a Report milyen formában kerüljön tárolásra. Kis oldalszámmal (kevesebb, mint 10) rendelkező Report-ok esetén célszerű az smMemory értéket beállítani. A Report így a memóriába kerül, ami gyors elérést tesz lehetővé. smFile esetén a rendszer egy TFileStream struktúrát használ az adatok tárolására. Ez a megoldás az smMemory lehetőséggel szemben lassabb, de nagyobb mennyiségű adat tárolását teszi lehetővé. Ha az smTempFile értéket állítjuk be, akkor a Report tartalma a Windows Temp könyvtárába kerül. Létrehozásáról és törléséről a rendszer gondoskodik. smUser esetén nem jön létre automatikus helyfoglalás a Report számára. Ilyenkor a komponens Stream tulajdonságához, futási időben hozzárendelhetünk egy TStream osztályból származtatott objektumot, például egy TMemoryStream-et.
A StatusFormat mező a komponens állapotának megjelenítésére szolgál. Egy olyan szöveget helyezhetünk el benne, amely speciális karaktereket is tartalmazhat. Ezek a karakterek a Delphi súgójában megtalálhatóak. A StatusText mezőben megadhatunk maximum 10 elemet, amelyek sorszámuknak megfelelően a %0 - %9 karaktereket helyettesíthetik.
SystemPreview property
Az itt szereplő beállításoknak akkor van jelentősége, ha a komponens a nyomtatási képet jeleníti meg. Ebben a property-ben a nyomtatási kép paramétereit állíthatjuk be.
A Mochrome értékét igazra állítva fekete-fehér nyomtatási kép keletkezik. A RulerType segítségével vízszintes és függőleges vonalzókat jeleníthetünk meg. Ezek tájékoztatást nyújthatnak a Report objektumainak elhelyezkedéséről, főleg fejlesztési fázisban.
A ZoomFactor értéke határozza meg a nagyítás mértékét. Itt százalékos értéket kell megadni. 100 jelenti a normál méretet, 200 a dupla méretet.
Amikor megjelenik a nyomtatási kép ablak, lehetőségünk van annak tartalmát nagyítani és kicsinyíteni. Ennek a mértékét a ZoomInc tulajdonságban adhatjuk meg.
SystemPrinter property
Az itt szereplő tulajdonságok akkor lépnek életbe, ha a komponens nyomtatást valósít meg.
SystemSetups property
Tulajdonság Hatása
ssAllowSetup Ha értékét hamisra állítjuk, akkor a dialógusablak nem jelenik meg.
ssAllowCopies Igaz érték esetén a felhasználó állíthatja a nyomtatás példányszámát, hamis érték esetén nem.
ssAllowDuplex Ha értéke hamis, akkor a felhasználó nem használhatja a duplex nyomtatást.
ssAllowDestPreview Értékének hamisra állításával a dialógusablakban nem lehet a nyomtatási kép opciót választani.
ssAllowDestPrinter Értékének hamisra állításával a dialógusablakban nem lehet a nyomtatás opciót választani.
ssAllowDestFile Értékének hamisra állításával a dialógusablakban nem lehet az állományba történő nyomtatást kiválasztani.
ssAllowPrinterSetup Ha értéke igaz, akkor a nyomtatóbeállítás ablak használható, ellenkező esetben nem.

Nyomtatás a Rave komponensekkel cikksorozat