lunes, 12 de octubre de 2009
MDI con Menu Treeview
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
miércoles, 10 de junio de 2009
USA y Perú: Los países que mas usan PowerBuilder
Estados Unidos (34.25%)
Perú (19.51%)
Francia (7.61%)
México (7.16%)
España (5.42%)
Aca les dejo la Fuente:
http://www.powerbuilder.org/modules.php?name=News&file=article&sid=376&mode=thread&order=0&thold=0
viernes, 20 de marzo de 2009
Conexión a SQL Server 2000 desde PowerBuilder 10.0
1. Buscamos el Driver OLE Microsoft OLE DB, luego clic derecho y elegimos New Profile...
2. Luego seguimos el sgte paso:
3. Clic en la pestaña Preview, luego clic en boton Copy, luego clic en el boton Test Connection, si la conexion es satisfactoria o exitosa, nos mostrara un mensaje (Connection successful), por ultimo clic en Aceptar
martes, 17 de febrero de 2009
Fuentes de datos (Data Source)
- Quick Select
- SQL Select
- Query
- External
- Stored Procedure
Quick Select: Se utiliza para recuperar los datos desde una sola tabla: solo es necesario seleccionar las columnas, los criterios de selección y el ordenamiento.
SQL Select: Permite tener mas control sobre la recuperación de datos. Permite consultas correlacionadas, columnas computadas, agrupamiento de filas y operaciones complejas de recuperación de datos.
Query: Se puede emplear cuando la fuente de datos proviene de una consulta creada y almacenada con el Query Painter.
Stored Procedure: Permite recuperar los datos a través de procedimientos almacenados en la base de datos.
Estilo de presentación de DataWindow
Composite:
Permite mostrar simultáneamente mas de un objeto DataWindow en un solo control DataWindow.
Crosstab:
Presenta los datos como una tabla de dos entradas donde las etiquetas de filas y columnas representan el dominio de dos variables, y las intersecciones de filas y columnas el resultado de una operación ejecutada con una tercera variable.
Freeform:
Permite organizar la presentación de los datos en forma de ficha. Se utiliza para las ventanas de entrada de datos.
Graph:
Muestra una representación gráfica de los datos.
Grid:
Es similar al estilo tabular ya que muestra los datos en un reticulado de filas y
columnas. A diferencia del estilo tabular, el usuario puede reordenar las columnas en
tiempo de ejecución.
Group:
Es un DataWindow tabular que muestra los datos agrupados según determinado criterio.
Label:
Se utiliza para generar etiquetas similares a las etiquetas de correo.
N-Up:
Es similar a un reporte de N columnas. Muestra mas de una fila de datos en una línea de impresión.
OLE 2.0:
Permite especificar una aplicación externa que se utilizará como un servidor OLE para gestionar la presentación del DataWindow.
RichText:
Se utiliza para incorporar datos dentro de un texto a partir de un archivo en formato RTF. Es útil para la elaboración de cartas modelo y en la combinación de
correspondencia (mail merge).
Tabular:
Muestra los datos en formato tabla (filas y columnas).
TreeView:
Disponible desde la versión 10.5. Presenta la información en formato de árbol jerárquico.
lunes, 2 de febrero de 2009
DataWindow Buffers
- Original
- Primary
- Deleted
- Filtered
Cuando se recuperan los datos de la base de datos, utilizando la función Retrieve(), esto se recupera en el buffer Primary y los demas buffers se mantienen vacios hasta realizar una actividad que pueda llevarlos a ellos.
Adicionando Filas
Se puede agregar filas al DataWindow con las funciones InsertRow (), ImportFile (), ImportString(), ImportClipboard() todas añaden o adicionan filas al buffer primary, pero no tiene ningún efecto sobre otros búferes, como se muestra en la siguiente figura.
Borrando Filas
Cuando se elimina una fila con la función DeleteRow(), la fila o las filas son transferidos desde el buffer Primary al buffer Deleted. Por ejemplo, si elimina Producto 5, los buffer se verán así:Filtrando Filas
Cuando se filtran las filas utilizando la función SetFilter(), todas las filas filtradas que residen en el buffer Primary son movidas al buffer Filter. Por ejemplo, si el criterio del filtro product_no debe ser superior a 3, los buffers se verán así:
product_no > 3
Modificando Filas
Si modifica una fila en el DataWindow, la fila en el buffer Primary es modificada y el valor original se copia en el buffer Original. Por ejemplo, supongamos que se cambia la descripción del product_no 4 de "Table lamp" a "Desk", los buffers se verán así:
sábado, 24 de enero de 2009
10 Razones para ser un desarrollador de PowerBuilder
domingo, 18 de enero de 2009
Standard Visual - User Object
Creando un Standard Visual - User Object
Para crear un Standard User Object, presionamos click en el icono New del PowerBar y escogemos Standar Visual del Tab PB Object.
Creando un CommandButton User Object
Escogemos CommandButton
Nota: Es muy común usar CommandButton's en nuestras apliaciones, entonces para dar un ejemplo de herencia en PowerBuilder crearemos un CommandButton User Object base o ancestro con nombre u_cb.
Lo sgte que tenemos que hacer es heredar del objeto u_cb (Standard Visual CommandButton Ancestro), buscamos el objeto u_cb, le da damos click derecho y elegimos Inherit.
Luego Crearemos el CommandButton Guardar, que va ser descendiente de la clase u_cb
Y asi sucesivamente creamos los CommandButton's que nuestra aplicación necesite ejemplo: "Nuevo, Eliminar, Imprimir, Modificar, Eliminar, Cerrar, etc"
User Object
Existen dos tipos de User Object:
1 - Visual User Objects
- Custom Visual
- External Visual
- Standard Visual
2 - No Visual(Class)
- Custom Class
- Standard Class
Background Color
Al dar le click nos mostrara la sgte ventana, digitamos lo sgte:
if ( getrow() = currentrow() , rgb(192, 192, 192) , rgb(255, 255, 255) )
Click en Verify, para verificar si es codigo ingresado es correcto y si es asi click en OK, listo eso es todo.
Desactivar una columna en DataWindow
1 - Es cierto, la columna está protegida.
Sintaxis:
dw_control.Object.columnname.Protect
Ejemplo:
dw_1.Object.num_doc.Protect = 1
Ó
dw_1.Modify("num_doc.Protect=1")
DataWindow Edit Format (dd/mm/yyyy)
Desplegando o creando archivos ejecutables
1 - Para crear los PBD's o archivos ejecutables, tenemos que crear un objeto Project.
2 - Ya creado el objeto Project, en el Painter del mismo:
- 1: Executable File Name, Nombre del Archivo Ejecutable
- 2: Rebuild, elegir Full
- 3: Activar los PBL's que seran PBD's
3 - Realizado todo lo anterior en el PowerBar dar click al icono Desploy para generar los PBD's
Espero sea de utilidad, cualquier duda o comentario solo escriban que gustoso respondere.