Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Rob Green am 07.03.03 - 15:24:04

Titel: timeonly Methode ohne Sekunden?
Beitrag von: Rob Green am 07.03.03 - 15:24:04
ich setze ein Feld, das nur mit HH:MM angezeigt wird (also ohne Sekunden) über

...
Set NDTstart = New NotesDateTime(doc.GetItemValue( "StartTime" )(0) )
...
Call newdoc.ReplaceItemValue( "StartTime",ndtstart.TimeOnly)
...

Dabei wird dann das Feld StartTime dummerweise mit
HH:MM:SS belegt...

kann ich das auch irgendwie ohne Sekunden im Backend setzen?

Auch der Blick auf die TimeValue Function verhilft mir anscheinend nicht, eine Zeitangabe ohne Sekunden zu setzen.
TimeValue ( stringExpr )
Elements
stringExpr
A string expression that represents a valid date/time, or a Variant of DataType 7 (Date/Time). It can use either 12-hour or 24-hour format; for example, both "14:35" and "2:35PM" are valid. If you omit the seconds value in the stringExpr argument, it defaults to zero (0).

(sobald ich das Doc im Frontend aufmache und speichere, wird dann natürlich aus der 12:00:40 -> 12:00)
Titel: Re:timeonly Methode ohne Sekunden?
Beitrag von: Rob Green am 07.03.03 - 16:34:06
hm..hab bemerkt, daß er das StartTime Feld im neuen Doc komischerweise als Text Typ gespeichert hatte.

Nun verwende ich
Call newdoc.ReplaceItemValue( "StartTime",Cdat(Cdbl(doc.StartTime(0))))
und es klappt..er speichert zwar StartTime mit "04.03.2003 16:00:00", macht aber in der Ansicht nix.

warum das aber, keine Ahnung...

(Komischerweise ist im Original Doc das StartTime Feld als Date/Time Typ mit "04.03.2003 16:00:00" abgelegt ..obwohl ich im StartTime Feld nur die Zeit im HH:MM Format angebe. Ich benutze ein anderes Feld namens EndTime, das genauso wie StartTime aufgebaut ist und das tut ganz normal die Zeit auch als Date/Time, aber mit 16:00:00 ohne Datum speichern. Wo nun der Unterschied ist,weiß ich nicht..habe nun im StartTime eine InputTransaltion Formel @Time(StartTime) eingebaut....im Originaldoc wird nun nur noch die Zeit ohne Datum gespeichert, jetzt speichert er bei neuen Docs, die die Termine übernehmen vom OriginalDoc, StartTime mit "30.12.1899 16:00:00" als Datum/Zeit Typ ab.)

Crazy..
Titel: Re:timeonly Methode ohne Sekunden?
Beitrag von: Rob Green am 07.03.03 - 17:01:23
sooodele

habe es jetzt erstmal ausführlich so gelöst:

...
StartZeit = doc.StartTime(0)   'lese
startzeit2 = Cstr(StartZeit) 'setze String
Set StartZeit3 = New NotesDateTime( Timevalue(startzeit2)) 'setze aus string einen TimeValue only
...
Call newdoc.ReplaceItemValue( "StartTime",StartZeit3) 'setze Feld im neuen Doc auf TimeValue

vorher StartTime: 14:00 (date/Time)
nun StartTime: 14:00 ---bingo  ;) (Date/Time..was voher in den Test mit replaceitemvalue immer ein String wurde)

(den obigen Code kann man natürlich noch eindampfen, aber ich wollt erst mal Step by Step da ran wg. Kontrolle)