Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Rave Programm hängt beim beenden (https://www.delphipraxis.net/68280-rave-programm-haengt-beim-beenden.html)

Peter60 27. Apr 2006 11:07


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:

Roland1967 1. Aug 2006 07:25

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.

Peter60 1. Aug 2006 07:42

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:

alphaflight83 5. Dez 2008 09:29

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:
RvDataSetConnection.DataSet.Close;
ausgeführt werden, dann sollte die Anwendung nicht mehr hängen bleiben.

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)

alphaflight83 7. Apr 2009 13:04

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:
(*******************************
** 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;
Alle Kommentare waren verschiedenste Versuche.
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

GHorn 7. Apr 2009 14:38

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?

alphaflight83 7. Apr 2009 15:11

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ß

GHorn 7. Apr 2009 15:20

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.

alphaflight83 7. Apr 2009 15:24

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 ...

alphaflight83 8. Apr 2009 11:05

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 Eintrag im Delphi-Forum, den ich beim letzten Mal suchen komischer- und dummerweise übersehen habe,
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 03:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz