miércoles, 8 de junio de 2011

Creando nuestra ventana w_frame - Heredado de w_base

Vamos aplicar la herencia con PB, nos ubicamos en w_base y damos click en Inherit


* Grabamos la ventana heredada de w_base con el siguiente nombre  w_frame :



Como nos damo cuenta si una ventana ha sido heredada de otra ?
El encabezado de cada ventana abierta nos dice si ha sido heredada.



Tambien la parte del codigo de la ventana padre se diferencia por otro color (w_base).


Agregando los eventos de usuario comunes que luego enlazaremos con cualquier menu.

ue_nuevo      (Nuevo Registro)
ue_buscar     (Buscar Registro)
ue_eliminar   (eliminar Registro)





ue_guardar    (Guardar Registro)
ue_imprimir   (Imprimir )
ue_anular     (Anular Registro)

martes, 7 de junio de 2011

Creando nuestra ventana base - w_base

Para Agregar funciones nos ubicamos en la Pestaña Function List.

Creamos la una ventana y lo grabamos con el nombre w_base


Le agregamos dos Funciones a la ventana w_base

of_posicion :
Esta funcion nos ubica la ventana donde nosotros queremos que aparesca.


of_centrar :
Centrar la ventana y enviando las cordenas a la funcion of_posicion.


lunes, 6 de junio de 2011

DataWindow - Standard Visual Parte III

dw_enter :

Los usuarios insistan en usar la tecla Enter para moverse de campo a campo en la Datawindow.

Normalmente los usuarios piden esta característica porque esta es la tecla que usan habitualmente o porque la posición de la tecla Enter es más cómoda que la tecla de tabulación.


Declaramos un evento mapeado a pbm_dwnprocessenter




Añadimos el siguiente código:
Send( Handle(this),256,9,Long(0,0))
Return 1

dw_key :

El datawindow te responda a cualquier tecla del teclado y programarlo para que obedesca cuando presiones la tecla Enter, la tecla Suprimir, la tecla F1, etc..

Declaramos un evento mapeado a pbm_dwnkey


LoseFocus() :

Este Evento es propio del control, cuando pierda el enfoque le decimos que reestablesca los datos.







miércoles, 1 de junio de 2011

DataWindow - Standard Visual Parte II

Abriendo el objeto u_dw creado (Standard Visual DataWindow Ancestro) para comenzar agregar eventos de usuario.


Agregar User Event dentro de u_dw (Standard Visual DataWindow Ancestro)

Nos Ubicamos en la pestaña Event List para comenzar ingresar  User Event ó Eventos de Usuario.


Nos saldra una pantalla asi como esta :


Damos click derecho nos saldra un menu contextual de Add

Agregamos los Eventos de Usuario ue_nuevo, ue_eliminar, ue_recuperar, ue_guardar, ue_anular, ue_imprimir, ue_ordenar, ue_guardarcomo, ue_filtrar, ue_nuevo_siguiente, ue_eliminar_siguiente.

ue_ordenar : Lo utilizaremos cuando queremos ordenar los encabezados del datawindows


ue_filtrar : Lo utilizaremos cuando queremos filtrar la informacion del datawindows.




ue_nuevo_siguiente : Lo utilizaremos como si fuera un evento siguiente al evento ue_nuevo, este evento se crea primero por que parte del codigo del evento ue_nuevo lo esta referenciando y no lo podemos nada de codigo por que eso lo vamos a utilizar cuando ya heredamos.
Este evento para se pueda ejecutar tienes que mandarle un parametro al_row tipo LONG




ue_nuevo : Lo utilizaremos cuando queremos agregar nueva fila al datawindows, ademas este evento devuelve un parametro de retorno tipo LONG.




ue_eliminar_siguiente : Lo utilizaremos como si fuera un evento siguiente al evento ue_eliminar, este evento se crea primero por que parte del codigo del evento ue_eliminar lo esta referenciando.
No utilizaremos ningun parametro de retorno.




ue_eliminar : Lo utilizaremos cuando queremos eliminar una fila al datawindows, ademas este evento devuelve un parametro de retorno tipo LONG.



Quedaria de esta manera nuestro eventos Event List pintados de  un color amarillo y en la parte superior los ubica:


Y los eventos que tan solo se crearon y no se codificaron la herramienta PB los visualiza pintados de  un color negro y en la parte inferior los ubica.


Toda Nuestra Libreria quedaria asi de esta manera :



DataWindow - Standard Visual - Parte I

Los Standard Visual - User Object heredan caracteristicas de un control Standar de PowerBuilder.

El cual nos permite establecer eventos, funciones, variables predifinas lo mas comun que pueda tener un Control datawindows.

Con tan solo con heredar ya tendriamos nuestro datawindows programado al 100%.

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 DataWindow User Object
Escogemos Datawindow


Grabamos el DataWindow User Object base o ancestro con nombre u_dw .

El Control Datawindow

Introducción al control Datawindow

PowerBuilder incorpora en su lista de controles los más habituales de cualquier entorno de desarrollo, commandbuttons, checkboxes, radiobuttons, etc…, pero además de todos ellos incorpora un control propio para el manejo de los datos que tenemos en nuestro objeto Datawindow.

Este control debidamente enlazado con un objeto Datawindow nos permitirá realizar tareas de manipulación de los datos que se encuentren en el tales como
lectura, escritura, filtrado, agrupaciones y ordenaciones.



Creación de un control Datawindow

Para crear un control Datawindow simplemente hay que elegirlo dentro de la lista de controles disponibles en nuestra barra de tareas y colocarlo en un objeto visual de nuestra aplicación.



lunes, 23 de mayo de 2011

Iniciando Proyecto en Power Builder - Calculadora Parte Final

Primero antes de programar tenemos que definir la interfaz o el diseño de nuestra ventana, sin codificar nuestros objetos.

Si imitamos la calculadora de Windows funciona con puro botones.




El power builder en esta versión 10.5 carece de que los botones se puedan cambiar su color. 

Editando nuestro diseño de la calculadora en Pb. seria de esta manera:

Utilizando una ventana(1), botones(18), caja de texto(1)


Se ha modificado las propiedades de height, width de los siguientes objetos para llegar a nuestro objetivo.
Definiendo el ancho y alto de nuestra ventana.



Antes de irnos a la programación dedemos tener en cuenta esto :

* Siempre empieza en la caja de texto empieza con  '0.' o tambien cuando resetamos lo calculado.
* Cuando doy click en el boton 0 no inserta ningun numero en el visor.

* Si doy click en el boton 0 no puede seguir ingresando caracteres al sle_visor.
*El boton . no se puede agregar mas de una vez en el sle_visor.

Diseñando las cajas de texto, Botones de comando acuerdo a nuestra manera de programación.



Lo hemos agrupado y pintado en tres cuerpos por que su comportamiento lo tienen casi parecido en este caso:

Pintado rojo .-
Las Caja de Texto estan solo para mostrar resultado en caracteres y no es editable.

Pintado verde .-
Este grupo de botones que son los numeros es para llenar las caja de texto de caractes aumentando por la derecha.


Se debe de repetir para los botones 9,8,7,6,5,4,3,2,1,0,.

Agregando codigo repetido a los botones 9,8,7,6,5,4,3,2,1,0 y ademas cambiar is_caracter = '0' si es el boton 0, is_caracter = '1' si es el boton 1, ..., is_caracter = '9' si es el boton 9 como la figura:


Pintado azul .-

Este grupo de botones es el que nos hace el calculo +, -, *, / y los tipos funciones que queremos .

Como se dan cuenta tienen igual las mismas propiedades botones que funcionan  como operadores dentro de la programacion.
/, * , - , +

Agregando codigo repetido a los botones / , *, - , + y ademas cambiar is_operador = '/' si es el boton /, is_operador = '*' si es el boton *, ..., is_operador = '+' si es el boton + como la figura:


Hemos utilizado Dos la funciones de ventana para poder minimizar nuestro codígo

wf_convertir_numero(string ls_numero) returns String

* Permite convertir el numero que esta en caracter a su formato decimal.


wf_operador(string ls_factor_uno, string ls_factor_dos, string ls_operador) returns String

* Permite convertir los numero que esta en caracteres y trabajarlo con su respectivo operador.

por ejemplo : wf_operador('45', '15', '/') = '3'
wf_operador('250', '40', '*') = '210'
wf_operador('300', '45', '-') = '265'
wf_operador('100', '50', '+') = '50'



Programando el boton =
*Aqui Utilizamos las dos funciones creadas.



Programando el boton .




Programando el boton C
*Reiniciamos las variables declaradas en Instancia Variable asi poder resetear los valores iniciales y sle_visor = '.0'


Probando la Calculadora 'FABRISOFT' una vez funcionando correctamente procedemos a guardar nuestra libreria mas adelante hacer un buen uso.