Hallo,
ich würde gerne ein Stringgrid über den Fastreport ausdrucken. In dem Fastreport-Verzeichniss gibt es ein Demo, das wunderbar funktioniert. Das habe ich versucht für mich anzupassen, aber es funktioniert nicht.
Hier das Demo-Bespiel:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, frxClass, StdCtrls, Grids, frxCross;
type TForm1 = class(TForm) Button1: TButton; StringGrid1: TStringGrid; frxCrossObject1: TfrxCrossObject; frxReport1: TfrxReport; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure frxReport1BeforePrint(c: TfrxReportComponent); private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); var i, j: Integer; begin for i := 1 to 16 do for j := 1 to 16 do StringGrid1.Cells[i - 1, j - 1] := IntToStr(i * j); end;
procedure TForm1.Button1Click(Sender: TObject); begin frxReport1.ShowReport; end;
procedure TForm1.frxReport1BeforePrint(c: TfrxReportComponent); var Cross: TfrxCrossView; i, j: Integer; begin if c is TfrxCrossView then begin Cross := TfrxCrossView(c); for i := 1 to 16 do for j := 1 to 16 do Cross.AddValue([i], [j], [StringGrid1.Cells[i - 1, j - 1]]); end; end;
end.
Hier meine Version:
procedure TForm1.ButtonGejoDruckenClick(Sender: TObject); begin frxReportGejo.ShowReport; end;
procedure TForm1.frxReportGejoBeforePrint(c: TfrxReportComponent); var Cross: TfrxCrossView; i, j: Integer; begin if c is TfrxCrossView then begin Cross := TfrxCrossView(c); for i := 1 to 5 do for j := 1 to GridGejo.RowCount do Cross.AddValue([i], [j], [GridGejo.Cells[i - 1, j - 1]]); end; end; |
Wobei GridGejo das besagte Stringrid ist. Das Ergebniss ist, dass im Preview von Fastreport eine leere Seite entsteht. Hat möglicherweise Jemand eine Idee, woran das liegen kann?
Irgendwie habe ich das Gefühl, dass es keine Verbindung zwischen dem Report und der Cross-Komponente gibt.
Danke, Luckner
Moderiert von
Christian S.: Delphi-Tags hinzugefügt