Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Ayuda con path

Tengo una tabla de AD

índiceuser.__indexManager_Level_06manager.__indexManager_Level_05Manager_Level_04id de empleadouserPrincipalNameMgrPrincipalNameManager_PathLongitud del camino
93Nombre completoNombre de usuarioNombre de Mons.Nombre Mgr Directo (903)Nombre de Mons. Siguiente Nivel(354)FN1234[email protected][email protected]354|903|933

Estoy tratando de crear un filtro desplegable que refleje al usuario que ha iniciado sesión y todos sus informes, no solo el informe directo. Usando estas dos medidas he hecho que funcione para un gerente determinado y reportes directos.

ReportViewer = USERPRINCIPALNAME()

// This measure below checks to see if the logged in user is a manager
// if not all datea are restricted to the logged in user id by adding MgrUserFilter directly // to a measure where MgrUserFilter is 1

MgrUserFilter = 
IF(
    SELECTEDVALUE(TechMgrEmail[MgrPrincipalName])  = [ReportViewer] || SELECTEDVALUE(TechMgrEmail[userPrincipalName])  = [ReportViewer] ,1,0
)

Quiero haber iniciado sesión en el usuario 903 ver el usuario 93 y el usuario conectado 354 debería ver 903 y 93. El camino viene con la mesa. hay más de 15,000 filas, por lo que recrear un camino sería doloroso.

Agradecería sinceramente su ayuda.

  • ¿@bvilten

    Para comprobar si un usuario en particular debe ser visible (es decir, si es el usuario que ha iniciado sesión o en algún lugar por debajo del usuario que ha iniciado sesión en la jerarquía), puede comprobar si el índice del usuario actual está en la Manager_Path de cada usuario.

    Puede escribir su MgrUserFilter de la siguiente manera:

    MgrUserFilter =
    VAR CurrentUserIndex =
        LOOKUPVALUE (
            TechMgrEmail[index],
            TechMgrEmail[userPrincipalName], [ReportViewer]
        )
    RETURN
        -- Return 0/1
        INT (
            PATHCONTAINS ( SELECTEDVALUE ( TechMgrEmail[Manager_Path] ), CurrentUserIndex )
        )

    Saludos

    Owen

2 Replies

  • ¿@bvilten

    Para comprobar si un usuario en particular debe ser visible (es decir, si es el usuario que ha iniciado sesión o en algún lugar por debajo del usuario que ha iniciado sesión en la jerarquía), puede comprobar si el índice del usuario actual está en la Manager_Path de cada usuario.

    Puede escribir su MgrUserFilter de la siguiente manera:

    MgrUserFilter =
    VAR CurrentUserIndex =
        LOOKUPVALUE (
            TechMgrEmail[index],
            TechMgrEmail[userPrincipalName], [ReportViewer]
        )
    RETURN
        -- Return 0/1
        INT (
            PATHCONTAINS ( SELECTEDVALUE ( TechMgrEmail[Manager_Path] ), CurrentUserIndex )
        )

    Saludos

    Owen

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Gracias Owen,

      Me proporcionaste la solución exacta que necesitaba. Finalmente me había topado con la función BUSCARV, pero no estaba seguro de cómo aplicarla.