Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PowerBuilder 7.0
Definicin. PowerBuilder es un entorno grfico de programacin que est compuesto de
diferentes herramientas que permiten el desarrollo rpido de aplicaciones. Con estas
herramientas se pueden desarrollar aplicaciones Cliente / Servidor a travs de ODBC (Open
DataBase Connectivity) o Drivers Nativos para la Base de Datos.
Una apliacin Cliente / Servidor pone en comunicacin una estacin de trabajo con un
Servidor de Base de Datos Central. Este modelo consiste en utilizar una Base de Datos que
reside en una mquina separada denominada Servidor. El Software de gestin 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
Estacion
(Cliente
(Cliente
Servidor
Servidor
(Base
(BasededeDatos)
Datos)
del PowerBar1
viendaro@gmail.com
Nombre de la Aplicacin
Nombre de la Librera
del PowerBar1.
2.
3.
viendaro@gmail.com
Ventana creada.
Ventana de
Propiedades
4.
luego ingrese el
viendaro@gmail.com
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 numrico correspondiente al color de fondo.
Text. Especifica el texto que se desea mostrar en el control.
Editar Lnea Simple. Es una caja de texto, que el usuario
puede utilizar para ingresar una lnea 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 numrico 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).
viendaro@gmail.com
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 grfico.
Ejemplo:
Desarrollar una aplicacin que permita el ingreso del nombre de usuario y su
respectiva clave de acceso.
1. Crear una nueva aplicacin dando un clic en el icono New
del PowerBar1.
Propiedad
Valor
Window
Title
Seguridad de Sistema
P_1
Name
PictureName
Text
Font
Text
Text
Name
Text
P_llave
(buscar una imagen)
Ingrese su Nombre y Contrasea
12, Bold
&Usuario
&Contrasea
Sle_Usuario
St_1
St_2
St_3
Sle_1
viendaro@gmail.com
Name
Text
Limit
Password
Sle_Clave
5
(Activado)
viendaro@gmail.com
Descripcin.
Blob (Binary Large Object) Datos sin formato, Por ejemplo una imagen o un prrafo.
Boolean
True o False
Char o Character
Un nico carcter.
Date
Fecha
DateTime
Decimal
Double
Integer, Int
Long
Real
String
Time
Hora-
Declaracin de Variables. Para declarar una variable se requiere solamente de dos partes: El
tipo de dato y El nombre de la variable.
viendaro@gmail.com
Inicializacin 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 expresin anterior para inicializar una
variable literal.
Matrices. Un Array es una coleccin 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 tamao 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 mltiples dimensiones.
.
viendaro@gmail.com
Propiedad
Valor
Window
Title
Seguridad de Sistema
P_1
Name
PictureName
P_llave
(buscar una imagen)
St_1
Text
Font
St_2
Text
&Usuario
St_3
Text
&Contrasea
Sle_1
Name
Text
Sle_Usuario
Sle_2
Name
Text
Limit
Password
Sle_Clave
5
(Activado)
Cb_1
Name
Text
cb_Aceptar
Aceptar
Cb_2
Name
Text
cb_Cancelar
Cancelar
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)
viendaro@gmail.com
Ejemplo
Crear una apliacin que calcule el los descuentos de ley de un trabajador y el sueldo
neto.
El diseo tendr que quedar de la siguiente manera.
Los Controles
sle_Haber, sle_Cts,
sle_Afp, sle_Totd y
sle_Neto tendrn que
estar desactivados.
viendaro@gmail.com
viendaro@gmail.com
10
2.
3.
4.
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.
viendaro@gmail.com
11
Propiedad
Valor
sle_1
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
sle_empleado
en blanco
sle_haber
en blanco
sle_cts
en blanco
sle_afp
en blanco
sle_essalud
en blanco
sle_totald
en blanco
sle_neto
en blanco
rb_generente
Gerente 2500
rb_administradoe
Administrador 2000
rb_secretaria
Secretaria 1500
cb_aceptar
Aceptar
cb_otro
Otro
cb_cerrar
Cerrar
sle_2
sle_3
sle_4
sle_5
sle_3
sle_3
rb_1
rb_2
rb_3
Cb_1
Cb_1
Cb_1
viendaro@gmail.com
12
Controles desactivados
Cdigo de la aplicacin
Cb_aceptar / Clicked
cb_otro / Clicked
Real haber,cts,afp,essalud,totd,neto
If rb_gerente.checked=true then
haber=2500
end if
If rb_administrador.checked=true then
haber=2000
end if
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)
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"
viendaro@gmail.com
13
name
cbx_cts
caption
CTS 3%
cbx_1
name
cbx_afp
caption
AFP 6%
cbx_1
name
cbx_essalud
caption
ESSALUD 3%
El diseo del formulario tendr que quedar de la siguiente manera
viendaro@gmail.com
14
Cb_otro / Clicked
Real haber,cts,afp,essalud,totd,neto
If rb_gerente.checked=true then haber=2500
If rb_administrador.checked=true then haber=2000
If rb_secretaria.checked=true then haber=1500
if cbx_cts.checked=true then
cts=haber * 0.03
else
cts=0
end if
if cbx_afp.checked=true then
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)
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=false
cbx_afp.checked=false
cbx_essalud.checked=false
diferencia de que a este control se le puede definir mascaras de entrada y salida de datos.
Propiedades.
viendaro@gmail.com
15
: #
String
: @
Date
Time
Character
d
dd
ddd
dddd
m
mm
mmm
mmmm
yy
yyyy
:
Meaning
Day number with no leading zero
Day number with leading zero if appropriate
Day name abbreviation
Day name
Month number with no leading zero
Month number with leading zero if appropriate
Month name abbreviation
Month name
Two-digit year
Four-digit year
Example
9
09
Mon
Monday
6
06
Jun
June
97
1997
Character
Meaning
h
hh
m
mm
s
ss
ffffff
AM/PM
am/pm
A/P
a/p
MaskDataType. Especifica el tipo de dato para el control, los valores pueden ser:
DateMask!, DateTimeMask!, DecimalMask!, NumericMask!, StringMask!, TimeMask!
Min. Especifica el valor mnimo que se podr ingresar en el control.
Max. Especifica el valor mximo que se podr ingresar en el control.
Spin. Especifica si se desea mostrar un scroll de tipo spinner en el control.
Ejemplo
Ing. Victor Davila
viendaro@gmail.com
16
Controles EditMaskControl
em_nota1 y em_nota2
Propiedad (ficha mask)
Mask = ##
MaskDataType: numerickask!
Spin = Activado
Min = 0
Max = 20
Incremente = 1
cb_otro / Clicked
sle_alumno.text=""
sle_curso.text=""
em_nota1.text="0"
em_nota2.text="0"
em_promedio.text="0"
viendaro@gmail.com
17
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 aadir 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 nmero del elemento seleccionado de una lista.
SelectedItem. Retorna el texto del elemento seleccionado.
SelectItem. Retorna el elemento del nmero de elemento indicado.
Text. Retorna el texto del elemento seleccionado.
Ejemplo : Desarrolle una aplicacin en donde se agreguen nuevos elementos a una lista.
El diseo del formulario tendr que quedar de la siguiente manera.
Control
Sle_1
Lb_1
Propiedad
Name
Text
Name
Valor
sle_nuevo
en blanco
viendaro@gmail.com
18
Ejemplo
Desarrolle una aplicacin 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 diseo del formulario tendr que quedar de la siguiente manera.
Control
Propiedad
valor
sle_1
ddlb_1
sle_2
em_1
em_2
lb_1
lb_2
lb_3
lb_4
sle_3
sle_4
sle_5
sle_6
name
name
name
name
name
name
name
name
name
name
name
name
name
sle_nuevop
ddlb_productos
sle_productos
em_cantidad
em_precio
lb_productos
lb_cantidades
lb_precios
lb_subtotales
sle_totalc
sle_totalp
sle_totals
sle_totalpagar
viendaro@gmail.com
19
viendaro@gmail.com
20
viendaro@gmail.com
21
viendaro@gmail.com
22
Funciones de Cadena
Fill. Retorna una cadena con una longitud determinada del carcter especificado.
Ejemplo : Fill ("*",20)
LeftTrim. Retorna la misma cadena de caracteres sin los espacios en blanco del
lado izquierdo de la cadena
Ejemplo : LeftTrim (" Henry Salcedo")
Pos. Retorna la posicin donde se encuentra una cadena dentro de otra cadena
Ejemplo : Pos("HENRY SALCEDO","SA")
RightTrim. Retorna la misma cadena de caracteres sin los espacios en blanco del
lado derecho de la cadena
viendaro@gmail.com
23
Trim. Retorna la misma cadena de caracteres sin los espacios en blanco del lado
izquierdo y derecho de la cadena
Ejemplo : Trim (" Henry Salcedo ")
2.
Funciones de Fecha
Hour. Retorna un entero que corresponde al nmero de horas de una fecha dada.
Ejemplo :
Integer Hora
viendaro@gmail.com
24
Minute. Retorna un entero que corresponde a los minutos de una hora dada.
Ejemplo :
Integer Hora
Hora=Minute(Now())
3.
FUNCIONES NUMERICAS
viendaro@gmail.com
25
Int. Obtiene el menor nmero entero que es menor o igual al nmero especificado.
Ejemplo: Int(3.2)
Int(3.8)
Int(-3.2)
Int(-3.8)
La siguiente sentencia retorna -4.0.
Mod. Obtiene el modulo de dos nmeros (el resultado obtenido de la divisin del
primer expresin con el segundo).
viendaro@gmail.com
26
4.
Funciones de Conversin
Dec. Convierte el contenido de una cadena a un nmero decimal.
Ejemplo :
Real Numero
Numero=Dec("14.25")
Double. Convierte el contenido de una cadena a un nmero doble
Ejemplo :
Real Numero
Numero=Double("14.25")
Integer. Convierte el contenido de una cadena a un nmero entero
Ejemplo :
viendaro@gmail.com
27
Desarrolle una aplicacin que permita el ingreso de los datos personales de los
alumnos. Se debe de ingresar los nombres, apellido paterno, apellido materno, direccin,
especialidad, semestre, turno, sexo y fecha de registro.
El cdigo deber de ser autogenerado de la siguiente manera: Tomar el primer carcter
del apellido paterno mas un nmero consecutivo que tendr que ir generndose.
El diseo del formulario deber de ser de la siguiente manera.
viendaro@gmail.com
28
"
cb_nuevo / Clicked
Realcelo ud.
viendaro@gmail.com
29
Pulse el botn Aceptar para generar el cdigo y agregar a la lista los datos.
El cdigo ha sido generado con la primera letra del apellido paterno + la primera
letra del apellido materno + un nmero correlativo.
viendaro@gmail.com
30
viendaro@gmail.com
31
Alcance de la funcin
Indica si la funcin
retornar valores
Nombre de la funcin a
crear
Ventana en donde se escribir el cdigo de la funcin
"
Cb_nuevo / Clicked
Limpiar_Controles();
Ejecute la ventana llene los datos respectivos y pulse el botn Cancelar, deber de
limpiar los controles.
viendaro@gmail.com
32
Los controles tendrn que estar activados al momento de ejecutar la ventana, y cuando
se pulse el botn nuevo tendrn que activarse con los controles en blanco.
viendaro@gmail.com
33
Cdigo de la aplicacin.
Crear una funcin con el nombre de Calcular
Para crear la funcin, seleccione la opcin Insert de la barra de men, y dentro de esta
seleccione Function.
Aqu se escribe el
cdigo de la funcin
Seleccione (None)
Nombre de la funcin
viendaro@gmail.com
34
Cb_agregar / Clicked
ddlb_empleados.Additem(sle_nuevoe.Text)
sle_nuevoe.Text=""
cb_aceptar / Clicked
sle_empleado.Text=ddlb_empleados.Text
rb_gerente / Clicked
sle_haber.text="2500"
Calcular();
rb_administrador / Clicked
sle_haber.text="2000"
Calcular();
rb_secretaria / Clicked
sle_haber.text="1000"
Calcular();
cb_otro / clicked
sle_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=False
cbx_afp.checked=False
cbx_essalud.checked=False
cbx_cts cbx_afp cbx_essalud / Clicked (en los tres poner el mismo cdigo)
Calcular();
Ejecute la aplicacin e ingrese los datos para poder calcular.
viendaro@gmail.com
35
Para eliminar una pgina, realice un click contrario sobre la pgina que desee eliminar y
seleccione la opcin Delete. (no se olvide que tendr que realizar click contrario dentro de
la pgina)
viendaro@gmail.com
36
Propiedad Valor
Tab_1
Name
tabpage_1 Name
Caption
tabpage_2 Name
Caption
Tab_Trabajador
Tabpg_datos
Datos del Trabajador
Tabpg_sueldo
Sueldo del trabajador
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
Name
rb_contratado
Caption
Contratado
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
Name
cb_cerrar
Caption
Cerrar
rb_2
cb_1
viendaro@gmail.com
37
viendaro@gmail.com
38
del PowerBar1.
Propiedades
Ventana de Cdigo
viendaro@gmail.com
39
Seleccione untitled0 del TREE VIEW, realice un click con el botn contrario y
seleccione la opcin Insert Sibmenu Item
Luego ingrese el ttulo para la primera opcin (en este caso escriba &Alumnos)
viendaro@gmail.com
40
Para crear el siguiente elemento de Alumnos. Seleccione &Alumnos del Tree View,
realice un click con el botn contrario, en la ventana que se despliega seleccione la
opcin Insert Submenu Item.
Para crear la opcin Consulta por seccin, siga el mismo procedimiento que utiliz
para crear : Matricula de alumnos.
Realice un click con el botn contrario y seleccione la opcin Insert Submenu Item.
viendaro@gmail.com
41
Para crear los sub menus de Cursos, siga los mismos procedimientos realizados para los
sub mens anteriores.
Al final el diseo del men tendr que quedar de la siguiente manera.
el botn
En la ventana que se activa seleccione el men que desea asociar a la ventana (En este
caso seleccione m_principal).
viendaro@gmail.com
42
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.
opcin
viendaro@gmail.com
43
Nota: No es necesario crear el cdigo 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.
viendaro@gmail.com
44
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.
viendaro@gmail.com
45
3. Seleccionar la opcin Create ASA Database y realizar doble clic, se activar la siguiente
pantalla.
4. Seleccione el botn Browse, busque la carpeta en donde desea grabar su base de datos,
indique el nombre de la misma, y realice un clic sobre el botn Guardar.
viendaro@gmail.com
46
viendaro@gmail.com
47
10. En la ventana de diseo 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 botn 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 botn derecho, seleccione New, y luego Primary Key.
viendaro@gmail.com
48
14. En la ventana de Primary Key (Conexin_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 continuacin.
viendaro@gmail.com
49
viendaro@gmail.com
50
el
mismo
nombre
del
campo)
seleccionar
el
campo
Forneo
el
campo
forneo
(Especialidades)
activar
el
campo
principal
(Codigo_Especialidad)
viendaro@gmail.com
51
2.
3.
4.
Tabla seleccionada
para la consulta
Campos Seleccionados en
la consulta
viendaro@gmail.com
52
6.
, para salir
Consulta con Parmetros o Argumentos. Son consultas que retornan datos de acuerdo a un
parmetro o argumento ingresado.
Crear una consulta que muestre los datos de tabla especialidades, de acuerdo al cdigo
de especialidad ingresado.
1. Repetir los 5 procedimientos anteriores.
2. Estando dentro de la venta de diseo de consultas, seleccione Design
de la barra de men, seguido de la opcin 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 botn 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 botn derecho sobre
este casillero, seleccione la opcin Arguments.., en la ventana que se activa seleccionar el
viendaro@gmail.com
53
5.
que ingresar el valor para el argumento que se ha creado. Ingresar el valor y pulsar el
botn OK
6.
7.
.
.
viendaro@gmail.com
54
2.
3.
4.
campo
Nombre_Especialidad.
viendaro@gmail.com
55
5.
Datos
Datos
6.
7.
Datos
.
.
viendaro@gmail.com
56
Indice
Normal
(Index)
viendaro@gmail.com
57
Datos Alumnos
Datos
Alumnos
Datos Alumnos
Datos Alumnos
viendaro@gmail.com
58