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.