Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   einfaches RAVE Beispiel (https://www.delphipraxis.net/169449-einfaches-rave-beispiel.html)

wschrabi 20. Jul 2012 10:19

Datenbank: mySQL • Version: 5.5.8 • Zugriff über: myDAC

einfaches RAVE Beispiel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich bastle heute meine erste Rave App mit Delphi 7.
Doch macht es Schwierigkeiten.

Code:
procedure TForm1.Button7Click(Sender: TObject);
begin
  With RvProject1.ProjMan do
    begin
    RvProject1.Open;
    RvDataSetConnection1.ExecGetCols; // get list
    RvDataSetConnection1.ExecGetRow; // obtain records
    RvProject1.ExecuteReport('Report3');
    Close;
  end;
end;

procedure TForm1.RvDataSetConnection1GetCols(
  Connection: TRvCustomConnection);
begin
  Connection.WriteField ( 'Journal', dtString, 200 ,'','');
end;

procedure TForm1.RvDataSetConnection1GetRow(
  Connection: TRvCustomConnection);
var
  s: string;
  Buffer: PChar;
begin
  Connection.WriteStrdata ('', DBGrid1.Fields[0].AsString );
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  MyQuery3.Execute;
end;

procedure TForm1.RvDataSetConnection1Open(Connection: TRvCustomConnection);
begin
  Connection.DataRows := 1;
end;
Im DBGrid sieht man die Journals sehr schön. Doch wenn ich den Report erzeuge und mit Preview in sehe, dann ist das Blatt leer (ausser die Seitenzahl 1)

Patito 20. Jul 2012 11:03

AW: einfaches RAVE Beispiel
 
Im OnOpen() sagst Du dem Report wieviele Zeilen deine Connection liefert.
Mit Connection.DataRows := 1 ist das natürlich nur eine.

Im GetRow() solltest Du Connection.DataIndex verwenden. (das sagt welche Zeile er haben will).

Delphi-Quellcode:
procedure TMyReport.OnRvCCOpen(Connection: TRvCustomConnection);
begin
  Connection.DataRows := self.MyReportData.GetDataCount;
end;

procedure TMyReport.OnRvCCGetRow(Connection: TRvCustomConnection);
var AktItem: TMyItem;
begin
  AktItem := self.MyReportData.GetData_ForIndex(Connection.DataIndex);

  Connection.WriteIntData('', AktItem.Id);
  Connection.WriteIntData('', AktItem.Name);
  Connection.WriteStrData('', AktItem.Text);
end;

wschrabi 20. Jul 2012 11:57

AW: einfaches RAVE Beispiel
 
Hi Patito,
ich hab Probleme mit self.MyReportData.
Das kennt er nicht. Was ist denn das genau.
Ich hab ein DBGird.

Jetzt hab ich im Rave Designer den Report nochmals neu generiert und
jetzt kann ich wenn ich im Rave Designer F9 drücke den Report sehen.
Doch leider geht es noch nicht im Delphi prg.
Was mache ich falsch?
danke
mfg
walter

PS: Ich verwende DELPHI 7 und RAVE 5.0

Perlsau 20. Jul 2012 14:25

AW: einfaches RAVE Beispiel
 
Zitat:

Zitat von wschrabi (Beitrag 1175363)
Hi Patito, ich hab Probleme mit self.MyReportData. Das kennt er nicht. Was ist denn das genau.

Keine Ahnung, was self.MyReportData sein soll.

Zitat:

Zitat von wschrabi (Beitrag 1175363)
Ich hab ein DBGird.

Echt? Und was hat das mit Rave zu tun?

Wenn du ein DBGrid verwendest, hast du doch sicher auch ein Dataset, auf das ein Datasource verweist, welches deinem DBGrid die Daten bereitstellt. Nun nimmst du eine TRvDatasetConnection, verbindest die mit deinem Dataset und startest den Rave-Designer. Dort klickst du auf den View-Button (erstellt ein neues View) und wählst im daraufhin erscheinenden Dialog Direct Data View aus. Damit hast du ein Abbild deines Datasets aus deinem Delphi-Programm.

Damit funktioniert ein TRvProject.Execute auf jeden Fall.


Zitat:

Zitat von wschrabi (Beitrag 1175363)
Jetzt hab ich im Rave Designer den Report nochmals neu generiert und
jetzt kann ich wenn ich im Rave Designer F9 drücke den Report sehen.
Doch leider geht es noch nicht im Delphi prg.
Was mache ich falsch?

Keine Ahnung, ich weiß ja nicht, was du überhaupt machst.

wschrabi 20. Jul 2012 16:51

AW: einfaches RAVE Beispiel
 
Danke, jetzt klappt es wie es soll. Ich musste RAVE 5.0.4 neu installieren - war irgendwas am System. So wie Du es mir erklärt hast habe ich es mir auch gedacht. Schönen DANK.

Perlsau 20. Jul 2012 16:54

AW: einfaches RAVE Beispiel
 
Zitat:

Zitat von wschrabi (Beitrag 1175421)
Danke, jetzt klappt es wie es soll. Ich musste RAVE 5.0.4 neu installieren - war irgendwas am System. So wie Du es mir erklärt hast habe ich es mir auch gedacht. Schönen DANK.

Ist ja toll ... aber wen meinst du jetzt eigentlich.

Wenn man jemanden direkt ansprechen möchte, ohne ihn zu zitieren (weil dann wär ja klar, wer gemeint ist), setzt man vor den Text ein @, gefolt von dem Nick des Angesprochenen, z.B. @Perlsau ...


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