Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi Ravereport in Resource-Datei (https://www.delphipraxis.net/10990-ravereport-resource-datei.html)

Ghostwalker 29. Okt 2003 10:14


Ravereport in Resource-Datei
 
1. Schritt Report erstellen

Ok..kein Problem. Ihr könnt euere Reports wie gewohnt mit Delphi und dem Designer erstellen, testen usw. Dieser Schritt geht wie ihr es gewohnt seit. :)

2. Schritt Resource erstellen

Auch das sollte niemanden vor große Probleme stellen.
Ein einfachs Beispiel:

raveres.rc
Code:
myreports RAVE c:\test\project1.rav
Der Aufbau ist immer:

[Name der Resource] [Resourcetyp-Bezeichnung] [Datei]

Diese einfach mit brcc32 in eine RES-Datei umwandeln und fertig ist die Resourcedatei.


3. Schritt Einbinden in das Programm

Die vorher erstellte RES-Datei binden wir einfach via {$R raveres.res} in das Programm mit ein.
Auf diese weiße sollte das ganze auch in eine DLL eingelinkt werden können (hab ich noch nicht ausprobiert !)

4. Schritt Wir zeigen unseren Bericht an/drucken ihn

Ihr solltet zu diesem Zeitpunkt natürlich alle benötigten Datenquellen verfügbar haben. Desweiteren
brauchen wir ein TRvProject und eine TRvSystem Komponente auf der Form.

und diese Routine läd uns einen Report und führt ihn aus:

Code:
Procedure TForm1.DoReport;
var
  res : TResourcestream; //Natürlich..ein Resourcestream..

begin
  res := TResourcestream.create(Hinstance,'myreport','RAVE'); //Stream auf das Reportproject
  if (res = NIL) then //Ups..wenn das passiert läuft was schief...
  begin
    Messagedlg('Problem. Report funzt nicht !',mtInformation,[mbok],0);
    exit;
  end;
  //ok..ab hier gehts normal weiter
  rvProject1.new;  //Initialisieren des Reportprojektes
  rvProject1.LoadFromStream(res); //Resource ins Projekt laden
  rvProject1.SelectReport('Report1',false); //Wir nehmen den Bericht mit dem namen 'Report1'
  rvProject1.execute; // führen ihn aus
  rvProject1.close; //Schließen das Projekt
  res.free; //geben den Resourcestream wieder frei
end;
und fertig ist das ganze.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz