Friday, August 24, 2012

PowerBuilder - El nuevo chico de la cuadra del Developer Center

Voy a ser totalmente honesto...la ultima vez que utilice PowerBuilder fue hace 8 anhos o mas...y no pense que fuera a utilizarlo de nuevo...hasta que lei un documento de mi companhero de equipo Uwe Kylau llamado PowerBuilder Developer Center y supe que este era el momento.

Estos dias, todo es sobre SAP HANA y yo por supuesto, no puedo estar lejos de esto, asi que decidi limpiar el polvo de mis habilidades en PowerBuilder y tratar de hacer una aplicacion incluyendo a SAP HANA.

PowerBuilder 12.5 ofrece diferentes IDEs, o mejor dicho, el clasico y el mejorado. Siendo un viejo desarrolador (more than 14 years now) decidi utilizar el clasico.

Lo primero que hice, fue abrir mi IDE de PowerBuilder y prepararlo para soportar SAP HANA via JDBC.

Tan facil como suena, solo tuve que ir a Tools --> System Options --> Java y escoger la carpeta donde esta el achivo ngdbc.jar.



Luego de esto, estableci la conexion con mi servidor de SAP HANA en Amazon Web Services. Para esto fui a Tools --> Database Painter y en JDB JDBC escogi New Profile... --> llene los parametros y estaba listo para comenzar...



Con esto listo, el tiempo para la creacion de la aplicacion, estaba a la vuelta de la esquina.

En el menu File --> New. Cree un nuevo Workspace y una .NET Windows Forms Application y luego un DataWindows de tipo Grid.



Cuando creamos un DataWindow debemos especificar de donde va a obtener la informacion. Para este, escogi SQL Select, y luego escogi la tabla VOTES_DETAIL que creamos en el blog Rapido caso de uso con SAP HANA y R y como campo escogi COUNTRY y luego Design --> Distinct. Puesto que no queremos valores duplicados. Lo grabe y lo llame dg_country.



Repeti los mismos pasos pero esta vez para el campo Age. A esta la llame dg_age.

Cuando hemos terminado con esto, creamos un nuevo DataWindow pero esta vez del tipo Freeform y escogemos External como el Data Source en la siguiente ventana. Esto nos mostrara una nueva ventana preguntandonos por un Result Set, usemos el siguiente.


En la ventana de edicion, escogemos el campo Country y nos vamos a Properties Window y escogemos la pestanha Edit. Cambiamos el Style type a DropDownDW y llenamos los siguientes valores.


DataWindow es el valor del cual vamos a tomar los datos para llenar nuestro control DropDown. Lo grabamos y lo llamamos ff_params.

Creamos un nuevo DataWindow de tipo Grid y escogemos SQL Select como el Data Source. Seleccionamos todos los campos y escogemos Design --> Retrieval Arguments (Esto es muy importante puesto que nos permite pasar los valores de nuestros control Drop Down hacia el reporte).
Especificamos los argumentos como se muestra...


En la pestanha Where llenamos los parametros y los argumentos. Grabamos y lo llamamos dg_report.


Ahora, tenemos que crear un nuevo DataWindow (No se preocupen...es el ultimo) de tipo Graph y definir las siguientes expresiones.




Para el estilo del grafico, escojan lo que quieran...a mi me gustan los Pies...


Lo guardamos y lo llamamos dg_graph.

Y ahora para algo completamente diferente...vamos a crear un PB Object de tipo Window. Desde el menu Insert podemos coloar dos botones y simplemente hacer un Drag & Drop de los DataWindows ff_params y dg_report.

Tu layout deberia terminar asi...grabamos y lo llamamos w_window.


Una cosa importante antes de que vayamos a la parte de codigo de este blog, es que debemos regresar al Database Painter, escoger nuestra conexion e ir a la pestanha Preview, utilizando el boton Copy podremos tener lo que necesitamos, que es los detalles de conexion.


Ahora...codigo fuente! (Gritando por favor)

Doble click a la aplicacion y escribamos el siguiente codigo.


Vamos atraz y hacemos doble click en el boton Show Report y pegamos este codigo.


Hacemos lo mismo con el boton Show Graphic.


Finalmente, presionamos click derecho y escogemos Script en la ventana w_window y agregamos este codigo.


Ejecutemos la aplicacion y veamos como funciona...



Listo...una bonita y rapida aplicacion utilizando PowerBuilder y SAP HANA...

Saludos,

Blag.

No comments: