[gelöst] DateFormula verwenden

2. November 2007 11:04

HuHu.

Ich steh momentan auf dem Schlauch und weiss nicht weiter :

Ich habe hier einmal eine Variable vom Typ Dateformula und dann noch eine vom Typ Date.

Nun möchte ich die Date Variable um den Betrag der Dateformula verringern.

Sprich wenn in das Datum 02.11.2007 ist und in der Dateformula 1T steht soll es auf 01.11.2007 gesetzt werden.

Wenn die Variable Dateformula leer ist soll ihr der Wert 1T zugeordnet werden.

Wie mache ich das genau ?
Mit Calcdate ist klar, nur wie da genau ? Die Hilfe konnte mir da irgendwie auch nicht helfen.


Vielen Dank
Zuletzt geändert von Khristan am 2. November 2007 15:01, insgesamt 1-mal geändert.

2. November 2007 11:26

Servus - hab' dir was aus meinen Unterlagen kopiert - eventuell hilft dir das weiter:


CALCDATE kalkuliert ausgehend von einem Datum ein neues Datum.

Syntax:
NewDate := CALCDATE(DateExpression [, Date])

DateExpression ist dabei ein String, der besagt, wie das neue Datum
errechnet werden soll. Ist Date nicht angegeben, rechnet das System vom
heutigen Datum aus. Der String für die DataExpression wird folgendermaßen
beschrieben:

Damit eine DateExpression auch in einer Multilanguageumgebung
problemlos interpretiert werden kann, muss die Dateexpression in spitzen
Klammern eingeschlossen werden. Z.Bsp. '<-CY>', '<+CY - 3M + 4D>'
Dies bedeutet, dass eine Kalkulation folgende Terminologie haben kann.

<Term> = <Number><Unit>|<Unit><Number>|<Prefix><Unit>
<Number> Positive Ganzzahl
<Unit>
D | WD | W | M | Q | Y
(D=Tag/Day, WD=Wochentag/Weekday, W=Woche/Week,
M=Monat/Month, Q=Quartal/Quarter, Y=Jahr/Year)
Prefix
C (=Laufend/Current)

Inhalt Beispiel Bedeutung
Zahl und Einheit <5D> plus fünf Tage
<Number><Unit>

Einheit und Zahl <D5> 5. Tag
<Unit><Number>

Prefix und Unit <CM> laufender Monat

Ein Ausdruck kann auch aus mehreren DataExpressions bestehen.

Date := 010100D

Beispiel:

Date1 := CALCDATE( //Laufendes Quartal + 1 Monat - 10 Tage
'<CQ+1M-10D>',Date);

Date2 := CALCDATE('<+WD2>',Date); //Letzter Wochentag Nr.2(letzter Dienstag)

Date3 := CALCDATE( //1. Tag des laufender Monats + 20 Tage
'<-CM+20D>',Date);

Ergebnis:
Date1 = 20.04.000
Date2 = 28.12.1999
Date3 = 21.01.2000

2. November 2007 11:59

danke.

Da sind zwar viele Möglichkeiten aufgeführt, aber da passt keine wirklich von =(

Das Problem ist dieses Dateformula Field =(

2. November 2007 12:14

Versuchs mal hiermit

mfg Michael

Code:
If FORMAT("Lead Time Calculation") = '' Then
   EVALUATE("Lead Time Calculation",'1T');
Neues_Datum := CALCDATE("Lead Time Calculation",dein_Datum);

2. November 2007 13:17

alles klar danke. hat geklappt.

wie sag ich ihm aber das er das davon abziehen soll ?

2. November 2007 13:25

Dann muss vor die DateFormula ein Minuszeichen gesetzt werden.
Ich glaube, es reicht hier, wenn du es so schreibst:
Code:
EVALUATE("Lead Time Calculation",'-1T');

2. November 2007 14:24

ah glaube ich falsch rüber gekomme ich meine ich will das DateFormula von dem Date abziehen.

Das Formula ist immer positiv. Ist eine User Eingabe.

2. November 2007 14:34

Wie ich sagte: Dann muss die Dateformula ein Minuszeichen beinhalten. Wenn die Usereingabe aber immer positiv ist, dann musst du per Quelltext ein Minuszeichen einfügen.

2. November 2007 14:57

ah okay danke dann passt es ja doch =D