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!
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.
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.