Power Builder - Abrir Ventanas

 
Vista:

Abrir Ventanas

Publicado por Giorgio (22 intervenciones) el 08/07/2010 16:44:03
Estimados implemente el codigo del amigo Raul:

http://forums.sybase.com/cgi-bin/webnews.cgi?cmd=item-6612&multi=&group=sybase.public.powerbuilder.spanish.general&utoken=1f83.4bd9fff4.1804289383@temp:0_~2-1af6bd4d5e98eea00ee500

Que me permite cargar un Menu Object a un TreeView Object, existe manera de poder abrir las ventanas dinamicamente desde el TreeView Object, mi menu va creciendo con mas opciones y por eso me gustaria saber si existe un codigo que me permita desde el TreeView Object hacer caso al evento clicked de los items de mi menu y asi ahorrar tiempo y codigo.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Abrir Ventanas

Publicado por JeinnerH (646 intervenciones) el 08/07/2010 18:13:44
Puedes llamar una función desde el evento clicked del TreeView, al que le envías cuál es la opción que se está escogiendo. Y en la función, haces el llamado a la ventana correspondiente.

No sé si a eso te refieres o algo más especializado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir Ventanas

Publicado por Giorgio (22 intervenciones) el 08/07/2010 19:21:51
Haber explico:

Tengo mi Menu Object ejemplo:

-Mantenimiento (Item)
---Mantenimiento 1 (subitem)
---Mantenimiento 2 (subitem)
---Mantenimiento 3 (subitem)
-Reportes (Item)
---Reporte 1 (subitem)
---Reporte 2 (subitem)
---Reporte 3 (subitem)
..
etc

En el evento Clicked de cada subitem tengo ejemplo:

OpenSheet(w_ventana, w_frame, 1, Original!)

En un TreeView cargue el Menu Object con todas las opciones.

Ahora desde desde el TreeView con algun codigo que puedan haber implementado abrir las ventanas de cada subitem de mi menu, mejor dicho desde el TreeView acceder al evento clicked de cada subitem, es posible esto...?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Abrir Ventanas

Publicado por JeinnerH (646 intervenciones) el 08/07/2010 22:29:27
Bueno, hasta donde puedo entender en el código que pusiste de ejemplo, lo que se hace es únicamente insertar las opciones del menú en el Treeview, de ahí en adelante, no se hace nada más.

Por lo que el manejo de qué sucede cuando se selecciona alguna opción del Treeview, se debe implementar en este mismo objeto. Sin que haya alguna relación con el menú del cual se origina.

Por tanto, a mi parecer lo que podrías hacer sería, implementar manualmente el llamado en el click del treeview, a cada ventana correspondiente.

Otra posibilidad, a la que le veo algo de complejidad, sería, crear un objeto no visual, del tipo del menú, y al momento de que se escoja alguna opción del treeview, se llame una función que valide cuál es el nombre de la opción de menú equivalente y ejecute el click de esta.

Algo como esto:

menu mi_menu

mi_menu=CREATE m_Menu

// Buscar opción del menú
For li_1=1 to UpperBound(mi_menu.item)
If mi_menu.item[li_i].Text = as_opcion_parametro_nombre_menu Then
// Esta Parte no se Cómo se Haría, Porque Hay que Darle Toda la Ruta de la Opción del Menú.
mi_menu.m_opcion1.proyectos.Event clicked()
End If
Next

DESTROY mi_menu

No se me ocurre alguna forma de asignar el código del clicked del menú al clicked del treeview en tiempo de corrida. En esto el Powerbuilder no es tan amigable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir Ventanas

Publicado por Giorgio (22 intervenciones) el 09/07/2010 21:59:30
Claro ya he tengo una funcion:

mi_menu.m_opcion1.proyectos.TriggerEvent(Clicked!) esto es lo normal

Pero dinamicamente quisiera algo:

im_menu.im_item.im_subitem.TriggerEvent(Clicked!)

Algo asi tengo para recuperar nombre del item y del subitem

ls_Item = im_menu.item[ll_Item].ClassName()
ls_SubItem = im_menu.item[ll_Item].Item[ll_SubItem].ClassName()

Recupera los nombres del Item y del SubItem del menu correctamente pero cuando coloco:

im_menu.ls_Item.ls_SubItem.TriggerEvent(Clicked!)

Me lanza un error como puedo declarar esas variables ls_Item y ls_SubItem de que tipo o nose.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Abrir Ventanas

Publicado por JeinnerH (646 intervenciones) el 09/07/2010 22:52:18
Al parecer cada item es de tipo menú.

Puedes intentar esta asignación:

menu lm_item

lm_item=im_menu.item[ll_item]

Luego ver si se puede ejecutar:
lm_item.Event Clicked()

No se si hay que hacerle un CREATE a lm_item, tendrías que probar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Abrir Ventanas

Publicado por L.Barzi (133 intervenciones) el 09/07/2010 23:01:46
No es necesario usar ClassName()

im_menu.item[ll_Item].Item[ll_SubItem].TriggerEvent(Clicked!)

Claro que el codigo de JeinnerH es valido tambien, no es necesario el CREATE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar