Delphi - Nyomtatás SQL adattáblából

Nyomtatás a Rave komponensekkel 5. rész

forráskód letöltése
Ebben a részben az SQL szerver egyik adattáblájának tartalmát nyomtatjuk ki az RvDataSetConnection komponens segítségével. Megnézzük, hogy a Rave Visual Designer-ben hogyan lehet egy objektumhoz eseményeket rendelni, hogyan lehet megjeleníteni az aktuális oldalszámot, és hogy hogyan lehet megszámolni a kinyomtatott rekordok számát.
A mellékelt példa futtatása előtt a Form1-en lévő ADOTable1 objektum ConnectionString tulajdonságának értékét módosítsa úgy, hogy a Northwind példaadatbázis elérhetővé váljon.
Kezdjünk egy új Delphi alkalmazást.
Az SQL szerverhez történő kapcsolódást egy TADOTable komponens segítségével valósítjuk meg.
Helyezzünk el a Form-on egy ADOTable objektumot. Állítsuk be a ConnectionString tulajdonságát, hogy a NorthWind adatbázis elérhetővé váljon. A TableName tulajdonságban válasszuk ki az employees táblát.
Helyezzünk a Form-ra egy DataSource és egy DBGrid objektumot is. A DataSource DataSet értékét állítsuk ADOTable1-re, a DBGrid DataSource értékét pedig DataSource1-re.
Az ADOTable1 objektum Active tulajdonságának értéke maradjon hamis. A kapcsolatot futási időben építjük fel. A Form1 OnCreate eseményében állítsuk a tulajdonság értékét igazra, az OnClose eseményben pedig hamisra.
Az adattábla tartalmának kinyomtatásához az RvProject és RvDataSetConnection komponenseket használjuk. Helyezzünk el két ilyen komponenst a Form-on. Az RvDataSetConnection1 objektum DataSet tulajdonságát állítsuk ADOTable1-re.
Mentsük el munkánkat, majd kattintsunk duplán az RvProject1 objektumon. Ekkor elindul a Rave Visual Designer.
Válasszuk a File – New menüpontot, majd ha létrejött az új project, akkor kattintsunk a File – New Data Object menüpontra.
A Data Connections ablakban válasszuk a Direct Data View elemet. A következő ablakban válasszuk ki az RvDataSetConnection1 elemet, majd nyomjuk meg a Finish feliratú gombot. Ezzel létrejött az adatkapcsolat az RvDataSetConnection1 objektumon keresztül. A kapcsolat akkor is létrehozható, amikor az ADOTable1 objektum inaktív állapotban van.
Válasszuk a Tools – Report Wizards – Simple Table menüpontot. A megjelenő ablakban válasszuk a DataView1 elemet, kattintsunk a Next feliratú gombra. A megjelenő mezőlistában válasszuk ki az alábbiakat: EmployeeID, LastName, FirstName, City, Address, Country. Ha végeztünk, nyomjuk meg a Next gombot.
A következő ablakban adjuk meg a Report címét, majd kattintsunk a Next gombra. Állítsuk be a Report elemek betűinek tulajdonságait, majd válasszuk a Generate feliratú gombot.
Létrejött a Report2 objektum. A Report1 objektumot töröljük a Project Tree-ben, hiszen felesleges.
A nyomtatási képet állítsuk fekvő lapra, hogy az összes mező elférjen. Rendezzük el az objektumokat, hogy kitöltsék a lapot. A lap alján hagyjunk egy kis helyet. Ide fogjuk elhelyezni az oldalszámot, és a nyomtatott rekordok számát.
Az aktuális oldalszám megjelenítését egy DataText komponens segítségével tudjuk megoldani. A Report palettán válasszuk ki a DataText komponenst, majd helyezzük el a lap alján. Kattintsunk duplán a DataField tulajdonságán. Ekkor megjelenik a Data Text Editor. A Report Variables elem értékét állítsuk Current Page-re, majd kattintsunk az Insert Report Var feliratú gombra. Ha végeztünk, nyomjuk meg az OK gombot.
A DataText komponenst igazítsuk középre a lap alján.
A kinyomtatott rekordok megszámlálásához Text komponenseket használunk fel. A lap alján bal oldalt helyezzünk el a Standard palettáról egy Text komponenst. Text tulajdonságát állítsuk a következőre: „Nyomtatott rekordok:”. Ezután helyezzünk el egy újabbat a kettőspont után. Text értékét állítsuk 0-ra. Jegyezzük meg az objektum nevét. A példaprogramban ez Text8.
A Text8 objektum Text értéke fogja tárolni a kinyomtatott rekordok számát. Az értéket minden egyes alkalommal növelnünk kell, amikor egy újabb rekord kinyomtatásra kerül. Ezt a DataText1 objektum OnAfterPrint eseményében valósítjuk meg.
Kattintsunk rá a DataText1 objektumra. A lapon EmployeeID felirattal szerepel.
A komponens paletta alatt található az Event Editor (eseményszerkesztő) felirat. Kattintsunk rá. Az Available Events listában válasszuk ki az OnAfterPrint eseményt. Az alsó Memo típusú mezőbe írjuk be az alábbi kódot:
Text8.Text:=IntToStr(StrToInt(Text8.Text)+1);
A Compile gomb lenyomásával le is ellenőrizhetjük, hogy a beírt utasítás helyes-e.
Az F9 gomb lenyomásával ellenőrizzük le munkánk eredményét.
Mentsük el a projectet Project1.rav néven, ugyanabba a könyvtárba, ahová a Delphi project-et mentettük el.
Helyezzünk el a Form-on egy Button objektumot, „Nyomtatás” felirattal. OnClick eseményében helyezzük el az alábbi kódot:
RvProject1.Execute;
Az RvProject1 objektum ProjectFile tulajdonságában adjuk meg a Project1.rav állományt, majd próbáljuk ki a programot.

Nyomtatás a Rave komponensekkel cikksorozat