Code besser machen

Bild Microsoft Dynamics NAV 2017

Code besser machen

Beitragvon stony » 10. Oktober 2021 09:07

Hi
kann man so einen Code besser machen.
Es sollen 365 Tage, welche das Datenfelder in einer Tabelle sind, befĂĽllt werden.
Wie könnte ich diese IF i in eine Funktion auslagern, damit der Code einfacher wird.


Code: Alles auswählen
FOR i := 1 TO 50 DO BEGIN     
      Decklagenverfuegbarkeit.RESET;
      Decklagenverfuegbarkeit.SETCURRENTKEY("PPL DL-Startdatum");     
      Decklagenverfuegbarkeit.SETRANGE("PPL DL-Startdatum",Tag);     
      IF Decklagenverfuegbarkeit.FINDLAST THEN BEGIN     
        VerfTag := Decklagenverfuegbarkeit."DL-Verf. mit Erw. Zugang";               
      END;
      IF i = 1 THEN
        ArtikelverfTage.VerfgTag1 := VerfTag;
      IF i = 2 THEN
        ArtikelverfTage.VerfgTag2 := VerfTag;
      IF i = 3 THEN
        ArtikelverfTage.VerfgTag3 := VerfTag;
      IF i = 4 THEN
        ArtikelverfTage.VerfgTag4 := VerfTag;
      IF i = 5 THEN
        ArtikelverfTage.VerfgTag5 := VerfTag;
      IF i = 6 THEN
        ArtikelverfTage.VerfgTag6 := VerfTag;
      IF i = 7 THEN
        ArtikelverfTage.VerfgTag7 := VerfTag;
      IF i = 8 THEN
        ArtikelverfTage.VerfgTag8 := VerfTag;
      IF i = 9 THEN
        ArtikelverfTage.VerfgTag9 := VerfTag;
      IF i = 10 THEN
        ArtikelverfTage.VerfgTag10 := VerfTag;

      IF i = 11 THEN
        ArtikelverfTage.VerfgTag11 := VerfTag;


Besten Dank
stony
stony
 
Beiträge: 1100
Registriert: 24. April 2006 11:31
Bezug zu Microsoft Dynamics: End-Anwender

Re: Code besser machen

Beitragvon Timo Lässer » 11. Oktober 2021 08:17

Wenn die Felder ArtikelverfTage.VerfgTag1 bis ArtikelverfTage.VerfgTagn eine fortlaufende Feldnummer haben, könntest du mit RecordRef und FieldRef über die RecRef.FieldNo(ErsteFeldNr + i) dynamisch auf das jeweilige Feld zugreifen.

Also mal angenommen, VerfgTag1 beginnt bei Feldnr. 100 und wird fortlaufend (101, 102, ...) durchnummeriert, dann könnte der Programmcode so aussehen:
Code: Alles auswählen
RecRef.OPEN(ArtikelverfTage);
FOR i := 1 TO 50 DO BEGIN
  FldRef 
:= RecRef.FieldNo(99 + I);
  FldRef.VALUE := VerfTag;
END;
RecRef.MODIFY;
RecRef.CLOSE;
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21


ZurĂĽck zu NAV 2017

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast