Autor Thema: Alle Rollen in einem Feld anzeigen  (Gelesen 4238 mal)

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Alle Rollen in einem Feld anzeigen
« am: 03.04.06 - 16:46:28 »
Hallo Zusammen,

ich habe ein Feld (Kontrollkästchen) und möchte hierüber die Zugriffsteuerung für die Dokumente steuern.
Das feld soll in der ACL stehenden Rollen als einzelne Optionen darstellen.
der Autor soll also die Möglichkeit haben bestimmte Rollen für das aktuelle Dokument zuzuweisen.


In der Designerhilfe habe ich das hier gefunden:
Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   Forall r In acl.Roles
      Messagebox( r )
   End Forall
End Sub


Gibt es sowas auch in @Funktionen?

Habt ihr eine Idee?

danke + gruß
Selin
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #1 am: 03.04.06 - 16:50:29 »
Gibt es sowas auch in @Funktionen?

Nein.
Warum belegst Du aber Dein Auswahlfeld nicht beim Öffnen im EditMode on the fly mit den aktuellen Rollen aus der ACL?

Bernhard

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #2 am: 04.04.06 - 10:28:30 »
Hallo Bernhard,

danke für den Tipp.

Habe folgendes noch im Forum gefunden:
Im Postopen Event:

Dim workspace As New NotesUIWorkspace
     Dim uidoc As NotesUIDocument
     Set uidoc = workspace.CurrentDocument
     Dim rolles As String
     
     Dim session As New NotesSession
     Dim db As NotesDatabase
     Dim acl As NotesACL
     Set db = session.CurrentDatabase
     Set acl = db.ACL
     Forall r In acl.Roles
           rolles = r & ";" & rolles
     End Forall
     Call uidoc.FieldSetText ( "Rollen", Trim$(rolles) )
     Call uidoc.refresh

Allerdings wäre es genial, wenn ich entweder ein Dialogfeld oder ein Kontrollkästchenfeld darstellen könnte.
Mit dem Script wird nur eine Textliste erstellt, unabhänging davon, ob das Feld als Dialogfeld festgelegt ist oder nicht.
Ist das möglich?

Danke + Viele Grüsse
Selin
Windows XP
Notes 6.5

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Alle Rollen in einem Feld anzeigen
« Antwort #3 am: 04.04.06 - 10:43:04 »
Du musst die Rollen in ein Array aufnehmen. Dieses Arra kannst du dann dem Feld zuweisen.

...

Dim arrRoles() As String
Dim idx As Integer

...
idx = 0

Forall r In acl.Roles
   Redim PreServe arrRoles(idx)
   arrRoles(idx) = r
   idx = idx + 1
End Forall
...


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #4 am: 04.04.06 - 13:51:51 »
Hallo,

