Datum am Jahresende als KW/Jahr RICHTIG darstellen

5. September 2007 18:28

Mir ist gerade ein sehr seltsames Phänomen in Navision aufgefallen, über welches mit Sicherheit der Ein oder Andere spätestens zum Jahresende stolpern wird:

Möchten wir das Datum 31.12.2007 in der Form KW/Jahr (also 01/2008) angezeigt bekommen, so schreibt der kluge Navision-Entwickler mal eben <Week>/<Year4> in das Format-Property.

Navision weiß zwar, dass der 31.12.2007 in der 1. KW liegt, berücksichtigt dies aber nicht bei der Jahreszahl!
Es scheint so, als würde Navision die beiden Parameter unabhängig voneinander auswerten und liefert 01/2007!
Auch der Trick, anstelle des Properties den C/AL-Befehl (FORMAT(MyDate,0,'<Week>/<Year4>')) direkt in die SourceExpr zu schreiben ändert nichts an dem Ergebnis.

Nach einigen Tests bin ich auf die Lösung des Problems gekommen:
Nutzt man den C/AL-Befehl DATE2DWY, so ermittelt Navision die Jahreszahl anhand der zugrundeliegenden Kalenderwoche.
Schreibt man also STRSUBSTNO('%1/%2',DATE2DWY(MyDate,2),DATE2DWY(MyDate,3)) in die SourceExpr, so liefert Navision auch das richtige Ergebnis 01/2008.

Vorsicht: Der Befehl DATE2DMY liefert weiterhin die Jahreszahl basierend auf dem Datum, also 2007!

6. September 2007 10:02

Gut zu wissen - Danke

Re: Datum am Jahresende als KW/Jahr RICHTIG darstellen

20. Februar 2012 09:33

Da ich über den Thread Kalendarwoche berechnen hier gelandet bin. Die Lösung für das von Timo beschriebene Problem: statt
Code:
FORMAT(MyDate,0,'<Week>/<Year4>')

muss die Zeile
Code:
FORMAT(MyDate,0,'<Week>/<Week Year4>')

lauten. Dann gibt NAV das Jahr für die Kalenderwoche aus.

Re: Datum am Jahresende als KW/Jahr RICHTIG darstellen

20. Februar 2012 11:26

"Man wird alt wie eine Kuh und lernt immer noch dazu."
Danke für den Tipp, den kannte ich selber noch nicht.