Also, beim Vorgabwert habe ich mit Adjust den Wert 1 Tag hochgesetzt und dann in besagter Scriptbibliothek in Declarations in der Class CSEventNotes As CSEvent
in der folgende Änderungen vorgenommen:
Ausschnitt ' 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
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
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:
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
Klappt bei mir auch
Hallo,
ich ahbe jetzt, da die Maske Quickreservation nur für das erstellen benutz wird in das Postopen folgendes reingetan:
If (source.InPreviewPane) Then Exit Sub
Call uiresdoc.PostOpen()
Dim currentdate As NotesDateTime
Set Currentdate = New NotesDateTime(Source.FieldGetText("StartDate"))
Call currentDate.AdjustDay(1)
Call Source.FieldSetText("StartDate", currentDate.DateOnly)
Call Source.refresh
Ich habe zuerst nur auf das template geachtet und jetzt mit einer vollen DB probiert,
sollte klappen.
Kjeld
Habe noch nen schöneren Ansatzpunkt gefunden.
Die Schaltfläche "Schnellreservierung" selbst
Dim tomorow As New NotesDateTime(Cstr(Today))
Call tomorow.AdjustDay(1)
Set db = s.CurrentDatabase
Set siteView = db.GetView("($Sites)")
Set rrView = db.GetView("($RLookup)")
Dim newDoc As New NotesDocument(db)
errMsg1= "Sie müssen einen Standort sowie einen Raum bzw. eine Ressource erstellen, bevor Reservierungen erstellt werden können"
errMsg2 = "Sie müssen einen Raum bzw. eine Ressource erstellen, bevor Reservierungen erstellt werden können"
If siteView.Entrycount = 0 Then
Messagebox(errMsg1)
Elseif rrView.EntryCount = 0 Then
Messagebox(errMsg2)
Else
Set dbc = db.UnprocessedDocuments
If dbc.count = 1 Then
Set seldoc = dbc.GetFirstDocument
Call newDoc.ReplaceItemValue("Form", "QuickRes")
If selDoc.HasItem("ResourceName") Then Call newDoc.ReplaceItemValue("SelectedRR", selDoc.GetItemValue("ResourceName")(0))
If selDoc.HasItem("StartDateTime") Then Call newDoc.ReplaceItemValue("SDT", tomorow.DateOnly)
If selDoc.HasItem("EndDateTime") Then Call newDoc.ReplaceItemValue("EDT", selDoc.GetItemValue("EndDateTime")(0))
If selDoc.HasItem("$Ref") Then Call newDoc.ReplaceItemValue("$PreR7Repeat", "1")
If selDoc.HasItem("ResourceType") Then Call newDoc.ReplaceItemValue("ResourceType", selDoc.GetItemValue("ResourceType")(0))
Call ws.EditDocument(True, newDoc)
Else
Call newDoc.ReplaceItemValue("Form", "QuickRes")
Call newDoc.ReplaceItemValue("SDT",tomorow.DateOnly)
Call ws.EditDocument(True, newDoc)
End If
End If