You are on page 1of 26

ENTRENAMIENTO EN POWER BUILDER

PowerBuilder es una herramienta computacional que permite la elaboración de


aplicaciones cliente/servidor utilizando principalmente elementos gráficos.
Las aplicaciones desarrolladas con PowerBuilder se almacenan en una librería
(PowerBuilder Library, archivos caracterizados con el tipo *.PBL ).
Una vez desarrollada una aplicación PowerBuilder, se crea un archivo tipo
*.EXE para que los usuarios ejecuten la aplicación desde Windows cuando lo
deseen.

Componentes de una aplicación PowerBuilder:


• Objetos.
Un objeto es una forma de comunicación con el usuario, por ejemplo
una ventana o un menú.
Nombres de objetos PowerBuilder:
◊ Application object
◊ Window
◊ DataWindow
◊ Menu
◊ Global functions
◊ Queries
◊ Structures
◊ User objects
◊ Libreries
◊ Projetcs
• Eventos.
Un evento puede ocurrir cuando un usuario ejecuta una acción con el
ratón, el teclado, por una orden del lenguaje PowerScript de
PowerBuilder o por el mismo sistema.
Algunos de los eventos más comunes son:
◊ Clic (clicked)

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 1
◊ Doble clic (DoubleClicked)
◊ Modificación (Modified)
◊ Abrir (Open)
◊ Cerrar (Close)
◊ Tomar el foco (GetFocus)
◊ Perder el foco (LoseFocus)
◊ Cambiar la selección (SelectionChanged)
• Scripts.
Un script es un conjunto de órdenes escritas en lenguaje PowerScript
que se deben ejecutar al ocurrir un evento.

Componentes de una ventana:


• Controles.
Un control es un objeto colocado en una ventana.
Los controles son:
◊ CheckBox ◊ Oval
◊ CommandButton ◊ Picture
◊ DataWindow ◊ PictureButton
◊ DropDownListBox ◊ PictureListBox
◊ DropDownPictureListBox ◊ RadioButton
◊ EditMask ◊ Rectangle
◊ Graph ◊ RichTextEdit
◊ GroupBox ◊ RoundRectangle
◊ HscrollBar ◊ SingleLineEdit
◊ Line ◊ StaticText
◊ ListBox ◊ Tab
◊ ListView ◊ TreeView
◊ MultiLineEdit ◊ UserObject
◊ OLEcontrol ◊ VscrollBar
◊ OLECustomControl

• Focus.
Identifica el lugar de la pantalla donde va a suceder la siguiente acción.
Para establecer el foco en un sitio deseado, el usuario puede:
◊ Mover con el ratón el apuntador a un control y hacer clic.
◊ Presionar la tecla del tabulador hasta el control deseado.
Un control puede perder el foco cuando el usuario:

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 2
◊ Hace clic en otro control.
◊ Hace clic en otra ventana donde no hay controles.
◊ Presiona la tecla del tabulador y pasa a otro control.
• Atributos.
Los objetos y controles tienen atributos que definen su:
◊ Apariencia.
◊ Comportamiento.

Lenguaje PowerScript
Es un lenguaje de alto nivel basado en objetos con el cual se pueden construir
scripts.
PowerScript tiene:
• Comandos, por ejemplo IF ... THEN.
• Funciones predefinidas para manipular objetos, números, textos, para
procesar fechas y datos de tiempo, imprimir reportes, ejecutar DDE
(Dynamic Data Exchange), manejar archivos; por ejemplo SHOW,
MOVE, OPEN, MAX, HIDE.
Las funciones regresan un valor (return value) que puede ser utilizado
o ignorado.
• Proposiciones SQL, por ejemplo SELECT, INSERT, UPDATE
• Variables:
◊ Locales en un script.
◊ A nivel de una ventana/objeto.
◊ Globales.
Convenciones aconsejadas por PowerBuilder para dar nombre a los objetos:

Objeto Prefijo Ejemplo


