lunes, 18 de abril de 2016

GUI Avanzado con PowerBuilder


Muchas veces intente crear interfaces más amigables para los usuarios y temas como el tab o el enter para una fácil selección de campos siendo simples fueron efectivos y se volvieron pan de cada día, involucrar desplegar interfaces muy complejas sin mucho esfuerzo era algo complicado, es así como encontré esta librería de PowerToTheBuilder la cual permitió que las interfaces cumplieran muchas cosas mentalizadas, como con sencillos pasos logramos desplegar aplicaciones complejas incluso si fueron echas en otras versiones inferiores al de la librería.

Hoy quiero enseñarles un poco de esta útil herramienta y como la tengo trabajando en uno de mis sistemas.

Pasos.
1. lo principal es incluir las librerías proporcionadas por la empresa en tu aplicación esto se logra agregando los mismos como la imagen lo detalla.

2. teniendo la librería solo dependerá de que objeto queramos crear y seguir la sintaxis correcta del mismo para tener el objeto funcionalmente activo.

Aquí mostrare como se crean 2 objetos que me sirvieron de mucho,
2.1)RibbonWindow
esta librería permite tener un menú estilo Office2010 con tan solo heredar el window principal a partir del control w_ribbonwindow y asignandole como menu el de nuestra aplicacion como muestr en imagen.

Como lo implemente:
  1. Diseñamos el Menu poniendo en el tag las agrupaciones que se realizaran y agregándole la imagen en la pestaña del Toolbar.
       Aquí el Tag:
       *group:Formulario(Para agrupar los botones del menu le digo que lo llame Formulario)
       *size:large(Posiciona el tamaño grande sino el normal)
Todos las demás opciones siguen la misma lógica y luego le asigno al window ya heredado.
Ahora para darle opciones al botón desplegable de la izquierda le agrego el siguiente código, asignándole el tipo MDI y el icono junto a las opciones..

El resultado para este simple paso es asombroso, los botones funcionan como si se tratara del mismo menú solo que le da un aspecto mucho mas amigable y versátil para cuando se tenga muchas opciones.

2.2) TabControl y TabPage, Estos controles son mutuamente compatibles y complementarios, el primer paso es crear el TabControl dentro de nuestro ventana, también creamos objetos funcionales heredados del TabPage.
   a) Creamos instancias de los objetos creados a partir de heredar del TabPage.




luego simplemente añadimos cada Tabpage heredado al Tabcontrol para que se aperture en ésta

los resultados de este pequeño cambio y programación son los siguientes.

Como se darán cuenta la implementacion no es muy complicada y los resultados son muy asombrosos, yo tengo funcionando la herramienta y al momento no tuve problemas. investiguen los demás controles que son también muy buenos.








lunes, 25 de mayo de 2015

API de GoogleMAP para Power Builder 11.5

Estimados amigos, después de buscar mucho sobre apis de GoogleMAP V3 para Power Builder, en donde pueda incluir un mapa de seguimiento de posiciones por GPS y no encontrar algo sencillo que pudiera ser usado por mi persona para aplicaciones de escritorio. Decidí realizar mi propia api llamada GEOMAP.
Esta api provee varias funciones con las cuales se puede graficar un mapa Utilizando el JavaScript de GoogleMAP y creando un archivo HTML, la cual puede ser cargada en un browser y esta seria graficada según los parámetros pasados.

A continuación dejo la descripción y forma de uso del mismo.

//GEOMAP API GOOGLE MAP V3
Nombre de la biblioteca : n_geomap_api
Version : 1.0
Desarrollado por : Elvis Cardenas Zegarra
Fecha de creación : 14/05/2015
fecha de revisión : 20/05/2015

Descripción:
Crea un archivo HTML modificado según coordenadas y posiciones pasadas como parámetros para ser graficados en el GoogleMAP V3


Forma de uso:
1) crear la instancia
n_geomap_api uo_geomap
uo_geomap=create n_geomap_api

2) pasar los parámetros para renderizar la aplicación

//limpiando datos anteriores
uo_geomap.of_destroyall( )

//llave para el uso de GOOGLEMAP y zoom
uo_geomap.of_setKeyMap("TuKeyAPI")
uo_geomap.of_set_zoom(12)//esta varia de entre 0 - 20, retorna error de lo contrario

//estructura de opuntos a graficar
string descr[]={"descripción 1", "descripción 2"}//descripcion del marcador
string img[]={"1.png", "2.png"}//imágenes del marcador
string puntosX[]={'-12.0278733333333','-12.0218733333333'}//Latitud
string puntosY[]={'-77.1228826666667','-77.121526666667'}//Longitud
string anima[]={uo_geomap.is_anima_drop, uo_geomap.is_anima_bounce}//tipo de animación del marcador

//graficamos el marcador
for li_err=1 to 2
uo_geomap.of_setpuntos_coord( puntosX[li_err], puntosY[li_err], img[li_err], descr[li_err], anima[li_err] )
next

//renderizamos la grafica si todo esta bien retorna 1 sino 0
if uo_geomap.of_renderizar( )=0 then
messagebox("error",uo_geomap.of_geterror( ) )
end if

3) Puede obtener la url del archivo luego a ser cargado en el Explorador web
ole_web.of_navigate(uo_geomap.of_geturl( ) )


Estimados el api funciona muy bien aunque aún tiene mucho por mejorar, espero sus comentarios.

ACTUALIZACION: 2018-07-05 adjunto la librería para que la modifiquen a gusto, Solo no olvides dejar los datos del autor, descargala Aquí

Saludos,

domingo, 24 de mayo de 2015

SAP transfiere el Desarrollo de PB a Appeon

En la Conferencia de PowerBuilder 2015 en Charlotte , Carolina del Norte el ( 08/05/2015 ) , VP Senior SAP Dirk Boessmann declaró que se asociará con Appeon Corporación para transferir la tecnología y el desarrollo PB a Appeon .
Ahora hay un acuerdo firmado en su lugar entre SAP y Appeon para que el personal de ingeniería de SAP para iniciar la transferencia de PB IDE y tecnología compiladora para los Ingenieros Appeon .
Dirk también declaró que él tiene un SAP "equipo" ya en el lugar para hacer esta transición / asociación suceda lo antes posible.

Con esta alianza ....

Bienvenida


Bueno Estimados amigos, teniendo en cuenta la secases de información con relación a esta gran herramienta PowerBuilder decidí crear este blog para compartir información, mejorar códigos, entre otras cosas relacionadas a la herramienta. Espero sea de gran ayuda así como apoyo para sus futuros proyectos.