AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Grds. Frage zum Rave-Report
Thema durchsuchen
Ansicht
Themen-Optionen

Grds. Frage zum Rave-Report

Ein Thema von Igotcha · begonnen am 5. Nov 2005 · letzter Beitrag vom 7. Nov 2005
Antwort Antwort
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#1

Grds. Frage zum Rave-Report

  Alt 5. Nov 2005, 13:16
Datenbank: mySQL • Version: 5.x • Zugriff über: ZEOS
Hallo zusammen,

ich habe eine Eingabeoberfläche für einen Projektbericht erstellt, die aus mehreren TabSheets besteht, in denen der Anwender Informationen hinterlegen kann. Diese Informationen werden in einer mySQL-DB gespeichert und im Programm mit VirtualTreeviews dargestellt. Es sind rund 20 VTVs, in denen Daten zeilenweise angezeigt werden. Zudem gibt es noch ein "Stammblatt", in denen Daten wie Projektname, Start, etc. in Form von Edit-Feldern angezeigt werden - diese werden abenfalls in der mySQL-DB gespeichert.

Jetzt möchte ich einen Bericht dazu erstellen, sprich die im Programm angezeigten Informationen (Stammdaten und aus den VTVs) zu Papier bringen. Der Bericht soll fortlaufen geschrieben werden in der Form:

STAMMDATEN
Überschrift
DATEN AUS VTV1
Überschrift
DATEN AUS VTV2
etc.

Da ich mir Delphi über den Weihnachtsabverkauf zugelegt habe, besitze ich keine Handbücher für Rave (für Delphi selbst brauche ich die nicht), sondern nur die über Download (Rave-HP) erhältlichen (firststeps, etc.) und zudem ist es mein erster Versuch mit Rave.

Da man den Bericht auch aus einer anderen Anwendung drucken können soll, müssen die Daten also per SQL bezogen werden.

Es gibt jetzt eine RvDataSetConnection und eine RvQueryConnection. Welche ist grds. dafür besser geeignet? Und muß ich im Fall einer RvDataSetConnection auch 20 DataSets mit jeweils einer Query auf die Form packen?

Gruß Igotcha
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

Re: Grds. Frage zum Rave-Report

  Alt 6. Nov 2005, 21:11
ich würde über die CustomConnection von Rave gehen. suche hier einmal nach diesem Wort, dürften einige Threads als Treffermenge sein...
Zitat:
RvQueryConnection
bitte sofort vergessen (ist wg. BDE und Rave 3 enthalten...)

Zitat:
Da man den Bericht auch aus einer anderen Anwendung drucken können soll, müssen die Daten also per SQL bezogen werden.
versteh' ich nicht ganz.


thomas, TeamNevrona
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Grds. Frage zum Rave-Report

  Alt 6. Nov 2005, 22:15
So, bin weiter und hab von alleine die CustomConnection gewählt, da sie gerade in meinem Fall doch einige Vorteile bringt, ABER...

Der Report funktioniert leider nur einmal beim Aufruf aus der Anwendung. Beim nächsten Aufruf ist der Report leer.

Wie gesagt, arbeite ich mit Daten aus VirtualStringTrees und zwar in der Form:

Delphi-Quellcode:
procedure TFProjektbericht.RVCERLOESEGetCols(Connection: TRvCustomConnection);
begin
    Connection.WriteField('_KEART', dtString,30,'KostenErlösart','');
    Connection.WriteField('_PLAN', dtcurrency,10,'Planwert','');
    Connection.WriteField('_ISTKUMGES', dtcurrency,10,'IstKumuliert','');
    Connection.WriteField('_PROGENDEPROJEKT', dtCurrency,10,'PrognoseEndeProjekt','');
    Connection.WriteField('_DIFFPROGIST', dtCurrency,10,'DiffPrognoseIst','');
    Connection.WriteField('_DIFFPROGPLAN', dtCurrency,10,'DIFFPrognosePlan','');
end;

procedure TFProjektbericht.RVCERLOESEGetRow(Connection: TRvCustomConnection);
var
  myData: PSDErloese;
begin
    myData := PSDErloese(VTSERLOESE.GetNodeData(myRepNode)); // Daten aus dem VirtualStringTree-Knoten holen
    Connection.WriteStrData(myData.FBezeichnung,'');
    Connection.WriteCurrData(format('%.0n', [myData.FPlan]),myData.FPlan);
    Connection.WriteCurrData(format('%.0n', [myData.FIstKumGesamt]),myData.FIstKumGesamt);
    Connection.WriteCurrData(format('%.0n', [myData.FPrognoseEndeProjekt]),myData.FPrognoseEndeProjekt);
    Connection.WriteCurrData(format('%.0n', [myData.FDiffPrognoseIst]),myData.FDiffPrognoseIst);
    Connection.WriteCurrData(format('%.0n', [myData.FDiffPlanIst]),myData.FDiffPlanIst);
    myRepNode:=VTSERLOESE.GetNext(myRepNode); // einen Knoten weitergehen
end;

procedure TFProjektbericht.RVCERLOESEOpen(Connection: TRvCustomConnection);
begin
    Connection.DataRows:=9;
end;

procedure TFProjektbericht.RVCERLOESEFirst(Connection: TRvCustomConnection);
begin
     myRepNode:=VTSERLOESE.GetFirst; // Node des ersten Knoten des VirtualStringTrees holen
end;
Aufgerufen wird der Report mit:

Delphi-Quellcode:
procedure TFProjektbericht.TBItem1Click(Sender: TObject);
var
  strPATH: String;
begin
  strPath:=ExtractFilePath(Application.ExeName)+'Reports\';
  RvProject1.ProjectFile:=strPath+'PIM_Projektbericht_001.rav';
  RvProject1.SelectReport('Report1',true);
  RvSystem1.DefaultDest:=rdPreview;
  rvproject1.Execute;
Das Problem könnte evtl. sein, dass die Daten aus einem mir nicht erklärbarem Grund nur einmal geholt werden, denn ich habe in meinem Report eine andere Sektion, in der ich ebenfalls über CustomConnection Werte aus Edit-Feldern übergebe und diese werden immer angezeigt.

EDIT: Wie ich gerade getestet habe, springt der Report beim zweiten Aufruf gar nicht mehr in das OnGetRow-Event. Warum ist das so?

Gruß Igotcha
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Grds. Frage zum Rave-Report

  Alt 7. Nov 2005, 00:08
Es ist spät, aber ich habe eine Lösung gefunden - keine Ahnung, warum das funktioniert

Delphi-Quellcode:
procedure TFProjektbericht.RVCERLOESEOpen(Connection: TRvCustomConnection);
begin
    Connection.DataRows:=9;
    Connection.DoFirst; // damit läuft es auch bei Folgeaufrufen des Reports
end;
Grüße,
Igotcha
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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