A melléklelt példaprogram egy Paradox 7 típusú adattáblát használ, amely két mezővel rendelkezik: A és B. Az A mező String, míg a B tartalma Integer típusú.
Ennek a táblának a tartalmát jelenítjük meg egy Rave report segítségével.
Egy Table és egy DataSource komponens segítségével létrehozzuk az adatkapcsolatot a szokásos módon. A kapcsolatot már szerkesztési időben is állítsuk aktívra.
Szükségünk van két komponensre, a Delphi Rave palettájáról. Az első komponens az RvProject. Ezt egyelőre csak helyezzük el a Form-on.
A másik komponens az RvDataSetConnection. Ezt is helyezzük el a Form-on, majd DataSet property-jén keresztül kapcsoljuk hozzá a Table1 objektumhoz.
Kattintsunk duplán az RvProject1 komponensre. Ekkor betöltődik a Rave Reports program. Válasszuk a File – New menüpontot, és hozzunk létre egy új, üres report-állományt. Ezt a File – Save As menüpont segítségével mentsük el alkalmazásunk mappájába report.rav néven. A továbbiakban ezt az üres állományt fogjuk használni.
Amikor a felhasználó a „Report létrehozása” feliratú gombra kattint, az üres report-állományt megnyitjuk, majd dinamikusan elhelyezzük rajta a megfelelő objektumokat.
A Rave komponensek használatához számos unit-ra van szükségünk.
uses RVClass, RVProj, RVCsStd,rvcsrpt, rvcsData, rvDirectDataview, rvUtil, rvData;
Ezekkel a unit-okkal az a baj, hogy nem tudunk beléjük nézni, mert csak lefordított formában vannak jelen.
Az előbb létrehozott üres Rave project-et az alábbi két utasítással nyithatjuk meg.
RvProject1.ProjectFile:=ExtractFilePath(Application.ExeName)+'report.rav';
RvProject1.Open;
A megnyitott report-on belül azonosítanunk kell a Page1 objektumot. Az objektum típusa TRavePage.
RavePage:=RvProject1.ProjMan.FindRaveComponent('Report1.Page1',Nil) as TRavePage;
Gyakorlatilag ugyanazokat a lépéseket kell végrehajtanunk forráskódból is, mintha a report-ot a Rave Reports program segítségével hoznánk létre.
A TRaveRegion osztály segítségével létrehozunk egy Region objektumot.
RaveRegion:=TRaveRegion.Create(RavePage);
Az objektumok beállítható property-jeit megnézhetjük a Rave Reports programban.
A Region objektum szülőjét a Parent propety-n keresztül adhatjuk meg.
with RaveRegion do begin
Parent:=RavePage;
Name:='Region1';
Left:=0;
Top:=0;
Width:=RavePage.PageWidth-RaveRegion.Left;
Height:=RavePage.PageHeight-RaveRegion.Top;
end;
A Region objektumon létrehozunk egy Band objektumot. Ezt a TRaveBand osztály segítségével tehetjük meg.
TitleBand:=RaveRegion.CreateChild(TRaveBand,'TitleBand') as TRaveBand;
Az objektum létrehozását a CreateChild metódussal végezhetjük el.
Az előbb létrehozott Band objektumon hozzuk létre a report címét egy RaveText objektum segítségével.
TitleBand.CreateChild(TRaveText,'TitleText') as TRaveText
A címke feliratát a Text property-ben állíthatjuk be.
Adattáblánk tartalmának megjelenítéséhez létre kell hoznunk egy adatkapcsolatot is. Alkalmazásunk oldalán a kapcsolatot az RvDataSetConnection1 objektum képviseli, a report oldalon pedig szükségünk van egy TRaveDataConnection objektumra.
DataCon:=CreateDataCon(RVDatasetConnection1);
A DataView objektum létrehozásához a következő lépések szükségesek.
DataView:=RvProject1.ProjMan.NewDataObject(TRaveDataView) as TRaveDataView;
DataView.ConnectionName:=DataCon.Name;
DataView.DataCon:=DataCon;
CreateFields(DataView,Nil,Nil,True);
A címsorhoz hasonlóan az adattábla tartalmának megjelenítéséhez is létrehozunk egy Band objektumot, de ezúttal egy TRaveDataBand-et, amelyet azonnal hozzá is kapcsolunk a DataView-hez.
DataBand:=RaveRegion.CreateChild(TRaveDataBAnd,'DataBand1') as TRaveDataBand;
DataBand.DataView:=DataView;
A DataBand-en pedig elhelyezünk két TRaveDataText objektumot, amelyeket a DataField property-ken keresztül köthetünk hozzá az adattábla fizikai mezőihez.
DataText:=DataBand.CreateChild(TRaveDataText,'DataText1') as TRaveDataText;
DataText.DataView:=DataView;
DataText.DataField:='A';
DataText.Top:=0.5;
DataText.Left:=RavePage.PageLeft+(0.2);
DataText.Width:=5;
Végül megjelenítjük a report-ot, majd bezárjuk azt.
RvProject1.ExecuteReport('Report1');
RvProject1.Close;