CheckBox cbx_ cbx_caja_para_control
CommandButton cb_ cb_boton_para_comando
DataWindow Control dw_ dw_ventana_para_datos_tabulares
DataWindow Object d_ d_objeto_para_datos_tabulares
DropDownListBox ddlb_ ddlb_caja_para_escoger_opciones
DropDownPictureListBox ddplb_ ddplb_lista_de_dibujos
EditMask em_ em_formato_para_datos

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 3
Objeto Prefijo Ejemplo
Function f_ f_nombre_de_funcion
Graph gr_ gr_grafico
GroupBox gb_ gb_caja_para_agrupar
HscrollBar hsb_ hsb_deslizamiento_horizontal
Line ln_ ln_linea
ListBox lb_ lb_caja_para_presentacion
ListView lv_ lv_despliegue_de_lista
Menu m_ m_menu
MultiLineEdit mle_ Mle_multiples_lineas
OLEcontrol ole_ ole_a_ms_word
Oval oval_ Oval_ovalo
Picture p_ p_dibujo
PictureButton pb_ pb_boton_grafico
PictureListBox plb_ plb_caja_con_graficos
Project p_ p_proyecto
RadioButton rb_ rb_boton_exclusivo
Rectangle r_ r_rectangulo
RichTextEdit rte_ rte_texto_enriquecido
RoundRectangle rr_ rr_rectangulo_bordes_redondeados
SingleLineEdit sle_ Sle_linea_para_edicion
StaticText st_ st_titulos
Tab tab_ tab_carpetas
TreeView tv_ tv_explorador
Structure s_ s_estructura
UserObject u_ u_objeto_del_usuario
VscrollBar vsb_ vsb_deslizamiento_vertical
Window w_ w_nombre_de_ventana

Cuando se están creando los objetos, PowerBuilder sugiere un nombre para el


objeto utilizando el prefijo de la tabla anterior y un número. Ellos aconsejan
cambiar este número por algo significativo para el usuario que está elaborando
el aplicativo.

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 4
EJERCICIO PRÁCTICO

Elaborar una Aplicación sencilla, que permita manipular información del


personal de una Empresa así: a) Listar todos los empleados, b) Buscar los
empleados que concuerden con el nombre y/o el primer apellido digitado por el
usuario, c) Buscar los empleados de un determinado Departamento. Una vez
obtenida la lista, al hacer la selección de un empleado ver sus datos detallados.
La aplicación también debe estar en capacidad de ejecutar las acciones de
impresión, adición, modificación y borrado de datos de empleados. Como un
servicio adicional de la Aplicación, se debe proporcionar una Calculadora que
esté en capacidad de ejecutar las cuatro operaciones aritméticas básicas: suma,
resta, multiplicación y división de dos valores dados por el usuario.
Estructura de la aplicación:

Los pasos indicados a continuación corresponden a un procedimiento que se


puede seguir utilizando PowerBuilder 6.5 y Sistema Operativo Windows 98 (de
forma similar en Windows 95 y NT):
1. Entrar a Windows.
2. Escoger un directorio exclusivo para dejar todos los archivos del ejercicio
(recomendado).

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 5
3. Copiar en este directorio:
• Tres (3) archivos tipo *.bmp
• Tres (3) archivos tipo *.ico
4. Activar PowerBuilder.
5. Crear una aplicación:
5.1. En barra de herramientas g Application
5.2. Crear una nueva aplicación:
En barra de herramientas g New, o
En menú g File g New ..., o
Ctrl + N
5.3. Llenar los datos de la ventana “Select New Application Library”, así:
• “Guardar en:” Seleccionar el directorio donde se van a dejar los
archivos del ejercicio.
• “Nombre de archivo:” Escribir el nombre del archivo donde va a
quedar la Librería.
5.4. g Guardar
5.5. Llenar los datos de la ventana “Save Application”, así:
• “Applications:” dar el nombre de la aplicación.
• “Comments:” Escribir comentario significativo, relacionado con la
aplicación.
5.6. g OK
5.7. En la ventana “Application” g No
En caso de haber seleccionado Sí, PowerBuilder construye
automáticamente algunos programas prototipo.
5.8. Seleccionar propiedades de la aplicación:
En barra de herramientas: g Properties, o
En menú: g Entry g Properties..., o
En escritorio de aplicación: Oprimir botón derecho del ratón
gProperties...
5.9. Mirar, comprobar y/o modificar características globales del aplicativo
• Icono asociado con el aplicativo (escoja un nombre de archivo *.ico)
• Datos generales
• Fuentes para los textos

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 6
• Fuentes para la identificación de columnas de tablas
• Fuentes para los encabezamientos
• Fuentes para los rótulos
• Tipos de variables
• Camino o caminos de búsqueda de librerías
5.10. Regresar a la ventana inicial:
En barra de herramientas g Close, o
En menú g File g Close, o
Ctrl + W
6. Elaborar una ventana como la siguiente:

6.1. En barra de herramientas g Window.


6.2. En ventana “Select Window” g New.
6.3. Mirar, comprobar y/o modificar características de la ventana:
En barra de herramientas g Properties, o
En menú g Edit g Properties..., o
Con botón derecho g Properties..., o
Doble clic dentro de la ventana
6.4. En la ventana “Window” dar las características de la ventana, tales como:
• Identificación o título deseado (“Title”: ICF – Pantalla para búsqueda)

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 7
• Tipo de ventana (“Window Type”): popup
• Elementos activos (“Control Menu, Maximize Box, Minimize Box, ...)
• Ubicación y tamaño dentro de la pantalla
6.5. g OK
6.6. Colocar los objetos deseados dentro de la ventana y darle sus
características.
6.6.1. En barra de herramientas: g Objeto g CommandButton
6.6.2. En la ventana, hacer clic en el sitio donde se desea ubicar el control
seleccionado.
6.6.3. Mirar, comprobar y/o modificar las características del control (hay que
tener seleccionado el control deseado):
En barra de herramientas g Properties, o
En menú g Edit g Properties..., o
Con botón derecho dentro del control g Properties..., o
Doble clic dentro del control
6.6.4. En la ventana “CommandButton” dar las características del control, tales
como:
• Nombre del control (cb_salir).
• Texto deseado dentro del control.
• Características de aparición.
• Características de las fuentes.
• Posición dentro de la ventana.
6.6.5. g OK
6.6.6. Grabar el trabajo adelantado (Salvar la ventana en la librería):
En barra de herramientas g Save, o
En menú g File g Save, o
En menú g File g Save as..., o
Ctrl + S
6.6.7. En la ventana “Save Windows” escribir:
• Nombre de la ventana (por ejemplo, w_icf_basica).
• Un comentario.
6.6.8. g OK
6.6.9. Para ver cómo va quedando el diseño de la pantalla:

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 8
En barra de herramientas g Preview, o
En menú g Design g Preview, o
Ctrl + Shift + P
7. Elaborar una ventana como la siguiente:

Esta ventana debe heredar las propiedades de la ventana anterior (ICF -


Pantalla básica). Por lo tanto se puede seguir un procedimiento similar, con
las siguientes particularidades:
7.1. Al crear la nueva ventana:
En la ventana “Select Window” g Inherit...
En la ventana “Inherit From Window” seleccionar la ventana que da las
características a heredar.
g OK
7.2. Mirar y/o cambiar las características de la ventana heredada.
7.3. Añadir los otros controles mostrados en la figura (un CommandButton y
un RadioButton).
7.4. Cambiar el texto del CommandButton heredado “Salir” por “Cancelar”.
7.5. Los controles deben quedar con las características de visible y enable
7.6. Grabar el trabajo adelantado (Salvar la ventana en la librería).
7.7. Ver cómo va quedando el diseño y si es necesario hacer las modificaciones
que estime convenientes.
8. Elaborar una ventana como la siguiente:

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 9
Esta ventana debe heredar las propiedades de la ventana anterior (ICF -
Pantalla básica para búsqueda), con las siguientes particularidades:
8.1. Mirar y/o cambiar las características de la ventana heredada.
• Cambiar el texto del RadioButton heredado “Otro” por “Todos”
8.2. Añadir los otros controles mostrados en la figura:
• Dos SingleLineEdit, uno para Nombre y otro para Primer Apellido.
• Un DropDownListBox, con la lista de los siguientes Departamentos:
◊ Contabilidad
◊ Personal
◊ Ventas
◊ Mercadeo
◊ Desarrollo
◊ Recursos
◊ Administración
◊ Sistemas
• Dos RadioButton, para “Por Nombre” y “Por Departamento”.
• Un PictureButton para Imprimir.

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 10
Escoger de la lista de archivos *.BMP una figura para el caso que esté
disponible el servicio de impresión y otra figura para el caso que no
esté disponible.
• Un DataWindow, identificado como “Datos de los Empleados”.
Allí se mostrarán los resultados de consulta a la base de datos
(posteriormente se harán las asociaciones necesarias con los
DataWindows object que acceden a la base de datos).
8.3. Dar las demás características deseadas, tanto a la ventana como a los
controles.
8.4. Grabar el trabajo adelantado.
8.5. Ver cómo va quedando el diseño y si es necesario, hacer las modificaciones
que estime convenientes.
9. Elaborar una ventana como la siguiente:

El objetivo es tener una calculadora en la cual se va a obtener un resultado


aritmético dados dos operandos.

9.1. Crear la ventana y colocar sus características (ventana tipo popup).


9.2. Colocar los objetos y sus características, así:
• Dos SingleLineEdit, para primer y segundo operando.

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 11
• Cuatro StaticText, uno para colocar el resultado de la operación
aritmética y tres para colocar los textos: “Primer Operando”, “Segundo
Operando” y “Resultado”.
• Cuatro CommandButton, uno para cada operación: suma, resta,
multiplicación y división.
9.3. Grabar el trabajo adelantado.
9.4. Ver cómo va quedando el diseño y (si es necesario) hacer las
modificaciones que estime convenientes.
10. Colocar el punto de entrada del aplicativo (inicio de ejecución). Inicialmente
direccionar directamente a la Calculadora.
10.1. En barra de herramientas g Application.
10.2. Programar el evento iniciar la aplicación:
En barra de herramientas g Script, o
En menú g Entry g Script, o
Ctrl + Shift + K
10.3. Escribir el programa (script) para abrir la ventana con el cual inicia el
aplicativo, en esta primera etapa, la ventana donde está el diseño de la
calculadora.
Seleccionar el evento abrir (en “Select Event” g open)
Elaborar un programa asociado con el evento abrir, similar al siguiente:

// open icf_1
// Punto inicial del aplicativo.
open (w_icf_calculadora) //Nombre de la ventana que se desea activar.

Sugerencia: Cuando se está escribiendo el programa y se necesita el


nombre de un objeto o una variable, este nombre se puede
traer directamente (no hay necesidad de tipearlo) utilizando
las ventanas desplegables: “Paste Windows”, “Paste Global” y
“Paste Instance” haciendo la selección apropiada. También se
pueden utilizar las otras facilidades que se proporcionan a
través de las barras de herramientas y opciones de los menús.

10.4. Compilarlo (paso opcional):


En barra de herramientas: g Compile, o
En menú: g Design g Compile, o
Ctrl + Shift + L

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 12
10.5. Volver a la ventana principal de PowerBuilder:
En barra de herramientas: g Return
En barra de herramientas: g Close
Si no hizo el paso de compilación, confirmar (compilar y grabar) o
descartar los cambios realizados, en la ventana de diálogo “Application”:
g Sí, o g No, o g Cancelar.
11. Probar que la aplicación se puede ejecutar:
En barra de herramientas: g Run
12. Escribir las demás acciones que se desean tener al utilizar la calculadora.
Se sugiere que la calculadora efectúe por lo menos las operaciones
aritméticas básicas (suma, resta, multiplicación y división) y permita
algunas facilidades de manejo de memoria.
12.1. Seleccionar la ventana de la calculadora.
12.2. Elaborar un programa, asociado con el evento modificar, del control que
recibe el primer operando, similar al siguiente:

// modified sle_operando1
If not IsNumber(This.text) Then
MessageBox ("Error", "Se debe dar un número", StopSign!, OK!)
This.text = ""
This.SetFocus()
End if

12.3. Para el control que recibe el segundo operando, escribir un programa


similar al que recibe el primer operando.
12.4. Elaborar un programa, asociado con el evento clic, del botón que va a
ejecutar la operación de suma, similar al siguiente:

// clic cb_suma
Double oper1, oper2, oper3
oper1 = Double(sle_operando1.text)
oper2 = Double(sle_operando2.text)
oper3 = oper1 + oper2
st_resultado_n.text = String(oper3)

12.5. Elaborar programas similares para las operaciones de resta,


multiplicación y división.
12.6. Dejar el resultado en blanco, cuando se pase el cursor al campo que
recibe el primer o segundo operando (programar el evento getfocus:
st_resultado_n.text = “”).

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 13
12.7. Probar la aplicación.
13. Seleccionar el botón Salir de la ventana básica y asociarle un programa que
cierre la ventana (programar el evento clic), con un programa como el
siguiente:

// clic cb_salir
If MessageBox("Salir", "Cerrar esta ventana?", Question!, YesNo! ) = 1 then
Close( Parent )
End If

