Buscar en el Blog

miércoles, 1 de febrero de 2017

PowerBuilder - usando Treeview - Creando un Menu para nuestro sistema


Lo primero será agregar un treeview al que llamaremos tv_menu y un boton. Dentro del  boton es donde vamos a programar a modo de ejemplo. Una vez terminado, ustedes pueden colocar el codigo dentro de constructor del treeview.

El siguiente paso es agregar imagenes al treeview, los cuales seran usados para ser asignados a los items del treeview.

El número que esta al lado izquierdo de la imagen, indica el indice asignado de la imagen. Por ejemplo si deseamos asignar la imagen Asterisk a un item, entonces usaremos el indice 2.

Para insertar los items en el treeview usaremos la funcion insertitemlast.

control_treeview.insertitemlast( padre, "texto que aparecera",indice_de_la_imagen)


El primero parametro que recibe la funcion es el indice del padre, al iniciar el primer item o los primeros items, se le asigna el numero cero. El siguiente parametro es el texto que aparecera en el item y el tercer parametro es el indice de la imagen que se mostrará al lado del item.

Conforme se vayan insertando items, se van asignando automaticamente un indice correlativo.



Si queremos insertar un item hijo a compras el código seria así.


//hijos de Compras
tv_menu.insertitemlast( 3, "Proveedores",5)//11



Codigo para insertar los items al treeview
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//padres
tv_menu.insertitemlast( 0, "Almacen",1)//id 1
tv_menu.insertitemlast( 0, "Ventas",2)//id 2
tv_menu.insertitemlast( 0, "Compras",3)//id 3
tv_menu.insertitemlast( 0, "Configuracion",4)//id 4
//hijos

//hijos de almacen
tv_menu.insertitemlast( 1, "Tablas",7)//5
tv_menu.insertitemlast( 1, "Articulos",8)//6
tv_menu.insertitemlast( 1, "Grupos",9)//7

//hijos de Ventas
tv_menu.insertitemlast( 2, "Clientes",4)//8
tv_menu.insertitemlast( 2, "Documento de Venta",2)//9
tv_menu.insertitemlast( 2, "Reportes",3)//10

//hijos de Compras
tv_menu.insertitemlast( 3, "Proveedores",5)//11
tv_menu.insertitemlast( 3, "Documento de Compra",4)//12
tv_menu.insertitemlast( 3, "Reportes",7)//13

//hijos de Configuracion
tv_menu.insertitemlast( 4, "IGV",8)//14

//hijos de reporte de compras

tv_menu.insertitemlast( 13, "Reportes mensual",6)//15

/*********************************************************/



Si ejecutamos la aplicacion veremos que los items aparecen todos colapsados. Para desplegar los items usaremos el siguiente código.

long ll_tvi
int i

ll_tvi = tv_menu.FindItem(RootTreeItem! , 0)
tv_menu.ExpandAll(ll_tvi)
for i=1 to 3
    ll_tvi = tv_menu.FindItem(NextTreeItem! ,ll_tvi )
    tv_menu.ExpandAll(ll_tvi)

next



Si queremos abrir una ventana cuando presionen dos veces sobre un item, entonces debemos programar en el evento doubleclicked.
Para saber en que item se realizo el doble click, usamos el argumento handle del evento. Este argumento contiene el numero que indica el indice del item. Entonces para abrir una ventana sabiendo el numero de item seleccionado, usaremos choose case.


choose case handle
    case 5
        open(w_ventana1)
    case 6

        //otra ventana
    case 7

      //otra mas
end choose


Nota: Debe agregar una ventana llamada w_ventana1 al proyecto.


No hay comentarios:

Publicar un comentario en la entrada

Google+ Seguidores