Está en la página 1de 59

Instituto de Educación Superior Web-Site: www.warinet.com.

pe
La Pontificia

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.

Estacion
Servidor Estacion
Servidor (Cliente
(Base (Cliente
(BasededeDatos)
Datos)

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

Prof: Henry Salcedo Arriarán 2


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Nombre de la Aplicación

Nombre de la Librería

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.

Prof: Henry Salcedo Arriarán 3


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Ventana creada.

Ventana de
Propiedades

Ventana donde se creará el código

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.

Prof: Henry Salcedo Arriarán 4


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 5


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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_llave


PictureName (buscar una imagen)
St_1 Text Ingrese su Nombre y Contraseña
Font 12, Bold
St_2 Text &Usuario
St_3 Text &Contraseña
Sle_1 Name Sle_Usuario
Text “”

Prof: Henry Salcedo Arriarán 6


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Sle_2 Name Sle_Clave


Text “”
Limit 5
Password (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.

Prof: Henry Salcedo Arriarán 7


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 8


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 9


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Cambiar las propiedades siguientes.


Control Propiedad Valor
Window Title Seguridad de Sistema

P_1 Name P_llave


PictureName (buscar una imagen)

St_1 Text Ingrese su Nombre y Contraseña


Font 12, Bold

St_2 Text &Usuario

St_3 Text &Contraseña

Sle_1 Name Sle_Usuario


Text “”

Sle_2 Name Sle_Clave


Text “”
Limit 5
Password (Activado)
Cb_1 Name cb_Aceptar
Text Aceptar

Cb_2 Name cb_Cancelar


Text Cancelar

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

Codigo de la ventana
Cb_Aceptar / Clicked
MessageBox("Sistema de Seguridad","Gracias por su visita")
Close(w_ventana_01)

Cb_Cancelar / Clicked
Close(w_ventana_01)

Prof: Henry Salcedo Arriarán 10


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Los Controles

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

Codigo del formulario

Cb_calcular / Clicked
Real Haber,Cts,Essalud,Afp,Totd,Neto
Haber=Real(sle_haber.Text)
Essalud=Haber * 0.03
Cts=haber * 0.06
Afp=haber * 0.06
Totd=Essalud + Cts + Afp
sle_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 / Clicked
sle_haber.Text="0"
sle_Afp.text="0"
sle_Cts.text="0"
sle_Essalud.text="0"
sle_Totd.Text="0"
sle_neto.Text="0"

Prof: Henry Salcedo Arriarán 11


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 12


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 13


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

 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_empleado
Text en blanco
sle_2 Name sle_haber
Text en blanco
sle_3 Name sle_cts
Text en blanco
sle_4 Name sle_afp
Text en blanco
sle_5 Name sle_essalud
Text en blanco
sle_3 Name sle_totald
Text en blanco
sle_3 Name sle_neto
Text en blanco
rb_1 Name rb_generente
Caption Gerente 2500
rb_2 Name rb_administradoe
Caption Administrador 2000
rb_3 Name rb_secretaria
Caption Secretaria 1500
Cb_1 Name cb_aceptar
Caption Aceptar
Cb_1 Name cb_otro
Caption Otro
Cb_1 Name cb_cerrar
Caption Cerrar

Prof: Henry Salcedo Arriarán 14


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Controles desactivados

Código de la aplicación
Cb_aceptar / Clicked cb_otro / Clicked
Real haber,cts,afp,essalud,totd,neto sle_empleado.text=""
If rb_gerente.checked=true then sle_haber.text="0"
haber=2500 sle_cts.text="0"
end if sle_afp.text="0"
If rb_administrador.checked=true then sle_essalud.text="0"
haber=2000 sle_totald.text="0"
end if sle_neto.text="0"
If rb_secretaria.checked=true then
haber=1500
end if
cts=haber * 0.03
afp=haber * 0.06
essalud=haber * 0.06
totd=cts+afp+essalud
neto=haber - totd
sle_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)

Grabe la ventana con w_opciones y luego ejecute .

Prof: Henry Salcedo Arriarán 15


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

 (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_cts
caption CTS 3%
cbx_1 name cbx_afp
caption AFP 6%
cbx_1 name cbx_essalud
caption ESSALUD 3%
El diseño del formulario tendrá que quedar de la siguiente manera

Prof: Henry Salcedo Arriarán 16


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Código del formulario


cb_aceptar / clicked Cb_otro / Clicked
Real haber,cts,afp,essalud,totd,neto sle_empleado.text=""
If rb_gerente.checked=true then haber=2500 sle_haber.text="0"
If rb_administrador.checked=true then haber=2000 sle_cts.text="0"
If rb_secretaria.checked=true then haber=1500 sle_afp.text="0"
if cbx_cts.checked=true then sle_essalud.text="0"
cts=haber * 0.03 sle_totald.text="0"
else sle_neto.text="0"
cts=0 cbx_cts.checked=false
end if cbx_afp.checked=false
if cbx_afp.checked=true then cbx_essalud.checked=false
afp=haber * 0.03
else
afp=0
end if
if cbx_essalud.checked=true then
essalud=haber * 0.03
else
essalud=0
end if
totd=cts+afp+essalud
neto=haber - totd
sle_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)

 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 9
dd Day number with leading zero if appropriate 09
ddd Day name abbreviation Mon
dddd Day name Monday

Prof: Henry Salcedo Arriarán 17


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

m Month number with no leading zero 6


mm Month number with leading zero if appropriate 06
mmm Month name abbreviation Jun
mmmm Month name June
yy Two-digit year 97
yyyy 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.

Prof: Henry Salcedo Arriarán 18


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Controles EditMaskControl
 em_nota1 y em_nota2
Propiedad (ficha mask)
Mask = ##
MaskDataType: numerickask!
Spin = Activado
Min = 0
Max = 20
Incremente = 1

Código del Formulario.


Cb_calcular / clicker cb_otro / Clicked
sle_alumno.text=""
Real Nota1,Nota2,Promedio
sle_curso.text=""
Nota1=real(em_nota1.text)
em_nota1.text="0"
Nota2=real(em_nota2.text)
em_nota2.text="0"
promedio=(nota1+nota2)/2
em_promedio.text="0"
if promedio>=11 then
sle_condicion.text="Aprobado"
else
sle_condicion.text="Desaprobado"
end if
em_promedio.text=string(promedio)

Grabe la ventana con w_editmask


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

Prof: Henry Salcedo Arriarán 19


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Control Propiedad Valor


Sle_1 Name sle_nuevo
Text en blanco
Lb_1 Name

Código del formulario.


cb_agregar / Clicked.
lb_elementos.additem(sle_nuevo.text)
sle_nuevo.text=""
cb_eliminar / clicked
lb_elementos.DeleteItem(lb_elementos.SelectedIndex())
cb_borrar / clicked
lb_elementos.reset()

Prof: Henry Salcedo Arriarán 20


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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_nuevop
ddlb_1 name ddlb_productos
sle_2 name sle_productos
em_1 name em_cantidad
em_2 name em_precio
lb_1 name lb_productos
lb_2 name lb_cantidades
lb_3 name lb_precios
lb_4 name lb_subtotales
sle_3 name sle_totalc
sle_4 name sle_totalp
sle_5 name sle_totals
sle_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

Nota : Los textos de color oscuro


tendrán que estar desactivados

Codigo del formulario


cb_agregar / clicked
ddlb_productos.additem(sle_nuevop.text)
sle_nuevop.text=""

Prof: Henry Salcedo Arriarán 21


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

cb_aceptar / clicked
sle_productos.text=ddlb_productos.text

cb_agregar2 / clicked
Real Cantidad,Precio,SubTotal,Total
Cantidad=Real(em_cantidad.text)
Precio=Real(em_precio.text)
SubTotal=Cantidad * Precio
Total=Real(sle_totalpagar.Text)
Total=Total + SubTotal
lb_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 Indice
Real Cantidad,Precio,SubTotal,Total
Indice=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.text
lb_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"

Prof: Henry Salcedo Arriarán 22


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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


Agregar. Permite agregar nuevos empleados a la lista
Aceptar. 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.

Prof: Henry Salcedo Arriarán 23


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 24


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Ejemplo : Right ("HENRY SALCEDO",3)


 RightTrim. Retorna la misma cadena de caracteres sin los espacios en blanco
del lado derecho de la cadena
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)

Prof: Henry Salcedo Arriarán 25


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

dayn=daysAfter(2001-02-19,Fecha)
 Hour. Retorna un entero que corresponde al número de horas de una fecha
dada.
Ejemplo :
Integer Hora
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)

Prof: Henry Salcedo Arriarán 26


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

num = Abs (+4)


num = Abs (-4)
Abs (-4.2)
Esta sentencia retorna 4.2.

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

Prof: Henry Salcedo Arriarán 27


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 28


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Ejemplo :
Real Numero
Numero=Double("14.25")
 Integer. Convierte el contenido de una cadena a un número entero
Ejemplo :
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.

Prof: Henry Salcedo Arriarán 29


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Control Edit Mask


Tipo Fecha

Propiedad Item de:


CmbSexo: Masculino
Femenino
Especialidad:
Computación e Informática
Secretariado Ejecutivo
Enfermería Técnica
Semestre : del 1 al 6
Turno:
Mañana
Tarde
Noche

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 Nregs
String Codigo
Nregs=Lb_Alumnos.TotalItems()+1
Codigo=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

Prof: Henry Salcedo Arriarán 30


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 31


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 32


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Alcance de la función Indica si la función Nombre de la función a


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

 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 / open
Limpiar_Controles();
em_fecha.text=String(today())

Cb_Aceptar / Clicked
Integer Nregs
String Codigo
Nregs=Lb_Alumnos.TotalItems()+1
Codigo=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=Codigo
Limpiar_Controles();

Cb_nuevo / Clicked
Limpiar_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)

Prof: Henry Salcedo Arriarán 33


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 34


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Aquí se escribe el
código de la función Seleccione (None) Nombre de la función

Prof: Henry Salcedo Arriarán 35


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

El código de la función es el siguiente: Cb_agregar / Clicked


REAL haber,cts,afp,essalud,totald,neto ddlb_empleados.Additem(sle_nuevoe.Text)
haber=REAL(sle_haber.Text) sle_nuevoe.Text=""
IF cbx_cts.CHECKED=TRUE then
cb_aceptar / Clicked
cts=haber*0.03
sle_empleado.Text=ddlb_empleados.Text
ELSE
cts=0 rb_gerente / Clicked
end if sle_haber.text="2500"
if cbx_afp.checked=true then Calcular();
afp=haber*0.06
else rb_administrador / Clicked
afp=0 sle_haber.text="2000"
end if Calcular();
if cbx_essalud.checked=true then
essalud=haber*0.06 rb_secretaria / Clicked
else sle_haber.text="1000"
essalud=0 Calcular();
end if
cb_otro / clicked
totald=cts+afp+essalud
sle_empleado.Text=""
neto=haber - totald
sle_haber.Text="0"
em_cts.Text=String(cts)
em_cts.Text="0"
em_afp.Text=String(afp)
em_afp.Text="0"
em_essalud.Text=String(essalud)
em_essalud.Text="0"
em_totald.Text=String(totald)
em_totald.Text="0"
em_neto.Text=String(neto)
em_neto.Text="0"
return
cbx_cts.checked=False
cbx_afp.checked=False
cbx_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.

Prof: Henry Salcedo Arriarán 36


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 37


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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
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
Diseño de la segunda página
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
Prof: Henry Salcedo Arriarán 38
henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Crear una función con el nombre : Calcular


Código de la función.
Real haber,afp,cts,essalud,neto,totd
haber=real(tab_trabajador.tabpg_sueldo.sle_haber.text)
cts=haber*0.03
afp=haber*0.06
essalud=haber*0.06
totd=cts+afp+essalud
neto=haber - totd
tab_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 / Open
Tab_Trabajador.Tabpg_sueldo.Enabled=False
Tab_Trabajador.tabpg_datos.Sle_codigo.Setfocus()
cb_aceptar / Clicked
tab_trabajador.tabpg_datos.enabled=False
tab_trabajador.tabpg_sueldo.enabled=true
tab_trabajador.SelectedTab=2
rb_contratado / Clicked
ztab_trabajador.tabpg_sueldo.sle_haber.text="1500"
Calcular();
rb_nombrado / Clicked
tab_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

Prof: Henry Salcedo Arriarán 39


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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 + R
Matricula de alumnos Alt + M
Consulta por sección Alt + C
Cursos
Registro de nuevos cursos
Actualización Alt + A
Profesores
Registro de nuevos profesores Alt + P
Actualización de datos
Salir
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.

WYSIWYG Menu View


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

Propiedades

Ventana de Código

Prof: Henry Salcedo Arriarán 40


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

 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

Prof: Henry Salcedo Arriarán 41


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 42


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 43


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

 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

Prof: Henry Salcedo Arriarán 44


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Barra de Herramientas que se


ha creado

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.

Prof: Henry Salcedo Arriarán 45


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 46


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 47


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

La conexión, se mostrará con el


nuevo nombre creado.
Luego expanda la nueva
conexión.

Prof: Henry Salcedo Arriarán 48


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 49


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 50


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

 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

Prof: Henry Salcedo Arriarán 51


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 52


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Campos Seleccionados en
la consulta
Tabla seleccionada
para la consulta

Prof: Henry Salcedo Arriarán 53


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Prof: Henry Salcedo Arriarán 54


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Tal como se muestra en el ejemplo,


se mostrarán los datos, de acuerdo a
valor ingresado (Argumento)

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

7. Grabe la consulta, seleccionando el siguiente icono .

Prof: Henry Salcedo Arriarán 55


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Prof: Henry Salcedo Arriarán 56


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

Indica que estas dos tablas


están relacionadas por los
campos que indican las líneas

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.

Datos Datos Datos Datos

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

7. Grabe la consulta, seleccionando el siguiente icono .

Prof: Henry Salcedo Arriarán 57


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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

Relacione las tablas de tal forma que queden como se


muestra a continuación

Indice
Normal
(Index)

Prof: Henry Salcedo Arriarán 58


henry_salcedo@warinet.com.pe
Instituto de Educación Superior Web-Site: www.warinet.com.pe
La Pontificia

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.

Datos Alumnos Datos Alumnos Datos Alumnos Datos Datos Alumnos Datos Alumnos Datos Alumnos
Alumnos

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.

Datos Alumnos Datos Alumnos Datos Alumnos

Prof: Henry Salcedo Arriarán 59


henry_salcedo@warinet.com.pe

También podría gustarte