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 whrend der Arbeit in einer Datenbank dort Dokumente auswhlen, 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 ausfhrt:
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 (fr die Funktion des obigen Beispieles) auch Rckgabewerte anbieten kann.
Hintergrundinformation:
Diese Beispiel funktioniert deshalb, weil die \”DialogBox\”-Funktion ein vordefiniertes Dokument bentigt und abhngig davon, in welcher Datenbank dieses Dokument besteht, diese Datenbank verwendet, um bentigte Gestaltungselemente zu laden. Da der aufgerufene Dialog modal ist, kann diese Werte setzen, welche vom aufrufenden Code (in der Ursprungsdatenbank) verarbeitet werden kann.