Domino 9 und frühere Versionen > ND9: Entwicklung
Remote Binding
jBubbleBoy:
Hä? QueryClose wird immer ausgeführt und ein uiDoc gibt es auch immer, egal ob ein Dokument geöffnet oder erstellt wird.
Prüf das bitte noch einmal.
Jürgen Schomann:
Ich glaube wir verstehen uns nicht richtig.
Also ich meine folgendes:
Maske Code:
Sub Onload(Source As Notesuidocument)
Dim uidoc As NotesUIDocument
Set uidoc = Source
End Sub
Ansicht Code:
(Globals)
(Declarations)
Dim obTimer As NotesTimer
Sub SetFocus(Source As NotesUIDocument, Continue As Variant)
If Source.IsNewDoc Then Exit Sub
Set obTimer = New NotesTimer(1)
obTimer.Enabled = True
On Event Alarm From obTimer Call SetFocus2
End Sub
Sub SetFocus2(Source As NotesTimer)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
obTimer.Enabled = False
Set doc = session.CurrentDatabase.GetDocumentByUNID(session.GetEnvironmentString("FOCUSUNID"))
Call ws.CurrentView.SelectDocument(doc)
End Sub
Schaltfläche zum Erstellen eines Dokuments
Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.ComposeDocument("", "", "faM1")
Call session.SetEnvironmentVar("FOCUSUNID", uidoc.Document.UniversalID)
On Event Queryclose From uidoc Call SetFocus
End Sub
Schaltfäche zum Bearbeiten eines Dokuments
Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.EditDocument(True)
Call session.SetEnvironmentVar("FOCUSUNID", uidoc.Document.UniversalID)
On Event Queryclose From uidoc Call SetFocus
End Sub
Die funktioniert fürs Erstellen und Bearbeiten.
Wenn ich aber zum Bearbeiten eines Dokuments statt über die Schaltfläche über das Notes Symbol oder Doppelkick das Dokument öffne und bearbeite,
habe ich ja kein 'On Event ...' aufgesetzt und damit wird beim Schließen auch nicht SetFocus bzw. SetFocus2 durchlaufen.
Oder habe ich noch etwas falsch verstanden?
Gruß Jürgen
jBubbleBoy:
Das OnLoad Ereignis kommt aus der Web-Welt und wird, soweit ich das mitbekomme habe, nicht immer ausgeführt. Nutze selber nur das Query- oder PostOpen Ereignis.
In diesem Fall kannst du aber darauf verzichten, da QueryClose dir den Source/uiDoc als Parameter bereitstellt.
Wenn du dir eigene Ereignisse, wie z.B. "On Event Queryclose From .. " erstellst, dann über das PostOpen Ereignis der Maske, denn das wird bei jeder Aufrufvariante initiiert.
jBubbleBoy:
Warte mal, sehe gerade das dein OnLoad Ereignis bei deinem Code keinen Sinn macht.
Du musst nur das QueryClose, direkt in der Maske, mit diesen beiden Zeilen versehen:
--- Code: ---Dim session As New NotesSession
Call session.SetEnvironmentVar("FOCUSUNID", source.Document.UniversalID)
--- Ende Code ---
Eine Teilmaske sollte genauso gut funktionieren.
jBubbleBoy:
Und zum Schluss noch den NotesTimer im PostOpen der Ansicht initiieren und nicht in der Aktion, dann passt alles.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln