procedure THauptform.getRaveReport(Datenquelle: TIBQuery);
begin
// im folgenden wird eine korrekte (im Database Explorer geprüfte) SQL-Anweiung entsprechend Bericht übernommen
try
Datenquelle.Close;
Datenquelle.SQL.Clear;
Datenquelle.SQL.Add(Bericht.SQL);
except
end;
// läßt sich Datenquelle öffenen
try
Datenquelle.Open;
except on e:
Exception do
WebApplication.ShowMessage('
Fehlerhafte Datenbankabfrage! [...] konnte nicht geöffnet werden!' + Chr(10) + Chr(10) + e.
Message);
end;
// oder ist Datenquelle vielleicht leer
if Datenquelle.Eof
then
begin
WebApplication.ShowMessage('
Es konnte kein Bericht zu Ihrer Anfrage gefunden werden!');
Exit;
end;
// Datei einlesen und Parameter (Überschriften u.ä.) setzen
UserSession.DM.RVProject.ProjectFile := GServerController.FilesDir + '
Reports.rav';
UserSession.DM.RVProject.SetParam('
Ueberschrift', Bericht.Headline);
// Ausgabedatei und -verzeichnis bestimmen
UserSession.DM.RvSystem.DoNativeOutput := False;
UserSession.DM.RvSystem.RenderObject := UserSession.DM.RvRenderPDF;
LFile := Bericht.
Name + '
.pdf';
UserSession.DM.RvSystem.OutputFileName := GServerController.FilesDir + IncludeTrailingPathDelimiter(WebApplication.AppID) + LFile;
ForceDirectories(ExtractFileDir(UserSession.DM.RvSystem.OutputFileName));
// RvDSC_Master ist eine TRvDataSetConnection
UserSession.DM.RvDSC_Master := TRvDataSetConnection.Create(Self);
UserSession.DM.RvDSC_Master.
Name := Bericht.RvDSCName;
UserSession.DM.RvDSC_Master.DataSet := Datenquelle;
try
RThread := TReportThread.Create(UserSession.DM.RvProject);
except on e:
Exception do
WebApplication.ShowMessage('
Bericht konnte nicht erstellt werden!' + Chr(10) + Chr(10) + e.
Message);
end;
end;