Está en la página 1de 29

_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

OBJETOS DE USUARIO
Las aplicaciones a menudo comparten mucho rasgo en común, por ejemplo s e
podría reusar a menudo los siguiente:
 Un proceso que calcula las comisiones o realice el análisis estadístico
 Un botón de comando que realiza algunas acciones y luego cierra la ventana
 Controles DataWindow que realizan el mismo tipo de comprobación de error.
Si usted se encuentra usando el mismo componente de la aplicación repetidamente,
usted debe definir un objeto de usuario.
DEFINICION DE OBJETO DE USUARIO
Es una Objeto definido y creado por el programador de la aplicación de tal manera
que pueda ser utilizado dentro de la aplicación u otra aplicación utilizando el mecanimo de
la herencia.
TIPOS DE OBJETO DE USUARIO
Existen dos tipos de objetos del usuario:
 Objetos Visuales
 Objetos no Visuales
LOS OBJETOS DEL USUARIO VISUALES
Un objeto del usuario visual es un control reusable o un conjunto de controles que
tienen un cierto comportamiento, y que se pueden utilizar para construir la interfaz grafica
del usuario.
Existen tres tipos de objetos de usuario visuales:
 Standard Visual
Un objeto del usuario visual normal que hereda su definición de un control de
Powerbuilder normal. Se debe modificar la definición para hacer el control
personalizado y poder utilizarlo en las aplicaciones.
POWER BUILDE NIVEL II_______________________________________________________________________

 Custom Visual
Los objetos de usuario visuales personalizados son objetos que tienen varios controles
que funcionan como una unidad. Usted puede pensar en un objeto de usuario visual
personalizado como una ventana que es una sola unidad y se usa como un control.
 External Visual
Los objetos de usuarios visuales normales tienen los objetos que son creados en un
ambiente distinto de PowerBuilder.
LOS EVENTOS EN LOS OBJETOS DE USUARIO VISUALES
Los objetos de usuario visuales normales tienen los mismos eventos que los controles
de PowerBuilder. Los objetos de usuario personalizados y los objetos de usuario visuales
externos tienen un juego común de eventos:
EL EVENTO OCURRE CUANDO
Constructor Inmediatamente antes del evento Open de la ventana y cuando el objeto
usuario se activa dinámicamente en una ventana
Destructor Inmediatamente después del evento Close de la ventana y cuando el
objeto de usuario esta dinámicamente removido de una ventana
DragDrop Un objeto arrastrado se deja caer en el objeto del usuario
DragEnter Un objeto arrastrado entra en el objeto usuario.
DragLeave Un objeto arrastrado deja el objeto del usuario
DragWithin Un objeto arrastrado se mueve dentro del objeto del usuario
Help Un usuario presiona la tecla F1 codifica o pulsa el botón la Ayuda del
contexto[?]
Other Un mensaje de Windows ocurre cuando no es un evento de
PowerBuilder
RButtonDown El botón derecho del ratón se pulso.

CREAR UN OBJETO DE USUARIO ESTÁNDAR VISUAL


Para crear un objeto de usuario Standar Visual seleccionar de la Ficha Object el icono
Estándar Visual.

Seleccionar el tipo de control base por ejemplo CheckBox.


_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

Seleccionamos el evento del controla para el cual se desea escribir código.

Aplica 11
Desarrollar una aplicación que permita visualizar archivos de imágenes de tipo *.gif
utilizando un UserObject Standar Visual.
Solución :
1. Iniciar una nuevo Aplicación File new en la siguiente ventana elegir el objeto
aplicación.
2. Asegurarle el nombre de aplica_11 guardar en la siguiente ruta C:\
Power_Builder_7\Practicas\Cap03\Aplica_11\aplica_11.pbl, luego dar un click en el
botón Finish.
3. Ahora proceda a añadir la librería en la que utilizo el objeto estructura de nombre
openfile,la que se encuentra en:
C:\Powe_Builder\Practicas\Aplica07\aplica_07.pbl

Nota: para esta aplicación utilizaremos una función global externa


GetOpenFileName, la cual esta declara en la librería Aplica07.

4. Creación del UserObject uo_texto,para esto dar un click en el menú File New caso
contrario click en el botón.
POWER BUILDE NIVEL II_______________________________________________________________________

Este tipo de userObject presentara una ventana en la cual debe seleccionar el tipo
de control a utilizar, para este caso practico utilizaremos 2 controles Estandar Visual
(utilizando un SigleLineEdit y un CommandButton).

A continuación, Procede a añadir código en los siguientes eventos del control.


Objeto: uo_texto Evento: getFocus

This.Backcolor = Rgb(0.128.128)
This.textcolor = Rgb(255.255.255.255)
Objeto: uo_texto Evento: loseFocus

This.Backcolor = Rgb(255.255.255.255)
This.textcolor = Rgb(0.0.0.0)
Grabar el UserObject con el nombre uo_Texto.
A continuacion proceda a crear el UserObject uo_open utilizando un CommandButton, tal
como se hizo anteriormente.
Para este caso es necesario crear una función para el UserObject up_open con las
siguientes características:
 La función uf_abrir , la cual no recibe argumentos y retonra un valor de tipo string .
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

Función: uf_abrir
Int li_rc
String ls_path, ls_file
Li_rc = GetFileOpenName(“seleccione archivo de imagen”,ls_path,ls_file,
“gif”, “Archivos de imágenes(*.gif),*.gif”)
If li_rc = 0 Then
Return “”
Else
Return ls_path
End If
Finalmente grabe el UserObject con el nombre de uo_open.
5. A continuación procederemos a crear el objeto window(ventana) . para esto dar un
clic en el menú File New cas contrario click en el botón.
Añadir los siguientes controles:
 1 control Picture
 1 control UserObject (uo_texto)
 1control UserObject(uo_open)
Para crear los objetos dar un clic en el botón, ubicar los controles y modificar sus
propiedades de la siguiente manera:

Finalmente grabe la ventana con el nombre de w_control.


POWER BUILDE NIVEL II_______________________________________________________________________

Una vez añadida la librería y creados los UserObject proceda abrir el objeto aplicación y
añada el siguiente código a los objetos.

Declare Global Variables


String ruta
Objeto: aplica_11 Evento: Open
OPEN(w_control)
Ahora proceda añadir código en la ventana w_control
Objeto: cb_abrir Evento : Clicked
sle_texto.text= cb.uf_abrir()
p_imagen.picturename = sle_1.text
Finalmente, al ejecutar la aplicación deberá hacer click en el botón Abrir y ubicar la
siguiente ruta:
C:\Power_Builder\Imagenes
En esta carpeta encontrara archivos de imágenes aperture alguno de ellos, observara que
se muestra la imagen, ahora haga click en la caja de texto observara que cambia el color al
ganar y perder el enfoque.

CREAR UN OBJETO DE USUARIO CUSTOM VISUAL


Para crear un objeto de usuario Custom Visual seleccionar de la Ficha el icono Custom
Visual.
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

A continuación, observara que se presenta el pintor del UserObject, es en este en el que se


colocara los controles deseados y el código correspondiente para el UserObject.

Aplica 02
Desarrollar una aplicación que utilice un objeto de usuario CustomVisual que
permita el desplazamiento de la tabla Customers que se encuentra en la base de datos EAS
DEMO DB3.
Solución:
1. Iniciar una nueva aplicación File New en la siguiente ventana elegir el objeto
aplicación.
2. Asignarle el nombre aplica_12 , guardar en la siguiente ruta c:\PowerBuilder\
Practicas\Cap03\Aplica_12\Aplica_12.pbl., luego dar un click en el botón Finish.
3. Creación de un UserObject, para eso dar un click en el menú File New caso contrario
click en el botón.

A continuación, aparecerá el pintor para la creación de un UserObject, a continuación,


proceda a añadir los siguientes controles.
 4 controles CommandButton
 1 control StaticText
Para crear los objetos dar un click en el botón, ubicar los controles y modificar sus
propiedades de la siguiente manera:

El siguiente paso consiste en la creación de variables de instancia para el UserObject.


POWER BUILDE NIVEL II_______________________________________________________________________

Declare Instance Variables


Uint Total
DataWindow dw_control
Int i_actual,i_total
A continuación, proceda a crear las siguientes funciones las cuales permitirán hacer uso
más óptimo de este control.
 Crear la función f_inicio. Con un tipo de argumento Datawindows llamado
i_dwcontrol, que no retorna un valor.

Función: f_inicio
dw_control =i_dwcontrol
i_actual =1
i_total =dw_control.rowcount()
st_totales.text = “1 de”+String(dw_control.rowcount())
 Crear la función f_primero , la cual no recibe argumentos ni retorna valores.

Función: f_primero
If i_total > 0 Then
dw_control.scrolltorow(1)
st_totales.text=”1de”+String(i_Total)
SetFocus(dw_control)
I_actual = 1
End If
 Crear la función f_anterior ,la cual no recibe argumentos ni retorna valores.
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

Función : f_anterior
int actual
actual = i_actual
If actual < i_total then
dw_control.scrolltorow(actual-1)
st_totales.Text = String(actual-1)+”de”+String(i_total)
SetFocus(dw_control)
I_actual = i_actual+1
End If
 Crear la funcion f_siguiente , la cual no recibe argumentos ni retorna valores

Función: f_siguiente
int actual
actual = i_actual
If actual < i_total Then
dw_control.scrolltorow(actual+1)
st_totales.text = String(actual+1)+”de”+String(i_total)
SetFocus(dw_control)
i_actual=i_actual+1
End If
 Crear la funcion f_ultimo, la cual no recibe argumento ni retorna valores
POWER BUILDE NIVEL II_______________________________________________________________________

Funcion : f_ultimo
i_actual = i_total
dw_control.scrolltorow(i_Total)
st_totales.text = String(i_actual) + “de” + String(i_Total)
SetFocus(dw_control)
Seguidamente escriba el siguiente código para los siguientes objetos
Objeto :cb_primero Evento : Clicked
F_primero()
Objeto : cb_anterior Evento : Clicked
F_anterior()
Objeto : cb_siguiente Evento : Clicked
f_siguiente()
Objeto : cb_ultimo Evento : Clicked
f_ultimo()
Una vez creado el objeto proceda a guardarlo con el nombre de uo_deplaza , a
continuación realizaremos un ejemplo. Para esto procederemos a crear objeto
Datawindow.
Nota: antes de pasar a crear el objeto Datawindow verifique que la conexión actual es
con la base de datos EAS DEMO DB3.

4. Creacion de un objeto Datawindow, para esto dar un click en el menú file new
caso contrario click en el botón.
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

Posteriormente, en la siguiente ventana, deberá elegir el icono SQL select y dar un click
en el botón Next:

Luego deberá seleccionar las tablas customers y click en Open:

Luego deberá seleccionar todos los campos de tabla.

Luego, para regresar editor de DataWindow, puede ir al menú File y elegir la opción
Return to DataWindow Painter o puede cerrar la ventana del editor.

Después aparecerá la siguiente ventana para seleccionar los colores del DataWindow y
marcar la casilla de Save as Default, para que los colores elegios sean los
predeterminado. Luego hacer click en el botón Next >.

El siguiente paso consiste en seleccionar todos los campos del objeto Datawindow , y
hacer click en la ventana propiedades, Ficha general propiedad borde, tal como se
muestra a continuación.

Una vez realizado los cambios respectivos proceda a guardar el objeto Datawindow con
el nombre de d_clientes.
5. Una vez creado el objeto Datawindow proceda a crear el objeto window(ventana)
para esto dar un click en el menú File New caso contrario click en el botón.

 1 control Datawindow
 1 control userObject(uo_desplaza)
 1 Control Commandbutton
POWER BUILDE NIVEL II_______________________________________________________________________

Control Propiedad Valor


dw_1 Name dw_clientes
DataObject d_clientes
uo_1 Name uo_desplazar
cb_1 Name cb_cerrar
Text &Cerrar
Luego dar un click en guardar asignarle el nombre de w_desplaza y click ok asignarle el
titulo de “User Object Desplaza ”a la ventana correspondiente.
Ahora escriba el siguiente código en el evento Open del objeto
Aplicación
Objeto : aplica_12 Evento : Open
//Profile EAS Demo V3
SQLCA.DBMS= “ODBC”
SQLCADatabase = “EAS Demo DB V3”
SQLCA.AutoCommit = False
SQLCA.DBParm = “ConnectString’DSN=EAS Demo DB V3’;
UID =dba;PWS=sql”
Connect;
Open(w_desplaza)
A continuación, proceda a abrir la ventana w_desplaza y añada código a los distintos
objetos de este.
Objeto : w_desplaza Evento : Open
dw_clientes.SetTransObject(SQLca)
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

dw_clientes.Retrieve()
Uo_desplazar.f_inicio(dw_clientes)
Objeto : cb_cerrar Evento: Clicked
Close(parent)

USER OBJECT NO VISUALES


Las clases personalizadas en PowerBuilder se conocen comúnmente como objetos
de usuario no visuales(nonvisual user Objects, NVOs). Para construir una clase
personalizada hay que abrir el pintor del objeto de usuario y pulsar New Custom Class.
El pintor de la clase personalizada es parecido al pintor de la ventna o del objeto
visual de usuario personalizado. El painterBar posee una barra de herramientas
deplegable. En el painter también puede observarse un cuadro similar a una ventan. Este
cuado no tiene ningún significado y todos los iconos de la barra de herramienta están
desactivadas.

LOS OBJETOS DE USUARIO NO_VISIALES


 Standard class User Object
Es un objeto del usuario que hereda su definición de un objeto incorporado, o
nonvisual de PowerBuilder, como el objeto Transacción u objeto Error. Usted modifica
la definición para hacer el objeto especifico asu aplicación y usarlo en lugar del objeto
del sistema incorporado en su aplicación.
 Custom class user Object
Clase no visual que permite manejar información requerida que se ajustan a las
necedades del problema por ejemplo, para calcular las comisiones en una aplicación,
usted puede definir un Calcular Comisiones objeto de usuario de clase personalizado
que contiene las propiedades y las funciones definidas por el usuario que hacer el
proceso definidas por el usuario que hacen el proceso para calcular las comisiones.
CONSTRUYENDO UN OBJETO DE USUARIO DE CUSTOMCLASS
POWER BUILDE NIVEL II_______________________________________________________________________

En el Nuevo cuadro de dialogo, si usted selecciona la Clase customclass y pulsa el


botón OK, el pintor de Objeto de Usuario se abre.

1. Declare las funciones, estructuras, o variables que usted necesita para el objeto de
usuario. Usted puede declarar funciones, estructuras, y variables para el objeto de
usuario en la vista de script.
2. Cree y compile los Script para el objeto de usuario. Los objetos de usuario de clase
personalizados tienen eventos constructor y destructor.

Aplica 13
Crear un UserObject que permita realizar el mantenimiento a una determinada
tabla, en este caso se utilizara la Tabla Customers base de datos NortWind.
1. Crear un userObject u_principal,para el cual declaramos las siguientes variables de
instancia:
//idw_parametro es una instancia del Datawindow
//ib_inicializa indica si se ha recibido correctamente el control Datawindow
2. Además, el user object u_principal contiene las siguientes funciones:
uf_inicio
//Recibe un argumento de tipo Datawindow, además inicializa la variable
ib_inicializa

uf_recuperar
//recupera los datos de la tabla asociada al Datawindow, la cual fue recibida
en la función uf_inicio.
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

uf_insertar
//Esta función permite grabar los datos ingresados en el control
Datawindow, la cual fue recibida en la función uf_inicio.

uf_eliminar
//esta función permite eliminar registros de la tabla asociada al control
Datawindow, la cual fue recibida en la función uf_inicio.
3. Una vez creada las funciones, pasamos a crear la ventana que contiene 1 control
Datawindow ,5 Command Button.
4. Ahora procedemos a declarar las siguientes variables:
//u_principal iu_principal(instancia del UserObject creado anteriormente)
5. Procedemos ahora a crear un UserEvent llamado ue_crear_principal para el control
Datawindow, en este UserEvent crearemos una instancia del userObject creado
anteriormente.
6. A continuacion procedemos a crear los siguientes userEvent que permmitiran tener un
mayor control sobre botones que se encuentran en la ventan.

ue_recuperar
ue_insertar
ue_actualizar
ue_eliminar
Nota: no es necesario crear UserEvent en la ventana para llamar a las funciones de
mantenimiento creados en el UserObject, sino que como se indicó anteriormente se hizo
de esa manera para tener un mayor control de los botones al habilitarlos a
deshabilitarlos.

