Seite 1 von 1

[Gelöst] Enddatum des folgemonats

Verfasst: 24. Juli 2014 17:14
von navsyst
Hi,
welche schnellste Weg gibt es ohne die Tabelle Datum zu verwenden, um das Enddatum des Folgemonats festzustellen?

Re: Enddatum des folgemonats

Verfasst: 24. Juli 2014 17:54
von Kowa
Als Datumsformel im Programmcode zusammen mit CALCDATE
<CM+1M>(CM=Current Month)
alternativ in Deutsch nur in Feldern (so nicht im Code verwenden)
LM+1M (LM=Laufender Monat)
http://msdn.microsoft.com/en-us/library/dd301368.aspx
Dieser Originalink ist verwaist, aber im Archiv noch zu finden, der Aufruf dauert etwas:
https://web.archive.org/web/20150221160651/http://www.grobmanschwarz.de/ms-dynamics-nav-blog/855-datumsberechnungsformeln-fuer-datumsfelder-in-navision

Re: Enddatum des folgemonats

Verfasst: 24. Juli 2014 18:41
von navsyst
Hehe.. Probiere mal wenn curremtdate bzw. Current Monat Juni ist, z.B. 24.06.14. Ergebnis soll 31.07.14 sein.

Re: Enddatum des folgemonats

Verfasst: 24. Juli 2014 19:16
von Natalie
Kowa hat geschrieben:Als Datumsformel im Programmcode zusammen mit CALCDATE
<CM+1M> (CM=Current Month)

M.E.n. müsste die Formel lauten: <1M+CM>

Wenn nämlich das Referenzdatum der 15.02.14 ist, liefert <CM+1M> den 28.03.14 statt des 31.03.14.

Re: Enddatum des folgemonats

Verfasst: 25. Juli 2014 00:45
von Kowa
Natalie hat geschrieben:Wenn nämlich das Referenzdatum der 15.02.14 ist, liefert <CM+1M> den 28.03.14 statt des 31.03.14.

Ja, das war eine Spezialität dieser Funktion :-)
So geht es alternativ auch, auch wenn das etwas merkwürdig aussieht. Durch das +1D bewegt man sich auf den ersten Tag vom Folgemonat und damit gehört das +1M dann wirklich zum Folgemonat, und am Schluss wieder einen Tag zurück. Dann stimmt es.
<CM+1D+1M-1D>
LM+1T+1M-1T

Re: Enddatum des folgemonats

Verfasst: 25. Juli 2014 08:07
von navsyst
Prima! Danke an euch beide!!

Re: [Gelöst] Enddatum des folgemonats

Verfasst: 25. Juli 2014 08:28
von winfy
<D1+CM> geht übrigens auch :)

@Timo: :twisted:
Im Wettkampf um die kürzeste Datumsformel, hätte ich dann mit Natalie gleichgezogen.

mfg,
winfy

Re: [Gelöst] Enddatum des folgemonats

Verfasst: 25. Juli 2014 08:45
von navsyst
Interessant!

Formel <D1> kannte ich bisher nocht nicht! Schön!
Absolut genial! Festellung des erstes Datum des Folgemonats wird noch kürzer :) Statt <CM+1D>

Re: [Gelöst] Enddatum des folgemonats

Verfasst: 25. Juli 2014 09:16
von Natalie
navsyst hat geschrieben:Formel <D1> kannte ich bisher nocht nicht!

Ich auch nicht!
Und auch anhand der Onlinehilfe werde ich nicht schlauer:

Onlinehilfe hat geschrieben:Ein Zeitraum und eine Zahl. Zum Beispiel:

T10
Am 10. des Monats

WT4
Am 4. Tag einer Woche (Donnerstag)

Hier steht nicht, dass die Werte sich auf den NACHFOLGENDEN Monat (bzw. bei W das Jahr) beziehen.
Ich schick mal Microsoft ein "Feedback zur Dokumentation" ...

Re: [Gelöst] Enddatum des folgemonats

Verfasst: 25. Juli 2014 09:42
von winfy
Die Dokumentation wurde doch bei NAV schon immer etwas bemängelt. :wink:

Ich bin weniger über die Beispiele gegangen, als über die Metabeschreibung und die ist brauchbar.

DateExpression
Type: Text, Code, or DateFormula
The date expression can be any length. The string is interpreted from left to right with one subexpression at a time. The following rules describe the valid syntax of date expressions:
DateExpression = [<SubExpression>][<SubExpression>][<SubExpression>]
<SubExpression> = [<Sign>] <Term>
<Sign> = + | -
<Term> = <Number><Unit> | <Unit><Number> | <Prefix><Unit>
<Number> = Positive integer
<Unit> = D | WD | W | M | Q | Y (D=day, WD=weekday, W=week, M=month, Q=quarter, Y=year)
<Prefix> = C (C=current)
These production rules show that date expressions consist of zero, one, two, or three subexpressions. Each subexpression comprises an optional sign and a term.


Das Vorzeichen <Sign> bedeutet also immer Vorgänger oder Nachfolger bei einem Term <Unit><Number> .
Kein Vorzeichen = automatisch + deswegen ist D1 auch immer der 1. des Folgemonats.

mfg,
winfy