Menu

Hola, me podrías aconsejar de como puedo hacer para mostrar o no iconos y menu de herramientas para determinados usuarios de mi sistema, o es mejor solo deshabilitar las opciones o crear un nuevo menu y cargarlo en tiempo de ejecución ¿si se puede?, oriéntame un poco por favor
Gino

1 Respuesta

Respuesta
1
En una ocasión me encontré con este problema y lo resolví utilizando varias tablas,
*- tabla para los nombres de los menús
*- tabla para el detalle de las opciones del menu (relacionada con la anterior)
*- tabla para relacionar el menu con los usuarios
1era. Tabla
------------
Menu
Descripción
2da. Tabla
-----------
Menu
Objeto (campo para el nombre del objeto)
Status (activo, inactivo)
3era. Tabla
Usuario
Menu
Estas tablas son accesadas por el usuario dependiendo de que este se encuentre registrado en la tabla 3. y a partir de esta relaciona el menu con sus opciones, cada opción esta relacionada con el objeto físico del menu del programa y a su vez tiene un campo de estatus que contiene verdadero o falso para definirlo en la propiedad de enabled (si quieres que pueda verse pero no usarse) o en la propiedad visible ( si definitivamente no quieres que se vea)
La parte programática que llena la tabla 2, deberá leer el menu de tu programa, utilizando la técnica de la recursividad, para descubrir los diferentes niveles del menu.
Esta sera una ventana tipo child la cual lee el menu de la ventana main, y la pinta en un treeview, en este es posible hacer un click en cada opción y definir falso o verdadero, el cual relaciona el activo o inactivo, una vez hecho esto el resultado es grabado en la tabla 2, y cuando el usuario ingrese al sistema por medio de su username, este volverá a pasar por la rutina de lectura del menu de la aplicación y accesar la tabla 2, relacionando el nombre del objeto (de cada opción del menu) y modificando el valor de la propiedad enabled o visible, (depende de lo que quieras presentar).
Notas adicionales
El menu de la pantalla main es accesado directamente por su nombre, por ejemplo m_aplicacion
La lectura de cada uno de los objetos u opciones es por medio de un vector (item[]) en este se define cada uno de los objetos del menu, (ver ayuda menu) estos por supuesto tienen el nombre de la clase (nombre del objeto), el cual sera la clave para relacionar la tabla con la opción, y por ende dar el permiso que necesitas
Por supuesto que cada usuario estará relacionado con un menu, puesto que solo una configuración puede tener,
Si la cantidad de usuarios es mucha, entonces puedes incrementar una 4a. Tabla la cual defina un grupo y luego el grupo relacione usuarios, en este caso el grupo estará relacionado al menu y todos los usuarios que estén relacionados con el grupo tendrán las características de este.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas