FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
TreeView para manejar perfiles de usuario
Hola Foro!
Tengo un sistema dividido en varios módulos. El sistema tiene control de acceso y cada usuario tiene un perfil que le permite o no ingresar a ciertos módulos y ejecutar ciertas tareas. Tengo una tabla de usuarios y una de perfiles. Cada usuario esta relacionado con un perfil. La cuestión es que necesito armar en un TreeView que me muestre cada módulo con sus opciones para chequear o deschequear segun sea el caso. Un ejemplo de como sería la estructura del arbol es el siguiente > Modulo de Inventario >>> Agregar >>> Modificar >>> Eliminar >>> Módulo de Rubros >>>>>> Agregar >>>>>> Modificar >>>>>> Eliminar > Modulo de Clientes >>> Agregar >>> Modificar >>> Eliminar Todas las opciones del árbol deben poderse marcar o desmarcar. En caso de desmarcar un nodo, se tienen que desmarcar los hijos también. Trate de probar con una tabla intermedia que tenga la estructura del arbol, para saber de alguna forma que módulo depende de cual... pero no pude avanzar mucho porque no supe como obtener los valores del árbol para guardar en la base de datos. Si alguien tiene una idea que me pueda aportar para resolver este asunto, le agradezco de antemano. Saludos!
__________________
Martin Zalazar |
#2
|
||||
|
||||
Hola martinzcr,
Tal vez esto pueda darte una idea, si bien no lo que tu buscas. El problema se resume en como "explorar" cada nodo y su subnodo. Como comentario: hace tiempo vi un mensaje de los foros acerca de un sistema de ventas hecho en Delphi que se encuentra disponible en sourceforge.net, (Buscalo por ventas). Me asombró como maneja el tema de los perfiles y las opciones a habilitar/deshabilitar en los menus. Al comienzo cuesta entenderle la mano a la "fórmula". Si estas interesado... puedes darle una ojeada, puede que te sirva o te otra perspectiva. Saludos, |
#3
|
||||
|
||||
Delphius, gracias por responder. Voy a bajar el programa para ver como trabaja. Cuelquier comentario vuelvo a escribir.
__________________
Martin Zalazar |
#4
|
||||
|
||||
Me parece bien que te tomes el tiempo para "estudiar" lo que te pasé.
Recuerda que se ha dicho mucho sobre el TreeView en los foros. Te aconsejo que primero busques y si hay algo en donde no entiendes o te falla avisas. Saludos, |
#5
|
||||
|
||||
Hola martinzcr
Yo tengo implementado un sistema consistente en lo siguiente: Una tabla: Código:
NOMBRE VAR_CHAR_15 NOT NULL ---->CODIFICADO PASSWD VAR_CHAR_15 NOT NULL ---->CODIFICADO PRIVILEGIOS BLOB El campo privilegios, viene a ser un INI con todas las opciones del programa, mas o menos así: Código:
Cuentas Bancarias=S Máquinas=S Materiales=S OT Fijas=S Libreta de Contactos=S Buscar Contactos=S Pedidos de Clientes=S Ofertas a Clientes=S OT=S Partes Diarios=S Horas Trabajo Operarios=S Pedidos a Proveedores=S Petición de Presupuesto=S Albaranes=S Facturas=S Notas de Entrega=S Configuración=S Ejercicios=N Gestor de Correo=S Usuarios=S En el Form donde se encuentra el TreeView, el procedimiento que asisna los elementos, viene a ser algo así....
Dos procedimientos de carga y grabación de datos, necesarios para la gestión:
Y finalmente, verás que se cita por ahí un objeto llamado seguridad, que no es otra cosa que un objeto derivado de la clase TCollection, que contiene una lista (TStrings) de todos los objetos TAction del programa y que los activa o desactiva en base a las selecciones hechas por el usuario. El código de seguridad, es este:
A la hora de ejecutar el programa y establecer la parametrización de cada usuario, sería algo tal como esto...
Verás que la table IBTableUsuarios, ya estaría posionada sobre el usuario en cuestión, por que previamente se habría identificado.... (otra cuestión aparte) Básicamente, eso es todo. Lo único comentarte que en mi sistema, utilizo un TreeView normal y corriente, por lo que para que comentas y la forma en la que lo planteas: Cita:
Espero que te sirva de orientación. NOTA: El código está adaptado a un programa específico y no garantizo que su uso tal cual está, vaya a funcionar en cualquier otro programa. Saludos.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO Última edición por ArdiIIa fecha: 08-08-2007 a las 11:36:46. |
#6
|
||||
|
||||
Cita:
// Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Para manejar Paradox | abasoleno_69 | Conexión con bases de datos | 5 | 19-09-2006 17:02:39 |
Componentes para manejar BD corrupta | zam | Conexión con bases de datos | 0 | 31-05-2005 16:57:38 |
¿Cómo obtener y manejar datos del usuario activo? | JaviP | Firebird e Interbase | 3 | 13-05-2005 23:28:04 |
Ayuda, para manejar fechas, en sql | Ariatna | SQL | 4 | 27-08-2004 22:11:53 |
componente para manejar un movil gsm | coletaum | Varios | 1 | 17-09-2003 11:49:28 |
|