[GELÖST] die komplette NAV Aufgabe??

26. Juni 2018 12:05

Hallo, ich stehe vor einer kleineren Aufgabe zum lernen für mich, und komme echt nicht weiter - habe ich es denn genau verstanden? meine Notizen zu den Gedanken sind in Klammern; es ist eig nur Punkt 2 der mir Kopfschmerzen bereitet, das andere habe ich schon gelöst.

2.1 [GELÖST?] Anlegen einer Parameterpage zum Abfragen von der abzuziehenden Menge

Validieren der Eingabe (Menge < Menge der Zeile im FA) (Eine Page erstellen, wo a. der User eine neue Menge eingibt und b. die Menge in FA automatisch aus der Tabelle übernommen wird.)

2.2 Funktion SplitFALine

Erstellen der Funktion SplitFALine in der Codeunit PropheteFunction 50003s. (erstellt - NAV springt auch auf die Codeunit mit der PageAction in 2.3)
• Reduzieren der Menge der Ursprungszeile, Validieren (Usereingabe?) der Menge aus der Parmeterpage. (die übernommene Menge aus der Page)
• Anlegen der neuen Zeile, Übernahme von Komponenten und Arbeitsplan der Ursprungszeile. (Anlegen einer neuen Zeile in der Page/Table mit der neuen Menge)
• Setzen der Menge auf ausgewählte Menge, validieren der neuen Menge. (Feld wird neu gesetzt) - // die eingegebene menge wird quasi von der bereits existierenden Menge aus der Table abgezogen?

2.3 [GELÖST] – Codeunit wird aufgeführt] Hinzufügen der Pageaction „Splitten FA Menge“ in Page 99000832- Released Prod. Order Lines

Die Page ist nur eine ListPartPage!
Auszuführen und eingebunden in 99000831.
Aufruf der oben genannten Funktion „SplitFALine“. (über normale PageAction realisiert)

Lösung: Eine PageAction erstellt und im C/AL Code die Lokale Variable der Codeunit definiert und die Variable (/Codeunit) ausgeführt.

Zum weiteren Verständnis habe ich die Anforderung 1:1 als eine Bild datei angehangen:

kann mir wer bitte bei der Realisierung Hilfestellung leiten??
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von derPat18 am 17. Januar 2019 11:34, insgesamt 3-mal geändert.

Re: die komplette NAV Aufgabe??

10. Juli 2018 12:15

ich habe das zusammen mit Kollege in Funktionen gepackt (also das einlesen der Zahlen in der Page)
Funktioniert alles, jetzt will ich jediglich die 2 Felder (/Zahlen) miteinander subtrahieren und neu schreiben (/Aktuellisieren des vorhanden datensatzes)

das Aktuellisieren realisiere ich dann, wenn die Berechnung funktioniert ^^

bislang habe ich zum einlesen in der der Page:

Code:
[External] GetMenge() OutputMenge : Decimal
// OutputMenge Parameter lokal deklariert zum zurückgeben
// External damit ich auf die Funktion von der Codeunit aus zugreifen kann

OutputMenge := Menge; //Usereingabe der menge Zurückgeben
// anderer Weg, EXIT( schreiben ""EXIT(Menge);"" - funktioniert genauso

[External] SetMengeInFa(InputMenge : Decimal)
// InputMenge Variable lokal deklariert zum übergeben
// External damit ich auf die Funktion von der Codeunit aus zugreifen kann

MengeInFA := InputMenge; //Wert uas ProductionOrderLine übernehmen und schreiben
//der rechner weiss automatisch, mit dem ausführen der PageAction dass die makierte Zeile gemeint ist


und mit der Codeunit greife ich so darauf zu:
Code:
[External] SplitFALine(VAR "Prod. Order Line" : Record "Prod. Order Line")
MESSAGE('Funktion wird ausgeführt'); {wartet, bis User mit OK weiter bestätigt, erst
                                       dann wird Code weiter ausgeführt}

ParameterPage.SetMengeInFa("Prod. Order Line".Quantity); {Führe die Funktion aus und
                                                          schreibe die menge aus der
                                                          FA in die ParameterPage}

//Öffnet den User die ParameterPage zur Eingabe der Mengen
ParameterPage.RUNMODAL; //der rechner wartet auf die Usereingabe - läuft weiter mit OK

ParameterPage.GetMenge(); {Führe die Funktion aus und hole die Menge aus der
                           Parameterpage}



Jetzt kommt wie gesagt die Subtraktion der Menge von der Menge in FA... muss ich mit Funktionen arbeiten?

MFG

Re: die komplette NAV Aufgabe??

11. Juli 2018 12:15

ok alles soweit erledigt, jetzt kommt nurnoch das:
derPat18 hat geschrieben:• Anlegen der neuen Zeile, Übernahme von Komponenten und Arbeitsplan der Ursprungszeile. (Anlegen einer neuen Zeile in der Page/Table mit der neuen Menge)


das Anlegen der neuen Zeile habe ich wie folgt realisiert:
Code:
//der Block kopiert den usprünglichen Datensatz und legt ihn noch an
NEWProductionOrdersLine := ProductOrderLine; //einfache Zuweisung des Datensatzes
NEWProductionOrdersLine.Quantity := UserInput; //neuer Datensatzz mit Usereingabe in Menge füllen
NEWProductionOrdersLine."Line No." := ProductOrderLine."Line No." + 1; //neue Zeile vergeben, sonst beisst es sich mit Primärschlüssel
NEWProductionOrdersLine.INSERT; //INSERT brauch ich nur, wenn es einen Datensatz noch nicht gibt.


Beobachtet eigentlich jemand diesen Thread?