La Web del Programador: Comunidad de Programadores
 
    Pregunta:  50667 - POWER BUILDER 7.0 - MENU
Autor:  Loreto Vargas Allende
Hola! Sres., necesito saber cómo puedo asignar un nombre a un menú pero a través de código y no en diseño.

Esto para habilitar o deshabilitar el menú conforme al perfil que posea el usuario que se conecte a la aplicación.

Gracias

  Respuesta:  NN
Buenas

Seria crear un objeto treview, y a este agregarle los menus dinamicamente de acuerdo al usuario.

buena tarde

  Respuesta:  carlos martin
Hola Loreto, no se pueden asignar nombres a los menus de forma dinamica, pero lo que si se puede es habilitar o deshabilitar por medio de los identificadores de los menus, te explico con un ejemplo:

Esto es una función que deshabilita opciones de menu de forma dinamica, llamandose así misma de forma recursiva, cuando una opción de menu tiene subopciones:

Llamamos a esta función pasando por referencia la opción de menu que queremos deshabilitar.

// pvm_menu es un argumento de la función de tipo menu y pasado
// por referencia.

Nombre de la función f_desabilitar_menu

// definición de variables
menu lm_menu
integer li_item , li_for

// deshabilitamos la opción del menu recibida
pvm_menu.enabled = false
pvm_menu.toolbaritemvisible = false

// comprobamos si la opción recibida tiene subopciones
if UpperBound(pvm_menu.item[]) > 0 then

// número de subopciones de la opción recibida
li_item = UpperBound(pvm_menu.item[])

// bucle para deshabilitar cada una de estas opciones
for li_for = 1 to li_item

// guardamos la opción de menu en una variable de tipo
// menu
lm_menu = pvm_menu.item[li_for]

// Llamamos a la misma función con la opción de menu
// que hemos guardado en la variable.
f_desabilitar_menu(lm_menu)

next
end if
return 1

//========

Espero que te sirva, si tienes alguna duda, no dudes en enviarme un correo.