Einzelnen Beitrag anzeigen

Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

FastReport zur Laufzeit erstellen

  Alt 13. Jul 2014, 17:21
Hallo,

ich möchte zur Laufzeit einen Bericht mit FastReport erstellen, bei dem alle benötigten Komponenten etc. ebenfalls zur Laufzeit erzeugt werden. Hintergrund ist, dass die Erzeugung später in einem Dienst laufen soll, in dem es soweit ich weiß keine Formulare gibt.

Allerdings hänge ich aktuell an einem Problem fest:

Folgender Code

Delphi-Quellcode:
            frxReport1 := TFrxReport.Create(nil);
            frxDBDataset1 := TfrxDBDataSet.Create(nil);

            with frxReport1 do
              begin
                Dataset := frxDBDataset1;
                frxDBDataSet1.Dataset := qryFBReport;

                qryFBReport.Close;
                qryFBReport.SQL.Text := 'SELECT * FROM QREP_3 ORDER BY INTPOS';
                qryFBReport.Open;
                if (qryFBReport.RecordCount = 0) then
                  begin
                    ShowWarning('Keine Daten vorhanden.');
                  end
                else
                  begin
                    LoadFromFile(strRepFile);
                    PrepareReport;
                  end;
              end;
bringt beim PrepareReport den Fehler "SQL-Statement doesn't return rows", obwohl qryFBReport 25 Datensätze enthält.

Ich vermute, dass es damit zusammenhängt, dass in der FR3-Datei bei der Datenquelle frxDBDataset1 die Komponente "frmMain.frxDBDataset1" steht.

Bisher kannte ich nur die Vorgehensweise, dass man frxReport und frxDBDataset auf ein Formular gelegt hat und dann hatte der Designer von FR automatisch die richtigen Verknüpfungen, dies würde hier aber m. E. nicht funktionieren, da kein Formular vorhanden (weil Dienst).

Kennt jemand evtl. eine Möglichkeit, ein zur Laufzeit erzeugtes frxDBDataset einer FR-Berichtsvorlage zuzuweisen?

Oder kann man in einem Dienst evtl. doch Formulare verwenden (mit Visible := false)?

Grüße
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty

Geändert von FBrust (13. Jul 2014 um 17:22 Uhr) Grund: Zusatzfrage hinzugefügt
  Mit Zitat antworten Zitat