[Gelöst] DateFormula Wert negieren

20. März 2009 10:02

Schönen sonnigen Guten Morgen!!!!

ich habe folgendes Problem:

ich möchte ein Datumsfeld mit einem neuberechneten Wert füllen.
es soll vom heutigen Datum ein Dateformula Wert abgezogen werden.
leider liegt das DateFormula Feld nur positiv vor.
Wie kann ich den DateFormula Wert negieren??

schreibt sich kompliziert soll aber ganz einfch sein.

Code:
 "neues Datum" := (CALCDATE("Service Period", TODAY))


würde
20.03.09 + 1Jahr = 20.03.10 geben
es soll aber

20.03.09 - 1Jahr = 20.03.08 geben

Die Serviceperiode kann sich natürlich ändern 1J oder 6M etc.

Vielen DANK schon mal

Roland
Zuletzt geändert von Roland am 20. März 2009 14:00, insgesamt 1-mal geändert.

Re: DateFormula Wert negieren

20. März 2009 11:15

Geht
Code:
calcdate(strsubstno('-%1',DeineDatForm)),Today);
nicht?

Re: DateFormula Wert negieren

20. März 2009 11:20

Funzt das?

Code:
"Neues Datum" := CALCDATE('-' + "Service Period", TODAY);

Re: DateFormula Wert negieren

20. März 2009 11:21

Hi McClane,

da war ich wohl 'n Tick zu langsam :wink:

Re: DateFormula Wert negieren

20. März 2009 11:34

Hi Stryk,

wenigstens sind wir halbwegs einer Meinung *g*

Re: DateFormula Wert negieren

20. März 2009 11:46

Nein, die genannten Tricks funktionieren nicht, da eine DateFormula auch aus zusammengesetzten Ausdrücken bestehen kann.
Es müssen somit alle enthaltenen Ausdrücke negiert werden.
Hier ein Auszug aus meiner aktuellen Codeunit "DateTimeManagement":
Code:
RevDateFormula(VAR DateFormula : DateFormula)
// > TL5.00:09 >>>
Text := FORMAT(DateFormula);
IF NOT (Text[1] IN ['+','-']) THEN
  Text := '+' + Text;
EVALUATE(DateFormula,DELCHR(CONVERTSTR(Text,'+-','-+'),'<','+'));
// < TL5.00:09 <<<

Re: DateFormula Wert negieren

20. März 2009 12:02

Du hättest ja wenigstens schreiben können: Die Tricks funktionieren meistens nicht :wink:

Re: DateFormula Wert negieren

20. März 2009 14:00

Hallo Ihr,

hat funktioniert
Vielen Dank für Eure Hifle!!!


DANKE