Ejemplos: Filtros IDO

Este ejemplo se aplica al formulario Autorizaciones de fila.

Ejemplo de filtro IDO sencillo: Propiedad de nombre de usuario = Usuario actual

Desea permitir que todos los usuarios vean su propia información de usuario en el formulario Usuarios (descripción, dirección de correo electrónico, pertenencia a grupos, etc.), pero no cualquier otra información del usuario. Para hacer esto deberá establecer los campos como sigue:

Campo Configuración Tipo trabajo
IDO UserNames El filtro se aplica solo a los Nombres de usuario IDO.
Usua   Déjelo en blanco para que el filtro se aplique a todos los usuarios.
Grupo   Déjelo en blanco para que el filtro se aplique a los usuarios de todos los grupos.
Propied Nomb usuar El campo ID de usuario en el formulario Usuarios está vinculado a la propiedad UserNames.Username. (La propiedad Usernames.Userid es solo de uso interno.)
(Operador) =  
Este valor Usuario act  

Cuando hace clic en Añadir esta cláusula, la pseudo consulta SQL que se muestra tiene el siguiente aspecto:


(Username = dbo.UserNameSp())

Una vez que ha activado y guardado el filtro, cualquier usuario que se registre (y que tenga las autorizaciones adecuadas para el formulario) podrá abrir el formulario Usuarios pero solo verá el registro que coincida con su id. de usuario.

Estos temas muestran ejemplos de filtros IDO, más complejos:

Cómo se combinan los filtros

La siguiente información se aplica a situaciones complejas, por ejemplo, cuando los IDO heredan unos de otros y cada nivel tiene definidos sus propios filtros. Un IDO que extiende otro IDO, hereda todos sus filtros, salvo que el IDO esté usando extender y reemplazar.

Sólo los filtros marcados como Activo se utilizarán para todos los siguientes.

La cláusula de filtro IDO se crea usando el operador AND junto con todas o algunas de estas categorías:

  • El filtro IDO general, en el que tanto Usuario como Grupo están en blanco
  • El filtro IDO del usuario, en el que Usuario es igual al inicio de sesión actual
  • Los filtros IDO del grupo de usuarios, donde Grupo es igual a cualquiera de las pertenencias a grupos del usuario actual. (Los filtros del grupo se usan con el operador OR, ya que el usuario debería poder ver las filas visibles de cualquiera de los grupos a los que pertenece.)

Las cláusulas para las dos primeras categorías constan de todos los filtros en esa categoría unidas con el operador AND. La cláusula para la tercera categoría consta de las cláusulas de todos los grupos a los que pertenece el usuario, unidas con el operador OR. Las cláusulas de grupo en sí mismas son todos los filtros para ese grupo unidas con el operador AND.

En otras palabras, un usuario que es miembro de varios grupos puede ver todos los datos que se permiten ver a estos grupos diferentes pero pueden estar restringidos por los filtros personales del usuario (y posiblemente por los filtros generales pero normalmente los filtros generales serán menos restrictivos que cualquiera de los filtros de grupo, ya que lo contrario iría en contra de su propósito). Como ejemplo, un IDO tiene estos filtros activos:

Todos: E1, E2;

 Usuario U1, U2;

 Grupo 1: G1-1, G1-2;

Grupo 2: G2-1, G2-2; 

El usuario que quiere acceder al IDO es un miembro del Grupo 1 y del Grupo 2. Entonces, el filtro construido se configura de la siguiente manera:

 (E1 AND E2) AND (U1 AND U2) AND ((G1-1 AND G1-2) OR (G2-1 AND G2-2))

Temas relacionados