PREGUNTA POR UN ROL DE LA BASE DE DATOS
Y COLOCA LOS NOMBRES DE LAS ENTRADAS DE LA ACL CON ESTE ROL

Ver código y Pantallazos y recuerda que es una Plantilla
Este código nos pregunta por un Rol de la base de datos, y coloca los nombres de las entradas de la ACL con este rol activo en un cuadro de lista desplegable.
*en el nsf, tengo creados 2 roles.(a y b)
Necesitamos:
- El código Script que nos preguntará por el rol y nos traerá los datos, puede ir en un botón en algún evento, a gusto del consumidor…
- Un campo de tipo texto que permita múltiples valores. (Campo)

- Un cuadro de lista desplegable cuya formula sea el nombre del campo de tipo texto. Y que tenga activa la opción "Actualizar opciones si se actualiza el documento"

·El código:
Dim ses As New NotesSession
Dim bd As NotesDatabase
Dim acl As NotesACL
Dim aclentry As NotesACLEntry
Dim RoleName As String
Dim FoundIt As Variant
Dim work As New notesuiworkspace
Dim uidoc As notesuidocument
Set uidoc = work.currentdocument
Dim doc As notesdocument
Set doc=uidoc.document
Dim lista As Variant
Redim lista(0)
Dim cont As Integer
Set bd = ses.CurrentDatabase
Set acl = bd.ACL
RoleName = Inputbox$( "¿Nombre del Rol? (sin los corchetes)" )
RoleName = "[" & roleName & "]"
Forall RNames In acl.Roles
If ( RNames = RoleName ) Then
FoundIt= True
Exit Forall
End If
End Forall
If ( FoundIt = False ) Then
Messagebox( Cstr(RoleName) + " no existe en la ACL de esta base de datos." )
Else
Set aclentry = acl.GetFirstEntry
While Not ( aclentry Is Nothing )
If ( aclentry.IsRoleEnabled( RoleName ) = True ) Then 'si tiene el Rol activo..
Redim Preserve lista(cont)
lista(cont)= aclentry.name
cont=cont+1
End If
Set aclentry = acl.GetNextEntry( aclentry ) 'Vamos al siguiente nombre de Acl
Wend
Dim item As notesitem
Set item = doc.getfirstitem("Campo") 'el campo de tipo texto que permite multiples valores
item.values = lista 'ponemos de valor la lista de personas
Call doc.save(True,False)
Call uidoc.save
End If |
Otros documentos de Aplicaciones
|