Wie kann ich Dialoge und Code in einer anderen Datenbank nutzen?

20. Dezember 2010 Posted by Manfred Meise

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.

Comments are closed.