Domino 9 und frühere Versionen > Entwicklung

Namen der User einer Rolle...

(1/2) > >>

dasRalph:
Hallo!!!

Ich hab ein Dokument, welches nur bestimmte Leute bearbeiten dürfen. Diese Leute hab ich alle in einer Rolle aufgenommen. Die Namen dieser Rolle möchte ich am Ende des Dokumentes anzeigen. Sprich in etwa so:

Dies Dokument darf nur durch Hans Maier, Fritz Otto, Heinz Müller bearbeitet werden.

Dazu wollte ich nun alle Namen auslesen, die der entsprechenden Rolle zugeordnet sind. Dies löse ich so:

<ANFANG>
Sub Postopen(Source As Notesuidocument)
   
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Dim entry As NotesACLEntry
   Dim roleName As String
   Dim text As Variant
   Set uidoc = workspace.CurrentDocument
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   
   roleName = "[Moderator]"
   Set entry = acl.GetFirstEntry
   While Not ( entry Is Nothing )
      If ( entry.IsRoleEnabled( roleName ) = True ) Then
         text = entry.Name & ";" & text         
      End If
      Set entry = acl.GetNextEntry( entry )
   Wend
   Call uidoc.FieldSetText ("Rolle", Trim$(text))
   
   Call uidoc.refresh
   
End Sub
<ENDE>


Mein Problem, es kommt als Ergebnis "Hainz Müller/xxx/xxx/xxx/DE" raus, ich will aber nur "Heinz Müller" haben.

Hat jemand eine Idee???

Schon mal besten Dank!!!

Ralph

Christopher:
Hallo,

schau Dir mal das Tool von Eknori an "Leser- und Autorenfelder unter Kontrolle"

evtl hilft Dir das weiter.

   
http://www.eknori.de/downloads.htm

dasRalph:
Hallo!!!

Nee ist nicht das was ich suche, ich hab ja kein Problem mit den Autoren- bzw. Leser-Feldern sondern mit dem Format des Namens das aus meiener Formel raus kommt :-(

Aber trotzdem Danke!!!
Ralph

ata:
... in Formelsprache:

@Name([CN] ; @UserName)

... in LotusScript

Dim Session As New NotesSession
Dim CommonName As String

CommonName = session.CommonName

... wenn ich mich nicht irre...

ata

dasRalph:

--- Zitat von: ata am 24.10.02 - 20:22:28 ---... in LotusScript

Dim Session As New NotesSession
Dim CommonName As String

CommonName = session.CommonName

ata

--- Ende Zitat ---

Ja so in etwa stimmt es, doch es gibt den Namen des aktuellen User's aus, ich brauchte dies aber für den Inhalt der Variable "text". Es wäre also "text.CommonName" gewesen, doch da hab ich immer eine Fehlermeldung bekommen, doch nun hab ich die Lösung hingefummelt *freu* und hier ist sie. Das Script steht im Postopen der Maske, such alle Namen der User, die in der Rolle "Moderator" sind raus und schreibt das Ergebnis in das Feld "Rolle", sogar mit einem "und" zwischen dem vorletzten und letzten Namen ;-)

<ANFANG>
Sub Postopen(Source As Notesuidocument)
   
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Dim entry As NotesACLEntry
   Dim roleName As String
   Dim text, textLinks, textRechts As Variant
   Dim userName As NotesName
   Dim user As String
   Set uidoc = workspace.CurrentDocument
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   roleName = "[Moderator]"
   Set entry = acl.GetFirstEntry
   While Not ( entry Is Nothing )
      If ( entry.IsRoleEnabled( roleName ) = True ) Then
         Set userName = New NotesName(entry.Name)
         user = userName.Common
         text = user & ", " & text
      End If
      Set entry = acl.GetNextEntry( entry )
   Wend
   
   text = Trim$(Left(text, Len(text)-2))
   textLinks = Strleftback(text, ", ")
   textRechts = Strrightback(text, ", ")
   Call uidoc.FieldSetText ("Rolle", textLinks & " und " & textRechts)
   
End Sub
<ENDE>

Ralph

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln