La Web del Programador: Comunidad de Programadores
 
    Pregunta:  49955 - EJECUTAR UN STRING COMO UN OBJETO
Autor:  sergio jauregui ponce
como podria ejcutar un string como un objeto , lo necesito para realizar permisos a los punto de menu por usuario, lo que he hecho es poner los puntos de menu en una tabla , para despuer jalarlos y ejecutarlos
eje:
ls_cadena = m_menu.m_b.m_logistica.m_proveedor
ls_cadena.enabled = false
m_menu.m_b.m_logistica.m_proveedor.enabled = false
//ejecutar esta cadena segun el usuario

  Respuesta:  Juan Copara Francia
que tal lo que intentas hacer para los permisos de usuario es correcto, pero no de esa forma ps; vamos por partes para que me entiendas:

1) esta bien que hayas creado una tablita donde almacenes los ptos del menu, ahora a esa tabla agregale 2,3 o 4 campos mas dependiendo del nivel del menu que quieras proteger. si tuvieras un menu de este tipo:
Archivo Mantenimiento Reportes
Articulos Compras Registro de Compras
Marcas Ventas Registro de Ventas
aqui tienes un nivel de menu 2, entonces a tu tabla le agregarias los campos item1 numeric(3,0) y item2 numeric(3,0) y ademas un campito flag char(1)
tu tabla quedaria de este modo: Tabla_menu
menu_nom item1 item2 flag usuario
articulos 1 1 * usu1
marcas 1 2 * usu1
compras 2 1 & usu1
ventas 2 2 & usu1
y asi sucesivamanete todas las opciones de tu menu
* quiere decir que el usuario esta permitido
& el usuario no tiene los permisos

2) ahora una vez creada tu tabla de menu_usuarios en el open de tu ventana mdi puedes crearte un evento o una funcion segun te convenga mas para que haga la validacion de los permisos del usuario que ingresa:

int it1,it2
select item1,item2 into: it1,:it2 from tabla_menu_usuarios where usuario=:usuario_actual and flag='&'
este select sera para capturar unicamente los items donde el usuario no temga permiso, claro tu lo harias con un cursor para verificar toda la tabla

3) ahora en la variable it1 y it2 tienes almacenado los items del menu donde el usuario no tiene permiso y para desactivar los items del menu lo harias de esta forma:

w_mdi.menuid.item[it1].item[it2].enabled = false

desactivara los items de tu menu asociado a tu ventana mdi;

ahora si tienes mas niveles en el menu todio es cuestion de que aƱadas los items que necesites a tu tabla

espero haber sido claro. Saludos