TprxMENUS MENU STATS Component

De Pragma Wiki
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Introducción

El objeto TprxMENUS_MENU_STATS_Component (Componente para menú estadístico del explorador.) implementa funcionalidad para asistir en el armado del menú estadístico del explorador (ver TTprxMENUS Frame). Se documentan las sentencias SQL usadas para armar el menú, y su contenido.

Identidad

  • Ancestro: TprxMENUS_Component
  • Carpeta: C:\DevelopPrx\frames
  • Archivo: prxMENUS_MENU_STATS_Component.pas

SQL para armar el menú en el árbol

Este SQL arma la estructura del menú en el árbol.

SELECT
Origen = 'MENU'
, MenuOrden = pMENU.FGRUPOORDEN
, Menu = pMENU.FCODIGO
, Leyenda = pMENU.FDESCRIPCION
, Imagen = pMENU.FIMAGEN
, Grupo = pMENU.FGRUPO
, GrupoOrden = pMENU.FGRUPOORDEN
, Objeto = NULL
, TS = pMENU.FTS
, Tipo = 'MENU'
, Orden = 0
, Nivel = 0
, Permiso = CAST(1 AS BIT)
FROM pMENU WHERE
pMENU.FCODIGO = 'MENU_STATS'

SQL para armar el contenido de la grilla

Este SQL carga el contenido de la opción de menú seleccionada a la grilla, usa TTprxMENUS_GRID_Frame para mostrar el contenido.

SELECT
Img = NULL
, Menu = pMENU.FCODIGO
, E.Descripcion
, Objeto = E.Pantalla
, Clave = pMENU.FDESCRIPCION
, Orden = E.Recs * -1
, Permiso = CASE WHEN EXISTS
(
SELECT * FROM USUARIO_ROL_EXISTENTES WHERE
USUARIO_ROL_EXISTENTES.FUSUARIO = E.Usuario
AND USUARIO_ROL_EXISTENTES.FOBJETO = E.Pantalla
AND USUARIO_ROL_EXISTENTES.FPERMISO = 'SELECT'
)
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT)
END
, E.Imagen
, E.Editable
, E.Tipo
FROM
(
SELECT DISTINCT TOP 24
Menu = pMENU.FCODIGO
, Pantalla = USUARIO_MENU_PREFS.FOBJETO
, Descripcion = pOBJETOS.FDESCRIPCION
, Tipo = pOBJETOS.FTIPO
, TS = pOBJETOS.FTS
, Imagen = pOBJETO_TIPO.FIMAGEN
, Usuario = USUARIO_MENU_PREFS.FUSUARIO
, Editable = pOBJETOS.FEDITABLE
, Recs = COUNT(*)
FROM pMENU, USUARIO_MENU_PREFS, pOBJETOS, pOBJETO_TIPO WHERE
pMENU.FCODIGO = 'MENU_STATS'
AND USUARIO_MENU_PREFS.FUSUARIO = SYSTEM_USER
AND USUARIO_MENU_PREFS.FTIPO = 'STATS'
AND pOBJETOS.FCODIGO = USUARIO_MENU_PREFS.FOBJETO
AND pOBJETOS.FEDITABLE = 1
AND pOBJETOS.FCODIGO NOT IN (SELECT TIPO.FCODIGO FROM pOBJETO_TIPO TIPO)
AND pOBJETO_TIPO.FCODIGO = pOBJETOS.FTIPO
GROUP BY pMENU.FCODIGO, USUARIO_MENU_PREFS.FOBJETO, USUARIO_MENU_PREFS.FUSUARIO, pOBJETOS.FDESCRIPCION, pOBJETOS.FTIPO, pOBJETOS.FTS, pOBJETO_TIPO.FIMAGEN, pOBJETOS.FEDITABLE
ORDER BY COUNT(*) DESC
) E, pMENU
WHERE
pMENU.FCODIGO = E.Menu
ORDER BY E.Recs * -1, E.Pantalla