Como crear sesiones Independientes Lotus Notes

Hice una aplicaicón en lotus Domino Designer 6.54
La estoy corriendo en un servidor 8.5...
Tiene un Frame, Page, OutLines para poder organizar las vistas que aparecen...
Ahora:
El detalle de todo esto es que Tengo una vista que indique los permisos que tiene cada usuario, esto con la intención de hacer una arborecencia...
El Dirctor General puede ver todo, Los directores de cada área pueden ver exclusivamente las gerencias de su área, cada geente puede ver el contenido de su gerencia, y los de abajo solo nos vemos a nosotros...
La vista tiene:
Nombre del Empleado <- este es igual al q aparece en @names([CN];@username)
Departamento ( Gerencia) <- texto
Dirección <-texto...
Si el usuario aparece aquí... Se crea una nueva fórmula...
Acción:
Sub Click(Source As Button)
  'Clases Lotus
 Dim db As NotesDatabase
 Dim doc As NotesDocument 
 Dim collection As NotesDocumentCollection
 Dim session As New NotesSession
 Dim view As NotesView
 Dim item As NotesInternational
 Dim ws As New NotesUIWorkspace
 Dim uiview As NotesUIView
 'Generales
 Dim Respuesta As Boolean
 Dim user As String
 Dim temporal As Variant
 Dim formula As String 
 Dim Direccion As Variant
 Dim Departamento As Variant
 Dim Nombre As String
 Dim Apellido As String
' formula general, esta formula la tienen todos los usuarios en un principio..
' SELECT ((Form = "CU-F-005")) & (@Contains(@UpperCase(CMF005Correo); @UpperCase(@Name ([CN];@UserName))))
 Set db = session.CurrentDatabase
 Set doc = New NotesDocument(db) 
 formula ="SELECT ((Form =" +Chr(34)+ "PA-F-006" +Chr(34) +")) & (@Contains(@UpperCase(PAF006Empleado); @UpperCase(@Name ([CN];@UserName))))"
 Err=0
 On Error Resume Next 
 Set collection = db.Search(Formula,Nothing,0)
 If Err <>0 Then
  Messagebox "Error" & Str(Err) & ": " & Error$
 Else    
  formula=""
  If  collection.Count > 0 Then
   'Activar la vista particular
   Set doc = collection.GetFirstDocument
   Print
   If Err <>0 Then
    Messagebox "Error" & Str(Err) & ": " & Error$
   Else
    Err=0
    On Error Resume Next 
    Direccion = doc.GetItemValue ("PAF006Direccion")
    Departamento = doc.GetItemValue ("PAF006Departamento")
    Direccion = Direccion(0)
    Departamento = Departamento(0)
    If Len(Trim(Direccion))> 0 And Len(Trim(Departamento))> 0 Then
     Messagebox "Error: Tus permisos están mal configurados. " +Chr(13)+ "Reportalo a Recursos Humanos"
    Else 
     'Messagebox "Carga Direccion y depto...", 0, "Error" 
     If Err <>0 Then
      Messagebox "Error" & Str(Err) & ": " & Error$
     Else
      If Ucase(Direccion) ="TODOS" Then       
       formula ="SELECT ((Form =" +Chr(34)+ "CU-F-005" +Chr(34) +"))" 
      Elseif Direccion <> "" Then
       formula ="SELECT ((Form =" +Chr(34)+ "CU-F-005" +Chr(34) +")) & (@Contains(CMF005Direccion; " +Chr(34)+ Cstr(Direccion)+Chr(34)+ "))" 
      Elseif Departamento <> "" Then
       formula ="SELECT ((Form =" +Chr(34)+ "CU-F-005" +Chr(34) +")) & (@Contains(CMF005Departamento; " +Chr(34)+ Cstr(Departamento)+Chr(34)+ "))" 
      End If      
     End If 
    End If
   End If    
  Else
   'Activar la vista particular     
   formula = "SELECT ((Form = " + Chr(34)+ "CU-F-005" +Chr(34) +")) & (@Contains(@UpperCase(CMF005Correo); @UpperCase(@Name ([CN];@UserName))))"
  End If 
  Set uiview = ws.CurrentView
  Set view = uiview.View
  view.SelectionFormula = formula
  Call ws.ViewRebuild
 End If 
End Sub
Como puedo hacer que esta acción se ejecute una ves abierta la vista...
Ya probé los métodos que tiene la view... Pero en todos marca error por el CurrentView... Que no se ha creado...
O como puedo hacer para si yo hago cambios no en un perfil no afete a otros...
Me explico, hay una vista Empleados...
Esta vista indica a un solo individuo, o si tines una gerencia a ti y a tus sobordinados... O a una dirección y sus subordinados...
Así que cada quién tiene que ver la parte que le corresponde...
Si no esta en la vista de permisos ( PAF006 ) unicmante se puede vel a él mismo...
Pero si yo modifico algo en algún usuario todos ven eso...
Ya active la opicón de "Restore as last viewed by user" en Launch de Database...
Espero tus comentarios y/o dudas al respecto...
Si un usuario actualiza, a los demás nos aparece la flecha para refrescado... Pero si lo haces... T muestra los permisos de otra persona... En lugar de los propios...

1 Respuesta

Respuesta
1
Lo mejor es que hicieses esas vistas del Tipo Compartidas.
Privadas después del 1 uso.
Y en las propiedades de la entrada del outline donde pones esa vista, pongas
las personas, grupos que pueden verla.
Por ejemplo
1.Crear VistaGerencia, la cual en la entrada del outline donde la visualizas solo la puede ver el gerente.
2. Crear VistaDirectores, que sera del tipo Compartida y privada después del primer uso,
y en la entrada del outline donde la visualizas, que solo lo puedan ver los directores.
...
Y así con todas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas