[gelöst]DateFormula umrechnen

22. September 2010 11:56

Hallo zusammen,

derzeit schreibe ich für die Artikelbeschaffungszeit eine Auswertung.
Hierbei soll nach Beschaffungszeit gefiltert werden. Wie ihr sicherlich wisst, ist die Leadtime als DateFormula definiert, sodass Werte, wie 2T, 3W, 5Y möglich sind.
Bei meiner Auswertung (läuft übrigends über eine Subform) muss ich die Werte entsprechend konvertieren, z.B. in Days.

Wie soll ich das am geschicktesten anstellen? Gibt es eine andere Möglichkeit ohne Konvertierung?
Ich dachte mir, dass ich dazu die Tabelle 2000000007 Date nutze. Dort irgendwie den Filter mit dem DateFormula reinbrigen und dann die Records zählen?

Für jedliche Tipps bin ich offen!

Schonmal danke :)

Gruß

BlackJack
Zuletzt geändert von BlackJack am 23. September 2010 08:24, insgesamt 1-mal geändert.

Re: DateFormula umrechnen

22. September 2010 13:07

Hallo,

du kannst das einfacher lösen. Benutze 2 Variablen vom Typ Datum. Für die erste Variable wählst du eine beliebiges Datum (zB WORKDATE,TODAY) nun lässt du das zweite datum aus dem ersten und der Dateformula berechen. Anschliessend kannst du die beiden Datumsvariablen subtrahieren und erhälst die anzahl der Tage als Interger Wert.
Code:
lvDate1 := today;
lvdate2 := CALCDATE(lvDate1,Artikel."Lead Time Calculation");
lvTage := lvdate2 - lvDate1;

Gruß
Chris

Re: DateFormula umrechnen

22. September 2010 13:14

Hi,

super Danke. Das werde ich gleich ausprobieren.

Wie das DateFormula formuliert ist, ist dann egal?

Re: DateFormula umrechnen

22. September 2010 13:26

ja, da du das zweite Datum berechnest, ist es unerheblich. Du musst noch darauf achten, dass due das kleinere von dem größeren Datum abziehst, sonst wird die Anzahl der Tage negativ.

Re: DateFormula umrechnen

22. September 2010 13:30

BlackJack hat geschrieben:Wie das DateFormula formuliert ist, ist dann egal?

Richtig. Es ist völlig egal, ob da jetzt 7T oder 1W drin steht.
In beiden Fällen liegt das neue errechnete Datum um sieben Tage in der Zukunft.
Und wenn du ein Datumswert von einem anderen abziehst erhältst du immer die Differenz in Tagen.

Selbst bei komplexen Datumsformeln wie z. B. LW+3W-2T o. ä. würde diese Variante funktionieren.

Du kannst das ganze sogar in einer einzigen Zeile schreiben und bräuchtest noch nicht einmal zusätzliche Variablen dafür:
Code:
lvTage := CALCDATE(Artikel."Lead Time Calculation",TODAY) - TODAY;

Re: DateFormula umrechnen

22. September 2010 13:41

Das erste TODAY könnte man sogar noch weglassen, da das standardmäßig genommen wird.

Code:
lvTage := CALCDATE(Artikel."Lead Time Calculation")-TODAY;


[EDIT]
Dabei ist mir aufgefallen, dass auf navision24.de dann wohl ein kleiner Fehler ist.
WORKDATE hat bei mir (NAV 3.xx, 4.xx, 2009) keine Auswirkung.

Wird der zweite Parameter (Date) weggelassen, wird als Berechnungsgrundlage das heutige Datum oder, sofern abweichend, dass Arbeitsdatum verwendet.

http://www.navision24.de/befehle/calcdate.html

Vielleicht liest der Autor ja mit! :wink:

mfg,
winfy