entrenamiento en power builder · entrenamiento en powerbuilder 6.5 ing. ismael castañeda fue ntes...

26
Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 1 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)

Upload: lamphuc

Post on 29-Jul-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 1

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)

Page 2: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 2

◊ 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

◊ CommandButton ◊ DataWindow ◊ DropDownListBox ◊ DropDownPictureListBox ◊ EditMask ◊ Graph ◊ GroupBox ◊ HscrollBar ◊ Line ◊ ListBox ◊ ListView ◊ MultiLineEdit ◊ OLEcontrol ◊ OLECustomControl

◊ Oval ◊ Picture ◊ PictureButton ◊ PictureListBox ◊ RadioButton ◊ Rectangle ◊ RichTextEdit ◊ RoundRectangle ◊ SingleLineEdit ◊ StaticText ◊ Tab ◊ TreeView ◊ UserObject ◊ VscrollBar

• 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:

Page 3: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 3

◊ 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

Page 4: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 4

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.

Page 5: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 5

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).

Page 6: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 6

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

Page 7: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 7

• 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)

Page 8: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 8

• 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:

Page 9: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 9

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:

Page 10: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 10

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.

Page 11: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 11

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.

Page 12: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 12

• 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

Page 13: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 13

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 = “”).

Page 14: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 14

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

Page 15: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 15

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

Page 16: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 16

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:

Page 17: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 17

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.

Page 18: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 18

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

Page 19: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 19

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.

Page 20: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 20

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.

Page 21: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 21

// ------------------------------------------------------------------------------------------------------------------ // 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.

Page 22: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 22

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:

Page 23: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 23

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

Page 24: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 24

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:

Page 25: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 25

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

Page 26: ENTRENAMIENTO EN POWER BUILDER · Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fue ntes Página 3 Hace clic en otro control. Hace clic en otra ventana donde no hay controles

Entrenamiento en PowerBuilder 6.5 Ing. Ismael Castañeda Fuentes Página 26

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.