Power Builder 7 0 tutorial

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

Views 260 Downloads 5 File size 768KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 (Cliente

Servidor (Base de 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

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.

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.

Ing. Victor Davila

[email protected]

2

Manual de Power Builder

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.

Ing. Victor Davila

[email protected]

3

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

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 PictureName Text Font Text Text Name Text

P_llave (buscar una imagen) Ingrese su Nombre y Contraseña 12, Bold &Usuario &Contraseña Sle_Usuario “”

St_1 St_2 St_3 Sle_1

Ing. Victor Davila

[email protected]

5

Manual de Power Builder Sle_2

Name Text Limit Password

Sle_Clave “” 5 (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

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

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

Manual de Power Builder Cambiar las propiedades siguientes. Control

Propiedad

Valor

Window

Title

Seguridad de Sistema

P_1

Name PictureName

P_llave (buscar una imagen)

St_1

Text Font

Ingrese su Nombre y Contraseña 12, Bold

St_2

Text

&Usuario

St_3

Text

&Contraseña

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

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)

Ing. Victor Davila

[email protected]

9

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.

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"

Ing. Victor Davila

[email protected]

10

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

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

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

sle_1

Name

sle_2

Name

sle_3

Name

Text Text Text sle_4

Name Text

sle_5

Name Text

sle_3

Name Text

sle_3

Name

rb_1

Name

rb_2

Name

rb_3

Name

Cb_1

Name

Cb_1

Name

Cb_1

Name

Text Caption Caption Caption Caption Caption Caption Ing. Victor Davila

Valor 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 [email protected]

13

Manual de Power Builder 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 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"

Grabe la ventana con w_opciones y luego ejecute .

Ing. Victor Davila

[email protected]

14

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

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

Ing. Victor Davila

name

[email protected]

15

Manual de Power Builder Código del formulario cb_aceptar / clicked

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

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 d dd ddd dddd m

Ing. Victor Davila

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

[email protected]

Example 9 09 Mon Monday 6

16

Manual de Power Builder

Time

mm mmm mmmm yy yyyy :

Month number with leading zero if appropriate Month name abbreviation Month name Two-digit year Four-digit year

Character h hh m mm s ss ffffff AM/PM am/pm A/P a/p

06 Jun June 97 1997

Meaning Hour with no leading zero (for example, 1) Hour with leading zero if appropriate (for example, 01) Minute with no leading zero (must follow h or hh) Minute with leading zero if appropriate (must follow h or hh) Second with no leading zero (must follow m or mm) Second with leading zero (must follow m or mm) 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) Two-character, upper-case abbreviation (AM or PM as appropriate) Two-character, lower-case abbreviation (am or pm as appropriate) One-character, upper-case abbreviation (A or P as appropriate) 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

Manual de Power Builder

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 Real Nota1,Nota2,Promedio Nota1=real(em_nota1.text) Nota2=real(em_nota2.text) promedio=(nota1+nota2)/2 if promedio>=11 then sle_condicion.text="Aprobado" else

cb_otro / Clicked sle_alumno.text="" sle_curso.text="" em_nota1.text="0" em_nota2.text="0" em_promedio.text="0"

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.

Ing. Victor Davila

[email protected]

18

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. Control Sle_1 Lb_1

Propiedad Name Text Name

Valor sle_nuevo en blanco

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

Ing. Victor Davila

[email protected]

19

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

Propiedad name name name name name name name name name name name name name

valor 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

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=""

Ing. Victor Davila

[email protected]

20

Manual de Power Builder 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"

Ing. Victor Davila

[email protected]

21

Manual de Power Builder 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.

Ing. Victor Davila

[email protected]

22

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

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

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

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

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

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

Manual de Power Builder

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

Ing. Victor Davila

[email protected]

29

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

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.

Alcance de la función

Ing. Victor Davila

Indica si la función retornará valores

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

[email protected]

31

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

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.

Aquí se escribe el código de la función

Ing. Victor Davila

Seleccione (None)

Nombre de la función

[email protected]

33

Manual de Power Builder El código de la función es el siguiente: REAL haber,cts,afp,essalud,totald,neto haber=REAL(sle_haber.Text) IF cbx_cts.CHECKED=TRUE then cts=haber*0.03 ELSE cts=0 end if if cbx_afp.checked=true then afp=haber*0.06 else afp=0 end if if cbx_essalud.checked=true then essalud=haber*0.06 else essalud=0 end if totald=cts+afp+essalud neto=haber - totald em_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 / 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 código) Calcular(); Ejecute la aplicación e ingrese los datos para poder calcular.

Ing. Victor Davila

[email protected]

34

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

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 Control

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

Dentro de Tabpg_datos va:

Diseño de la segunda página

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

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

Ing. Victor Davila

[email protected]

36

Manual de Power Builder

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

Ing. Victor Davila

[email protected]

37

Manual de Power Builder

Ing. Victor Davila

[email protected]

38

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

Ing. Victor Davila

[email protected]

39

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

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

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

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

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.

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.

Ing. Victor Davila

[email protected]

44

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

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

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

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

Ing. Victor Davila

[email protected]

47

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

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

Manual de Power Builder  Cree la tabla Datos_Alumnos, de la misma manera, el diseño es el siguiente:

6

 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

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

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.

Tabla seleccionada para la consulta

Ing. Victor Davila

Campos Seleccionados en la consulta

[email protected]

52

Manual de Power Builder 5. Para realizar una presentación preliminar, realice un clic sobre el icono la vista, seleccione el siguiente icono

, para salir de

.

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

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

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

Ing. Victor Davila

. .

[email protected]

54

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

Manual de Power Builder

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

Ing. Victor Davila

. .

[email protected]

56

Manual de Power Builder 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)

Ing. Victor Davila

[email protected]

57

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

2.

Datos Alumnos

Datos Datos Alumnos Datos Alumnos Datos Alumnos Alumnos

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

Ing. Victor Davila

Datos Alumnos

Datos Alumnos

[email protected]

58