Domino 9 und frühere Versionen > Entwicklung
Namen der User einer Rolle...
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