Solución:
1. Iniciar una nueva Aplicación File New en la siguiente ventana elegir el objeto aplicación.
POWER BUILDE NIVEL II_______________________________________________________________________

2. Asignarle el nombre de aplica_13, guardar en la siguiente ruta c:\PowerBuilder\


Practias\Cap03\Aplica_13\Aplica_13.pbl luego dar un click en el botón Finish.
3. Ahora proceda a añadir la librería en la que utilizo el objeto DataWindow de nombre
d_cliente, la que se encuentra en c:\PowerBuilder\Practias\Aplica_12\Aplica_12.pbl:

4. Creación de un UserObject , para esto dar un click en el menú file new caso
contrario click en el botón.

En la sección Declare , seleccione la opción Instance Variables y declare las siguientes


variables:
Declae Instance Variables
Datawindow idw_parametro
Boolean ib_inicializa
Luego cree las siguientes funciones:
 Crear la función uf_inicio, la cual recibe 1 argumento de tipo Datawindow
llmado adw_parametro. Esta función no retorna mingun tipo de valor.

Función : uf_inicio
idw_parametro =adw parámetro
ib_inicializa = true
 Crear la función uf_recuperar que retorna un valor de tipo Integer.
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

Función :uf_recuperar
Return idw_parametro.Retrieve()

 Crear la función uf_insertar, la cual recibe 1 argumento de tipo long llamado al_fila.
Esta función retorna un valor de tipo long.

Función : uf_insertar
long ll_rc
ll_rc =idw_parametro.InsertRow(al_fila)
if ll_rc >0 then
idw_parametro.ScrollToRow(ll_rc)
idw_parametro.SetFocus()
End if
Return ll_rc
 Crear la función uf_actualizar,la cual no recibe argumentos ,retorna un valor de tipo
Integer.

Funcion :uf_actualizar
int li_rc
li_rc =idw_parametro.update()
i fli_rc > 0 then
POWER BUILDE NIVEL II_______________________________________________________________________

commit;
else
rollback;
end if
return li_rc
 Crear la función uf_eliminar,la cual no recibe 1 argumento ,de tipo Integer llamado
al_fila, retorna un valor de ripo long.

Funcion :uf_eliminar
int li_rc
if al_fila>=0 and al_fila <=idw_parametro.RowCount() then
li_rc =idw_parametro.DeleteRow(al_fila)
idw_parametro.SetFocus()
Return li_rc
else
Return-1
end if
5. Ahora proceda a crear el objeto window(ventana), para esto dar un clic en el menú file
new caso contrario click en el botón.
En la sección Declare, seleccione la opción Instance Variables y declare siguiente
variables:
Declare Instance Variables
//Crear la instancia iu_principal del UserObject u_principal
u_principal iu_principal
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

Ahora debe crear a la ventana los siguientes eventos de usuario


 Crear el UserEvent ue_recuperar, este debe estar asociado al EventID llamdo
pbm_custom04.

UserEvent : ue_recuperar
integer li_RC
li_RC =iu_principal.uf_recuperar()
If li_RC < 0 Then
cb_eliminar.enable =False
Else
ib_cambio=False
cb_insertar.enable =true
cb_actualizar.enable = False
cb_cancelar.enable= False
dw_mantenimiento.enable = False
If li_RC >0 Then cb_eleminar.enabled =True
End If
Return li_RC
 Crear el userevent ue_insertar, este debe estar asociado al EnentID llamdo
pbm_custom01.

UserEvent : ue_insertar
POWER BUILDE NIVEL II_______________________________________________________________________

Integer li_RC
Long ll_cur_row
Ll_cur_row =dw_mantenimiento.GetRow()
If ll_cur_row >= 0 Then
li_RC =iu_principal.uf_insertar(ll_cur_row)
If li_RC > 0 Then
cb_eleminiar.enabled = False
cb_insertar.enabled = False
cb_atualizar.enabled = true
cb_cancelar.enabled = True
dw_mantenimiento.enable = True
End If
End If
Return li_RC
 Crear el userevent ue:actualizar, este debe estar asociado al EnentID
llamado pbm_custom03.

UserEvent : ue_actualizar
Integer li_RC
li_RC=iu_principal.uf_actualizar()
If li_RC = 1 Then
cb_actualizar.enabled = False
cb_insertar.enabled = true
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

cb_cancelar.enabled = False
cb_eliminar.enabled = True
dw_mantenimiento.enable = False
End If
Return li_RC
 Crear el userevent ue_eliminar, este debe estar asociado al EnentID llamdo
pbm_custom02.

UserEvent : ue_eliminar
Integer li_RC
li_RC=iu_principal.uf_actualizar()
If li_RC = 1 Then
cb_actualizar.enabled = False
cb_insertar.enabled = true
cb_cancelar.enabled = False
cb_eliminar.enabled = True
dw_mantenimiento.enable = False
End If
Return li_RC
Ubicar los controles indicados:
 1 control Datawindow
 5 controles commandbutton
 1 UserObject (uo_desplaza) Librería Aplica_12
POWER BUILDE NIVEL II_______________________________________________________________________

Control Propiedad Valor


dw_1 Name dw_mantenimiento
DataObject d_clientes
libreria aplica_12
uo_1 Name uo_desplazar
cb_1 Name cb_insertar
Text &insertar
cb_2 Name cb_cancelar
Text &cancelar
cb_3 Name cb_actualizar
Text &actualizar
cb_4 Name cb_elemoniar
Text &eliminar
cb_5 Name cb_cerrar
Text &cerrar

A continuacion proceda a crear un UserEvent para el control Datawindow


dw_mantenimiento.
 Crear el userEvent ue_crear_principal, el cual no retorna valores. Pero si recibe
argumentos, el primero llamado wparametro de tipo unsignedlong, el otro llamdo
lparametro de tipo long.
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

UserEvent : ue_crear_principal
iu_principal = créate u_principal
UserEvent : cb_insertar Evento: Clicked
parent.TriggerEvent(“ue_insertar”)
UserEvent : cb_cancelar
parent.TriggerEvent(“ue_recuperar”)
UserEvent : cb_actualizar Evento: Clicked
parent.TriggerEvent(“ue_actualizar”)
UserEvent : cb_eliminar Evento: Clicked
parent.TriggerEvent(“ue_eliminar”)
parent.TriggerEvent(“ue_actualizar”)
UserEvent : cb_cerrar Evento: Clicked
CLOSE (parent)
Ahora escriba el siguiente código en el evento Open del objeto
Aplicación.
Objeto : aplica _13 Evento: Open
SQLCA.DBMS = ”MSS Miscrosoft SQL Server 6.x”
SQLCA.Database = “NorthWind”
SQLCA.SeverName = (“local”)
SQLCA.LogId = “sa”
SQLCA.AcutoCommit = False
SQLCA.DBParm = “”
Coneect;
POWER BUILDE NIVEL II_______________________________________________________________________

IF SQL.SQLCODE <> 0THEN


