[Gelöst] Form-Problem mit Parameterübergabe

8. April 2007 09:37

Hallo

Ich bräuchte eure Hilfe bzgl. Parameter und Forms. Wir haben im Umlagerungsbuchblatt einen Button, welcher aus einer Tabelle Daten einliest. Nun möchte ich dies so abändern, das man den neuen Lagerort bzw. neuen Lagerplatz vor dem Einlesen festlegen kann. Aktuell wird beim Click auf diesen Buttom eine Codeunit ausgeführt. Nun möchte ich diesen Codeunit-Aufruf einfach diese zwei Paramter mitübergeben.

Ich habe zwar schon mit einer From versucht, habe aber keinen Lösungsweg gefunden.
Könnte Ihr mir hier einen Lösungsweg vorschlagen.

Besten Dank
stony
Zuletzt geändert von stony am 10. April 2007 16:04, insgesamt 1-mal geändert.

8. April 2007 13:07

Wie sieht denn dein Code aus?

9. April 2007 12:17

Stony, am besten baust du in die Codeunit vor der Ausführung des eigentlichen Codes noch eine DIALOG abfrage mit ein. Da hat Marc auf seiner Webseite einige tutorials zu ;-)

9. April 2007 13:36

In der Form Umlagerungsbuchblatt gibt es dem Button mit folgenden Code bei dem Trigger OnPush:

Form2.SetValues("Journal Template Name","Journal Batch Name");
Form2.RUN

Wobei Form2 die Form ist wo ich die beiden Variablen für Lagerort und Lagerplatzcode auswählen kann. Die beiden Variablen "Journal Template Name","Journal Batch Name" übergebe ich, da diese die Codeunit, welche beim OK-Buttom in der Form2 ist, gebraucht wird.

Der Code für den OK-Bottum ist:

ProcessScannerIntTable.SetShowWindow(TRUE);
ProcessScannerIntTable.ImportFromScannerIntTable(2,JournalTemplateName,JournalBatchName,FALSE);

Hier habe ich aber das Problem, das Navision eine Fehlermeldung bringt:
Form2 kann nicht geschlossen werden, da sie bereits von 'Microsoft Navision-Sulotion' gesperrt ist.

Woher kommt es zu dieser Fehlermeldung bzw. wie kann ich dies vermeiden.

9. April 2007 15:12

Ah, OK, das Phänomen.
Ja, Navision versucht die Form zu schließen, weil dein Importfunktionsaufruf die letzte Zeile im Trigger ist. Da die Funktion aber noch läuft, geht das nicht.
mach dahinter noch irgendetwas anderes, z.b.
IF 1=1 THEN;
die Zeile tut nicht wirklich was, aber Navision wartet mit dem Schließen der Form, bis die Zeile abgearbeitet ist.

9. April 2007 20:38

Habe jetzt diese
IF 1=1 THEN; eingebaut aber leider bekomme ich noch immer diese Fehlermeldung.

10. April 2007 01:05

Hast du das als letzte Zeile in den OnPush-Trigger eingetragen?
Achso, noch etwas, der Import in der CodeUnit, wie rufst du den auf?
wird dort noch eine Form mit run aufgerufen?
Wenn ja, mach RunModal, damit auf das schließen gewartet wird, bevor es weiter geht.
Evtl. musst du auch nur dafür sorgen, dass auf das ende des Imports gewartet wird, also den Dataport mit Runmodal statt mit Run starten.
wenn du nicht mit Dataport sondern mit XML-Port importierst, dann den Rückgabewert abfragen.
Wichtig ist, dass die komplette Verarbeitung abgeschlossen und alle Fenster wieder zu sind, bevor die Kontrolle an den OnPush-trigger zurückkommt.