Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   FastReport zur Laufzeit erstellen (https://www.delphipraxis.net/181077-fastreport-zur-laufzeit-erstellen.html)

FBrust 13. Jul 2014 17:21

FastReport zur Laufzeit erstellen
 
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

dummzeuch 13. Jul 2014 17:51

AW: FastReport zur Laufzeit erstellen
 
Zitat:

Zitat von FBrust (Beitrag 1265393)
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.

Du kannst eine TFrxReport Komponente auch auf ein DataModule legen. Das geht dann auch mit einem Service. Vielleicht einfacher...

FBrust 13. Jul 2014 19:36

AW: FastReport zur Laufzeit erstellen
 
Hallo dummzeuch,

das war ein prima Tip, so gehts :thumb:

Vielen Dank


Gruß
Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz