58
PowerBuilder 7.0 Definición. PowerBuilder es un entorno gráfico de programación que está compuesto de diferentes herramientas que permiten el desarrollo rápido de aplicaciones. Con estas herramientas se pueden desarrollar aplicaciones Cliente / Servidor a través de ODBC (Open DataBase Connectivity) o Drivers Nativos para la Base de Datos. Una apliación Cliente / Servidor pone en comunicación una estación de trabajo con un Servidor de Base de Datos Central. Este modelo consiste en utilizar una Base de Datos que reside en una máquina separada denominada Servidor. El Software de gestión de Base de Datos se ubica en las estaciones de trabajo remotas (Clientes). Las aplicaciones que se ejecutan en las estaciones cliente, acceden a los datos que se encuentran en el servidor. Crear una nueva Librería (Proyecto) 1. Pulse sobre el icono New del PowerBar1 2. En la ventana de dialogo New, seleccionar la ficha Start Wizards y dentro de esta seleccionar Application, luego pulsar el botón OK Servidor (Base de Datos) Estacion (Cliente

Power Builder 7 0 Nivel Basico

Embed Size (px)

Citation preview

Page 1: Power Builder 7 0 Nivel Basico

PowerBuilder 7.0

Definición. PowerBuilder es un entorno gráfico de programación que está compuesto de

diferentes herramientas que permiten el desarrollo rápido de aplicaciones. Con estas

herramientas se pueden desarrollar aplicaciones Cliente / Servidor a través de ODBC (Open

DataBase Connectivity) o Drivers Nativos para la Base de Datos.

Una apliación Cliente / Servidor pone en comunicación una estación de trabajo con un

Servidor de Base de Datos Central. Este modelo consiste en utilizar una Base de Datos que

reside en una máquina separada denominada Servidor. El Software de gestión de Base de

Datos se ubica en las estaciones de trabajo remotas (Clientes). Las aplicaciones que se

ejecutan en las estaciones cliente, acceden a los datos que se encuentran en el servidor.

Crear una nueva Librería (Proyecto)

1. Pulse sobre el icono New del PowerBar1

2. En la ventana de dialogo New, seleccionar la ficha Start Wizards y dentro de esta

seleccionar Application, luego pulsar el botón OK

Servidor(Base de Datos)

Estacion(Cliente

Page 2: Power Builder 7 0 Nivel Basico

Manual de Power Builder

3. Seguidamente se activará una ventana en donde se tendrá que ingresar el nombre de la

Librería y Aplicación con que se desea crear.

Luego pulsar el botón Finish.

4. Al terminar se activará la una pantalla en donde se comenzará a trabajar y crear nuestro

proyecto.

Crear una nueva ventana (Formulario)

1. Pulse sobre el icono New del PowerBar1.

2. En la ventana de diálogo New, seleccionar la ficha Objects y dentro de esta seleccionar

Window, luego pulsar el botón OK.

3. Luego se activará la siguiente venta de diseño.

Ing. Victor Davila [email protected] 2

Nombre de la Aplicación

Nombre de la Librería

Page 3: Power Builder 7 0 Nivel Basico

Manual de Power Builder

4. Para grabar la ventana, pulse sobre el icono de Diskette , luego ingrese el nombre de

la ventana con que desea grabar y seleccione OK.

Ing. Victor Davila [email protected] 3

Ventana de Propiedades

Ventana creada.

Ventana donde se creará el código

Page 4: Power Builder 7 0 Nivel Basico

Manual de Power Builder

USO DE CONTROLES

Los controles son objetos que se ubican dentro de una ventana. Loas controles muestran

datos, aceptan datos o validan datos. Los controles responden a una acción del usuario como

por ejemplo un clic de ratón.

Los controles como cualquier otro objeto tiene sus propios atributos y eventos, alguno

controles son objetos Estándar Windows, otros son particulares de PowerBuilder .

Para activar e insertar un control, realizar un clic en la flecha .

Cuadro de Texto Estático. Se utiliza para mostrar títulos y

mensajes, este control muestra un texto que el usuario solo podrá seleccionar mas no

modificar.

Propieades.

Aligment. Especifica el alineamiento del texto en el control. Los valores que puede

seleccionar son: Left!, Center! Y Right!.

BackColor. Especifica un valor numérico correspondiente al color de fondo.

Text. Especifica el texto que se desea mostrar en el control.

Editar Línea Simple. Es una caja de texto, que el usuario

puede utilizar para ingresar una línea de texto o en todo caso para visualizar el contenido

de un campo de una tabla de datos.

Propiedades.

Name. Especifica el nombre que se le desea dar a este control.

BackColor. Especifica un valor numérico correspondiente al color de fondo.

Border. Especifica si el control tiene un borde. Los valores son: True (Tiene borde) o

False (No tiene borde)

BorderStyle. Especifica el estilo del borde del control, los valores son: StyleBox!

(Cuadro), StyleLowerred! (Cuadro 3d), StyleRaised! (3d con Sombra) Y StyleShadowBox

(Cuadro con sombra).

DisplayOnly. Especifica si el texto del control es solo de lectura y no permite realizar

cambios por parte del usuario. Los valores son: True (El usuario no podrá realizar

cambios) y False (El usuario podrá realizar cambios).

Enabled. Especifica si el control está habilitado (Activado).Los valores son: True (El

control está habilitado) y False (El control está dehabilitado).

Ing. Victor Davila [email protected] 4

Page 5: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Limit. Especifica el máximo numero de caracteres (0 a 32,767) que se pueden ingresar en

el control (0 es sin límite)

Text. Especifica el texto que contiene el control

Password. Permite ocultar con una mascara los caracteres digitados.

TextCase. Especifica el formato de ingreso de datos en el cuadro de texto. Los valores

pueden ser: AnyCase! (Cualquier formato), Lower! (Letras minúsculas) y Upper! (Letras

mayúsculas)

. Muestra una imagen de mapa de bits.

Propieades.

Name. Especifica el nombre que se le desea dar a este control.

Border. Especifica si el control tiene un borde. Los valores son: True (Si tiene borde) o

False (no tiene borde)

PictureName. Especifica el nombre del archivo que contenga el gráfico.

Ejemplo:

Desarrollar una aplicación que permita el ingreso del nombre de usuario y su

respectiva clave de acceso.

1. Crear una nueva aplicación dando un clic en el icono New del PowerBar1.

2. En la ventana de diálogo New, seleccionar la ficha Objects y dentro de esta

seleccionar Window, luego pulsar el botón OK.

3. Ubicar en la ventana los siguientes controles y cambiar las propiedades respectivas.

Tres Controles StaticText.

Dos Controles SingleLineEdit

Un Control Picture.

Cambiar las propiedades siguientes.

Control Propiedad Valor

Window Title Seguridad de Sistema

P_1 Name P_llavePictureName (buscar una imagen)

St_1 Text Ingrese su Nombre y ContraseñaFont 12, Bold

St_2 Text &UsuarioSt_3 Text &ContraseñaSle_1 Name Sle_Usuario

Text “”

Ing. Victor Davila [email protected] 5

Page 6: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Sle_2 Name Sle_ClaveText “”Limit 5Password (Activado)

Al final el diseño tendrá que ser el siguiente.

Para ejecutar la ventana ingresar a File de la barra de menú y seleccione Run

Preview, en la ventana de dialogo Run/Preview, seleccione el nombre de la

ventana que desea ejecutar y seleccione el botón OK.

Si desea salir de la ventana realice un clic sobre el icono

USO DEL LENGUAJE

Una Aplicación PowerBuilder es una aplicación dirigida por eventos. El usuario controla la

aplicación que se ejecuta provocando eventos. Por ejemplo: Cada acción que realiza el

usuario como abrir una aplicación provoca un evento. El lenguaje utilizado para escribir

procedimientos se denomina PowerScript, que es un lenguaje simple y fácil de aprender.

Uso de Comentarios. Si desea poner comentarios en el codigo de una aplicación utilizar

cualquiera de los dos siguientes símbolos.

/* Indica el inicio de un comentario y */ indica el final de un comentario.

// Indica comentario al final de una línea.

Ing. Victor Davila [email protected] 6

Page 7: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Tipos de Datos. Los identificadores en PowerScript, identifican objetos tales como variables,

etiquetas, funciones, ventanas, controles y menús. Un identificador debe comenzar con una

letra y utilizar como máximo cuarenta caracteres, también debe tenerse en cuenta lo siguiente.

No debe contener espacios en blanco.

Puede incluir algunos caracteres no alfabéticos como:

Subrayado _

Signo de Dólar $

Signo de Número #

Signo de tanto por ciento %

Los identificadores no diferencian las mayúsculas ni minúsculas, el identificador Lib_nombre

es igual a lib_nombre.

Tipos de Datos Estandar. Cierto tipo de datos son intrínsicos al lenguaje PowerScript, pero

la mayoría son tipos de datos que son reconocidos en otros lenguajes de programación.

La siguiente tabla muestra los tipos de datos estándar.

Tipo de Dato. Descripción.

Blob (Binary Large Object) Datos sin formato, Por ejemplo una imagen o un párrafo.

Boolean True o False

Char o Character Un único carácter.

Date Fecha

DateTime Combinación de una fecha y una hora.

Decimal Números decimales con signo hasta una longitud de 18

dígitos, el punto decimal no se cuenta como dígito.

Double Números en como flotante, tiene hasta 15 dígitos de

precisión y su rango va desde 2.2253-308 a 1.7976-308

Integer, Int Son enteros con signo de 16 bits.

Long Son enteros con signo de 32 bits, el rango va desde –

2,147,483,648 a +2,147,483,647

Real Números en coma flotante con una precisión de hasta 6

dígitos. Rango desde 1.1754-38 a 3.4028+38

String Contiene desde 0 hasta 60000 caracteres ASCII

Time Hora-

Declaración de Variables. Para declarar una variable se requiere solamente de dos partes: El

tipo de dato y El nombre de la variable.

Ing. Victor Davila [email protected] 7

Page 8: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Inicialización de Variables

Literales. Se puede dar el valor inicial a la variable al declararla, por ejemplo:

Int GranTotal=3, SubTotal=0

String Metodo=”A34”

Date Hoy=1998-11-15

Cada uno de los valores utilizados en la expresión anterior para inicializar una

variable literal.

Matrices. Un Array es una colección de elementos indexados de tipos de datos simples.

Un Array puede tener uno o mas dimensiones, es una serie de valores con un único

nombre. Se especifica su tamaño al declararla. Por ejemplo.

Int A[5]={1,2,3,4,5}

A los valores contenidos en la matriz se accede por medio del índice.

Matrices Multi-dimensionales. Las matrices pueden tener múltiples dimensiones.

. Es utilizado para ejecutar una acción cuando el usuario de

un clic sobre el.

Propieades.

Text. Especifica el texto que se desea mostrar en este botón.

Name. Especifica el nombre que se le desea dar a este control.

Cancel. Especifica si el control es el botón Cancelar (El botón Cancelar dispara el evento

Clicked, si el usuario pulsa la tecla ESC). Los valores son: True (El botón es el botón

Cancelar) y False (El botón no es el botón cancelar)

Ejemplo.

Desarrollar una aplicación que permita mostrar el nombre del usuario y su respectiva

clave de acceso. La clave de acceso tendrá una longitud de 5 caracteres, se debe mostrar

asteriscos (*) cuando el usuario ingrese la clave de acceso.

Abra una nueva ventana e inserte los siguientes controles.

Tres Controles StaticText.

Dos Controles SingleLineEdit

Un Control Picture.

Dos Botones de comando

Ing. Victor Davila [email protected] 8

Page 9: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Cambiar las propiedades siguientes.

Control Propiedad Valor

Window Title Seguridad de Sistema

P_1 Name P_llavePictureName (buscar una imagen)

St_1 Text Ingrese su Nombre y ContraseñaFont 12, Bold

St_2 Text &Usuario

St_3 Text &Contraseña

Sle_1 Name Sle_UsuarioText “”

Sle_2 Name Sle_ClaveText “”Limit 5Password (Activado)

Cb_1 Name cb_AceptarText Aceptar

Cb_2 Name cb_CancelarText Cancelar

Al final el diseño tendrá que ser el siguiente.

Codigo de la ventana

Cb_Aceptar / ClickedMessageBox("Sistema de Seguridad","Gracias por su visita")Close(w_ventana_01)

Cb_Cancelar / ClickedClose(w_ventana_01)

Ing. Victor Davila [email protected] 9

Page 10: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Ejemplo

Crear una apliación que calcule el los descuentos de ley de un trabajador y el sueldo neto.

El diseño tendrá que quedar de la siguiente manera.

Codigo del formulario

Cb_calcular / ClickedReal Haber,Cts,Essalud,Afp,Totd,NetoHaber=Real(sle_haber.Text)Essalud=Haber * 0.03Cts=haber * 0.06Afp=haber * 0.06Totd=Essalud + Cts + Afpsle_Afp.text=String(Afp)sle_Cts.text=String(Cts)sle_Essalud.text=String(Essalud)sle_Totd.Text=String(totd)sle_neto.Text=String(Neto)

Cb_Otro / Clickedsle_haber.Text="0"sle_Afp.text="0"sle_Cts.text="0"sle_Essalud.text="0"sle_Totd.Text="0"sle_neto.Text="0"

Ing. Victor Davila [email protected] 10

Los Controles

sle_Haber, sle_Cts, sle_Afp, sle_Totd y sle_Neto tendrán que estar desactivados.

Page 11: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Controladores de flujo de programa

Las siguientes sentencias influyen en el flujo de control de un procedimiento que se está

ejecutando. Estos son las sentencias que pueden controlar el orden de ejecución de las

sentencias de un procedimiento.

IF … THEN ELSE.

Una estructura de control utilizada en el Script, que ejecuta una acción si la condición lógica

es verdadera.

Sintaxis 1

If condición Then

Bloque de instrucciones

Else

Bloque de instrucciones

Endif

En está sintaxis, primero se evalúa la condición lógica, y si el resultado de la

condición es verdadera, se ejecutarán las instrucciones que se encuentren entre If y

Else, y si el resultado es falso, se ejecutarán las instrucciones que se encuentren entre

Else y Endif.

Sintaxis 2

If condición Then

Bloque de instrucciones

Endif

En está sintaxis, primero se evalúa la condición lógica, y si el resultado de la

condición es verdadera, se ejecutarán las instrucciones que se encuentren entre If y

Endif.

CHOOSE CASE.

La estructura de control Cose Case, utiliza el valor de una expresión o de una variable para

decidir entre una serie de opciones. El valor de la expresión determina que opción seleccionar.

Sintaxis:

CHOOSE CASE Expresión.

CASE opción1

Bloque de Instrucciones.

CASE opción2

Bloque de Instrucciones.

Ing. Victor Davila [email protected] 11

Page 12: Power Builder 7 0 Nivel Basico

Manual de Power Builder

CASE opciónn

Bloque de Instrucciones.

CASE ELSE

Bloque de Instrucciones.

END CHOSE.

DO … LOOP.

Ejecuta un bloque de instrucciones hasta que se produzca una condición de finalización.

Sitaxis:

1. Hacer Mientras la condición sea verdadera.

DO WHILE condición

Instrucciones.

LOOP

2. Hacer hasta que la condición llegue a ser verdadera.

DO UNTIL condicion

Instrucciones.

LOOP

3. Repetir mientras la condición sea verdadera.

DO

Instrucciones.

LOOP WHILE condición

4. Repetir hasta que la condición llegue a ser verdadera.

DO

Instrucciones.

LOOP UNTIL condicion.

FOR … NEXT.

La sentencia FOR … NEXT ejecuta un bloque de sentencias en un determinado numero de

veces, los argumentos que se especifican en la sentencia determina el numero de veces que se

ejecuta el bloque

Sintaxis:

FOR nom_var=Inicial TO final STEP (Incremento)

Bloque de Instrucciones

NEXT.

Ing. Victor Davila [email protected] 12

Page 13: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Permite crear un grupo de opciones en donde solo se podrá

seleccionar una opción del grupo.

Propiedades

Checked. Retorna un valor lógico el cual especifica si el control se encuentra

seleccionado o no. Si el valor devuelto es:

Trae: significa que está seleccionado.

False: significa que no está seleccionado.

Enabled. Especifica un valor lógico, el cual indica si el control está activado o

desactivado.

Trae: Control Activado

False: Control Desactivado

Ejemplo

Desarrolle una aplicación que permita calcular el haber básico de un trabajador de acuerdo

a la categoría seleccionada y calcular los descuentos respectivos.

Inserte los siguientes controles.

Control Propiedad Valor

sle_1 Name sle_empleadoText en blanco

sle_2 Name sle_haberText en blanco

sle_3 Name sle_ctsText en blanco

sle_4 Name sle_afpText en blanco

sle_5 Name sle_essaludText en blanco

sle_3 Name sle_totaldText en blanco

sle_3 Name sle_netoText en blanco

rb_1 Name rb_generenteCaption Gerente 2500

rb_2 Name rb_administradoeCaption Administrador 2000

rb_3 Name rb_secretariaCaption Secretaria 1500

Cb_1 Name cb_aceptarCaption Aceptar

Cb_1 Name cb_otroCaption Otro

Cb_1 Name cb_cerrarCaption Cerrar

Ing. Victor Davila [email protected] 13

Page 14: Power Builder 7 0 Nivel Basico

Manual de Power Builder

El diseño del formulario tendrá que quedar de la siguiente manera:

Código de la aplicación

Cb_aceptar / Clicked

Real haber,cts,afp,essalud,totd,netoIf rb_gerente.checked=true then

haber=2500end ifIf rb_administrador.checked=true then

haber=2000end ifIf rb_secretaria.checked=true then

haber=1500end ifcts=haber * 0.03afp=haber * 0.06essalud=haber * 0.06totd=cts+afp+essaludneto=haber - totdsle_haber.text=string(haber)sle_afp.text=string(afp)sle_cts.text=string(cts)sle_essalud.text=string(essalud)sle_totald.text=string(totd)sle_neto.text=string(neto)

cb_otro / Clicked

sle_empleado.text=""sle_haber.text="0"sle_cts.text="0"sle_afp.text="0"sle_essalud.text="0"sle_totald.text="0"sle_neto.text="0"

Grabe la ventana con w_opciones y luego ejecute .

Ing. Victor Davila [email protected] 14

Controles desactivados

Page 15: Power Builder 7 0 Nivel Basico

Manual de Power Builder

(Casilla de verificación). Permite crear un grupo de opciones las

cuales podrán ser activadas o desactivadas.

Propiedades

Checked. Retorna un valor lógico el cual especifica si el control se encuentra

seleccionado o no. Si el valor devuelto es:

Trae: significa que está seleccionado.

False: significa que no está seleccionado.

Enabled. Especifica un valor lógico, el cual indica si el control está activado o

desactivado.

Trae: Control Activado

False: Control Desactivado

Ejemplo

Desarrolle una aplicación que permita calcular el haber básico de un trabajador de acuerdo

a la categoría seleccionada y calcular los descuentos respectivos (solo de los que se

especifique).

Nota : Para dar los nombres de los controles fíjese el código de la aplicación y de acuerdo

a eso ponga los nombres respectivos.

Los nombres de los controles son los mismos que el ejemplo anterior y de los que se agregaron son:Control Propiedad Valor

cbx_1 name cbx_ctscaption CTS 3%

cbx_1 name cbx_afpcaption AFP 6%

cbx_1 name cbx_essalud caption ESSALUD 3%

El diseño del formulario tendrá que quedar de la siguiente manera

Ing. Victor Davila [email protected] 15

Page 16: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Código del formulario

cb_aceptar / clicked

Real haber,cts,afp,essalud,totd,netoIf rb_gerente.checked=true then haber=2500If rb_administrador.checked=true then haber=2000If rb_secretaria.checked=true then haber=1500if cbx_cts.checked=true then

cts=haber * 0.03else

cts=0 end ifif cbx_afp.checked=true then

afp=haber * 0.03else

afp=0 end ifif cbx_essalud.checked=true then

essalud=haber * 0.03else

essalud=0 end iftotd=cts+afp+essaludneto=haber - totdsle_haber.text=string(haber)sle_afp.text=string(afp)sle_cts.text=string(cts)sle_essalud.text=string(essalud)sle_totald.text=string(totd)sle_neto.text=string(neto)

Cb_otro / Clicked

sle_empleado.text=""sle_haber.text="0"sle_cts.text="0"sle_afp.text="0"sle_essalud.text="0"sle_totald.text="0"sle_neto.text="0"cbx_cts.checked=falsecbx_afp.checked=falsecbx_essalud.checked=false

Cumple la misma función que el control SingleLineEdit, con la

diferencia de que a este control se le puede definir mascaras de entrada y salida de datos.

Propiedades.

DisplaOnly. Especifica si el contenido del control podrá ser modificado por el usuario.

Mask. Permite especificar la mascara que se desea usar para el control.

Numeros : #

String : @

Date :

Character Meaning Example d Day number with no leading zero 9dd Day number with leading zero if appropriate 09ddd Day name abbreviation Mondddd Day name Mondaym Month number with no leading zero 6

Ing. Victor Davila [email protected] 16

Page 17: Power Builder 7 0 Nivel Basico

Manual de Power Builder

mm Month number with leading zero if appropriate 06mmm Month name abbreviation Junmmmm Month name Juneyy Two-digit year 97yyyy Four-digit year 1997

Time :

Character Meaning

h Hour with no leading zero (for example, 1)hh Hour with leading zero if appropriate (for example, 01)m Minute with no leading zero (must follow h or hh)mm Minute with leading zero if appropriate (must follow h

or hh)s Second with no leading zero (must follow m or mm)ss Second with leading zero (must follow m or mm)ffffff Microseconds with no leading zeros. You can enter one

to six f's; each f represents a fraction of a second (must follow s or ss)

AM/PM Two-character, upper-case abbreviation (AM or PM as appropriate)

am/pm Two-character, lower-case abbreviation (am or pm as appropriate)

A/P One-character, upper-case abbreviation (A or P as appropriate)

a/p One-character, lower-case abbreviation (a or p as appropriate)

MaskDataType. Especifica el tipo de dato para el control, los valores pueden ser:

DateMask!, DateTimeMask!, DecimalMask!, NumericMask!, StringMask!, TimeMask!

Min. Especifica el valor mínimo que se podrá ingresar en el control.

Max. Especifica el valor máximo que se podrá ingresar en el control.

Spin. Especifica si se desea mostrar un scroll de tipo spinner en el control.

Ejemplo

Realice una aplicación en donde se ingrese los datos de los alumnos mas las notas

respectivas del curso. Al momento de ingresar las notas, solo deberá de aceptar números.

Además deberá calcular el promedio y la condición.

El diseño deberá de quedar de la siguiente manera.

Ing. Victor Davila [email protected] 17

Page 18: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Código del Formulario.

Cb_calcular / clicker

Real Nota1,Nota2,PromedioNota1=real(em_nota1.text)Nota2=real(em_nota2.text)promedio=(nota1+nota2)/2if promedio>=11 then

sle_condicion.text="Aprobado"else

sle_condicion.text="Desaprobado"end if em_promedio.text=string(promedio)

cb_otro / Clickedsle_alumno.text=""sle_curso.text=""em_nota1.text="0"em_nota2.text="0"em_promedio.text="0"

Grabe la ventana con w_editmask

Ejecute la ventana, ingrese los datos respectivos y pulse calcular.

Ing. Victor Davila [email protected] 18

Controles EditMaskControl em_nota1 y em_nota2

Propiedad (ficha mask) Mask = ##

MaskDataType: numerickask!Spin = ActivadoMin = 0Max = 20Incremente = 1

Page 19: Power Builder 7 0 Nivel Basico

Manual de Power Builder

y Se utilizan con la finalidad de

insertar un cuadro de lista o una lista desplegable, en donde el usuario podrá seleccionar

uno o mas elementos de la lista.

Funciones

Additem. Permite añadir un nuevo elemento dentro de un cuadro de lista o una lista

desplegable.

DeleteItem. Permite eliminar el elemento indicado de un cuadro de lista o una lista

desplegable

Reset. Borra todo los elementos de una lista o una lista desplegable.

SelectedIndex. Retorna el número del elemento seleccionado de una lista.

SelectedItem. Retorna el texto del elemento seleccionado.

SelectItem. Retorna el elemento del número de elemento indicado.

Text. Retorna el texto del elemento seleccionado.

Ejemplo : Desarrolle una aplicación en donde se agreguen nuevos elementos a una lista.

El diseño del formulario tendrá que quedar de la siguiente manera.

Código del formulario.

cb_agregar / Clicked.lb_elementos.additem(sle_nuevo.text)sle_nuevo.text=""

cb_eliminar / clickedlb_elementos.DeleteItem(lb_elementos.SelectedIndex())

cb_borrar / clickedlb_elementos.reset()

Ing. Victor Davila [email protected] 19

Control Propiedad ValorSle_1 Name sle_nuevo

Text en blancoLb_1 Name

Page 20: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Ejemplo

Desarrolle una aplicación en donde se registren nuevos productos, se ingresen la cantidad

y el precio, se calcule el subtotal y el total a pagar y esos se agreguen a unas listas.

El diseño del formulario tendrá que quedar de la siguiente manera.

Control Propiedad valor

sle_1 name sle_nuevopddlb_1 name ddlb_productossle_2 name sle_productosem_1 name em_cantidadem_2 name em_preciolb_1 name lb_productoslb_2 name lb_cantidadeslb_3 name lb_precioslb_4 name lb_subtotalessle_3 name sle_totalcsle_4 name sle_totalpsle_5 name sle_totalssle_6 name sle_totalpagar

LA PROPIEDAD SORTED DE LOS LISTBOX, TENDRÁN QUE ESTAR

DESACTIVADOS, PARA QUE LOS ELEMENTOS NO SE ORDENEN AL

MOMENTO DE AGREFGAR

Codigo del formulario

cb_agregar / clicked

ddlb_productos.additem(sle_nuevop.text)sle_nuevop.text=""

Ing. Victor Davila [email protected] 20

Nota : Los textos de color oscuro tendrán que estar desactivados

Page 21: Power Builder 7 0 Nivel Basico

Manual de Power Builder

cb_aceptar / clickedsle_productos.text=ddlb_productos.text

cb_agregar2 / clicked

Real Cantidad,Precio,SubTotal,TotalCantidad=Real(em_cantidad.text)Precio=Real(em_precio.text)SubTotal=Cantidad * PrecioTotal=Real(sle_totalpagar.Text)Total=Total + SubTotallb_productos.AddItem(sle_productos.Text)lb_cantidades.AddItem(em_cantidad.Text)lb_precios.AddItem(em_precio.Text)lb_subtotales.AddItem(String(SubTotal))sle_totalpagar.Text=String(Total)sle_totalc.text=String(real(sle_totalc.text)+Cantidad)sle_totalp.text=String(real(sle_totalp.text)+Precio)sle_totals.text=String(real(sle_totals.text)+SubTotal)

cb_eliminar / Clicked

Integer IndiceReal Cantidad,Precio,SubTotal,TotalIndice=lb_productos.SelectedIndex()Cantidad=Real(lb_cantidades.text(Indice))Precio=Real(lb_precios.text(Indice))SubTotal=Real(lb_subtotales.text(Indice))sle_totalc.text=String(real(sle_totalc.text) - Cantidad)sle_totalp.text=String(real(sle_totalp.text) - Precio)sle_totals.text=String(real(sle_totals.text) - SubTotal)sle_totalpagar.Text=sle_totals.textlb_productos.DeleteItem(Indice)lb_cantidades.DeleteItem(Indice)lb_precios.DeleteItem(Indice)lb_subtotales.DeleteItem(Indice)

cb_limpiar / Clicked

lb_productos.Reset()lb_cantidades.Reset()lb_precios.Reset()lb_subtotales.Reset()ddlb_productos.Reset()sle_productos.Text=""em_cantidad.Text="0"em_precio.Text="0"sle_totalc.Text="0"sle_totalp.Text="0"sle_totals.Text="0"sle_totalpagar.Text="0"

Ing. Victor Davila [email protected] 21

Page 22: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Como trabajo práctico desarrolle la siguiente aplicación.

Agregar. Permite agregar nuevos empleados a la listaAceptar. Muestra el empleado seleccionado de la lista en Empleado Seleccionado.Otro. Limpia todo los controles.Nota: Cada vez que se seleccione una categoría deberá de calcular el haber básico, los descuentos y el sueldo neto.Cada vez que se active uno de los check (Descuentos), deberá de volver a calcular todo.

Este otro ejemplo es similar al anterior, con la diferencia de que tendrá que ir agregando

en las listas e ir sumando los totales en la parte inferior.

Ing. Victor Davila [email protected] 22

Page 23: Power Builder 7 0 Nivel Basico

Manual de Power Builder

FUNCIONES DENTRO DE POWERBUILDER

PowerBuilder posee una gran variedad de funciones que permiten al programador desarrollar

sus aplicaciones de una manera fácil.

1. Funciones de Cadena

Asc. Obtiene el código ASCCII correspondiente al primer carácter de una cadena.

Ejemplo : Asc ("A")

Char. Retorna el carácter correspondiente al código ASCII.

Ejemplo : Char (42)

Fill. Retorna una cadena con una longitud determinada del carácter especificado.

Ejemplo : Fill ("*",20)

Left. Retorna un número especificado de caracteres comenzando por la izquierda.

Ejemplo : Left ("Henry Salcedo",4)

LeftTrim. Retorna la misma cadena de caracteres sin los espacios en blanco del lado

izquierdo de la cadena

Ejemplo : LeftTrim (" Henry Salcedo")

Len. Retorna la longitud de la cadena.

Ejemplo :

Longs_nombre

s_nombre=Len(sle_Nombres.text)

Lower. Retorna una copia de una cadena convertida a minúsculas.

Ejemplo : Lower("HENRY SALCEDO")

Mid. Retorna una cadena que contiene un número especificado de caracteres,

comenzando de una posición indicada.

Ejemplo : Mid("HENRY SALCEDO",5,5)

Pos. Retorna la posición donde se encuentra una cadena dentro de otra cadena

Ejemplo : Pos("HENRY SALCEDO","SA")

Reverse. Cambia el orden de los caracteres de una cadena.

Ejemplo : Reverse ("HENRY SALCEDO")

Right. Retorna un número especificado de caracteres, comenzando del lado

derecho..

Ejemplo : Right ("HENRY SALCEDO",3)

RightTrim. Retorna la misma cadena de caracteres sin los espacios en blanco del

lado derecho de la cadena

Ing. Victor Davila [email protected] 23

Page 24: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Ejemplo : RightTrim ("Henry Salcedo ")

Space. Retorna una cadena de longitud determinada, conteniendo espacios en

blanco.

Ejemplo : Name = Space (10)

Trim. Retorna la misma cadena de caracteres sin los espacios en blanco del lado

izquierdo y derecho de la cadena

Ejemplo : Trim (" Henry Salcedo ")

Upper. Retorna la misma cadena de caracteres convertidas a letras mayúsculas.

Ejemplo : Upper (" Henry Salcedo")

2. Funciones de Fecha

Day. Retorna el día del mes de una fecha indicada.

Ejemplo : Day (1994-01-31)

DayName. Retorna el nombre del día de la semana

Ejemplo :

string dayn

Date fecha

fecha=Date(em_1.text)

dayn=dayName(Fecha)

DayNumber. Retorna un número que representa el día de la semana.

Ejemplo :

Integer dayn

Date fecha

fecha=Date(em_1.text)

dayn=dayNumber(Fecha)

DaysAfter. Retorna el número de días de una fecha después de la actual.

Ejemplo :

Integer dayn

Date fecha

fecha=Date(em_1.text)

dayn=daysAfter(2001-02-19,Fecha)

Hour. Retorna un entero que corresponde al número de horas de una fecha dada.

Ejemplo :

Integer Hora

Ing. Victor Davila [email protected] 24

Page 25: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Hora=Hour(Now())

MessageBox("Hora",Hora)

Minute. Retorna un entero que corresponde a los minutos de una hora dada.

Ejemplo :

Integer Hora

Hora=Minute(Now())

Now. Retorna la hora del sistema.

Ejemplo :

Time Hora

Hora=Now()

Second. Retorna el numero de segundos de una hora dada.

Ejemplo :

integer Hora

Hora=Second(Now())

Today. Retorna la fecha actual del sistema

Ejemplo :

Date Fecha

Fecha=Today()

Year. Retorna el año de una fecha dada

Ejemplo :

Integer Año

Año=Year(Today())

3. FUNCIONES NUMERICAS

Abs. Obtiene el valor absoluto de un numero

Ejemplo:

i = 4

num = Abs(i)

num = Abs (4)

num = Abs (+4)

num = Abs (-4)

Abs (-4.2)

Esta sentencia retorna 4.2.

Ing. Victor Davila [email protected] 25

Page 26: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Ceiling. Obtiene el menor número entero que es menor o igual al número

especificado.

Ejemplo:

Dec = 4.8

Num = Ceiling (dec)

Decimal num

Num = ceiling (-4.2)

Num = ceiling (-4.8)

Esta sentencia retorna -4.

Cos. Obtiene el coseno del ángulo debe estar en readianes.

Ejemplo: Cos (0)

Cos(1)

Esta sentencia retorna -1.

Cos(pi(1))

Esta sentencia retorna -1.

Int. Obtiene el menor número entero que es menor o igual al número especificado.

Ejemplo: Int(3.2)

Int(3.8)

Int(-3.2)

Int(-3.8)

La siguiente sentencia retorna -4.0.

Max. Retorna el mayor de dos números.

Ejemplo: Max (4,7)

Max (-4,-7)

Esta expresión retorna -4.

Min. Retorna el menor de dos números.

Ejemplo: Min (4,7)

Min (-4,-7)

Esta expresión retorna -7.

Mod. Obtiene el modulo de dos números (el resultado obtenido de la división del

primer expresión con el segundo).

Ing. Victor Davila [email protected] 26

Page 27: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Ejemplo:

Integer Residuo

Residuo=Mod(20,6)

Pi. Obtiene el valor de Pi

Ejemplo: Pi( ) => 3.14159265358979323

Round. Obtiene un número redondeado a un número decimal elegido

Ejemplo:

Round (9.625,2) => 9.63

Round (9.6,3) => 9.600

Sign. Obtiene un número (-1, 0, o 1) indicando el signo de una expresión

Ejemplo:

Sign (0) => Retorna 0 por que 0 no tiene signo

Sign (9) => Retorna 1

Sign (-9) => Retorna -1

Sqrt. Obtiene la raíz cuadrada de un número dado.

Ejemplo:

Sqrt (4) => Retorna 2

Sign (3) => Retorna 1.7320

Truncate. Obtiene un número truncado a una determinada expresión decimal.

Ejemplo:

Truncate (9.22,1) => Retorna 9.2

Truncate (9.9,0) => Retorna 9

4. Funciones de Conversión

Dec. Convierte el contenido de una cadena a un número decimal.

Ejemplo :

Real Numero

Numero=Dec("14.25")

Double. Convierte el contenido de una cadena a un número doble

Ejemplo :

Real Numero

Numero=Double("14.25")

Integer. Convierte el contenido de una cadena a un número entero

Ejemplo :

Ing. Victor Davila [email protected] 27

Page 28: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Integer Numero

Numero=Integer("14")

Real. Convierte el contenido de una cadena a un número real

Ejemplo :

Real Numero

Numero=real("14.25")

String. Convierte un número a un cadena de caracteres.

Ejemplo :

String Cadena

Cadena=String(14.25)

Date. Convierte una cadena a una fecha

Ejemplo :

Date Fecha

Fecha=Date(10-05-2001)

Ejemplo de una aplicación

Desarrolle una aplicación que permita el ingreso de los datos personales de los alumnos.

Se debe de ingresar los nombres, apellido paterno, apellido materno, dirección,

especialidad, semestre, turno, sexo y fecha de registro.

El código deberá de ser autogenerado de la siguiente manera: Tomar el primer carácter

del apellido paterno mas un número consecutivo que tendrá que ir generándose.

El diseño del formulario deberá de ser de la siguiente manera.

Ing. Victor Davila [email protected] 28

Page 29: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Grabe la ventana con el nombre de : w_funciones

CÓDIGO DEL FORMULARIO.

Window / open

Limpiar_Controles();em_fecha.text=String(today())

cb_aceptar / Clicked

Integer NregsString CodigoNregs=Lb_Alumnos.TotalItems()+1Codigo=Left(sle_apepat.text,1)+Left(sle_apemat.text,1)+Trim(string(Nregs))Codigo=Right("000"+trim(Codigo),3)Lb_Alumnos.AddItem(Sle_Apepat.text + " " + sle_apemat.text + ", " + sle_nombres.text)lb_codigos.AddItem(Codigo)sle_codigo.Text=Código

cb_nuevo / Clicked

Realícelo ud.

Ejecute su ventana, ingrese los datos respectivos

Ing. Victor Davila [email protected] 29

Control Edit MaskTipo Fecha

Propiedad Item de:CmbSexo: Masculino

FemeninoEspecialidad:

Computación e InformáticaSecretariado EjecutivoEnfermería Técnica

Semestre : del 1 al 6Turno:

MañanaTardeNoche

Page 30: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Pulse el botón Aceptar para generar el código y agregar a la lista los datos.

El código ha sido generado con la primera letra del apellido paterno + la primera

letra del apellido materno + un número correlativo.

Ing. Victor Davila [email protected] 30

Page 31: Power Builder 7 0 Nivel Basico

Manual de Power Builder

FUNCIONES DEFINIDAS POR EL USUARIO

El lenguaje PowerScript tiene una gran variedad de funciones. Pero si en el proceso de

desarrollo se necesita codificar u proceso que se repita mas de una vez entonces es necesario

crear una función definida por el usuario.

Una función definida por el usuario es una colección de sentencias que realizan algún

proceso. Para construirla se realiza en el Function Painter, una vez construida se graba la

función para su posterior uso.

Tipos de Función.

Funciones Globales. Las cuales no están asociadas a ningún objeto de la aplicación y son

accesibles desde cualquier punto de la aplicación.

Funciones de nivel objeto. Estas funciones están definidas por un tipo particular de ventana,

menú o objeto de usuario

Nota : Las nombres de las funciones pueden tener hasta una longitud de 40 caracteres

Crear una función que permita limpiar los controles del ejemplo anterior.

Abra la ventana anterior (w_funciones)

Abra el la ventana de script de la ventana

Abra la lista de controles de la ventana de códigos y seleccione (Functions)

Seguidamente se activará la siguiente ventana en donde se tendrá que ingresar el nombre

de la función que se desea crear y especificar si se desea que la función retorne un valor.

Ing. Victor Davila [email protected] 31

Nombre de la función a crear

Indica si la función retornará valores

Alcance de la función

Ventana en donde se escribirá el código de la función

Page 32: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Luego de crear la función escriba el código siguiente.

sle_nombres.Text=""sle_apepat.Text=""sle_apemat.Text=""sle_direccion.Text=""ddlb_sexo.SelectItem(0) ddlb_especialidad.SelectItem(0) ddlb_semestre.SelectItem(0) ddlb_turno.SelectItem(0)

Grabe la función grabando la ventana y cierre la ventana de la función.

Agregue la siguiente línea de código a los siguientes eventos de controles.

Window / openLimpiar_Controles();em_fecha.text=String(today())

Cb_Aceptar / ClickedInteger NregsString CodigoNregs=Lb_Alumnos.TotalItems()+1Codigo=Left(sle_apepat.text,1)+Left(sle_apemat.text,1)+Trim(string(Nregs))Codigo=Right("000"+trim(Codigo),3)Lb_Alumnos.AddItem(Sle_Apepat.text + " " + sle_apemat.text + ", " + sle_nombres.text)lb_codigos.AddItem(Codigo)sle_codigo.Text=CodigoLimpiar_Controles();

Cb_nuevo / ClickedLimpiar_Controles();

Ejecute la ventana llene los datos respectivos y pulse el botón Cancelar, deberá de limpiar

los controles.

Como trabajo práctico cree una función que permita

Desactivar los controles: (f_desactivar)

sle_codigo, em_fecha, sle_nombres, sle_apepat, sle_apemat, sle_direccion, ddlb_sexo,

ddlb_especialidad, ddlb_semestre, ddlb_turno y cb_aceptar

Activar los controles: (f_activar)

sle_codigo, em_fecha, sle_nombres, sle_apepat, sle_apemat, sle_direccion, ddlb_sexo,

ddlb_especialidad, ddlb_semestre, ddlb_turno y cb_aceptar

Los controles tendrán que estar activados al momento de ejecutar la ventana, y cuando se

pulse el botón nuevo tendrán que activarse con los controles en blanco.

Cuando se pulse aceptar los controles tendrán que desactivarse nuevamente.

Ing. Victor Davila [email protected] 32

Page 33: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Otro Ejemplo

Realice una aplicación que permita calcular el sueldo neto de un trabajador y ademas los

descuentos respectivos.

Los descuentos y el sueldo neto se tendrán que ir calculando cada vez que se cambie la

categoría o algún descuento (para calcular los descuentos y sueldo neto crear una función)

El diseño del formulario es el siguiente:

Para dar nombre a los controles como práctica tendrá que fijarse el código de la aplicación

y de acuerdo a eso poner los nombres respectivos.

Código de la aplicación.

Crear una función con el nombre de Calcular

Para crear la función, seleccione la opción Insert de la barra de menú, y dentro de esta

seleccione Function.

Ing. Victor Davila [email protected] 33

Nombre de la funciónAquí se escribe el

código de la función Nombre de la funciónSeleccione (None)

Page 34: Power Builder 7 0 Nivel Basico

Manual de Power Builder

El código de la función es el siguiente:REAL haber,cts,afp,essalud,totald,netohaber=REAL(sle_haber.Text)IF cbx_cts.CHECKED=TRUE then cts=haber*0.03ELSE

cts=0end ifif cbx_afp.checked=true then

afp=haber*0.06else

afp=0end ifif cbx_essalud.checked=true then

essalud=haber*0.06else

essalud=0end iftotald=cts+afp+essaludneto=haber - totaldem_cts.Text=String(cts)em_afp.Text=String(afp)em_essalud.Text=String(essalud)em_totald.Text=String(totald)em_neto.Text=String(neto)return

Cb_agregar / Clickedddlb_empleados.Additem(sle_nuevoe.Text)sle_nuevoe.Text=""

cb_aceptar / Clickedsle_empleado.Text=ddlb_empleados.Text

rb_gerente / Clickedsle_haber.text="2500" Calcular();

rb_administrador / Clickedsle_haber.text="2000" Calcular();

rb_secretaria / Clickedsle_haber.text="1000" Calcular();

cb_otro / clickedsle_empleado.Text=""sle_haber.Text="0"em_cts.Text="0"em_afp.Text="0"em_essalud.Text="0"em_totald.Text="0"em_neto.Text="0"cbx_cts.checked=Falsecbx_afp.checked=Falsecbx_essalud.checked=False

cbx_cts – cbx_afp – cbx_essalud / Clicked (en los tres poner el mismo código)Calcular();

Ejecute la aplicación e ingrese los datos para poder calcular.

Ing. Victor Davila [email protected] 34

Page 35: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Este control contiene una serie de páginas donde cada página podrá

contener a su vez controles

Propiedades.

Aligment. Especifica la alineación del texto en la etiqueta de cada página: Los valores son

: Left!, Center!, Right!.

BackColor. Especifica un valor numérico correspondiente al color del fondo.

Enabled. Activa o Desactiva el control.

Perpendicular Text. Especifica si el titulo de cada página se alineará en forma vertical.

SelectedTab. Especifica cual de las paginas se encuentra seleccionada.

Para insertar mas páginas dentro de este control, ubique el puntero del mouse en la parte

superior de este control, realice un click con el botón contrario y seleccione la opción

InsertTabPage.

Para eliminar una página, realice un click contrario sobre la página que desee eliminar y

seleccione la opción Delete. (no se olvide que tendrá que realizar click contrario dentro de

la página)

Ing. Victor Davila [email protected] 35

Page 36: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Ejemplo:

Desarrollar una aplicación que permita ingresar los datos de los trabajadores. Usar un

control Tab con dos páginas.

En la primera página se debe ingresar los datos generales del trabajador.

En la segunda página se debe seleccionar la condición del trabajador (Contratado o

Nombrado). Si es Contratado, su haber básico será 1500 y si es nombrado 2000.

Si es Nombrado realizar los descuentos de ley, de lo contrario es descuento será 0.

Nota: Para cambiar el nombre de la página dentro de un tab, realice un clic contrario

dentro de la página que quiere cambiar el nombre, luego en la ventana de propiedades

seleccione la propiedad name y ponga el nombre que desee.

El diseño del formulario tendrá que quedar de esta manera: (grabe con

w_tabpage).

Diseño de la primera página

Diseño de la segunda página

Ing. Victor Davila [email protected] 36

Control Propiedad Valor

Tab_1 Name Tab_Trabajador

tabpage_1 Name Tabpg_datos

Caption Datos del Trabajador

tabpage_2 Name Tabpg_sueldo

Caption Sueldo del trabajador

Dentro de Tabpg_datos va:

Sle_1 Name sle_codigo

Sle_2 Name sle_nombres

Sle_3 Name sle_apellidos

Sle_4 Name sle_direccion

Sle_5 Name sle_dni

em_1 Name em_fecha

cb_1 Name cb_aceptar

Caption Aceptar

Dentro de tab_pg_sueldo va:

rb_1 Name rb_contratado

Caption Contratado

rb_2 Name rb_nombrado

Caption Nombrado

Sle_6 Name sle_haber

Sle_7 Name sle_afp

Sle_8 Name sle_cts

Sle_9 Name sle_essalud

Sle_10 Name sle_totald

Sle_11 Name sle_neto

cb_2 Name cb_otro

Caption Otro

cb_1 Name cb_cerrar

Caption Cerrar

Page 37: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Crear una función con el nombre : Calcular

Código de la función.Real haber,afp,cts,essalud,neto,totdhaber=real(tab_trabajador.tabpg_sueldo.sle_haber.text)cts=haber*0.03afp=haber*0.06essalud=haber*0.06totd=cts+afp+essaludneto=haber - totdtab_trabajador.tabpg_sueldo.sle_afp.text=string(afp)tab_trabajador.tabpg_sueldo.sle_cts.text=string(cts)tab_trabajador.tabpg_sueldo.sle_essalud.text=string(essalud)tab_trabajador.tabpg_sueldo.sle_totald.text=string(totd)tab_trabajador.tabpg_sueldo.sle_neto.text=string(neto)

Código del formulario

w_tabpage / OpenTab_Trabajador.Tabpg_sueldo.Enabled=FalseTab_Trabajador.tabpg_datos.Sle_codigo.Setfocus()

cb_aceptar / Clickedtab_trabajador.tabpg_datos.enabled=Falsetab_trabajador.tabpg_sueldo.enabled=truetab_trabajador.SelectedTab=2

rb_contratado / Clickedztab_trabajador.tabpg_sueldo.sle_haber.text="1500"Calcular();

rb_nombrado / Clickedtab_trabajador.tabpg_sueldo.sle_haber.text="2000"Calcular();

Ejecute el formulario, ingrese los datos del trabajador, luego pulse el botón Aceptar para pasar a la siguiente página y seleccione la condición del trabajador

Ing. Victor Davila [email protected] 37

Page 38: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Ing. Victor Davila [email protected] 38

Page 39: Power Builder 7 0 Nivel Basico

Manual de Power Builder

DISEÑO DE MENUS

MENUS. Para añadir un menú, primero es preciso crearlo y después asociarlo a la ventana en

que va a aparecer. Esta asociación se realiza desde el Window Painter.

Ejemplo

Diseñar un menú con las siguientes características.

Alumnos

Registro de nuevos alumnos Alt + RMatricula de alumnos Alt + MConsulta por sección Alt + C

Cursos

Registro de nuevos cursosActualización Alt + A

Profesores Registro de nuevos profesores Alt + P

Actualización de datosSalir

Salir de la Aplicación

Solución

Seleccione el icono New del PowerBar1.

Dentro de la ventana New seleccionar la ficha Objects y dentro esta seleccionar el objeto

Menu

Seguidamente se activará la siguiente ventana.

Ing. Victor Davila [email protected] 39

WYSIWYG Menu View (Presentación preliminar del menú) Tree Menu View

(Estructura del menú)

Propiedades

Ventana de Código

Page 40: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Seleccione untitled0 del TREE VIEW, realice un click con el botón contrario y

seleccione la opción Insert Sibmenu Item

Luego ingrese el título para la primera opción (en este caso escriba &Alumnos)

Seleccione la opción &Alumnos y realice un click con el botón contrario, en la ventana

que se despliega seleccione la opción Insert Submenu Item .

Escriba el título para el nuevo submenú (Escriba: &Registro de nuevos alumnos).

Para activar el acceso con Alt + R a la opción Registro de nuevos alumnos , en la

ventana de propiedades busque la opción Shortcut Key y dentro de esta seleccione la

letra R, y active el check de Shortcut Alt

Ing. Victor Davila [email protected] 40

Page 41: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Para crear el siguiente elemento de Alumnos. Seleccione &Alumnos del Tree View,

realice un click con el botón contrario, en la ventana que se despliega seleccione la opción

Insert Submenu Item.

Escriba el título para el nuevo item. (&Matricula de alumnos).

Para activar el acceso con Alt + M a la opción Matricula de alumnos , en la ventana de

propiedades busque la opción Shortcut Key y dentro de esta seleccione la letra M, y

active el check de Shortcut Alt

Para crear la opción Consulta por sección, siga el mismo procedimiento que utilizó para

crear : Matricula de alumnos.

Para crear la opción &Cursos, seleccione untitled0 de la ventana de TREE VIEW.

Realice un click con el botón contrario y seleccione la opción Insert Submenu Item.

Escriba el título para la nueva opción (en este caso : &Cursos)

Ing. Victor Davila [email protected] 41

Page 42: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Para crear los sub menus de Cursos, siga los mismos procedimientos realizados para los

sub menús anteriores.

Al final el diseño del menú tendrá que quedar de la siguiente manera.

Grabe el menú con el nombre : m_principal.

ENLAZAR UN MENÚ A UNA VENTANA

Abra una nueva ventana (Window).

En la ventana de propiedades seleccione la opción MenuName, Realice un click sobre el

botón .

En la ventana que se activa seleccione el menú que desea asociar a la ventana (En este

caso seleccione m_principal).

Grabe la ventana con el nombre w_principal y cierre, ejecute la ventana.

ESCRIBIR EL CODIGO DE UN MENU

Abra el menú que se ha creado anteriormente (m_principal).

Seleccione la opción dentro del menú al cual desea asociar el código.

Realice un click con el botón secundario y seleccione la opción Script.

Ing. Victor Davila [email protected] 42

Page 43: Power Builder 7 0 Nivel Basico

Manual de Power Builder

En la venta de código escriba la ventana o acción que desee que realice el menú. (en este

caso escriba Open (Nombre_Ventana)

El código de la opción cerrar es: Close(w_principal)

De la misma manera escriba los códigos de las demás opciones de menú.

Grabe el menú y cierre. Ejecute la ventana w_principal.

CREAR UNA BARRA DE HERRAMIENTAS

Para crear una barra de herramientas, es necesario que la ventana en donde se va a insertar la

barra de herramientas sea del tipo MDI (Multiple Document Interface)

Para nuestro ejemplo utilizaremos el menú que se ha creado anteriormente.

Abra el objeto menú que se ha creado anteriormente (m_principal)

Seleccione el elemento de menú al cual desea asociar un icono de la barra de herramientas

(en este caso seleccione Registro de nuevos alumnos).

En la ventan de propiedades seleccione active la ficha Toolbar, y en la opción

ToolbarItemText (Texto del elemento de la barra de herramientas), escriba el texto que se

Ing. Victor Davila [email protected] 43

Page 44: Power Builder 7 0 Nivel Basico

Manual de Power Builder

desea mostrar al momento de ubicar el mouse sobre dicho icono ( en este caso escriba :

Registro de nuevos alumnos)

En la opción ToolbarItemName, seleccione el icono que desea mostrar en la barra de

barra de herramientas.

En la opción ToolbarItemDownName (es opcional), seleccione el icono que desea

mostrar cuando se pulsa sobre este en la barra de herramientas.

El diseño tendrá que quedar de la siguiente manera.

Nota: No es necesario crear el código para la barra de herramientas, esto se debe a que

se los iconos de la barra de herramientas, se encentran enlazados a las opciones de

menú.

Para crear los otros iconos de la barra de herramientas, siga los mismos procedimientos

anteriores.

Para cambiar el tipo de ventana a mdi, realice lo siguiente:

Abra la ventana que desea modificar.

Ing. Victor Davila [email protected] 44

Barra de Herramientas que se ha creado

Page 45: Power Builder 7 0 Nivel Basico

Manual de Power Builder

En la ventana de propiedades, busque la opción Window Type, y seleccione la

opción Mdi!

Ejecute la ventana para ver el resultado.

Si desea que todas la ventanas que se abran desde la barra de menú, se activen dentro de

la ventana principal, tendrá que cambiar la propiedad WindowType, de las otras

ventanas a Child!.

Este es un ejemplo de una ventana tipo child!.

La ventana que se activa, solo podrá moverse dentro de la ventana principal.

Ing. Victor Davila [email protected] 45

Page 46: Power Builder 7 0 Nivel Basico

Manual de Power Builder

CREAR UNA NUEVA BASE DE DATOS UTILIZANDO EL DISEÑADOR DE BASE

DE DATOS DEL POWER BUILDER 7.0

1. Una vez, que se encuentre dentro del power builder, seleccionar el icono de DataBase

2. Dentro de la ventana de base de datos, seleccionar la carpeta de Uitilities y expandir.

3. Seleccionar la opción Create ASA Database y realizar doble clic, se activará la siguiente

pantalla.

4. Seleccione el botón Browse, busque la carpeta en donde desea grabar su base de datos,

indique el nombre de la misma, y realice un clic sobre el botón Guardar.

Ing. Victor Davila [email protected] 46

Page 47: Power Builder 7 0 Nivel Basico

Manual de Power Builder

5. Dentro de la ventana Create Adaptive Server Anywhere DataBase, Seleccione el botón

Ok

6. Una, vez que se haya creado, se observará que dentro de la base de datos ODBC, se

agrego la nueva conexión que se ha creado.

7. Si se desea cambiar el nombre de la conexión, realice doble clic sobre la conexión.

8. En la ventana que se activa, seleccione Profile Name, e ingrese el nuevo nombre de la

conexión. Ejemplo (Conexión_Alumnos) y seleccione el botón Ok

Ing. Victor Davila [email protected] 47

La conexión, se mostrará con el nuevo nombre creado.Luego expanda la nueva conexión.

Page 48: Power Builder 7 0 Nivel Basico

Manual de Power Builder

9. Si se desea crear tablas de datos, dentro de la conexión creada, seleccione la carpeta

Tables y realizar un clic con el botón derecho.

10. En la ventana de diseño de tablas, ingresar el nombre del campo, tipo de dato y ancho del

mismo

11. Para grabar la nueva tabla de datos, seleccione el icono de guarda, en la ventana que se

activa, ingrese el nombre de la tabla y seleccione el botón Ok.

12. Expanda la carpeta Tables y verá que la nueva tabla se ha agregado a la lista de tablas.

13. Para crear un índice (Llave Principal) dentro de la tabla creada, seleccione la tabla, realice

un clic con el botón derecho, seleccione New, y luego Primary Key.

Ing. Victor Davila [email protected] 48

Page 49: Power Builder 7 0 Nivel Basico

Manual de Power Builder

14. En la ventana de Primary Key (Conexión_Alumnos), Active el check del campo, del cual

desea crear el índice principal y luego grabe la tabla de datos.

15. Dentro de la ventana Object Layout, se mostrará la tabla de datos, con su clave creada, tal

como se muestra a continuación.

Ing. Victor Davila [email protected] 49

Page 50: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Cree la tabla Datos_Alumnos, de la misma manera, el diseño es el siguiente:

La llave principal será Codigo_Alumno.

Al terminar de crear se deberá de mostrar las dos tablas creadas, cada una con sus

respectivas llaves creadas, tal como se muestra a continuación

Claves Foráneas (Foreign Key)

Las Clave foránea es una combinación de una o mas columnas de una tabla que sirven para

identificar a una o mas columnas de otra tabla, una clave foránea, relaciona información de

Ing. Victor Davila [email protected] 50

6

Page 51: Power Builder 7 0 Nivel Basico

Manual de Power Builder

dos tablas. Una tabla puede contener varias claves foráneas, ya que su información puede

estar relacionada con mas de una tabla.

Crear una clave foránea para la tabla Datos_Alumnos.

1. Seleccione la tabla Datos_Alumnos, dentro de la carpeta Tables, dar un clic con el botón

derecho, en el menú que se activa, seleccionar New, seguido de Foreign Key.

2. En la ficha general de Foreign Key, ingresar el nombre de la clave (Foreign Key, puede

ser el mismo nombre del campo) y seleccionar el campo Foráneo

(Codigo_Especialidad) y el la ficha Primary Key, seleccionar la tabla (Table), de donde

viene el campo foráneo (Especialidades) y activar el campo principal

(Codigo_Especialidad)

3. Después de haber creado la clave foránea, grabar la tabla.

4. En la venta de Layout, se mostrará las dos tablas con su respectiva llave, tal como se

muestra a continuación.

Ing. Victor Davila [email protected] 51

Page 52: Power Builder 7 0 Nivel Basico

Manual de Power Builder

CREAR UNA CONSULTA DE DATOS

Crear una consulta que muestre los datos de la tabla Especialidades.

1. Seleccione el icono New del PowerBar1

2. Dentro de la ventana New, seleccionar la ficha Database, opción Query y pulsar el botón

Ok.

3. Seleccionar la tabla de donde se desea crear la consulta de datos (Especialidades) y pulsar

el botón Open.

4. Seleccionar los campos que se incluirán en la Consulta.

Ing. Victor Davila [email protected] 52

Campos Seleccionados en la consulta

Tabla seleccionada para la consulta

Page 53: Power Builder 7 0 Nivel Basico

Manual de Power Builder

5. Para realizar una presentación preliminar, realice un clic sobre el icono , para salir de

la vista, seleccione el siguiente icono .

6. Grabe la consulta, seleccionando el siguiente icono .

Consulta con Parámetros o Argumentos. Son consultas que retornan datos de acuerdo a un

parámetro o argumento ingresado.

Crear una consulta que muestre los datos de tabla especialidades, de acuerdo al código de especialidad ingresado.

1. Repetir los 5 procedimientos anteriores.

2. Estando dentro de la venta de diseño de consultas, seleccione Design

de la barra de menú, seguido de la opción Retrieval Arguments...

3. En la ventana que se activa (Especyfi Retrieval Arguments...), ingresar el nombre de la

variable (Cod_Esp) a crear, especifique el tipo de dato para el mismo (String), luego

seleccione el botón OK

4. Seleccione la columna (Column) que se relacione con el Argumento.

(Codigo_Especialdad), luego el operador (=) y el valor (Value) , en este caso como valor

ira el argumento que se ha creado, para lo cual realice un clic con el botón derecho sobre

este casillero, seleccione la opción Arguments.., en la ventana que se activa seleccionar el

Ing. Victor Davila [email protected] 53

Page 54: Power Builder 7 0 Nivel Basico

Manual de Power Builder

argumento creado (en este caso Cod_Esp), luego pulse el botón Paste. Deberá de quedar

de la siguiente manera,

5. Al realizar una presentación preliminar , se activará una ventana en donde tendrá que

ingresar el valor para el argumento que se ha creado. Ingresar el valor y pulsar el botón

OK

6. Para salir de la consulta, seleccione el siguiente icono .

7. Grabe la consulta, seleccionando el siguiente icono .

Ing. Victor Davila [email protected] 54

Tal como se muestra en el ejemplo, se mostrarán los datos, de acuerdo a valor ingresado (Argumento)

Page 55: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Crear una consulta relacionando dos tablas de datos. Cuando una tabla de datos contiene

campos de otras tablas (Llaves foráneas), como es el caso de la tabla Datos_Alumnos, es

recomendable relacionarla con la tabla principal (Especialidades) tal como se vio en clases

anteriores.

Si se desea crear una consulta de la tabla Datos_Alumnos, y que muestre el nombre de la

especialidad en el campo Codigo_Especialidad, las dos tablas tendrán que estar relacionadas.

1. Seleccione el icono New del PowerBar1

2. Dentro de la ventana New, seleccionar la ficha Database, opción Query y pulsar el botón

Ok.

3. Seleccionar las tablas de donde se desea crear la consulta de datos (Dastos_Alumnos y

Especialidades) y pulsar el botón Open.

4. Seleccionar todo los campos de la tabla Datos_Alumnos a excepción del campo

Codigo_Especialidad, y de la tabla Especialidades, seleccionar el campo

Nombre_Especialidad.

Ing. Victor Davila [email protected] 55

Page 56: Power Builder 7 0 Nivel Basico

Manual de Power Builder

5. Al realizar una presentación preliminar , se mostrara que cada alumno aparece con el

nombre de la especialidad a donde pertenece, y no el codigo_especialidad que se

encuentra en la tabla Datos_Alumnos, esto se debe a la relación que existe entre las dos

tablas.

6. Para salir de la consulta, seleccione el siguiente icono .

7. Grabe la consulta, seleccionando el siguiente icono .

Ing. Victor Davila [email protected] 56

Indica que estas dos tablas están relacionadas por los campos que indican las líneas

Datos Datos Datos Datos

Page 57: Power Builder 7 0 Nivel Basico

Manual de Power Builder

Practica Calificada.Agregar a su base de datos las siguientes Tablas.

Ing. Victor Davila [email protected] 57

Relacione las tablas de tal forma que queden como se

muestra a continuación

Indice Normal (Index)

Page 58: Power Builder 7 0 Nivel Basico

Manual de Power Builder

1. Crear una consulta de datos, que muestre los siguientes datos.

Codigo del alumno, Nombres, Apellidos, Nombre de la especialidad, Sección, Semestre,

Turno y Año Académico, de acuerdo al código del alumno ingresado.

Ejemplo: Si se ingresa el código del alumno 0001, solo mostrará los datos del alumno

ingresado.

2. Crear una consulta de datos, que muestre los siguientes datos.

Codigo del alumno, Nombres, Apellidos, Nombre de la especialidad, Sección, Semestre,

Turno y Año Académico, de acuerdo al nombre de especialidad ingresado.

Ejemplo: Si se ingresa el nombre de la especialidad “Computación e Informática”, solo

mostrará los alumnos de esa especialidad.

Ing. Victor Davila [email protected] 58

Datos Alumnos Datos Alumnos Datos Alumnos DatosAlumnos

Datos Alumnos Datos Alumnos Datos Alumnos

Datos Alumnos Datos Alumnos Datos Alumnos