Hallo!
Ich habe folgendes Problem. Ich verwende Rave Reports zusammen mit den Gnostice Rave Renderern. Ich habe nun einen ziemlich komplexen Report (Kreuztabelle in Oracle - Viele Abfragen, viele Objekte, Parameter, die ich aus meinem Programm setzte, Arbeit mit den gnostice Rave Renderern etc.) - Der Report selbst läuft unter der Rave-
IDE völlig problemlos. Das Programm andererseits läuft mit einfachen Reports auch ziemlich gut. Wenn ich nun diesen komplexen Report ausführen lasse, dann stürtzt das Programm mit einer Zugriffsverletzung ab. Der Code, der dorthin führt ist:
Delphi-Quellcode:
procedure TRepEngine.GenerateHTMLRep (RavFile, ReportName, DestFile :
String; Mail : Boolean);
begin
FRvProject.ProjectFile := RavFile;
FRvProject.SelectReport(ReportName,TRUE);
FgtRPRenderHTML.Title := ExtractFileName (FAktFileName);
SetRepParams;
FgtRPRenderHTML.EMailAfterGenerate := Mail;
try
RenderUsingRenderObject(FgtRPRenderHTML,FRvProject,DestFile);
if BackupReports = TRUE
then MakeBackup (DestFile);
except
LogDebugMessage('
Exception bei RenderUsingRenderObject');
end;
end;
Und (das nächste Stück ist von gnostice)
Delphi-Quellcode:
procedure RenderUsingRenderObject(gtRPRender: TgtRPRender;
RPComponent: TRPComponent; AFileName: string;
ShowPrepareStatus: Boolean = False);
begin
SetRenderObject(RPComponent, gtRPRender);
##### ExecuteReport(RPComponent, AFileName, ShowPrepareStatus); ###### hier knallts
end;
In Execute Report:
Delphi-Quellcode:
{$IFDEF Rave50Up}
else if RPComponent is TRvProject then
with RPComponent as TRvProject do
begin
if Engine is TRvSystem then
SetReportSystemProperties(TRvSystem(Engine))
###### Execute; ######## hier knallts -> weiter tracen führt in die Untiefen der Systems.dcu und TypInfo.dcu
end;
{$ELSE}
Hat jemand hier eine Idee, warum der Report an dieser Stelle abschmiert bzw. wie man das herausfinden kann? Ich bin an dieser Stelle momentan recht frustriert, weil ich nicht weiter weiß.
Vielen Dank und viele Grüsse
Frank