MessageBox(‘error’+‘error de conexion’+&String(SQLca.SQLCode)+
SQLca.SQLErrText
Return
Else
Open (w_mantenimiento)
End IF
A continuacion proceda a abrir l ventna w_mantenimiento y añada código a los distintos
objetos de este.
Objeto : w_mantenimiento Evento: Open
dw_mantenimiento.SetTransObject (sqlca)
dw_mantenimiento.TriggerEvent(“ue_crear_principal”)
iu_principal.uf_inicio(dw_mantenimiento)

This.TriggerEvent(“ew_recuperar”)
Uo_desplazar.f_inicio(dw_mantenimiento)
Objeto : w_mantenimiento Evento: Open
Destroy iu_principal

Al ejecutar la aplicación se mostrará la siguiente pantalla:

Aplica 14
Desarrollar una aplicación que permita conectarse con una determinada interfaz,
indicada desde un botón de comandó el origen de datos (conexión inteligente)
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

Solución :
1. Iniciar una nueva aplicación file new en la siguiente ventana elegir el objeto
aplicación
2. Asignarle el nombre de aplica_14 , guardar en la siguiente ruta c:\power_builder\
practicas\Cap03\Aplica_14\aplica_14.pbl, luego dar un click en el botón Finish.
3. Creacion de un UserObject , para esto dar un click en el menú File New caso
contrario click en el botón.

Este tipo de UserObject presentara una ventan en la cual debe seleccionar la clase a
utilizar, para este caso practico utilizaremos la clase transaction.

Una vez seleccionado la clase, añadir la siguiente función:


 Crear la función uf_coneect, la cual recibe 5 argumentos todos ellos de tipo String y
retorna un valor de tipo boolean. Los argumento empleados son :

Value String Interfaz


Value String Id
Value String Parametrodb
Value String Nombredb
Value String Servidor

Función : uf_connect
This.database = nombredb
POWER BUILDE NIVEL II_______________________________________________________________________

This.dbms =interfaz
This.logid = Id
This.bdparm = parametrodb
This.servername = servidor
This.autocommit = True

Connect using This;


If This.sqlcode <> 0Then
Messagebox(“error al conectar”),&
“Sqlcode:”+String(This.sqlcode)+&” nerror code:”
+String(This.sqldbcode)+ & “ nerror menssage” = +
this.sqlerrtext,&StopSign!)
Return False
End If
Return true
Finalmente grabe el UserObject con el nombre de nv_transsaccion.
4. Creacion de un objeto Datawindow de tipo grid (verificar que la conexión actual de la
base de datos sea EAS DEMO DB V3, para esto dar un clic en el menú File New aso
contrario click en el botón.)
Posteriormente, en la siguiente ventana, deberá elegir el icono de SQL select y dar un click
en el botón Next:
Luego deberá seleccionar las tablas customers y click en Open, para posteriormente
seleccionar todos sus campos.
Luego para regresar al editor de Datawindow, puede ir al menú File y elegir la
opción Return to DataWindow Painter o puede cerrar la ventana del editor.
Una vez realizado los cambios respectivos proceda a guardar el objeto Datawindow
con el nombre de d_clientes_bdusuario.
_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

De la misma forma proceda a crear otro objeto Datawindow de tipo Grid, pero esta
vez la conexión será con la base de datos BdUsuario . Una vez creado el objeto asignarle el
nombre de d_clientes_bdusuario.
5. A continuacionprocederemos a crear el objeto window(ventana ), para esto dar un lick
en el menú File New, caso contrario click en el botón.
Añadir los siguientes controles:
 1 control Datawindow
 3 controles CommandButton

Control Propiedad Valor


dw_1 Name Dw_ejemplo
HscrollBar True
VscrollBar True
cb_1 Name Cb_sql
text Interfaz & Sql

cb_2 Name Cb_oledb


text Interfaz & Ole DB

cb_3 Name Cb_obdc


text Interfaz &ODBC

Luego dar un click en guardar asignarle el nombre w_transaccion y click en Ok, además
asignarle el de interfaces de base de datos.
Ahora escriba el siguiente código en el evento Open del objeto Aplicación.
Objeto : aplica _20 Evento: Open
Open (w_transacción )
POWER BUILDE NIVEL II_______________________________________________________________________

Objeto : cb_sql Evento: Clicked


Sqlca.uf_coneect(“MSS MICROSIFT SQLSERVER 6.X”,”sa”,””,”BdUsauario”,”(Local)”)

dw_ejemplo.dataobject = “d_clientes_bdusuario”

dw_ejemplo.Setttransobject (SQLca)

dw_ejemplo.retrieve()

Objeto : cb_oledb Evento: Clicked


Sqlca.uf_coneect(“OLE DB”,”sa”,”DATALINK=’C:\Archivosde programa\”+&”Archivos
comunes\SYSTEM\ole db\DataLinks\BDUsuario.UDL”,” “Bd Usuario”,””)

dw_ejemplo.dataobject = “d_clientes_bdusuario”

dw_ejemplo.Setttransobject (SQLca)

dw_ejemplo.retrieve()

Objeto : cb_odbc Evento: Clicked


SQLca.uf_coneect(“ODBC”,”DBA”,”connectString=’Dsn=EAS Demo DB”+&”V3;uid
=dba ;PWD=sql”,”EAS Demo DB V3”,””)

ect = “d_clientes_easdemo”

dw_ejemplo.Setttransobject (SQLca)

dw_ejemplo.retrieve()

Al ejecutar la aplicación obtendrá la siguiente ventana.


_____________________________________________________CAPITULO 3-EVENTOS DE USUARIO

También podría gustarte