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