14. Correr la ventana para probar su funcionamiento:


En barra de herramientas g Run Windows
Seleccionar la ventana básica.
g Start
15. Seleccionar la ventana donde se pueden hacer búsquedas.
15.1. Seleccionar el control “Todos” (RadioButton) y elaborar un programa para
que cuando este control sea el seleccionado, desactive los controles que
piden datos. Puede ser un programa como el siguiente:

// Ventana: w_icf_pordepto_nom, Objeto: rb_todos, Heredado de: w_icf_buscar:rb_otro


// Evento: Clic
ddlb_departamento.visible = false
sle_primerapellido.visible = false
sle_segundoapellido.visible = false
st_primerap.visible = false
st_segundoap.visible = false
st_depto.visible = false
dw_datosempleados.visible = false

15.2. Correr la ventana para probar su funcionamiento.


15.3. Seleccionar el control “Por Nombre” (RadioButton). Escribir un programa
para que active los campos que piden los datos de nombre. Puede ser un
programa como el siguiente:

// Ventana: w_icf_pordepto_nom, Objeto: rb_nombre, Evento: Clic


ddlb_departamento.visible = false
sle_primerapellido.visible = true
sle_segundoapellido.visible = true
st_primerap.visible = true
st_segundoap.visible = true
st_depto.visible = false

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 14
dw_datosempleados.visible = false

15.4. Correr la ventana para probar su funcionamiento.


15.5. Seleccionar el control “Por Departamento” (RadioButton). Escribir un
programa para que active el control que pide el dato de Departamento.
Puede ser un script como el siguiente:

// Ventana: w_icf_pordepto_nom, Objeto: rb_nombre, Evento: Clic


ddlb_departamento.visible = true
sle_primerapellido.visible = false
sle_segundoapellido.visible = false
st_primerap.visible = false
st_segundoap.visible = false
st_depto.visible = true
dw_datosempleados.visible = false

15.6. Correr la ventana para probar su funcionamiento.


16. Crear una función que sirva para ejecutar las cuatro operaciones básicas
aritméticas: sumar, restar, multiplicar y dividir.
16.1. En barra de herramientas g Function.
16.2. g NEW.
16.3. Llenar los datos solicitados:
16.3.1. Nombre de la función.
16.3.2. Valor a retornar (string).
16.3.3. Dar los argumentos: primer operando (tipo string, paso por valor),
segundo operando (tipo string, paso por valor) y operador (tipo integer,
paso por valor)
16.4. g OK
17. Escribir las instrucciones que van a conformar la función. Puede ser un
programa como el siguiente:

// Nombre de la funcion: f_operaciones


// Objetivo: Hacer un cálculo aritmético
// Parámetro 1: Primer operando
// Parámetro 2: Segundo operando
// Parámetro 3: Operación a realizar así:
// 1 Sumar
// 2 Restar
// 3 Multiplicar
// 4 Dividir
Double oper1, oper2, oper3

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 15
IF arg_operando1 = "" OR arg_operando2 = "" THEN
messagebox ("Error","Los operandos deben ser aritméticos",StopSign!, OK!)
return ""
END IF
oper1 = Double(arg_operando1)
oper2 = Double(arg_operando2)
Choose Case arg_operador
Case 1
oper3 = oper1 + oper2
Case 2
oper3 = oper1 - oper2
Case 3
oper3 = oper1 * oper2
Case 4
If oper2 = 0 Then
Return "División por cero"
Else
oper3 = oper1 / oper2
End If
Case else
Return "Operación no válida"
End Choose
Return String (oper3)

18. Cambiar los programas asociados con los botones de operaciones de la


ventana de la calculadora para que utilicen la función anterior.
18.1. Para el botón de Resta (-) puede ser un programa como el siguiente (para
el evento clic):

// clic para cb_resta


st_resultado_n.text = f_operaciones ( sle_operando1.text, sle_operando2.text, 2 )

18.2. Proceder de manera similar para la suma, multiplicación y división.


