![]() |
Rave Programm hängt beim beenden
Hallo,
ich habe ein kleines Problem mit meiner Anwendung. Da ich mein Projekt von Delphi 7 auf Delphi 2006 importiert habe, mussten alle Reports von Quick-Report auf Rave Report umgestellt werden. Das funktioniert auch alles. Wird nun die Anwendung ausgeführt und beendet ohne das dabei ein Rave-Report gedruckt wurde, wird die Anwendung ganz normal beendet. Wird nun ein Rave Report ausgedruckt und dann das Programm beendet hängt die Anwendung. Vieleicht kann mir einer einen Tip gegeben wo ich suchen sollte! P.R. :coder2: |
Re: Rave Programm hängt beim beenden
Hat schon jemand eine Lösung für dieses Problem gefunden?
Bei mir tritt dieser Fehler ebenso auf. |
Re: Rave Programm hängt beim beenden
Ich habe das Problem dahin gelöst, das ich nicht mehr Rave Report verwende. Nun ich setze jetzt erfolgreich FastReport, da ich mit Rave Report noch andere Probleme hatte
mfg Peter60 :lol: |
Re: Rave Programm hängt beim beenden
*Reanimiert*
Falls jemand noch das gleiche Problem hat: Das liegt wahrscheinlich an einem Datenbankzugriff, der nicht richtig beendet wird. Wenn der RaveReport dann geschlossen wird muss ein
Delphi-Quellcode:
ausgeführt werden, dann sollte die Anwendung nicht mehr hängen bleiben.
RvDataSetConnection.DataSet.Close;
Nur für den Fall, dass noch jemand (wie ich kürklich) verzweifelt suchen sollte und nicht unbedingt alles auf FastReport umstellen will ... Edit: *Hust* ... Hab grade gemerkt, dass das den Fehler doch nicht ganz behebt. War nur ein kurzzeitiger Erfolg, nach mehrmaligem Aufruf von Rave besteht das Problem leider weiter. :oops: (Es scheint aber wirklich daran zu liegen, dass die Datenbankverbindung noch Ausführung von Rave nicht richtig beendet wird) |
Re: Rave Programm hängt beim beenden
Hatte nun den Umstieg auf Rave 7.6
Doch auch nach Umstieg und dem Patch auf 7.6.2 besteht nach wie vor dieses Problem. Sobald ich ein Rave Report mit Datenbankzugriff öffne, kann ich im Nachhinein mein Programm nicht mehr schließen. Im gegensatz zu Delphi 7 sehe ich nun aber auch noch mein Mainfenster und nicht nur den Taskleisteneintrag. Hab mir schon beinahe nen Wolf gesucht, aber bisher immer noch keine Lösung gefunden. Falls jemand dieses Problem mittlerweile gelöst hat, oder es einfach nur ein Bedienungsfehler ist, wäre ich um jeden Tipp oder Workaround dankbar. Der Aufruf sieht folgendermaßen aus:
Delphi-Quellcode:
Alle Kommentare waren verschiedenste Versuche.
(*******************************
** Procedure: Print_MenuClick ** *******************************) procedure TForm_ACS_Module.Print_MenuClick(Sender: TObject); var // AccessData : TRvDataSetConnection; Form_RavePreview : TForm_RavePreview; begin // AccessData := TRvDataSetConnection.Create(Form_ACS_Module); // AccessData.DataSet := DataModule1.ADOQueryACSHistory; Form_RavePreview := TForm_RavePreview.Create(Form_ACS_Module); Form_RavePreview.RvProject.ProjectFile := (AP_Path + '\DATA\REPORT\ACS_List.rav'); Form_RavePreview.RvSystem.TitlePreview := st_RV_Preview; // i18n String Form_RavePreview.RvSystem.SystemPreview.FormState := wsMaximized; with Form_RavePreview.RvProject do begin Open; try SetParam('Status_Left', st_Menu_Filter + ': '+ SelectionString); SetParam('Status_Center', st_Printdate + ': '+ DateTimeToStr(Now)); // Execute; ExecuteReport('Report1'); finally Close; // AccessData.Destroy; end; end; // FreeAndNil(Form_RavePreview); end; Die TRvDataSetConnection wird im momentanen Stadium auf dem ausgehenden Form statisch erstellt. Mit der dynamischen Erstellung hat sich das ganze beim Erstellen der Vorschau aufgehängt. TForm_RavePreview ist nach einem irgendwann mal geposteten Beispiel zur Preview-Selbstgestaltung von merlin gestaltet. (Nach Nevrona Tipp 72 war das glaub ich) Wäre schön, wenn jemand helfen könnte. Grüße |
Re: Rave Programm hängt beim beenden
Wenn Du das im Debugger verfolgst, wie weit kommst Du denn da?
Wird die Druckvorschau angezeigt und der Druck volständig ausgeführt? |
Re: Rave Programm hängt beim beenden
Bei was nun genau?
Beim generellen Problem wird alles ausgeführt und funktioniert so wie es soll, bis ich das komplette Programm schließen möchte. Die RavePreview, Setup, etc. sind zu dem Zeitpunkt schon geschlossen. Schließe ich nun das Programm hägt es sich wie gesagt auf. Ich hab einige Autoupdate Threads, die anscheinend auch weiterhin aufgerufen werden, allerdings kann ich im Programm nichts mehr bedienen. In welchem Task er genau hängen bleibt, konnte ich leider nicht genau lokalisieren. Zum Beenden muss ich das Proggi also per TaskManager abschießen. Ansonsten funktioniert das wie es soll. Im Fall der dynamischen TRvDataSetConnection bleibt die Erstellung der Vorschau bei der ersten Seite hängen, sprich da geht nichts. Gruß |
Re: Rave Programm hängt beim beenden
Kannst Du die Threads mal abhängen und dann, wenn's
funktioniert einzeln wieder dazuschalten? Oder hast Du das schon versucht? Dann fällt mir nämlich auch nix mehr ein. |
Re: Rave Programm hängt beim beenden
An den Update Threads kanns nicht liegen, die kamen erst zu einem Zeitpunkt dazu,
an dem das Problem schon bestand. mMn muss es auf den Rave-Datenbankzugriff zurückzuführen sein, da das Problem nicht auftritt, wenn ich nur Reports geöffnet habe, die keine direkte Datenbankverbindung haben. Edit: Bin grade dabei mir die Aufzeichnung des Webinars G45W5H Reporting mit dem RAD Studio anzuschauen. Was ich jetzt daraus gesehen habe muss ich wohl die Datenbankanbindung exklusiver gestalten, damit Rave nicht ins Schleudern kommt. Das werd ich dann morgen mal ausprobieren. Hoffe mal, dass das auch hinhaut, da mein ganzes Proggi andauernd auf die Datenbank zugreifen muss ... |
Re: Rave Programm hängt beim beenden
PROBLEM GELÖST:
War wieder ein Fall von gefährlichem Halbwissen. Ich hatte ein paar ungenutzte TRvDataSetConnections in verschiedenen Forms rumliegen, die dummerweise mit ihrem Standardnamen ausgestatten waren, also gleich. Wie gesagt waren die ungenutzt und auf verschiedenen Forms, Rave nimmt das einem aber trotzdem recht übel. Nach dem Anschauen des Webinars in dem Thomas Pfister das Problem kurz anspricht und einem ![]() hab ich mein Programm nach TRvDataSetConnections durchsucht und die Bösewichter gefunden. Hab jetzt auch auf den Vorschlag im Webinar hin, alle RvDSConnections in ein eigenes Datenmodul gelegt und die überflüssigen gelöscht. Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz