Autor |
Beitrag |
Luckner
Hält's aus hier
Beiträge: 3
|
Verfasst: Mi 17.07.19 12:17
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
|
|
Sinspin
Beiträge: 1334
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Mi 17.07.19 15:37
Hallo, was passiert wenn du einen Haltepunkt in die Zeile 76 stellst. Wird der erreicht?
Ich habe bisher nur mit LL gearbeitet, aber das sollte ja ähnlich sein.
In dem Report mit dem drucken willst gibt es die Tabelle?
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Luckner
Hält's aus hier
Beiträge: 3
|
Verfasst: Do 18.07.19 09:02
Hallo Sinspin,
der Haltepunkt wird erreicht. Im Report gibt es keine Tabelle, sondern (wie im Demo von Fastreport, ein Cross-Objekt.
Gruß, Luckner
|
|
Sinspin
Beiträge: 1334
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Do 18.07.19 09:48
Das einzige was mir als Unterschied auffällt ist die Anzahl der Zeilen und Spalten beim füllen des Grids.
Gibt es mehr Ereignisse aus dem Druckprozess die man anzapfen kann um zu erfahren was dann weiter mit den Daten gemacht wird?
Für LL gibt es ein Monitoringprogramm das mir alle Aktionen auflistet die wärend des Drucks erfolgen.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Luckner
Hält's aus hier
Beiträge: 3
|
Verfasst: Do 18.07.19 10:24
Hallo,
ein Monitoringprogramm für Druckprozesse von Fastreport in meiner Version 4.6, kenne ich nicht. Ansich ist das anbinden der Variablen oder Datenbankkomponente an Fastreport nicht so problematisch, aber mit den Cross-Objekte habe ich bis jetzt nichts gemacht. Deshalb stehe ich so auf dem Schlauch. Dieses Demo funktioniert sofort und ich sehe da auch keine Unterschiede. Zumindestens nicht in dem Delphi-Code. Ich muß die beiden Komponnenten noch einmal vergleichen. Möglicherweise gibt es dort eine Querverbindung.
Luckner
|
|
|