La Web del Programador: Comunidad de Programadores
 
    Pregunta:  4171 - COMO DESACTIVAR OPCIONES DE MI MENU
Autor:  Evelyn Meres
Amigos,

Quiero desactivar algunas opciones del menu principal de mi sistema , pues hay ciertos usuarios que no deben usarlas.

donde indico que si el usuario es xxxxxx se desactive la opcion.

Muchas Gracias

  Respuesta:  William Fernando Espitia Otalora
Hola Amigo:

Debes hacer lo Siguiente:
--Modificar el menu
--ir a Ver en el menu de Visual Foxpro
--Despues dar opciones Generales
--Despues Postprograma
--Luego Aceptar...

Y listo ahi puedes colocar el codigo que hace referencia para liberar el nro de la barra del menu deseado....recuerda que cuando haces el menu el al realizar un submenu genera un nombre padre para el menu encabezado..este nombre debes tenerlo presente para decir por ej.

If Len(Allt(LcSeguro.RefPermiso)) = 1
Release Pad (NomSys) Of _MSYSMENU
Else
Release Bar (RefPermis) Of (NomSys)
Endif
Donde refpermis es el nombre del submenu
por decir
--Sistema
----Procesos

  Respuesta:  Carlos Veron
Hola Colega:

Espero que te sirva este consejo, primero deberías crear una tabla con el nombre del usuario, clave y el nombre de los menú, entonces luego te generas un formulario de ABM de usuarios, en el cual ingresas el nombre, su clave y a que menú tiene acceso, cuando tu aplicación se ejecuta, armas un formulario que se visualice antes de ejecutar el menú, y pedís nombre y clave del usuario, validas estos datos, nombre y clave correctas, y lees de la tabla de usuarios, y obtenes a que menú tiene accesos este usuario, y con las funciones del manejo del menú activas o desactiva las opciones del menú, en la ayuda de Visual Foxpro o Foxpro p/MSDOS (no se en que entorno esta trabajando), consulta define pad, define popup, etc. Esto te ayudará a comprender como activar o desactivar las opciones por código.

Espero haberte ayudado un poco, suerte!!!

  Respuesta:  David Fernando Amador Tapia
Bueno puedes primero que todo guardar en un variable publica el nombre del usuario, luego determinas si tiene o no acceso a un menu determinado...te sugeriria que utilizaras niveles de usuario y asi te evitarias complicaciones..

Si utilizas niveles de usuario podrias hacer lo siguiente

crear una tabla con los siguientes campos:
LA tabla yo la llamo usuario

nom_usuario && Nombre del Usuario
password && Clave del usuario
nivel && Que jerarquia tiene el usuario en el sistema

Luego el formulario donde pides password, despues de haber seleccionado el usuario que va ha entrar determinas que nivel es...por ejemplo


Public nNiv &&Defino la variable donde almaceno el nivel del usuario.

nNiv = usuario.nivel

cuando ya has ingresado al sistema el menu debe validar y quitar los elementos que tu deseas quitar para esto puedes hacerlo con la clausula set skip of y luego el nombre del menu o elemento de este que deseas quitar pero te recomiendo que cuando crees el menu vayas y estes en el diseñador de este hagas click en el botoncito de opciones que se encuentra al lado de cada elemento del menu que estas diseñando...en las opciones existe algo llamado "saltar por" hay le colocas tu condicion..en este caso seria:

primero digamos que solo tienen acceso al menu cuando el nivel de usuario sea igual a 1

nNiv <> 1

Y con eso el elemento del menu no estara disponible.

Si necesitas mas ayuda o no entendiste escribeme

David F. Amador Tapia
Tecnologo en Sistemas