Domino 9 und frühere Versionen > ND6: Entwicklung

DateTime Multivalue-Field via LS füllen - ohne Zeitkomponente

(1/3) > >>

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