[Gelöst] Datum ermitteln (Besten Dank für die Hilfe)

22. Oktober 2007 12:20

Hallo

Ich habe ein Feld, welches als Option definiert ist. Dort sind die Wert 2007,2008,2009,2010 enthalten. Nun möchte ich z.B. wenn 2007 selektiert wird, das in ein Feld das Datum 1.1.2007 und in einen weiteren Feld das Datum 31.12.2007 hinterlegt wird.

Wie kann ich von 2007 auf diese beiden Werte kommen.

mfg
stony
Zuletzt geändert von stony am 22. Oktober 2007 19:40, insgesamt 1-mal geändert.

22. Oktober 2007 12:43

z.B. so:
Vermutlich musst du zuerst dein Optionsfeld Konvertieren damit du das selektierte Jahr hast, danach sollte folgender Code dir weiterhelfen

Code:
VirDate = Variable auf Record Date (2000000007)
AktuellesJahrVon Variable Type Date
AktuellesJahrBis Variable Type Date

VirDate.RESET;
VirDate.SETRANGE(VirDate.Periodentyp,VirDate.Periodentyp::Jahr);
VirDate.SETFILTER(Periodenanfang,'<%',DEIN_konventiertes_Optionsfeld);
VirDate.FIND('+');
AktuellesJahrVon := VirDate.Periodenanfang;
AktuellesJahrBis := CALCDATE('1J-1T',AktuellesJahrVon);


22. Oktober 2007 12:48

Nicht so kompliziert denken ;-)

Code:
FromDate := DMY2DATE(1,1,FORMAT(DeinOptionFeld));
ToDate := CALCDATE('<CY>',FromDate);

22. Oktober 2007 13:12

Leider schaffe ich es nicht das Option Feld in ein Integer Feld zu konvertieren.

22. Oktober 2007 13:30

Warum möchtest du es denn in ein Integer Feld konvertieren? Wenn du 2 Datums Felder hast müsste der Code von Timo doch reichen. Der schreibt es doch direkt als Datum.

22. Oktober 2007 13:37

Leider kommt bei der Format-Zeile immer der Fehler Typkonvertierung
Integer := Text .

22. Oktober 2007 13:48

wie wär's mit:

EVALUATE(DeinInteger, FORMAT(DeinOptionFeld))

22. Oktober 2007 14:07

versuchs mal lieber mit einem Offset:
also Startjahr = 2007 + optionswert
die Option ist ja eigentlich ein Integer, wobei 0 für 2007, 1 für 2008 etc. steht.
und dann wie Timo schrieb

FromDate := DMY2DATE(1,1,2007 + optionswert));

22. Oktober 2007 18:39

Upps, sorry! Stimmt ja, DMY2DATE benötigt Integerzahlen als Parameter.
Somit ist Thomas' Ansatz der richtige Weg:

Code:
FromDate := DMY2DATE(1,1,2007 + DeinOptionFeld);
ToDate := CALCDATE('<CY>',FromDate);