Einzelnen Beitrag anzeigen

taran_seven

Registriert seit: 15. Mär 2004
8 Beiträge
 
#8

TChart einfach in RAVE darstellen

  Alt 3. Jul 2004, 22:03
Zitat von Detlef:
Hallo Raver,

ich versuche verzweifelt ein Tchart in einen
Report zu bringen. Habe dazu die Schritte in Tip 19
realisiert, bekomme aber beim Ausführen den Fehler
Tip 19 ist leider unvollständig...
Habe aber schnell herausgefunden, wie es geht.

// Hiermit definierst Du alle möglichen Charts die Du auf Deinem Report verwenden möchtest -> bei "OnGetCols" definieren
Delphi-Quellcode:
procedure TForm1.RvCustomConnection1GetCols(
  Connection: TRvCustomConnection);
begin
    Connection.WriteField('Chart1', dtGraphic, 30, '', '');
    Connection.WriteField('Chart2', dtGraphic, 30, '', '');
end;
// Das Schreibt die meta-Daten an Rave, für jedes Chart mußt Du auch eine Zeile definieren! Bei "OnGetRow" definieren
Delphi-Quellcode:
procedure TForm1.RvCustomConnection1GetRow(
  Connection: TRvCustomConnection);
begin
  WriteChartData(Connection, Chart1);
  WriteChartData(Connection, Chart2);
end;
// Dies hier muß bei "OnOpen" definiert werden
Delphi-Quellcode:
procedure TForm1.RvCustomConnection1Open(Connection: TRvCustomConnection);
begin
  ChartRow := 1; // ChartRow ist bei "Var ChartRow:Integer" der Form zu definieren.
end;
// Wenn Du die folgenden beiden Proceduren vergisst, dann hast Du eine Endlosschleife -> Rave->Task-Beenden
// Die müssen bei "OnEOF" und "nNext"
Delphi-Quellcode:
procedure TForm1.RvCustomConnection1Next(Connection: TRvCustomConnection);
begin
  inc(ChartRow);
end;

procedure TForm1.RvCustomConnection1EOF(Connection: TRvCustomConnection;
  var Eof: Boolean);
begin
  Eof := (ChartRow > 1);
end;
// Hiermit rufst Du das ganze auf...

Delphi-Quellcode:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  RvProject1.Execute; // oder mit ExecuteReport('Reportname')
end;
Jetzt die Applikation starten UND DANN erst die CustomConnection unter "NewDataObject->DirectDataView" importieren.
Dort sollte dann "DataView1Chart1" (und weitere) als Feldname stehen... Steht "DataViewFieldName" hast Du die Applikation nicht gestartet...-> Starten und dann auf Refresh...

Danach Plazierst Du ein MetaFileComponent (Standard) und Gibst Dataview und Datafield an... F9 und das Chart sollte zu sehen sein... Achtung, F9 geht bei CustomConnection nur, wenn die Applikation läuft, sonst-> Fehlermeldung

Ich hoffe, die Beschreibung hilft Dir weiter... Leider ist die Doku recht dürftig und man verschwendet viel Zeit mit probieren.


Liebe Grüße
  Mit Zitat antworten Zitat