18.3. Probar su funcionamiento.
18.4. Comprobar el funcionamiento de la Calculadora para valores con punto
decimal. En caso que no funcione, hacer las modificaciones necesarias.
19. Crear una base de datos que implemente lo mostrado en la siguiente figura:

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 16
19.1. Crear localmente una nueva base de datos. Dejar el archivo físico en el
directorio donde se están dejando todos los archivos de este ejercicio:
En barra de herramientas: g Database
En ventana “Select Tables”: g Cancel
En menú: g File g Create Database...
En ventana “Create Local Database”: indicar los datos allí pedidos:
Database Name: Camino y nombre del archivo en Windows donde se va
a guardar el archivo físico. Se sugiere:
g Browse,
Llegar al directorio deseado, y
Dar el nombre al archivo.
User ID: Identificación del usuario. Valor por omisión: DBA
Password: Clave. Valor por omisión: SQL.

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 17
Start Command: Nombre del comando para arrancar esta base de
datos. Se recomienda dejar el nombre sugerido (dbeng50, para arrancar
Sybase Anywhere 5.0).
g OK
20. Es bueno observar lo siguiente:
• En barra de herramientas: g Configure ODBC
En ventana “Configure ODBC – Installed Driver”: g Sybase SQL
Anywhere x.x,
Mirar que en “Data Sources for Selected Drivers”, aparece el
nombre de la base de datos que se está creando, y para confirmar
los datos: gEdit...
g Close
• En la barra de herramientas: g DB Profile
En ventana “Database Profiles”, mirar que aparece la base de
datos recién creada. Si desea ver las características: g Edit...
g Close
• En menú: g File g Connect, ver que en la lista aparece la base de
datos recién creada.
En caso de algún problema, hay que arreglarlo o sino la base de datos
queda inalcanzable. En casos extremos: borrar la base de datos recién
creada, revisar la Configuración ODBC, revisar los Profile, y ver las
entradas que puedan estar causando conflicto (si es del caso borrarlas
g remove).
21. Crear las tablas: g Create Table
Definir las columnas y sus características: nombre, tipo de datos,
aceptación o no de nulos, valor por omisión.
Colocar letreros significativos para encabezamientos de columnas,
rótulos identificadores de campos y comentarios a nivel de tabla y
columna.
22. Seleccionada una tabla:
Definir llave primaria
Crear índices: g Create Index
Crear llaves foráneas: g Create foreign key
Llenarla de datos:
g Data Manipulation (grid, tabular o freeform)
g Insert Row

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 18
Digitar los datos
g Save Changes
23. Preparar el sitio donde se van a mostrar los datos de los empleados. Para
ese fin, definir los DataWindows Object necesarios. Como primer paso
definir un DataWindows que presente en forma tabular los siguientes
datos: Nombre y Apellido del empleado y nombre del Departamento donde
trabaja. La salida se debe presentar en orden alfabético por Apellido del
empleado. Se puede seguir un procedimiento similar al siguiente:
23.1. En barra de herramientas: g DataWindow
23.2. En ventana “Select DataWindow”: g New
23.3. En ventana “New DataWindow”:
23.3.1. En Fuente de datos: g SQL Select
23.3.2. En estilo de presentación: g Tabular
23.3.3. g OK
23.4. En ventana “Select Tables”, seleccionar las tablas Empleado y
Departamentos
23.5. g Open
23.6. En tabla Empleado: g Código del empleado, g Nombre del empleado, g
Apellido del empleado
23.7. En tabla Departamento: g Nombre del departamento
23.8. En carpeta “Sort”: à Apellido del empleado (hacer “drag and drop”)
23.9. Pasar a diseño de la salida: En barra de herramientas: g Data Source
(icono que dice SQL)
23.10. Colocar encabezados apropiados. Tener en cuenta de que a pesar de
haber seleccionado el código del empleado, no se desea en la salida!!
23.11. Ver resultado del diseño.
23.12. Hacer modificaciones al diseño.
23.13. Probar inserciones, borrados y modificaciones a la base de datos.
23.14. Grabar el trabajo adelantado: En barra de herramientas: g Save
23.15. En ventana “Save DataWindow”:
23.16. Colocar el nombre de la ventana (d_...)
23.17. Escribir un comentario significativo
23.18. g OK
23.19. Ver resultado del diseño.

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 19
23.20. Hacer modificaciones al diseño.
24. De manera similar elaborar un DataWindows donde se muestre el listado
de personas, dado el código del Departamento donde trabajan.
24.1. Seguir un procedimiento similar a la creación del anterior DataWindows.
Adicionalmente, en la ventana donde se seleccionan campos de las tablas
(donde también aparecen las carpetas Sort, Where, Group, Having,
Compute y Syntax), dar la información del argumento:
24.1.1. En menú: g Design g Retrieval Arguments...
24.1.2. En ventana “Specify Retrieval Arguments”: escribir el nombre del
argumento (por ejemplo departamento) y seleccionar el tipo de dato
(por ejemplo Number)
24.1.3. g OK
24.2. En carpeta Where, especificar la condición deseada, por ejemplo:

Column Operator Value Logical


"empleado"."emp_depto_id" = :departamento

25. Elaborar un tercer DataWindows que muestre los empleados que tengan el
Nombre y/o el Apellido digitado por el usuario.
25.1. Seguir un procedimiento similar a la elaboración del DataWindows
anterior. En este caso es necesario especificar dos argumentos (por
ejemplo: nombre de tipo String y apellido de tipo String).
25.2. g OK
25.3. En carpeta Where: especificar la condición deseada, por ejemplo:

Column Operator Value Logical


"empleado"."empl_nombre" = :nombre Or
"empleado"."empl_apellido" = :apellido

26. Elaborar un DataWindows que muestre toda la información contenida en la


base de datos relacionada con un empleado. En este caso el argumento de
búsqueda puede ser el código del empleado y el estilo de presentación puede
ser Freeform.
27. Cambiar el Punto de Inicio del Aplicativo, para que active la ventana que
muestra las opciones de búsqueda de personal y adicionalmente conecte la
base de datos que se va a utilizar. Elaborar un programa similar al
siguiente (evento abrir la aplicación):

// open icf_1
// Punto inicial del aplicativo.

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 20
// ------------------------------------------------------------------------------------------------------------------
// CONEXIÓN AL MOTOR DE BASE DE DATOS
// Conexión a un motor de Base de Datos SQL Anywhere con ODBC
sqlca.DBMS = "ODBC"
sqlca.DbParm="ConnectString='DSN=Calculadora2;UID=dba;PWD=sql'"
MessageBox ("Motor de Base de Datos conectado:",sqlca.dbparm)
connect;
// Prueba para ver si quedó conectado
if sqlca.sqlcode <> 0 then
MessageBox ("No se pudo Conectar a la Base de Datos", &
"Mensaje enviado por el sistema:~n~r'"+sqlca.sqlerrtext+"'")
return
end if
// ------------------------------------------------------------------------------------------------------------------
open (w_ventana_para_busqueda) //Nombre de la ventana que se desea activar.

28. Correr la aplicación y comprobar que funciona el nuevo punto de entrada.


29. En la ventana donde se presentan las opciones de búsqueda, programar el
botón de “Buscar” para que de acuerdo con la selección hecha (Todos, Por
Nombre o Por Departamento), muestre el resultado de la búsqueda.
29.1. Seleccionar el evento clic del botón Buscar y elaborar un programa como
el siguiente:

// clic para cb_buscar


IF rb_otro.checked THEN
// Seleccionado todos
dw_datosempleados.visible=true
dw_datosempleados.dataobject='d_lista_empleados'
dw_datosempleados.SetTransObject(SQLCA)
dw_datosempleados.retrieve ()
END IF
IF rb_nombre.checked THEN
// Seleccionado Por Nombre
dw_datosempleados.visible=true
dw_datosempleados.dataobject='d_empleados_dado_nombre'
dw_datosempleados.SetTransObject(SQLCA)
dw_datosempleados.retrieve (sle_nombre.text,sle_primer_apellido.text)
END IF
IF rb_departamento.checked THEN
// Seleccionado Por Departamento
dw_datosempleados.visible=true
dw_datosempleados.dataobject='d_empleados_depto'
dw_datosempleados.SetTransObject(SQLCA)
// Elaborar el código necesario para llegar al dato numérico xxx de la instrucción
// dw_datosempleados.retrieve (xxx)
END IF

29.2. Correr la aplicación y comprobar su correcto funcionamiento.

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 21
30. Programar el evento doble clic para el DataWindows Control de la ventana
que permite búsqueda. Por ejemplo:

// doble clic para dw_datosempleados


