| 
| 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: 1335
 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: 1335
 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
 |  |  |  |