[CC] Nummernserien Code in neues Feld kopieren

28. Mai 2012 20:27

Hi,
ich bin neu im NAV-Bereich und übe mich derzeitig an Pages und C/AL.

Meine Frage ist, wie bekomme ich den Nummernserein-Code "1150" in das Feld "Sammel-Nr" kopiert?
Meine Vermutung war in der Page 49 (Purchase Header) den OnAfterGetRecord()- Trigger anzusprechen, jedoch ohne Erfolg.
Ich wäre dankbar für einen Tip und verbleibe

MfG
Claudio
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: [CC] Nummernserien Code in neues Feld kopieren

28. Mai 2012 20:48

Die Nummer wird auf Tabellenebene erzeugt im OnInsert-Trigger
Code:
OnInsert()
IF "No." = '' THEN BEGIN
  TestNoSeries;
  NoSeriesMgt.InitSeries(GetNoSeriesCode,xRec."No. Series","Posting Date","No.","No. Series");
END;

Der Code gilt dann, wenn der Anwender keine eigene Nummer vorgibt, was praktisch immer der Fall ist.
Dein Feld kann danach im OnInsert-Trigger durch einfache Zuweisung versorgt werden.
Analog erweitern muss man auch den Feldtrigger vom Feld "No.", weil der Anwender ggf. eine erzeugte Nummer ändern kann, wenn die Nummernserie das zulässt.
Code:
No. - OnValidate()
IF "No." <> xRec."No." THEN BEGIN
  PurchSetup.GET;
  NoSeriesMgt.TestManual(GetNoSeriesCode);
  "No. Series" := '';
END;

Auf Form/Pageebene haben solche Erweiterungen für allgemeine Verwendung nichts verloren. Wenn im Programmcode eines anderen Objekts die Tabelle Purchase Header mit INSERT(TRUE) und VALIDATE("No.") angesprochen wird, wird das Individualfeld nur bei Codeerweiterungen in der Tabelle mit versorgt. Die Ausnahme: Wenn der Feldwert nur beim Aufruf einer bestimmten individuellen Form/Page mit kopiert werden soll, wird Code auf Form-/Pageebene erforderlich.

Wenn es bei dir um Pages geht, wäre [RTC] statt [CC] im Betreff richtig, auch wenn in diesem Fall kein Unterschied in der Arbeitsweise besteht. :wink: