Dieses Codebeispiel zeigt die Bearbeitung von Dokumenten einer Datenbank mit bestehendem Code in der anderen Datenbank.
Umfangreichere Anwendungen bestehen oftmals aus mehreren Datenbanken. Wie kann man nun während der Arbeit in einer Datenbank dort Dokumente auswählen, die durch einen Dialog und damit verbundenen Funktionen einer anderen Datenbank bearbeitet werden?
Hierzu kann z.B. ein Agent eingesetzt werden, der auf selektierte Dokumente arbeitet und nachfolgenden Code ausführt:
In der anderen Datenbank muss eine Maske "Dialog" existieren, die z.B. lokale Scriptbibliotheken rufen kann und (für die Funktion des obigen Beispieles) auch Rückgabewerte anbieten kann.
Hintergrundinformation:
Diese Beispiel funktioniert deshalb, weil die "DialogBox"-Funktion ein vordefiniertes Dokument benötigt und abhängig davon, in welcher Datenbank dieses Dokument besteht, diese Datenbank verwendet, um benötigte Gestaltungselemente zu laden. Da der aufgerufene Dialog modal ist, kann diese Werte setzen, welche vom aufrufenden Code (in der Ursprungsdatenbank) verarbeitet werden kann.
Umfangreichere Anwendungen bestehen oftmals aus mehreren Datenbanken. Wie kann man nun während der Arbeit in einer Datenbank dort Dokumente auswählen, die durch einen Dialog und damit verbundenen Funktionen einer anderen Datenbank bearbeitet werden?
Hierzu kann z.B. ein Agent eingesetzt werden, der auf selektierte Dokumente arbeitet und nachfolgenden Code ausführt:
Sub Initialize
Dim uiws As New NotesUIWorkspace
Dim s As New NotesSession
Dim col As NotesDocumentCollection
Dim docThis As NotesDocument
Dim docThat As NotesDocument
Dim dbThis As NotesDatabase
Dim dbThat As NotesDatabase
Dim vArray() As variant
Dim i As integer
Const strDatabaseToCall = "develop/mm/r82spielwiese"
Set dbThis = s.Currentdatabase
Set dbThat = s.Getdatabase(dbThis.Server, strDatabaseToCall)
Set col = dbThis.Unprocesseddocuments
ReDim vArray(col.Count) As Variant
Set docThis = col.Getfirstdocument()
i = 0
While Not docThis Is Nothing
vArray(i) = docThis.Universalid
Set docThis = col.Getnextdocument(docThis)
i = i + 1
Wend
Set docThat = dbThat.Createdocument()
docThat.OtherDBServer = dbThis.server
docThat.OtherDBPath = dbThis.Filepath
docThat.OtherDocs = vArray
Call uiws.Dialogbox("Dialog", true, true,,,,, "Dialogaufruf aus einer fremden DB", docThat, true)
MessageBox ("Getroffene Auswahl in Fremddialog: " & cstr(docThat.Selection(0)))
End Sub
In der anderen Datenbank muss eine Maske "Dialog" existieren, die z.B. lokale Scriptbibliotheken rufen kann und (für die Funktion des obigen Beispieles) auch Rückgabewerte anbieten kann.
Hintergrundinformation:
Diese Beispiel funktioniert deshalb, weil die "DialogBox"-Funktion ein vordefiniertes Dokument benötigt und abhängig davon, in welcher Datenbank dieses Dokument besteht, diese Datenbank verwendet, um benötigte Gestaltungselemente zu laden. Da der aufgerufene Dialog modal ist, kann diese Werte setzen, welche vom aufrufenden Code (in der Ursprungsdatenbank) verarbeitet werden kann.