Sunteți pe pagina 1din 8

Programación en Power Builder II Laboratorio Nro. 3

Búsqueda y Recorrido en un Datawindow

1. Aquí vamos a trabajar con la base de datos EAS Demo DB V4, que una base de datos de ejemplo que viene con el Adaptative Server Anywhere que se instala con el Power Builder. Para ello nos conectamos a esta base de Datos, en el menú de Power presionamos el icono Database, seleccionamos el controlador de Base de Datos OBD ODBC, luego el profile EAS Demo DB V4, a continuación hacer click derecho y seleccionar connect.

2. Vamos a crear un datawindow de tipo grid llamado d_grid_productos Para crear un datawindow presionamos el boton new en la barra de iconos principal de power y luego seleccionamos el tab datawindow

principal de power y luego seleccionamos el tab datawindow Selecciono el icono grid y presiono OK,

Selecciono el icono grid y presiono OK, aparece una interfase como la siguiente:

y luego seleccionamos el tab datawindow Selecciono el icono grid y presiono OK, aparece una interfase

Nos presenta una interfase para seleccionar la forma como voy a construir mi datawindow, aquí seleccionamos Quick Select (selección rápida), presionamos Next.

Quick Select (selección rápida), presionamos Next. Aquí seleccionamos la tabla products, nos aparece una
Quick Select (selección rápida), presionamos Next. Aquí seleccionamos la tabla products, nos aparece una

Aquí seleccionamos la tabla products, nos aparece una ventana como la siguiente:

Presionamos el boton Add All para seleccionamos todos los campos de la tabla

Add All para seleccionamos todos los campos de la tabla Luego presionamos Next Nos aparece una

Luego presionamos Next

Nos aparece una ventana como la siguiente.

presionamos Next Nos aparece una ventana como la siguiente. Finalmente presionamos Finish. Se debe visualizar una

Finalmente presionamos Finish. Se debe visualizar una interfase como la siguiente.

Si presionamos el botón grabar nos pide asignarle un nombre a nuestro datawindow, lo direccionamos

Si presionamos el botón grabar nos pide asignarle un nombre a nuestro datawindow, lo direccionamos para que grabe en la librería datawindow de nuestra carpeta y presionamos OK

a nuestro datawindow, lo direccionamos para que grabe en la librería datawindow de nuestra carpeta y

Ya hemos creado entonces nuestro primer datawindow (d_grid_productos) para visualizar la tabla de productos. Este datawindow lo modificamos para que quede de la siguiente forma:

lo modificamos para que quede de la siguiente forma: 3. Luego creamos una ventana de nombre

3. Luego creamos una ventana de nombre w_articulos donde vamos a insertar un control dw para visualizar la lista de productos

Esta ventana deberá tener la siguiente forma:

la lista de productos Esta ventana deberá tener la siguiente forma: Pegaremos los siguientes controles en

Pegaremos los siguientes controles en la ventana:

Control

Propiedad

Valor

st_1

Text

Codigo

Color

Blue

st_2

Text

Descripcion

Color

Blue

sle_1

Name

sle_codigo

Border

lowered

sle_2

Name

sle_descripcion

Border

lowered

cb_1

Name

cb_primero

Text

Primero

cb_2

Name

cb_anterior

Text

Anterior

cb_3

Name

cb_siguiente

Text

Siguiente

cb_4

Name

cb_ultimo

Text

Ultimo

cb_5

Name

cb_salir

Text

Salir

dw_1

Dataobject

d_grid_productos

HScrollBar

True

VScrollBar

True

Border

True

BorderStyle

StyleLowered!

4. Ahora procedemos a codificar los eventos

Objeto proyecto (aplicación) Evento open // Profile EAS Demo DB V4 SQLCA.DBMS = "ODBC" SQLCA.Database = "EAS Demo DB V4" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=EAS Demo DB V4;UID=dba;PWD=sql',PBCatalogOwner='DBA'" CONNECT;

IF SQLCA.SQLCode <> 0 THEN MessageBox('Error de conexion'+string(SQLCA.SQLCode),SQLCA.SQLErrtext) Return ELSE open(w_articulos) END IF

Objeto w_articulos (ventana) Evento open

dw_1.SetTransObject(SQLCA)

dw_1.Retrieve()

Objeto sle_codigo (single line edit) Evento modified integer li_fila string ls_descripcion

dw_1.SetSort("id,a")

dw_1.Sort()

If IsNull(Text) or len(trim(Text)) = 0 THEN MessageBox('Aviso','Ingrese un valor de busqueda') Return END IF

li_fila = dw_1.Find("id=long('"+Text+"')",1,dw_1.RowCount())

IF li_fila < 1 THEN MessageBox('Aviso','Valor no encontrado') Return END IF

dw_1.ScrollToRow(li_fila)

ls_descripcion = dw_1.GetItemString(li_fila,"description") sle_descripcion.text = ls_descripcion

dw_1.TriggerEvent(RowFocusChanged!)

Objeto sle_descripcion (single line edit) Evento modified integer li_fila long ll_codigo

dw_1.SetSort("description,a")

dw_1.Sort()

If IsNull(Text) or len(trim(Text)) = 0 THEN MessageBox('Aviso','Ingrese un valor de busqueda') Return END IF

li_fila = dw_1.Find("description='"+Text+"'",1,dw_1.RowCount())

IF li_fila < 1 THEN MessageBox('Aviso','Valor no encontrado') Return END IF

dw_1.ScrollToRow(li_fila)

ll_codigo = dw_1.GetItemNumber(li_fila,"id") sle_codigo.text = string(ll_codigo)

dw_1.TriggerEvent(RowFocusChanged!)

Objeto dw_1 (control datawindow)

Evento RowfocusChanged

IF currentrow = 0 THEN return

SelectRow(0,false)

SelectRow(GetRow(),true)

Objeto cb_primero (boton de comando) Evento clicked

dw_1.ScrollToRow(1)

Objeto cb_anterior (boton de comando) Evento clicked

dw_1.ScrollPriorRow()

Objeto cb_siguiente (boton de comando) Evento clicked

dw_1.ScrollNextRow()

Objeto cb_ultimo (boton de comando) Evento clicked long ll_filas

ll_filas

dw_1.ScrollToRow(ll_filas)

= dw_1.RowCount()

Objeto cb_salir (boton de comando) Evento clicked Close(parent)