Der Vollständigkeit halber - Folgende Lösung für das Problem:
Beim Erstellen des frxReports muss UseGlobalDatasetList auf False gestellt werden:
FfrxReport.EngineOptions.UseGlobalDataSetList := False;
Danach kann das frxDBDataset dem Report hinzugefügt werden
FfrxReport.EnabledDataSets.Add(FfrxDataSet);
Und danach den Report mit LoadFromStream/LoadFromFile laden und vor dem Ausführen FfrxDataSet.Dataset füllen.
Oder komplett
Delphi-Quellcode:
procedure TReportController.Create;
begin
FfrxReport:= TfrxReport.Create( nil );
FfrxReport.EngineOptions.UseGlobalDatasetList := False;
FfrxDataSet:= TfrxDBDataset.Create( nil );
FfrxDataSet.UserName:= 'reportdataset';
FfrxReport.EnabledDataSets.Add( FfrxDataSet );
//Weitere Aktionen
FfrxReport.LoadFromFile( AReportPath );
end;
procedure TReportController.DesignReport;
begin
if Assigned( FfrxDataSet.DataSet ) then begin
FfrxDataSet.DataSet.Free;
FfrxDataSet.DataSet:= nil;
end;
FfrxDataSet.DataSet:= TDataBase.CreateDataset( FSQL );
FfrxReport.PrepareReport;
FfrxReport.DesignReport;
end;