Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Rave Report (https://www.delphipraxis.net/10897-rave-report.html)

mickmack 27. Okt 2003 16:31


Rave Report
 
Hallo zusammen,

ich habe ein kleines Programm, indem ich alle Daten in selbsterstellten, doppeltverketteten Listen gespeichert werden.
Gibt es eine Möglichkeit diese Daten über RaveReport in schöner Art und Weise zusammenzufassen oder kann RaveReport nur Daten aus Datenbanken verarbeiten?

Wenn es nur über Datenbanken möglich sein sollte, hat jemand einen Vorschlag, wie ich ansonten einen Bericht aus Listendaten erzeugen kann? Also ich meine etwas hochwertigeres als ein einfaches Listenfeld. :wink:

Danke

Ghostwalker 28. Okt 2003 06:27

Re: Rave Report
 
Hi,

da ich das gleiche Problem hatte kann ich dich beruhigen. Du kannst Rave-Report auch Daten aus einer anderen Quelle Übergeben.

Über die Events in TCustomConnection kannst du Daten an den von dir erstellen Report übergeben.

TIP:

Beschreibung der Datenfelder werden im Ereignis "onGetcols" via Connection.writefield angegeben

Die Tatsächlichen Daten werden im Ereignis "onGetRows" via der Connection.writeXYZdata methode
geschrieben

Im "OnOpen" Ereignis gibst du die anzahl der Rows (Datenzeilen) an


Beispiel:

Delphi-Quellcode:
procedure TForm1.rvCustomConnection1Open(Connection: TRvCustomConnection);
begin
  //Anzahl der Datenzeilen; Da hier headerdaten nur 1
  connection.DataRows := 1;
end;

procedure TForm1.rvCustomConnection1GetRow(Connection: TRvCustomConnection);
begin
  //Tatsächlichen Daten an den Report übergeben
  connection.WriteStrData('',realdata.Header.Name);
  connection.WriteStrData('',realdata.Header.Vorname);
  connection.WriteDateTimeData('',realdata.Header.Geburtsdatum);
  connection.WriteFloatData(format('%3.0f Kg',[realdata.header.Gewicht]),0.0);
  connection.writefloatdata(format('%4.0f cm',[realdata.header.Groesse]),0.0);
end;

procedure TForm1.rvCustomConnection1GetCols(Connection: TRvCustomConnection);
begin
   //Datenfelder definieren
  connection.WriteField('Name',dtString,30,'','');
  connection.writefield('Vorname',dtString,30,'','');
  connection.writefield('Gebdat',dtDateTime,8,'','');
  connection.WriteField('Gewicht',dtFloat,8,'','');
  connection.WriteField('Groesse',dtFloat,8,'','');
end;
Hoffe das hilft dir weiter :)

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr.

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