Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: robertpp am 24.08.05 - 14:15:24
-
Kann mir jemand sagen warum ein leeres Date/time Feld ein String Feld ist und kein Date/Time Feld?
Was komisch daran ist:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim doc As NotesDocument
Set doc =Source.Document
Dim Item As Notesitem
Dim DateTime As New Notesdatetime("")
Set item=doc.getfirstitem("StartTime")
Set item.DateTimeValue= DateTime
End Sub
wenn ich das mache dann ist der Typ von dem Feld schon 1024 also ein Datumsfeld.
Aber wenn es dann gespeichert wurde ist es wieder ein Textfeld.
Wie schaff ich es, dass es ein Datumsfeld ist ohne das ich einen Wert hineinschreibe?
-
kein Wert bedeutet String. Ist bei Zahlenfeldern auch so.
Du könntest mit SetAnyTime und SetAnyDate arbeiten. Habe aber noch nicht probiert ob beides zusammen funktioniert und ob dann ein Datum/Zeitwert zurückkommt.
-
Wenn ich es so mache dann hab ich immer die aktuelle Uhrzeit im Feld stehen (im Feld wird nur Uhrzeit angezeigt = Einstellung)
Dim doc As NotesDocument
Set doc =Source.Document
Dim Item As Notesitem
Dim DateTime As New NotesDateTime("")
Set item=doc.GetFirstItem("StartTime")
Call DateTime.SetNow
Call DateTime.SetAnyDate
Msgbox DateTime.LocalTime
Set item.DateTimeValue= DateTime
Ich will aber ein leeres Datum/Time Feld haben.
Das Problem dabei ist, ich arbeite mit den Doc's dann mit einem Applet weiter und dann sollte es ein eindeutiger Feldtyp sein.
-
und wenn Du noch
Call DateTime.SetAnyTime
nach der Zeile
Call DateTime.SetAnyDate
einfügst?
-
Es macht keinen Unterschied ob ich diese Zeile noch einfüge weil er setzt mir beim
Call DateTime.SetAnyDate
das Feld auf die aktuelle Uhrzeit.
Das ist wahrscheinlich deshalb so weil es so eingestellt ist das nur die Uhrzeit angezeigt wird.
Was kann ich jetzt noch machen?
Robert
-
Wenn es mit SetAnyDate und/oder Set AnyTime nicht funktioniert, dann könntest Du das Feld auf eine definierte Zeit setzen wenn es leer ist (z.B.: 00:00:00).
-
Das wird hab ich mir auch schon gedacht das das der letzte Ausweg ist um ein sinnvolles Date/Time Feld zu bekommen.
danke robert
-
Du könntest mit 2 Feldern arbeiten.
Das erste ist bearbeitbar und das 2. ist berechnet aus dem ersten Feld. Ist das erste Feld leer wird einfach die Zeit "00:00:00" eingetragen ansonsten der Inhalt aus dem ersten Feld übernommen.
-
Ja da brauch ich doch kein zweites Feld das kann ich ja auch ohne zweiten Feld machen wenn nichts drinnen steht dann "00:00:00".
-
dann sieht es aber der User. Mit einem 2. Feld bekommt der User die 00:00.00 nicht angezeigt.