[Gelöst] OnCloseForm + Report = Absturz

26. November 2007 17:33

In einem vergangenen Thema wurde hier ein Trick vorgestellt, wie man Form-abhängig im Hintergrund automatisch Reports ausführen lässt.

Hintergrund: Um Update-Problemen auf der Form entgegen zu wirken, wird in der Auftragsmaske beim Verlassen des aktuellen Datensatzes ein Report aufgerufen, der auf Basis der geänderten Informationen Felder im Sales Header ändert.

Um dies zu erreichen, wird der Report in den Triggern OnNextRecord (Blättern in den Datensätzen) und OnCloseForm (Schließen der Auftragsmaske) so aufgerufen:

Code:
IF "No." <> '' THEN BEGIN
  locSalesHeader.GET("Document Type", "No.");
  locSalesHeader.SETRECFILTER;
  REPORT.RUN(50018, FALSE, FALSE, locSalesHeader);
END;


Klappt auch wunderbar.

Es gibt aber ein entscheidendes Problem: Schließe ich den Client, noch während diese Auftragsmaske geöffnet ist, so erscheint nach dem Schließen des Client eine Fehlermeldung:
Microsoft Dynamics NAV hat ein Problem festgestellt und muss beendet werden.

Der Visual-Basic-Debugger sagt dazu nur:
DDE Server Window: finsql.exe - Fehler in Anwendung
Die Anweisung in "0x005bfdc0" verweist auf Speicher in "0x00000000". Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.


Ich habe das Ganze noch in Navision gedebuggt: Beim Schließen des Client kommt Navision noch in den OnCloseForm-Trigger und versucht gerade, den Report zu starten - und genau dabei knallt es.

Völlig unproblematisch ist es, wenn ich die Form manuell selber schließe.

Kennt jemand einen Workaround? Wenn nichts dabei herum kommt, werd ich wohl MS bemühen müssen :-(
Zuletzt geändert von Natalie am 14. Dezember 2007 11:03, insgesamt 1-mal geändert.

26. November 2007 17:58

hast du es mal mit runmodal versucht?
solange z.B. noch eine modale Form auf ist, läßt Navision sich ja nicht schließen.

26. November 2007 18:06

Michael Schumacher hat geschrieben:hast du es mal mit runmodal versucht?
solange z.B. noch eine modale Form auf ist, läßt Navision sich ja nicht schließen.


Der Report ist ein ProcessingOnly ohne Request Form. Selbst wenn ich ihn mit RUNMODAL starte, gibts den Fehler.

26. November 2007 19:45

schade, war nur so ne Idee.....

14. Dezember 2007 11:03

Antwort von Microsoft:
Quelltext vom OnCloseForm-Trigger nach OnCloseQueryForm verschieben - scheint zu funktionieren!

Warum zum Henker bin ich da eigentlich nicht selbst darauf gekommen?

Naja, dafür hat MS jetzt einen unbekannten Fehler mehr, für den sie einen Fehlercode generieren können.

14. Dezember 2007 11:12

Denk nach dem Runmodal aber auch an das Exit(true) sonst geht die Form nicht zu.

14. Dezember 2007 11:16

Hab ich doch ;-)