Delphi - Az RvProject komponens használata

Nyomtatás a Rave komponensekkel 3. rész

forráskód letöltése
Az előző részben megismerkedtünk a Rave Visual Designer használatával. Elkészítettünk egy Rave project-et. Ebben a részben folytatjuk munkánkat, megismerkedünk az RvProject komponens használatával. Segítségével készítünk egy alkalmazást, amelyben felhasználjuk az előző részben elkészített Rav állományunkat.
Az RvProject komponens kulcsfontosságú elem a Rave palettán. Segítségével kapcsolatot teremthetünk egy Delphi és egy Rave project között. Ebből a komponensből általában csak egy példány szerepel egy alkalmazásban, de igény szerint lehet több is. Az előző részben láttuk, hogy ha duplán kattintunk a komponensen, akkor betöltődik a Rave Visual Designer program. Ezzel a művelettel vigyázzunk. Amikor a Rave Visual Designer betöltődik, mindig a legutoljára használt Rav projectet tölti be, hiába adtunk meg az RvProject komponens ProjectFile tulajdonságában egy teljesen más Rav állományt.
Munkánkat ott folytatjuk, ahol az előző részben abbahagytuk. Szükségünk van a Delphi és a Rave project-ekre egyaránt. Mindkettőt helyezzük el ugyanabban a könyvtárban.
Nyissuk meg a Delphi alkalmazást.
Az RvProject1 objektum ProjectFile tulajdonságában állítsuk be a Project1.rav állományt. Az állomány nevének megadásához ne használjuk a tallózás ablakot, csak írjuk be, hogy Project1.rav.
Ha alkalmazásunk exe állományát átmásoljuk valahová, akkor a Rav állományt is át kell másolnunk vele együtt. Ezért nem célszerű annak elérési útját fixen megadni.
A Form-on helyezzünk el egy ListBoxot és egy Memo komponenst. Ezeket arra fogjuk felhasználni, hogy az RvProject1 objektumtól lekérdezett információkat megjelenítsük.
Az RvProject1 objektum ProjectFile tulajdonságában megadott állományhoz úgy tudunk csatlakozni, hogy meghívjuk az Open metódust.
RvProject1.Open;
Ilyenkor az állomány tartalma betöltődik a memóriába, de még nem jelenik meg. Gondoskodnunk kell arról is, hogy ha már nem használjuk a Rav állományt, akkor zárjuk le. Ehhez a Close metódust kell meghívni.
RvProject1.Close;
A megnyitást a példaprogram Form1 Create, a bezárást a Form1 Close metódusában hajtjuk végre.
A Create metódusban lekérdezzük az összes elérhető Report-ot. Az előző részben szó volt arról, hogy egy Rav állományban több Report is elhelyezkedhet. Ezeknek a listáját az alábbi módon kérdezhetjük le.
RvProject1.GetReportList(Listbox1.Items,True);
Az eredményt egy TStringList típusú objektumba tárolhatjuk el. Esetünkben ez most a ListBox1 Items tulajdonsága. Egy objektumnak a Rave Visual Designer-ben lehet rövid (Name) és hosszú neve (FullName) is. Esetünkben a kettő most megegyezik. Ha a GetReportList utolsó paramétere igaz, akkor a hosszú neveket kérdezzük le, ha hamis, akkor a rövideket.
A Rav állományokban elhelyezkedő Report-ok között mindig van egy, amely aktuális. Ezen hajtódnak végre az RvProject1 objektum metódusai. Kivételt képeznek azok, amelyek lehetőséget biztosítanak a Report-ok paraméterben történő kiválasztására.
Az aktuális Report-ot a SelectReport metódussal jelölhetjük ki.
RvProject1.SelectReport(ListBox1.Items[ListBox1.ItemIndex],True);
A második paraméter itt is logikai, és szintén a hosszú és rövid nevekre vonatkozik.
Az RvProject rendelkezik egy metódussal, amelyen keresztül képes egy TMemo objektumnak átadni az aktuális Report leírását (Description).
RvProject1.ReportDescToMemo(Memo1);
A SelectReport és ReportDescToMemo metódusokat felhasználhatjuk akkor, ha a példaprogram ListBox-ában kiválasztunk egy elemet. Ezt az OnClick eseményben programozhatjuk le.
Lehetőség van arra is, hogy az aktuális Report leírását String-ként kérdezzük le. Ehhez a ReportDesc tulajdonság értékét kell csak lekérdeznünk.
Az aktuális Report rövid és hosszú nevét a ReportName és ReportFullName tulajdonságok értékének lekérdezésével tudhatjuk meg.
Az aktuális Report-ot az Execute metódus meghívásával indíthatjuk el. Van egy másik lehetőség is, az ExecuteReport metódus használata. Ennél a metódusnál paraméterként kell megadnunk annak a Report-nak a nevét, amellyel foglalkozni szeretnénk. Ezt használtuk a példaprogramban is, a Button1 objektum OnClick eseményében.
RvProject1.ExecuteReport(ListBox1.Items[ListBox1.ItemIndex]);
Amikor az Execute vagy ExecuteReport metódust meghívjuk, megjelenik egy ablak, amelyben három lehetőség közül választhatunk.
Ha a Printer opciót jelöljük be, akkor a Report nyomtatásra kerül. Preview esetén a nyomtatási képet láthatjuk. A Report-ot elmenthetjük egy állományba is, a File opció kiválasztásával. NDR és PRN formátumú állományok közül választhatunk.
Az RvProject rendelkezik néhány eseménnyel is. Ezek a Rav állomány betöltődéséhez, megjelenítéséhez és elmentéséhez vannak kötve.

Nyomtatás a Rave komponensekkel cikksorozat