integer l_codigo, l_casos
IF dw_datosempleados.dataobject='d_lista_empleados' OR &
dw_datosempleados.dataobject='d_empleados_dado_nombre' OR &
dw_datosempleados.dataobject='d_empleados_depto' THEN
l_codigo=GetItemNumber(row,1) //Supone que en los DataWindows la primera Columna
//corresponde al código del trabajador!!!!!!!!!!!!
dw_datosempleados.dataobject='d_detalle_empleado'
dw_datosempleados.SetTransObject(SQLCA)
l_casos=dw_datosempleados.retrieve (l_codigo)
IF l_casos > 0 THEN
dw_datosempleados.retrieve (l_codigo)
ELSE
MessageBox ("De la Base de Datos","El empleado no tiene tareas asignadas")
w_icf_pordepto_nom.cb_buscar.postevent(Clicked!)
END IF
END IF

31. Crear una ventana, que sea el nuevo punto de entrada y exhiba en menús
las posibilidades que presenta el aplicativo, ver las siguientes cinco figuras:

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 22
32. Para definir los menús, se puede seguir un procedimiento similar al
siguiente:
32.1. En Barra de herramientas: g Menu
32.2. En ventana “Select Menu”: g New
32.3. Crear los menús y submenús, junto con sus características.
32.4. En barra de herramientas: g Save
32.5. En ventana “Save Menu”: Dar Nombre y Comentarios.
33. Escribir los programas asociados con el evento clic para cada una de las
opciones de los menús, por ejemplo:
33.1. Para: g Calculadora

// clic m_calculadora
open ( w_icf_calculadora )

33.2. Para: g Terminar

// clic m_terminar

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 23
If MessageBox("Salir","Salir del aplicativo?",Question!,YesNo!)=1 then
Close( ParentWindow ) // Cerrar la ventana donde se encuentra el menu
End If //No toma accion en caso negativo

33.3. Para: g Buscar g Todos

// Clic m_todos
open ( w_icf_pordepto_nom)
w_icf_pordepto_nom.rb_otro.setfocus()
w_icf_pordepto_nom.cb_buscar.postevent(Clicked!)

33.4. Para: g Buscar g Por Nombre

// Clic m_pornombre
open ( w_icf_pordepto_nom)
w_icf_pordepto_nom.rb_nombre.setfocus()

33.5. Para: g Buscar g Por Departamento

// Clic m_pordepartamento
open ( w_icf_pordepto_nom)
w_icf_pordepto_nom.rb_departamento.setfocus()

34. Modificar el punto de Inicio para arranque con la ventana recién diseñada.
35. Agregar facilidades de menú a la ventana de la calculadora, ver ejemplo
presentado en las siguientes tres gráficas:

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 24
36. Escribir los programas asociados con el evento clic para cada una de las
opciones de los menús, por ejemplo:
36.1. Para: g Archivo g Cerrar Ventana

// clic m_cerrarventana
Close( ParentWindow )

36.2. Para: g Archivo g Salir del Aplicativo


// clic m_salirdelaplicativo
Close ( w_icf_inicial )

36.3. Para: g Editar g Borrar Todo

// clic m_calculadora.m_editar.m_borrartodo
w_icf_calculadora.sle_operando1.text = ""
w_icf_calculadora.sle_operando2.text = ""
w_icf_calculadora.st_resultado_n.text = ""

36.4. Para: g Editar g Resultado a Memoria

// clic m_icfcalcula.m_editar.m_resultadoaclipboard
// Objetivo: Llevar el resultado al clipboard

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 25
clipboard ( w_icf_calculadora.st_resultado_n.text )

36.5. Para: g Editar g Memoria a Operando 1

// clic m_icfcalcula.m_editar.m_memoriaaoperando1
// Copia el contenido del clipboard al Primer Operando
w_icf_calculadora.sle_operando1.text = clipboard ( )

36.6. Para: g Ayuda g Temas

// clic m_icfcalcula.m_ayuda.m_temas
ShowHelp ( "C:\Archivos de programa\Sybase\PB6\Help\pbhlp60.hlp", index! )

37. Elaborar un ejecutable de la aplicación.


38. Salir de PowerBuilder.
39. Correr desde Windows el ejecutable que contiene el aplicativo.

El ejercicio deben hacerlo de forma individual y presentarlo funcionando


perfectamente, desde ejecutable y desde PowerBuilder.
En grupo deben presentar un informe, indicando sus comentarios sobre este
documento, errores encontrados, sugerencias para mejorarlo y utilidad al
realizar el ejercicio.

Entrenamiento en PowerBuilder 6.5


Ing. Ismael Castañeda Fuentes Página 26

You might also like