Domino 9 und frühere Versionen > ND6: Entwicklung
DateTime Multivalue-Field via LS füllen - ohne Zeitkomponente
Manfred Dillmann:
Hallo zusammen,
in einem Dokument befinden sich 2 Date/Time Felder mit einer Datumsangabe (StartDate, EndDate).
Via LotusScript soll im Backend quasi die Funktion:
@TextToTime(@Explode(
@TextToTime( @Text(StartDate) + " - " + @Text(EndDate) )
))
"nachgebaut" werden, ein resultierenden Feld (z.B. DateRange) also jeden einzelnen Tag von StartDate bis EndDate enthalten.
Ich generiere also die einzelnen Werte, schreibe diese in ein Array (als Variant, resultierend aus NotesDateTime.LSLocalTime) und weise das Array dem resultierenden Feld zu.
Leider ist (egal was ich auch versucht habe) IMMER die Zeitkomponente mit im Feld gespeichert, was ich nicht gebrauchen kann, z.B.
12.12.2005 00:00:00 CET
13.12.2005 00:00:00 CET
14.12.2005 00:00:00 CET
Die Formelsprache-Variante macht das nicht.
Kennt da jemand einen Trick?
Gruß
Manfred
*EDIT* Status auf "Daumen hoch" gesetzt.
koehlerbv:
LS setzt immer auch die Zeitkomponente, wobei diese aber eigentlich sowieso immer mit dabei ist: Letztendlich ist jeder DT-Wert eine reelle Zahl.
Was stört Dich denn an 0 Uhr ? Für's Rechnen ist es egal (bzw. korrekt), für die Anzeige lässt es sich wieder verstecken.
Bernhard
Glombi:
Mittels Evaluate sollte das gehen
ret = Evaluate( |FIELD CalendarDateTime := @Date(CalendarDateTime);@True|, doc )
Andreas
diali:
--- Zitat von: koehlerbv am 01.12.05 - 10:07:01 ---LS setzt immer auch die Zeitkomponente, wobei diese aber eigentlich sowieso immer mit dabei ist: Letztendlich ist jeder DT-Wert eine reelle Zahl.
Was stört Dich denn an 0 Uhr ? Für's Rechnen ist es egal (bzw. korrekt), für die Anzeige lässt es sich wieder verstecken.
Bernhard
--- Ende Zitat ---
der Zeit- oder Datumsteil eines Feldes kann auch mit LS weggelassen werden. In NotesDateTime gibt es SetAnyTime und SetAnyDate, damit fehlen dann die Zeit /Datumsangaben und werden auch nicht mehr in ein Feld geschrieben.
Gruß
Dirk
Manfred Dillmann:
@Andreas:
Ja, Evaluate geht, aber ich wollte das doch LS-only lösen... :-)
@Bernhard:
Für die Anzeige kann ich das wieder hinbiegen, klar (z.B. in einer Ansichtenspalte mit @Date). Beim Rechnen mit 00:00 Uhr ist das IMHO nicht so ohne.
Erninnerst Du Dich noch an den Bug in einer älteren Notes-Version, wo plötzlich nach der Umstellung auf Sommerzeit/Winterzeit die Termine um einen Tag verschoben angezeigt wurden? Habe mir das damals im Design angeschaut, man hatte 00:01 als Uhrzeit gewählt und je nach dem wie umgestellt wurde, ist ein solcher Termin über die Mitternachtsgrenze "gerutscht".
Für die Anzeige ändern geht - aber dann brauche ich immer wieder zusätzlich z.B. @Date - wollte ich mir sparen.
Für Singe-Value-Fields habe ich es ja auch hinbekommen, geht prima:
Nach der Zuweisung des Wertes zum Feld kann man die Zeitkomponente mit
Call NotesItem.DateTimeValue.SetAnyTime
killen. Nur leider nicht, wenn das Feld Multivalue sein soll.
Gruß
Manfred
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln