Einzelnen Beitrag anzeigen

Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#1

Stringgrid mit Fastreport ausdrucken

  Alt 15. Jul 2019, 16:51
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:
Delphi-Quellcode:
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
    { Private declarations }
  public
    { Public declarations }
  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:
Delphi-Quellcode:
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.

Danke, Luckner

Geändert von Luckner (15. Jul 2019 um 17:03 Uhr)
  Mit Zitat antworten Zitat