Mostrando entradas con la etiqueta TreeView. Mostrar todas las entradas
Mostrando entradas con la etiqueta TreeView. Mostrar todas las entradas

martes, 4 de agosto de 2015

Menu Outlook en PowerBuilder

Siempre se ha buscado la manera de que nuestras aplicaciones PowerBuilder se vean mejor, por tal muchos hemos puesto el menú de opciones en un objeto TreeView a un lado del window principal ya sea tipo mdi! o mdihelp!.

He utilizado el componente Outlook Style Bar de PB Ultimate Suite para poder dar a mi Menu TreeView el cual se carga desde un objeto Menú  el estilo del Menú Outlook.

Si se quiere separar por módulos se asocian objetos TreeViews y podriamos tener una presentación moderna en las aplicaciones PowerBuilder como muestra la siguiente imagen:


Consultas al correo jorgebarzola@gmail.com

domingo, 25 de julio de 2010

Función que carga Menú a un TreeView

Se debe crear una función en la ventana que contenga el Objeto TreeView, en mi caso mi función tiene por nombre of_loadmenu, con dos parametros:
am_menu de tipo Menu
ai_nodoarbol de tipo Integer
Copiar y Pegar:

Long li_i, li_Lugar ,li_TotSub, li_NuevoNodo
String ls_Nombre
TreeViewItem ltvi_TreeItem

FOR li_i = 1 TO UpperBound(am_menu.item)
//Elinina el simbolo & de la etiqueta del menu
li_lugar = Pos(am_menu.item[li_i].Text,"&")
IF li_lugar > 0 THEN
ls_Nombre = Replace(am_menu.item[li_i].Text,li_lugar,1,"")
ELSE
ls_Nombre = am_menu.item[li_i].Text
END IF
ltvi_TreeItem.label=ls_Nombre
//Para diferenciar submenus de opciones
li_TotSub = UpperBound(am_menu.item[li_i].item)
IF li_TotSub>0 THEN
ltvi_TreeItem.Bold = TRUE
ltvi_TreeItem.PictureIndex = 2
ltvi_TreeItem.SelectedPictureIndex = 2
ELSE
ltvi_TreeItem.Bold = FALSE
ltvi_TreeItem.PictureIndex = 3
ltvi_TreeItem.SelectedPictureIndex = 3
END IF
li_nuevoNodo = This.InsertItemLast(ai_nodoarbol,ltvi_TreeItem)
of_loadmenu(am_menu.item[li_i],li_nuevoNodo)
NEXT

Para seguir con el ejemplo, en el Evento Open de la Ventana:

m_menu_principal lm_Menu
lm_Menu = CREATE USING m_menu_principal

//Insertando Item Principal al TreeView
Integer li_Integer
li_Item = This.InsertItemLast(0, "Menu Principal", 1)


//Invocando a la Funcion of_load_menu para cargar el Objeto Menu al Objeto TreeView
of_loadmenu(im_Menu, li_Item)

Nota 1: Agradecimiento a Raúl Valverde quien ya que hace mucho tiempo atras dejo este código en el Foro de Sybase en Español.

Nota 2: Para el ejemplo se detalla crear la función en la ventana que contiene al Objeto TreeView pero ya depende de cada uno como implementar esta función en mi caso tengo un Standar User Object de tipo TreeView en el cual tengo esta función of_loadmenu.

lunes, 12 de octubre de 2009

MDI con Menu Treeview

Hola a todos, despues de mucho tiempo posteando, bueno nose si sera el nombre correcto (MDI con Menu Treeview) quizas sea mejor MDI dividido; bueno es lo de menos. Seguiremos los sgtes pasos:

1 - Suponiendo que ya tenemos nuestro window mdi (ejemplo w_frame)
2 - Suponiendo tambien que tenemos nuestro menu principal (ejemplo m_frame)
3 - Crearemos un Objeto Window (w_menu_treeview), tipo Child, al cual le agregaremos un objeto TreeView.

4 - Activar la propiedad LinesAtRoot del Objeto TreeView, esto nos permite mostrar el desplazamiento al estilo explorer.

5 - En el Evento Open de w_frame copiar y pegar este script:

//Se abre w_menu_treeview
Open(w_menu_treeview, This)

//Posicionando w_menu_treeview a un lado del frame
w_menu_treeview.Y = w_menu_treeview.Y + 112

6 - En el Evento Resize de w_frame copiar y pegar este script:

IF IsValid(w_menu_treeview) THEN
w_menu_treeview.Height = NewHeight - w_menu_treeview.Y - mdi_1.MicroHelpHeight
mdi_1.Width = NewWidth - w_menu_treeview.Width
mdi_1.Height = w_menu_treeview.Height
END IF

7 - En el Evento Constructor del Objeto TreeView de w_menu_treeview, solo por dar un ejemplo copiar y pegar este script:

Long ll_Expandir, ll_Item, ll_SubItem

ll_Item = tv_1.InsertItemLast(0,"Archivo", 1)

ll_SubItem = tv_1.InsertItemLast(ll_Item,"Window", 2)

ll_Expandir = tv_1.FindItem( RootTreeItem!, 0 )
tv_1.ExpandAll( ll_Expandir )

8 - En el Evento SelectionChanged del Objeto TreeView de w_menu_treview, tambien para el ejemplo copiar y pegar este script:

Integer li_Ind
String ls_MenuEtiqueta

TreeViewItem l_tvi

This.GetItem(NewHandle, l_tvi)

ls_MenuEtiqueta = l_tvi.Label

Choose Case ls_MenuEtiqueta
Case "Window"
OpenSheet(w_window, w_frame, 1, Original!)
End Choose


Disculpas por no subir imagenes, estoy en el trabajo y mi explorer es limitado. Pueden descargar el archivo ejemplo de:

http://www.megafileupload.com/en/file/143776/MDI-Treeview-rar.html

sábado, 26 de abril de 2008

Obtenga el número de items en un Treeview

CONSTANT integer TV_FIRST = 4352
CONSTANT integer TVM_GETCOUNT = TV_FIRST + 5


long ll_tvitemcount
ll_tvitemcount = Send ( handle(tv_1), TVM_GETCOUNT, 0, 0 )

Poblando un TreeView

Muchas veces necesitamos usar el objeto TreeView y poblarlo con datos de Tablas de nuestra base de datos. Para este ejemplo tenemos que conectarnos a la base de datos demo, les dejo el link para que puedan descargar el archivo desarrollado en PowerBuilder 10.5: