Sunteți pe pagina 1din 10

INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder

Vamos a realizar un siguiente Ejemplo sobre mantenimiento de un tabla de nuestra


base de datos, para el ejemplo he tomado una BD cualquiera (lo importante en este
momento es saber cmo programar la ventana de mantenimiento) mi tabla se
llama Cliente y haremos la siguiente ventana en Power Builder.

INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder

Usamos los siguientes controles:
Tab Control: Contenedor de pginas, ayuda al espacio en la ventana.
CommandButton: Botones de accin para nuestros eventos: Nuevo, Modificar,
Eliminar, Buscar, Grabar, Cancelar.
Data Window Control: La data que enlazaremos al objeto Datawindow para
manipular los datos en insercin, consultas.
SingleLineEdit: Caja de texto para hacer la consulta a nuestro listado.
StaticText: Etiqueta de texto.
Cambiamos los siguientes controles:
Control Propiedad Valor
Tab_1 Name tab_1
TabPosition tabsontop!
tabpage_1
INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder

TabText LISTADO
PictureName ArrangeIcons!
tabpage_2

TabText REGISTRO
PictureName Project!
St_1 Name st_1
Text Buscar por Nombre:
St_2 Name st_total
Cb_1 Name cb_nuevo
Text Nuevo
Cb_2 Name cb_modificar
Text Modificar
Cb_3 Name cb_eliminar
Text Eliminar
Cb_4 Name cb_cerrar
Text Cerrar
Cb_5 Name cb_grabar
Text Grabar
Cb_6 Name cb_cancelar
Text cancelar
Cb_7 Name cb_buscar
Text Buscar
INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder
Dw_1 Name dw_listado
Dataobject d_mtto_cliente_listado
HScrollBar True
VScrollBar True
Dw_2 Name dw_registro
Dataobject d_mtto_cliente_registro
Border False
Programamos los siguientes Controles:
Evento Open de la Ventana principal:

La 1 lnea de cdigo realiza la conexin del datawindow para las transaciones, la
conexin se realiza en el evento open del proyecto: connect using sqlca, la 2
linea realiza la recuperacin de datos del datawindow (aunque esto no deberia
hacerse porque retorna toda la data en el listado, imaginate si hubiera 1000 filas
esto haria lento el proceso de listado pero por ejemplo pondremos retrieve en el
open), la 3 lnea activa el slo lectura del datawindow listado, y la 4 linea retorna
la cantidad de filas recuperadas en el datawindow.
Evento Open del proyecto
INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder

Este cdigo realiza la conexin con la Base de datos SQL SERVER, para ello tenemos
que haber creado el DSN en el ODBC, creado el perfil de conexin. Connect using
sqlca nos permite activar la conexin para ser usado en todo el proyecto, luego
validamos si la conexin tubo errores, si no es asi abrimos la ventana principal.
Evento Clicked del Boton Nuevo

Cuando damos click en Nuevo, cambiaremos el siguiente tabpage y lo
seleccionamos, luego llamamos la funcin insertRow para insertar una nueva fila en
el datawindow registro, recordemos que usaremos un datawindow de tipo
FreeForm. SetFocus enfoca el control, setcolumn(1) establece la columna 1 del
dw_registro. y la variable: is_opcion = N es para poder saber que accin se hace
cuando validemos el botn grabar.
Evento Clicked del Boton Modificar
INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder

Validamos si existen filas en nuestro listado, si no hay datos, detenemos la
ejecucin con RETURN, luego asignamos en la variable is_codigo el valor
obtenido del listado: GetItemString es una funcin del datawindow que nos
permite obtener un dato de una determinada FILA, y COLUMNA del datawindow.
Hacemos algo parecido al Nuevo, cambiamos el tabpage y asignamos un valor M a
la variable is_opcion para validar en nuestro boton grabar.
Evento Clicked en el botn Eliminar

Validamos si hay filas en el dw_listado, obtenemos un valor determinado de la fila
seleccionada con getrow y la columna 1. Con messagebox realizamos la pregunta el
cual si podemos eliminar o no, de acuerdo al valor elegido lo asignaremos en li_r, si
es 1 (ok) eliminamos la fila y actualizamos el datawindow, si el valor es 0 (cancelar)
No hacemos nada.
Evento Clicked para el Botn Buscar
INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder

El botn Buscar nos permitir filtrar el datawindow, primero asignamos en la
variable ls_cadena lo que capturamos del control sle_buscar, con upper
transformamos en mayuscula los datos de la caja de texto. Luego asignamos el
filtro como si fuera el where de una consulta SQL, aplicamos el filtro con filter y
usamos un retrieve para retornar los datos. Luego retornamos la cantidad de filas
que se recupero.
Evento Clicked para el Botn Cerrar

Close nos permite cerrar la ventana.
Evento de Usuario: ue_keydown
En la caja de texto creamos luego un evento de usuario: Donde dice Event ID
seleccionamos pbm_keydown para activar las accin por teclado, la variable key
toma el valor del enter, Si presionamos Enter de nuestro teclado se activara este
evento, y tambien llamaremos el evento click del boton buscar. TriggerEvent es el
que realiza este proceso de llamar el evento clicked! del botn buscar.
INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder

Evento Clicked del datawindow Listado

Este cdigo nos permite ordenar las columnas cada vez que damos clic en las
cabeceras de nuestro listado. Usamos la funcin setSort para definir nuestro
ordenamiento y Sort para activar el ordenamiento. SetRedRaw nos permite
refrescar la parte video para poder visualizar los datos en el dw_listado.
Evento RowFocusChanged del datawindow Listado

INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder
Estas 2 lineas de cdigo nos permitir sombrear la fila seleccionada.
setrowfocusindicator(hand!) nos permite ver una mano en el lado izquierdo de
nuestra fila.Evento Clicked del botn Grabar

Este botn es quien se encarga de registrar o actualizar datos en la base de datos,
esto es mediante la funcin Update del datawindow registro, con is_opcion
mandaremos mensajes diferentes de acuerdo al boton. Cuando queramos grabar o
actualizar los datos nos saldra una pregunta, si le damos Ok grabamos o
actualizamos y retornamos a nuestro listado.
Evento Clicked del botn Cancelar

Lo que hacemos aqu es reiniciar el datawindow registro, recuperamos los datos del
datawindow listado, enfocamos el control de caja de texto, y cambiamos el
tabpage, regresandolo como estaba en un inicio.
VARIABLES DE INSTANCIA
INSTITUTO DE FORMACION TECNICA INFOTEC PowerBuilder

Escribimo las variables de instancia que usaremos en el formulario o ventana,
is_codigo para capturar el cdigo a modificar del datawindow listado, is_name para
capturar el nombre del campo en el momento de ordenar por columna, is_opcion
para poder saber que accin estamos realizando si es Nuevo o Modificar, y
ib_activa un boolean para activar o desactivar en nuestra logica de ordenamiento
de campos por columna.

S-ar putea să vă placă și