Power Builder - Cargar un menu en un treeview dinamicamente

 
Vista:

Cargar un menu en un treeview dinamicamente

Publicado por Miguel (64 intervenciones) el 18/06/2001 09:50:32
Pues eso, me estoy complicando la vida para cargar el menu de la ventana en un treeview. Seguro que alguno de vosotros lo ha hecho antes y me quiere echar una mano...

Muchas 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

RE:Cargar un menu en un treeview dinamicamente

Publicado por Pablo Martinez (7 intervenciones) el 19/06/2001 16:25:52
Creo que esto te ayudara, es una carga de un programa, carga dinamicamente la tablas de el sistema en un treeview:

##codigo##
treeviewitem tablas
string prop,tabla,ant_prop
long padre,hijo

padre = 0
SetPointer(HourGlass!)
DECLARE propietario CURSOR FOR
SELECT "ALL_ALL_TABLES"."OWNER",
"ALL_ALL_TABLES"."TABLE_NAME"
FROM "ALL_ALL_TABLES"
WHERE ("ALL_ALL_TABLES"."OWNER" <> 'SYS') and
("ALL_ALL_TABLES"."OWNER" <> 'SYSTEM')
ORDER BY "ALL_ALL_TABLES"."OWNER" ASC , "ALL_ALL_TABLES"."TABLE_NAME" ASC;

open propietario;
fetch propietario into :prop , :tabla;
do while sqlca.sqlcode = 0
if prop <> ant_prop then
tablas.label = prop
tablas.data = "prop"
tablas.level = 1
tablas.pictureindex = 1
tablas.selectedpictureindex = tablas.pictureindex
padre = tv_propietarios.InsertItemlast (0, tablas )
end if
tablas.label = tabla
tablas.data ="tabla:" + prop + "@" + tabla
tablas.level = 2
tablas.pictureindex = fw_cuentacampos(tabla,prop)
tablas.selectedpictureindex = tablas.pictureindex

tv_propietarios.InsertItemlast (padre, tablas )
ant_prop = prop
fetch propietario into :prop , :tabla;
loop
close propietario;
SetPointer(Arrow!)
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:Cargar un menu en un treeview dinamicamente

Publicado por Miguel Angel (64 intervenciones) el 19/06/2001 17:01:32
Gracias, pero despues de borrar todo lo que habia hecho y replantearme la cuestion mediante una funcion recursiva (aunque soy un detractor de estas), he llegado a la solucion de mi problema, que pongo aqui por si le sirve a alguien:

Se hace una llamada a esta funcion:

leer_menu(tv_1, parentwindow().menuid, 0)

... donde parentwindow() es la ventana que tiene el menu, podria ser normalmente "this", pero yo la uso en una "child"; tv_1 es evidentemente el treeview que hemos puesto, y 0 es el lugar donde vamos a leer (el root del tv)

La funcion la definimos como:

[none] leer_menu(treeview tv, menu men, int padre)

int cont, donde

for cont = 1 to upperbound(men.item)
donde = tv.insertitemlast(padre, men.item[cont].text, 1)
leer_menu(tv, men.item[cont], donde) //viva la recursividad!
next

Pues eso, que con cuatro lineas escritas en 2 minutos se han acabado 2 dias de pesadilla en los que garabateé mas de 150 lineas ilegibles.

Que me sirva de lección, mejor pensar y programar que programar y pensar. : )
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:Cargar un menu en un treeview dinamicamente

Publicado por Pablo Martinez (7 intervenciones) el 19/06/2001 19:00:53
jeje, bonita funcion recursiva, pero como a ti la recursividad no me mola, me parece el recurso de ultima opcion.
talue
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:Cargar un menu en un treeview dinamicamente

Publicado por Alejandro (1 intervención) el 12/03/2007 16:02:53
Podria enviarme el codigo de la función

leer_menu(tv_1, parentwindow().menuid, 0) ?

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

RE:Cargar un menu en un treeview dinamicamente

Publicado por Josué (4 intervenciones) el 14/03/2012 16:14:54
Buenas a todos

Miguel, en el treeview que construiste a partir del menú, tienes la navegación disponible en el tv?

A los todos los presentes, cuando construyo un treeview, ¿puedo programar una navegación para los elementos del treeview? para que cuando haga click en una opción del tv tenga el mismo comportamiento que si hiciera click en el menú

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

RE:Cargar un menu en un treeview dinamicamente

Publicado por Francisco (2 intervenciones) el 07/02/2009 19:53:47
La cargas con pfc's, utilizas menos codigo
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