Einzelnen Beitrag anzeigen

SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
272 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Rave druckt wie blöd.. - oder garnicht.

  Alt 28. Dez 2012, 02:10
Da sitze ich nun schon 9 Stunden, lese mich durchs Forum durch, google, probiere rum - und habe schon Teilerfolge, aber Rave macht nicht, was ich will.
Irgendwas ist noch falsch.

Ich habe "Delphi XE" und "Rave Reports 9.0 BE". Bleiben wir erst mal bei Rave; wenn das geht, sollte auch mein Code in Delphi laufen.

Also, in Rave:
Ich habe 2 Regionen definiert.
1. Region ist eine Art Briefkopf und hat ein Band mit ein paar Datenfeldern, die ich mit SetParameter fülle.
2. Region besteht aus einem Überschriften-Band, wo "ControllerBand" auf 'DataBand2' gesetzt ist; Bandstyle: "G 1P"
Darunter habe ich das "Databand2", wo "DataView" auf 'DataView1' gesetzt ist; Bandstyle: "Master 1P"

Im DataBand2 habe ich 9 DataText-Felder, die durchnummeriert bei "DataField" Datatext# heißen (# steht für die Nummer) und jeweils "DataView" auf Dataview1 gesetzt sind.

Rechts in der Auflistung unter "Data View Dictionary" und darunter "Dataview" habe ich meine 9 "DataView1DataText#" - letztlich ist irgendwie alles so, wie es auf 50 Seiten im Internet beschrieben wird.

Klicke ich jetzt auf Drucken (im Rave), also Druckvorschau, dann generiert mir das Ding ohne Pause 500 Seiten pro Sekunde. Ich breche es dann ab.

Ich hab hin und herprobiert und es klappt einfach nicht.

Was mache ich falsch?

Ich stelle gerade fest, daß - sobald ich mein Programm beende - Rave nicht mehr endlos Seiten generiert, sondern nur noch eine Zeile von Databand2 bringt, in der in allen Feldern "(invalid)" steht (die Überschriftenzeile fehlt dann aber).
Nun, dann mal noch den Quelltext in Delphi dazu...

Delphi-Quellcode:
procedure TForm2.RvCCGetCols(Connection: TRvCustomConnection);
begin
 with Connection do begin
   WriteField('DataText3',dtString,10,'','');
   WriteField('DataText4',dtString,10,'','');
   WriteField('DataText5',dtString,10,'','');
   WriteField('DataText6',dtString,10,'','');
   WriteField('DataText7',dtString,10,'','');
   WriteField('DataText8',dtString,10,'','');
   WriteField('DataText9',dtString,10,'','');
   WriteField('DataText10',dtString,10,'','');
   WriteField('DataText11',dtString,10,'','');
 end;
end;

procedure TForm2.RvCCGetRow(Connection: TRvCustomConnection);
function Logik:string;
begin
  if FallGrid.Cells[8,RvCC.Tag]='Rthen result:=' Relse
   if FallGrid.Cells[3,RvCC.Tag]='Jthen result:=' Xelse
    result:=' X';
end;
begin

 with Connection do begin
   WriteStrData(FallGrid.Cells[0,RvCC.Tag],''); //O
   WriteStrData(FallGrid.Cells[1,RvCC.Tag],''); //H
   WriteStrData(FallGrid.Cells[2,RvCC.Tag],''); //A
   WriteStrData(FallGrid.Cells[9,RvCC.Tag],''); //R
   WriteStrData(Logik,'?'); //Vorgang ->logik
   WriteStrData(FallGrid.Cells[4,RvCC.Tag],''); //T1
   WriteStrData(FallGrid.Cells[5,RvCC.Tag],''); //T2
   WriteStrData(FallGrid.Cells[6,RvCC.Tag],''); //T3
   WriteStrData(FallGrid.Cells[7,RvCC.Tag],''); //T4
 end;
end;

procedure TForm2.RvCCNext(Connection: TRvCustomConnection);
begin
 with RvCC do Tag:=Tag+1;
end;

procedure TForm2.RvCCOpen(Connection: TRvCustomConnection);
begin
 RvCC.Tag:=1;
 Connection.DataRows:=FallGrid.RowCount;
end;
In meinem Projekt habe ich die Komponenten RvSystem, RvProject und RvCustomConnection (RvCC).
In RvProject habe ich die "Engine" auf RvSystem1 gesetzt.


So, das sollte alles relevante nun zeigen. Ich weiß nicht weiter. Ist mein erstes Projekt mit Rave...
  Mit Zitat antworten Zitat