es will nicht klappen.   >:(
Ich habe mit Arrays noch nicht viel gemacht ;-(
Und irgendwie wird mir entweder wieder nur die Textliste ausgegeben oder die letzte Rolle...   ???

verzweifelte Grüsse
Selin
Windows XP
Notes 6.5

klaussal

  • Gast
Re: Alle Rollen in einem Feld anzeigen
« Antwort #5 am: 04.04.06 - 14:02:37 »
Was will nicht klappen ?

Ohne nähere Infos (z. Bsp. mehr Codezeilen) = keine Hilfe möglich !

PS:
Warum muss man den Leuten immer öfters die Würmer aus der Nase ziehen ?
« Letzte Änderung: 04.04.06 - 14:07:16 von klauss »

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #6 am: 04.04.06 - 14:06:31 »
das Feld (Dialogfeld) soll die Rollen als Auswahlfeld darstellen und das tuts nicht.

Sub Postopen(Source As Notesuidocument)
   
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   Dim rolles As String
   Dim arrRoles() As String
   Dim idx As Integer
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   
   Forall r In acl.Roles
      Redim Preserve arrRoles(idx)
      arrRoles(idx) = r
      idx = idx + 1
      
   End Forall   
   Call uidoc.FieldSetText ( "Zugriffliste_L", Trim$(?) )
   Call uidoc.refresh 
         
   Ich weiß nicht, welche Variable ich in das FieldSetText reinschreiben soll.
Habe schon ätliches versucht aber
   
   
   
End Sub
Windows XP
Notes 6.5

Offline Wirsing

  • Senior Mitglied
  • ****
  • Beiträge: 283
  • Geschlecht: Männlich
    • METZ CONNECT
Re: Alle Rollen in einem Feld anzeigen
« Antwort #7 am: 04.04.06 - 14:08:04 »
arrRoles:

Call uidoc.FieldSetText ( "Zugriffliste_L", Trim$(arrRoles) )


Aber kann es nicht sein, dass Dein Feld "Zugriffliste_L" in der Maske kein Kontrollkästchen mehr ist?
« Letzte Änderung: 04.04.06 - 14:11:20 von Wirsing »
6 Lotus Domino Server 9.0.1(FP5-7) auf Windows 2008R2 Server
ca. 450 Clients mit 8.5.x/9.0.1

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #8 am: 04.04.06 - 14:11:50 »
hmm, geht leider nicht. Kann den code nicht abspeichern
"Type mismatch on: arrroles"
« Letzte Änderung: 04.04.06 - 14:14:11 von Selin »
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #9 am: 04.04.06 - 14:15:40 »
Feld Zugriffliste_L ist eine Dialogliste aber als Kontrollkästchen funzt es auch net
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #10 am: 04.04.06 - 14:19:26 »
Da arroles kein skalarer Wert ist, sondern ein Array, geht natürlich FieldSetText nicht - das erwartet ja einen String.

Code
Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   Dim rolles As String
   Dim arrRoles() As String
   Dim idx As Integer
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   
   Forall r In acl.Roles
      Redim Preserve arrRoles(idx)
      arrRoles(idx) = r
      idx = idx + 1
      
   End Forall   
   Zugriffliste_L = arroles
   Call workspace.ViewRefresh

Bernhard

Glombi

  • Gast
Re: Alle Rollen in einem Feld anzeigen
« Antwort #11 am: 04.04.06 - 14:20:41 »
Also das ist für mich zu kompliziert. Besser so:

Sub Postopen(Source As Notesuidocument)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Dim doc As NotesDocument
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   Set doc = Source.Document
   doc.ACLRoles = acl.Roles   
End Sub

Das Fed "Zugriffliste_L" muss dann eine Dialogliste mit einer Formel als Auswahl haben. Als Formel wird dann lediglich
  ACLRoles
eingetragen.

ACLRoles muss ein Textfeld mit Mehrfachwerten sein.

Andreas

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #12 am: 04.04.06 - 14:27:02 »
Hallo Andreas,

hat super funktioniert.
Vielen dank

@Bernhard: Bei deinem Script blieb das Feld Zugriffliste_L leer.

danke noch mal an alle
Selin
Windows XP
Notes 6.5

klaussal

  • Gast
Re: Alle Rollen in einem Feld anzeigen
« Antwort #13 am: 04.04.06 - 14:31:03 »
Zitat
@Bernhard: Bei deinem Script blieb das Feld Zugriffliste_L leer.

Ja logo, hat er ja auch extra geschrieben:
Zitat
geht natürlich FieldSetText nicht - das erwartet ja einen String.

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #14 am: 04.04.06 - 14:32:22 »
nein, mit dem aktuellen Script von ihm, blieb das Feld leer.

 Zugriffliste_L = arroles
 Call workspace.ViewRefresh
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #15 am: 04.04.06 - 14:48:53 »
Naja, auf die beiden Fehler hätte man auch kommen können  ;)

uidoc.Document.Zugriffsliste_L = arrRoles

Mir kam es auch mehr darauf an zu zeigen, dass man ein Array keinem String zuweisen kann.

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Alle Rollen in einem Feld anzeigen
« Antwort #16 am: 04.04.06 - 16:16:27 »
Also das ist für mich zu kompliziert. Besser so:

Sub Postopen(Source As Notesuidocument)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Dim doc As NotesDocument
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   Set doc = Source.Document
   doc.ACLRoles = acl.Roles   
End Sub

Das Fed "Zugriffliste_L" muss dann eine Dialogliste mit einer Formel als Auswahl haben. Als Formel wird dann lediglich
  ACLRoles
eingetragen.

ACLRoles muss ein Textfeld mit Mehrfachwerten sein.

Andreas

Warum kompliziert, wenn's auch einfach geht?    :-\

Manchmal denkt man um viel zu viel Ecken.   :o

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #17 am: 07.04.06 - 09:47:41 »
Guten Morgen,

kann ich die Werte in der Dialogliste auch defaultmäßig alle marrkiert darstellen?
Somit müsste der User nur die Haken bei denen rausnehmen, die das Dokument nicht lesen sollen.

Danke + Grüsse
Selin
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #18 am: 07.04.06 - 09:59:27 »
Dafür brauchst Du ACLRoles nur Deinem Dialogfeld Zugriffsliste_L zuzuweisen.

Bernhard

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Alle Rollen in einem Feld anzeigen
« Antwort #19 am: 07.04.06 - 10:00:11 »
Schreibe in die Vorgaben des Feldes "Zugriffliste_L" den Namen des Feldes, in dem alle Rollen stehen - also "ACLRoles"
Gruß
Dirk

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz