Domino 9 und frühere Versionen > ND7: Entwicklung
Räume und Ressourcen Vorgabewert ändern
bikerboy:
Hallo , würde gerne den Wert für das Startdatum in der Schnellreservierung, um einen Tag zu erhöhen.
Klingt einfach, is es aber nicht. Habe schon ein bisschen probiert, sogar schon einen korrekten Wert übernommen, aber wenn ich F9 drücke wird der Wert wieder zurück gesetzt.
gossifu:
Was hast Du denn alles schon gemacht?
Sicherlich den Vorgabewert mit Adjust hochgezählt.
Dann sind die Entering/Exeting-Ereignisse der Felder interessant, die auf die ScriptLib 'CSReservation' verweisen.
Ist schon ein wenig tricky, aber mit Debuggen und probieren wirst Du das schon hinbekommen.
Kjeld
gossifu:
Also, beim Vorgabwert habe ich mit Adjust den Wert 1 Tag hochgesetzt und dann in besagter Scriptbibliothek in Declarations in der
--- Code: ---Class CSEventNotes As CSEvent
--- Ende Code ---
in der
--- Code: ---Sub Postopen
--- Ende Code ---
folgende Änderungen vorgenommen:
Ausschnitt
--- Code: --- ' If this is a new document, initialize our backend document
If(m_uidoc.IsNewDoc Or note.isnewnote) Then
Set m_note = m_uidoc.document
Call Me.SetOption( CS_DOC_ALARMS)
Call Me.CSDocOpen(Nothing)
'neu *****************
Call m_uidoc.Refresh()
'*********************
Call m_uidoc.Reload()
Call m_uidoc.Refresh()
Else
If (note.GetItemValue("Repeats")(0) = "1") Then SetUIFlag( UI_FLAG_REPEAT)
If (note.GetItemValue("Alarms")(0) = "1") Then SetUIFlag( UI_FLAG_ALARM )
If (Me.EventType <> 3) Then
If (Me.IsOwner And m_beobject.Context <> CTX_REPEAT_MAIN) And NAMECompare(note.getitemvalue("Principal")(0), m_BEObject.CalendarProfile.OwnerName) Then m_uidoc.EditMode = True
End If
m_entrytype = m_BEObject.CurrentType
End If
--- Ende Code ---
Ich hab noch ein Refresh reingesetzt, da das Backend-Dokument noch den aktuellen Tag drin hat und bei einem Reload der Vorgabewert von diesem überschrieben wird.
Auch ein F9 kann den Tag jetzt nicht mehr ändern.
mfg
Kjeld
gossifu:
Bessere Lösung:
Du kannst natürlich auch vor dem Reload den Wert aus dem Frontend auslesen und nach dem Reload wieder reinschreiben.
Das würde ich in der Sub Postopen der Maske machen, dann brauchst Du die Scriptbibliothek nicht anfassen.
So ungefähr:
--- Code: ---Sub Postopen(Source As Notesuidocument)
If (source.InPreviewPane) Then Exit Sub
If Source.IsNewDoc Then
Dim currentdate As String
currentDate = Source.FieldGetText("StartDate")
Call uiresdoc.Postopen()
Call Source.FieldSetText("StartDate", currentDate)
Else
Call uiresdoc.PostOpen()
End If
End Sub
--- Ende Code ---
Klappt bei mir auch
bikerboy:
So habe beide Varianten mal ausprobiert, funktionieren tut bei mir leider keine.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln