Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [Rave] Report aus Records generieren? (https://www.delphipraxis.net/29951-%5Brave%5D-report-aus-records-generieren.html)

Igotcha 17. Sep 2004 09:57


[Rave] Report aus Records generieren?
 
Hallo zusammen,

ich habe mich bisher noch nicht sehr intensiv mit Rave beschäftigt, stehe aber vor der Überlegung ihn/es? in meinem Programm einzusetzen. Daher folgende Frage.

Meine Applikation besteht eigentlich "nur" aus vier VirtualTreeviews, die sich zu Programmstart Daten aus der zugrundeliegenden Datenbank holen und diese allerdings sehr extrem visuell aufwerten - Gruppenbildungen, Summenbildungen, Berechnung von Abweichungen, etc. Zudem kann der Anwender diese Daten natürlich editieren und zurück in die DB schreiben.

Meine Frage bezieht sich darauf, dass die Daten im Grunde während der gesamten Sitzung im Program (bzw. Speicher) gehalten werden - nämlich in den Recordstrukturen der einzelnen VTVs.

Ist es mit Rave auch möglich, Reports auf Basis dieser Records zu erstellen? Meine bisherigen Erfahrungen mit Rave bezogen sich nämlich immer auf eine DB-Anbindung.

Gruß Igotcha

merlin17 17. Sep 2004 11:17

Re: [Rave] Report aus Records generieren?
 
Igotcha,

es geht mit Rave <g>.
Schaue dir einmal die CustomConnections von Rave an. Die bieten für diesen Bereich alle Möglichkeiten;
eines habe ich vergessen: noch mehr Möglichkeiten bieten die codebased-componenten an;
das erfordert allerdings die Rave-beX-version.


:-) thomas, TeamNevrona

Igotcha 17. Sep 2004 11:43

Re: [Rave] Report aus Records generieren?
 
Ich habe jetzt mal einen Rave-Report mit Custom-Connection aufgesetzt, könntest Du mir bitt evtl. auf die Sprünge helfen zum Thema: "Wie gelange ich jetzt an meine Record-Variablen?"

EDIT: Wahrscheinlich ist der grundsätzliche Aufbau meiner Reports gar nicht so schwer, da ja in meinem Programm, die Struktur "visuell" gestaltet wurde (s. Gruppen, etc.). Demzufolge kann man die Daten zeilenweise darstellen, wobei bestimmte Zeilen (=Gruppen) sich nur in der Darstellung (fette Schrift, Hintergrundfarbe) unterscheiden müssen.

Will sagen, ich brauche dazu wahrscheinlich gar keine Master/Detailbands, sondern einfach nur eine Schleife, die mir von 0 - n-1 zeilenweise die Recordinhalte ausliest.

Danke und Gruß
Igotcha

merlin17 17. Sep 2004 12:17

Re: [Rave] Report aus Records generieren?
 
http://www.nevrona.com/rave/addons.shtml#NextSteps1 (zweiter teil in der pdf)
und evtl
http://www.nevrona.com/rave/tips/rvtip79.html

:-) thomas, TeamNevrona

Igotcha 17. Sep 2004 12:29

Re: [Rave] Report aus Records generieren?
 
Super, danke!

Der erste Link sieht genau nach dem aus, was ich brauche :-)

Igotcha 17. Sep 2004 13:25

Re: [Rave] Report aus Records generieren?
 
Sodele, das sieht soweit schon ganz gut aus, bis auf ein kleines Problem:

Ich kann jetzt im Designer von Rave die Daten aus meinen Records sehen, nur bekomme ich bei meiner Konstruktion der "Datenholung" eine Endlosschleife, da ich im Moment nicht dahinter komme, wie ich der Connection bzw. dem Report sage, dass er fertig ist. Die Methode mit DataRows setzen funktioniert in meiner Konstruktion nicht bzw. wird ignoriert, da anscheinend "onNext" Vorrang hat:

Delphi-Quellcode:
procedure TfrmMain.RvCustomConnection1GetCols(
  Connection: TRvCustomConnection);
begin
    Connection.WriteField('MyBezeichnung',dtString,40,'Bezeichnung','Test');
    Connection.WriteField('MyJAN',dtfloat,10,'JAN','');
end;

procedure TfrmMain.RvCustomConnection1GetRow(
  Connection: TRvCustomConnection);
begin
  With Connection do
  begin
    WriteStrData('',myPrintPrognose.FGBez);
    WriteFloatData('',myPrintPrognose.FMonat[3]);
  end;
end;

procedure TfrmMain.RvCustomConnection1First(
  Connection: TRvCustomConnection);
begin
     myPrintNode:=frmMain.TPROGNOSE.GetFirst;
     myPrintPrognose:=pPrognoseData(frmMain.TPROGNOSE.GetNodeData(myPrintNode));
end;

procedure TfrmMain.RvCustomConnection1Next(
  Connection: TRvCustomConnection);
begin
     myPrintNode:=frmMain.TPROGNOSE.GetNext(myPrintNode);
     if Assigned(myPrintNode) then
        myPrintPrognose:=pPrognoseData(frmMain.TPROGNOSE.GetNodeData(myPrintNode))
     else
        Tja, was soll hier hin??? 
end;
Im Einzelschrittmodus sehe ich, dass die Record-Einträge schön abgearbeitet werden, nur kann ich ihn nicht stoppen ;-)

Wenn Assigned(myPrintNode) false ist, soll er aufhören.

Gruß Igotcha

merlin17 17. Sep 2004 19:24

Re: [Rave] Report aus Records generieren?
 
schau' mal in die EOF-procedure !

Bsp:
Code:
procedure TForm1.RvCustomConnection1EOF(Connection: TRvCustomConnection;
  var Eof: Boolean);
begin
  Eof := (LogoRow > 1);
end;

:-) thomas, TeamNevrona


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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