Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: robertpp am 24.08.05 - 14:15:24

Titel: Leeres Date/Time Feld = String
Beitrag 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?
Titel: Re: Leeres Date/Time Feld = String
Beitrag von: diali am 24.08.05 - 14:18:13
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.
Titel: Re: Leeres Date/Time Feld = String
Beitrag von: robertpp am 24.08.05 - 15:19:16
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.
Titel: Re: Leeres Date/Time Feld = String
Beitrag von: diali am 24.08.05 - 15:46:52
und wenn Du noch
Call DateTime.SetAnyTime
nach der Zeile
Call DateTime.SetAnyDate
einfügst?
Titel: Re: Leeres Date/Time Feld = String
Beitrag von: robertpp am 25.08.05 - 07:23:27
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
Titel: Re: Leeres Date/Time Feld = String
Beitrag von: diali am 25.08.05 - 07:38:17
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).
Titel: Re: Leeres Date/Time Feld = String
Beitrag von: robertpp am 25.08.05 - 10:04:14
Das wird hab ich mir auch schon gedacht das das der letzte Ausweg ist um ein sinnvolles Date/Time Feld zu bekommen.

danke robert
Titel: Re: Leeres Date/Time Feld = String
Beitrag von: diali am 25.08.05 - 10:07:19
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.
Titel: Re: Leeres Date/Time Feld = String
Beitrag von: robertpp am 25.08.05 - 10:13:57
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".
Titel: Re: Leeres Date/Time Feld = String
Beitrag von: diali am 25.08.05 - 10:30:45
dann sieht es aber der User. Mit einem 2. Feld bekommt der User die 00:00.00 nicht angezeigt.