aus der Notes Help
Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim entry As NotesACLEntry
Dim levelString As String
Dim levelConstant As Integer
Set uidoc = workspace.CurrentDocument
Set db = session.CurrentDatabase
Set acl = db.ACL
levelString = Inputbox$( "What level?" )
' function call to convert the string
' into an ACLLEVEL constant
levelConstant = GetLevelConstant( levelString )
' go through all the entries in the ACL
Set entry = acl.GetFirstEntry
While Not ( entry Is Nothing )
' if the entry has the level that the user chose
If ( entry.Level = levelConstant ) Then
' append the entry's name to the text list
' in the People field
Call uidoc.FieldAppendText _
( "People", entry.Name & "; " )
End If
Set entry = acl.GetNextEntry( entry )
Wend
' refresh current document so that
' text list displays nicely
Call uidoc.Refresh
End Sub
mußt etwas umbauen, aber das Prinzip ist jetzt schon sichtbar.
Statt "entry.level" (ruft eine eigene Funktion auf) mußt Du natürlich checken, ob das aktuelle entry die Rolle ABC hat, also:
If entry.IsRoleEnabled( "[ROLLE_ABC]" ) Then...
Feldwert-Liste befüllen...
Das Ganze würde ich zB ausführen, wenn das Doc in den Editmode gesetzt wird, dann ein verstecktes Multivaluefeld befüllen, das einem dritten Feld = Auswahlfeld als Schlüsselwortliste dient
edit: @ata, ich sehe Du hast es schon passend.