Autor Thema: Namen der User einer Rolle...  (Gelesen 2445 mal)

Offline dasRalph

  • Aktives Mitglied
  • ***
  • Beiträge: 128
  • Geschlecht: Männlich
  • hmmm ...
Namen der User einer Rolle...
« am: 24.10.02 - 19:18:10 »
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

Offline Christopher

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.060
  • Geschlecht: Männlich
  • Dumm ist der, der dummes tut.
Re:Namen der User einer Rolle...
« Antwort #1 am: 24.10.02 - 19:42:39 »
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
Client & Server R 5.011
Principal Certified Lotus Professional R5 System Administration
Microsoft Certified Systems Engineer 2000
Microsoft Certified Systems Administrator 2000
Microsoft Certified Systems Administrator 2003
Microsoft Certified Systems Engineer 2003

Offline dasRalph

  • Aktives Mitglied
  • ***
  • Beiträge: 128
  • Geschlecht: Männlich
  • hmmm ...
Re:Namen der User einer Rolle...
« Antwort #2 am: 24.10.02 - 20:00:38 »
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

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Namen der User einer Rolle...
« Antwort #3 am: 24.10.02 - 20:22:28 »
... 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
Grüßle Toni :)

Offline dasRalph

  • Aktives Mitglied
  • ***
  • Beiträge: 128
  • Geschlecht: Männlich
  • hmmm ...
Re:Namen der User einer Rolle...
« Antwort #4 am: 24.10.02 - 21:03:34 »
... in LotusScript

Dim Session As New NotesSession
Dim CommonName As String

CommonName = session.CommonName

ata

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

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Namen der User einer Rolle...
« Antwort #5 am: 24.10.02 - 21:08:34 »
... Sorry, das ist natürlich richtig. Wie ich sehe hast du das Objekt NotesName gefunden...

ata   :-[ :-[ :-[
Grüßle Toni :)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Namen der User einer Rolle...
« Antwort #6 am: 07.11.02 - 18:26:02 »
OK, um auch diesen Thread zu schließen; hier die Funktion in Script

Function UIDCn(ids)
' This function performs roughly the same task as @Name([CN]...);
' If passed an array, it will process each element separately and return an' array as a result.
   If Isarray(ids) Then
      Dim i%
      Redim r$(Lbound(ids) To Ubound(ids))
      For i = Lbound(ids) To Ubound(ids)
         r$(i) = UIDCn(ids(i))
      Next
      UIDCn = r$
   Else
      UIDCn = Trim(Replacesubstring(vWord(vWord(Cstr(ids), "/<@", 1), "=", -1), """", ""))
   End If
End Function

eknori
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Namen der User einer Rolle...
« Antwort #7 am: 07.11.02 - 18:43:55 »
... hey, das Konstrukt habe ich so auch noch nicht gesehen - ich bin baff... :o :o :o

ata
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz