Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: eirinn am 08.11.02 - 17:57:55
-
Hallo,
ich habe folgendes Problem in LS:
In einer Maske ist ein Feld "TimeRange"; Typ: Date/Time;
Mehrfachwerte erlaubt
Angezeigt werden sollen nur Zeiten ( 15:00 - 16:30 )
Jetzt muss ich das Feld per Script setzen, wenn ein Dokument importiert wird.
Habe das mal so probiert:
Dim dateRange As NotesDateRange
Dim dateTime1 As New NotesDateTime( "31.12.2002 "
+ Cstr( doc.Von(0) ) )
Dim dateTime2 As New NotesDateTime( "31.12.2002 "
+ Cstr( doc.Bis(0) ) )
Set dateRange = ses.CreateDateRange()
Set dateRange.StartDateTime = dateTime1
Set dateRange.EndDateTime = dateTime2
docNew.TimeRange = dateRange.Text
doc.Von(0) bzw. doc.Bis(0) ist vom Typ Date/Time
(Auch wenn ich mit Texten arbeite ("15:00:00") funktioniert das nicht)
Das Feld ist jetzt zwar gefüllt mit z.B.: 15:00:00 - 16:30:00 aber leider als Text
Wie schaffe ich es, dass das Feld hinterher vom Typ Date/Time ist und mir die Werte im Dokument auch über den Datepicker richtig angezeigt werden???
-
Das Textfeld ist ja ok, weil bei einer Hintergrundaktion die neu zugewiesenen Felder den Typ des Zuweisenden erhalten.
Der Datepicker erscheint wenn du in den properties Style=native OS style angibst.(bei allow multiple values)
Du hast das Objekt vom Typ DatumTimeRange schon erzeugt, also musst du es nur noch dem Feld TimeRange zuweisen.
Bei einem neuen dok das noch nicht gespeichert wurde ist grundsätzlich mit Items zu arbeiten.
also ganz einfach:
Dim item As NotesItem
Set item = New NotesItem( docNew, "TimeRange", dateRange)
docNew.save True, False
(item erhält den Typ des Objektes -- DateRange)
cu
-
ein Nachtrag
wenn du in den properties nur "Dosplay Time" anklickst dann soll auch nur der Zeitrange übergeben werden.
Dim dateTime1 As New NotesDateTime( Cstr( doc.Von(0) ) )
cu
-
Danke für den schnelle Tip!
Mein Code sieht jetzt so aus:
Dim dateRange As NotesDateRange
Dim dateTime1 As New NotesDateTime( Cstr( docNEW.Von(0) ) )
Dim dateTime2 As New NotesDateTime( Cstr( docNEW.Bis(0) ) )
Set dateRange = ses.CreateDateRange()
Set dateRange.StartDateTime = dateTime1
Set dateRange.EndDateTime = dateTime2
Dim item As NotesItem
Set item = New NotesItem( docNEW, "TimeRange", dateRange)
Die Properties des Feldes zeigen mir nach dem Import folgendes an:
Field Name: TimeRange
Data Type: Time/Date List or Range
Data Length: 20 bytes
Seq Num: 1
Dup Item ID: 0
Field Flags: SUMMARY
30.12.1899 15:30:00 CET
30.12.1899 18:05:00 CET
Darstellung in dem geöffneten Dokument:
15:30, 18:05 anstatt: 15:30 - 18:05
Feldeinstellungen sind auf Time only!
Hast Du da noch eine Idee?
Ciao
-
Nachtrag:
Dummer Fehler, ganz dummer Fehler!!!
Es funktioniert! Ich hatte noch ein Codefragment übersehen.
Vielen Dank für die Hilfe!!!
Ciao