|
|
macra:
Mira, tengo una tabla (Niveles) con la siguiente estructura:
NIVEL ITEM_MENU
L0100 Altas de Clientes
L0101 Bajas de Clientes
L0102 Cambios de Clientes
L0200 Altas de Articulos
L0201 Bajas de Articulos
L0302 Cambios de Articulos
etc.
etc.
Tambien tengo una tabla (Permisos) con la siguiente estructura
USUARIO NIVEL
JUAN L0100
JUAN L0102
JUAN L0200
JUAN L0202
PEDRO L0102
PEDRO L0202
etc.
etc.
Luego tengo un menu.mpr con la siguiente estructura:
Clientes Articulos Salir
-> Altas -> Altas
-> Bajas -> Bajas
-> Cambios -> Cambios
En cada item del menu, en la opcion "Skip for" o "Saltar por" tengo:
NOT L0100 (item Alta de Clientes)
NOT L0101 (item Baja de Clientes)
NOT L0102 (item Cambios de Clientes)
etc.
etc.
---------------
Cuando se ejecuta el Login,
Ejecuto el siguiente codigo:
SELECT NIVELES
GO TOP
SCAN WHILE NOT EOF()
NIV='L'+STR(NIVEL,10)
PUBLIC &NIV
&NIV=.F.
ENDSCAN
SELECT * FROM PERMISOS WHERE USUARIO=_USUARIO INTO CURSOR CURPER && _USUARIO es la variable donde cargas el nombre del usuario logeado.
GO TOP
SCAN WHILE NOT EOF()
NIV='L'+STR(NIVEL,10)
&NIV=.T.
ENDSCAN
RELEASE CURPER
De esta forma se crearan las variables con valores falsos y verdaderos dependiendo de los Permisos otorgados al usuario. Las opciones en el menu se habilitan o deshabilitan de acuerdo al valor de esas variables.
Espero hayas entendido, no es complicado y es lo mas efectivo.
Si quieres te envio mi menu pero necesito tiempo para preparartelo.
Atentamente
Fernando ALVAREZ.
La Pampa - Argentina
|