Power Builder Clase 6 - Instituto...
Transcript of Power Builder Clase 6 - Instituto...
Power Builder Clase 6
En clases anteriores hemos visto el IF-END IF, FOR-NEXT, ahoravamos a terminar otros comandos necesarios ya que ellos son pocos.
CHOOSE CASE
Una estructura de control que dirige la ejecución de un programabasada en un valor de una expresión que es evaluada(usualmenteuna variable)
CHOOSE CASE expresionCASE expresionlista
bloque de comandos{ CASE expresionlistabloque de comandos
. . .CASE expresionlista
bloque de comandos }CASE ELSE
bloque de comandos }END CHOOSE
Ejemplos
CHOOSE CASE WeightCASE IS<16
Postage=Weight*0.30Method="USPS"
CASE 16 to 48Postage=4.50Method="UPS"
CASE ELSEPostage=25.00Method="FedEx"
END CHOOSE
CHOOSE CASE Real(sle_real.Text)CASE is < 10.99999
sle_message.Text = "Real Case < 10.99999"CASE 11.00 to 48.99999
sle_message.Text = "Real Case 11 to 48.9999CASE is > 48.9999
sle_message.Text = "Real Case > 48.9999"CASE ELSE
sle_message.Text = "Cannot evaluate!"END CHOOSE
DO…LOOP
Una estructura de control para generar iteraciones usada paraejecutar un bloque de comandos mientras o hasta que una condiciónsea verdadera.
DO... LOOP tiene cuatro formas:
· DO UNTIL· DO WHILE· LOOP UNTIL· LOOP WHILE
DO UNTIL condiciónbloque de comandosLOOP
DObloque de comandosLOOP UNTIL condición
DO WHILE condiciónbloque de comandosLOOP
DObloque de comandosLOOP WHILE condición
Ejemplos
integer A = 1, B = 1DO UNTIL A > 15
Beep(A)A = (A + 1) * B
LOOP
integer A = 1, B = 1DO WHILE A <= 15
Beep(A)A = (A + 1) * B
LOOP
Estos comandos son más que suficientes para programar en PB.
Muy bien, abramos nuevamente la aplicación y visualicemos elsystem tree, vamos a crear un proyecto y a su ves un EXE.
Presionemos CTRL + N, vayamos a la pestaña o solapa PROYECT, yseleccionemos APPLICATION, en EXECUTEBLE FILE NAME, escribirprueba, en REBUILD, FULL, en VERSION, escribir sus datospersonales, luego hacer sobre el icono de grabar, colocar el proyectoen cualquier librería.
Ahora puedes cerrar el pintor y apreciar el system tree, ubica elproyecto.
Ok, haz doble clic sobre el para ir a editarlo y vamos a generar elproyecto, haz clic sobre el icono que está junto a la X, si reposassobre el aparecerá la leyenda DEPLOY, que significa desplegar, en laventana output no tendría que dar ningún error, si lo hay comentarloen instructor para resolverlo, cerrar el pintor y volvamos al systemtree.
Hechemos un vistazo a lo que sea generado
Si observas los archivos que están marcados, observamosPrueba.exe, prueba work space, prueba.pbl, prueba1.pbl, datos.pbl,prueba.pbd ,prueba.pbt.
Los más importantes de mencionar son .EXE, PBL y WORK SPACE.Observa el tamaño del .EXE, super pequeño en verdad, puedescorrerlo, ya no necesitas el entorno de PB, si quieres lo puedes cerrary correr el EXE.
Ahora, podes crear .DLL, donde cada librería se convertirá en unaDLL, volvamos al pintor de proyectos y hagamos un cambio, poner elcheque en machina code y observar como cambia de PBD a DLL, noolvide de chequear las librerías, volver a regenerar la aplicación ohacer el DEPLOY.
Observar nuevamente el directorio de trabajo, encontrará las DLL
Basta de compilaciones, vanos a continuar con la extensión de laaplicación, creemos una ventana y ponle de nombre w_personaldentro ella vamos a tener TABS o SOLAPAS o LENGUETAS oPESTAÑAS, en realidad reciben muchos nombres, bueno lo quepretendo es enseñarte a como crearlas y usarlas.
Una ves creada la ventana coloca sobre ella un control TAB, luego hazclic derecho sobre el y selecciona ADDà INSERT TAB PAGE
Deberías tener algo así, para generar el segundo TAB, haz clicderecho sobre NONE para que te de la oportunidad insertar el otro.
Amplía el TAB hacia la derecha y cambia de texto a los tabpage a losnone, ponle al primero Agenda y al segundo Direcciones, cámbiale decolor a tu gusto a los tabpage, coloca un icono a cada uno y cambiafont size a 14 o 15 para que se vean bien legibles y a la ventanaponle un color suave, vamos inténtalo.
Trata de dejar un espacio en la parte de abajo entre el TAB y laventana.
En el tabpage_1 Agenda, coloca una DW y asóciale d_agenda que yatenemos.
Coloca dos botones en la ventana, no en DW, y ponlesFiltrar/Nombre, Ordenar/Nombres y ponles a la par un controltexto(single line edit) para el caso del filtro únicamente
Escribamos el script para el filtro
Puedes observar que para hacer mención a la DW tengo que hacerlocon la nomenclatura de punto, primero el objeto se llama tab_1,luego tiene un objeto sobre el tabpage_1 y luego la DW esta sobretabpage_1, esto se puede minimizar, lo veremos más adelante,observa setfilter() y filter().Veamos el script para el ordenamiento
Observa setsort() con dos parámetros, el primero le indica el campo yel segundo el orden A=Ascendente y D=Descendente, luego se aplicael sort(). Por último necesitamos quitar el filtro o el ordenamiento,aumentar dos pequeños botones para el reset.
Ahora bien, recuerde que necesita codificar el evento open() de laventana, se recuerda?, ok, entonces procesa a codificar ese código,además necesita poner una opción más en el menú bajo PROGRAMASpara poder acceder esta ventana, colóquele un icono para poderloacceder rápidamente.
Muy bien, si ya luce así, te felicito ya eres parte del STAFF DEPROGRAMADORES DE PB.
Recuerda que tenemos pendiente la segunda solapa la de lasdirecciones, pero antes necesitamos crear una tabla de nombredirecciones que tendrá los siguientes campos, genera el índice denombre inx_direccion y que sea único y ascendente.
No_telefono varchar(8) Indice No PKDireccion varchar(40)Departamento varchar(15)Sexo varchar(10)
Luego genere dos registros con la siguiente información
Cierre el pintor y grabe los cambios.Abra el pintor de para crear una datawindow grid, seleccione todoslos campos de la tabla direcciones
Ahora necesitamos enviarle un parámetro a este SELECT, observa lasintaxis del select hasta ahora, haz clic sobre la solapa del where,aquí estableceremos la condición para traer solo los registros quequeramos.
Haz clic sobre la opción DESIGNà RETRIEVAL ARGUMENTS y generaun campo de nombre mi_telefono de tipo string, luego clic OK.
Haz clic sobre column y selecciona el campo no_telefono de la tabladirecciones y trata de hacer la condición que el no_telefono sea igualmi_telefono, nota que necesitas anteponer dos puntos antes demi_telefono.Haz clic en la solapa SYNTAX y observa el SELECT, luego haz clic enel icono RETURN
Si te pide valores a ingresar, solo haz clic en CANCELAR
Tenemos algo parecido a esto?, muy bien!!!, recuerda los tab a cero,grábalo como d_personal en la librería adecuada y asócialo a DW deltabpage2
Ejecutemos a aplicación para ver si funciona con todos los aspectosque hemos introducido y observemos que nos hace falta.Así es, si observas no se muestran los datos de la tabla dedirecciones, tenemos que hacer lo siguiente:
Ø Necesitas crear una objeto de transacción para esta tabla, tal ycomo la hiciste para la tabla de agenda
Ø Necesitas hacer un retrieve() a los registros de la tabladirecciones, recuerda que debes de enviarle un parámetro, yaque el SELECT lo espera, el parámetro es el no_telefono deagenda hacia la tabla direcciones, recordar que la relación esuna a una
Ø Necesitas sincronizar la DW de agenda con respecto a DW dedirecciones, en el sentido de acceder a las direccionescorrespondientes en base al no_telefono, esto lo debes deplanear en el evento OPEN() de ventana y en el eventoROWFOCUSCHANGED de la DW de agenda
Como ves el panorama? Se oye imposible, pero no lo es, empecemosentonces…..
Evento OPEN()
Para finalizar haremos un reporte para poder verlo en pantalla oenviarlo a la impresora, entonces tu debes:
Ø En esta ventana, aumentar un tabpageØ Ponerle una DW y asociarla a d_agenda o crear una propia con
encabezadosØ Poner dos botones en el tabpage Pantalla y el otro ImpresorØ En el boton pantalla codificar el script
w_3.settransobject(sqlca);Ø dw_3.retrieve();Ø En el boton Impresor codificar el script
dw_3.settransobject(sqlca);Ø dw_3.retrieve();Ø long JobØØ Job = PrintOpen( )ØØ dw_3.Print()ØØ PrintClose(Job)
Espero que este curso haya satisfecho tus expectativas deprogramador y haber conocido el mundo maravilloso de PB, si deseasdocumentarte más puedes visitar www.powerbuilder.org owww.sybase.com. Editado por JAAF