Mostrando entradas con la etiqueta User Objects. Mostrar todas las entradas
Mostrando entradas con la etiqueta User Objects. Mostrar todas las entradas

lunes, 7 de mayo de 2018

Texto en Item de control Toolbar Strip de PB Ultimate Suite

Recibí un correo de un compañero que también trabaja con PB Ultimate Suite, en la cual preguntaba como se puede tener uno o algunos items con texto en el control Toolbar Strip.

Pues este es el código:

En el evento Constructor del objeto (u_cst_toolbarstrip, heredado en la ventana) codificamos:

Long ll_Aceptar

ll_Aceptar = uo_toolbar.of_AddItem('Aceptar', n_cst_imagelist.Accept, 'Aceptar')
uo_toolbar.of_AddSeparator()
uo_toolbar.of_AddItem('First', n_cst_imagelist.VCRFirst, 'Primera')
uo_toolbar.of_AddItem('Prior', n_cst_imagelist.VCRPrior, 'Anterior')
uo_toolbar.of_AddItem('Next', n_cst_imagelist.VCRNext, 'Siguiente')
uo_toolbar.of_AddItem('Last', n_cst_imagelist.VCRLast, 'Ultima')

This.of_displaytext(ll_Aceptar, True,1)

(*) n_cst_imagelist es un objeto no visual, en la que tengo constantes de tipo string que tienen como valor la ruta de las imágenes que uso en mi aplicación.

Porque tener las este objeto no visual para constantes pues:

1. Por orden, es mas fácil darle mantenimiento, si en algún momento se quiere cambiar el valor de la constante.
2. Puedo usar una constante,en cualquier parte de mi aplicación.
3. Evito cargar constantes al iniciar la aplicación. He visto muchas aplicaciones que declaran constantes como variables globales, recuerden que al ejecutar la aplicación carga todas las variables globales.

Así se declara:

















Así logramos tener un item con texto en el control Toolbar Script:

miércoles, 11 de abril de 2018

String Service - Servicio de manejo de cadenas (n_cst_string)

Proporciona funciones que se pueden llamar para operar con cadenas. El servicio se activa mediante el objeto n_cst_string. Entre las operaciones que se pueden realizar están:

  • Separar una cadena delimitada en un array.
  • Convertir un array en una cadena delimitada.
  • Determinar si una cadena está en minúsculas, mayúsculas, si es alfabética o alfanumérica.
  • Reemplazamiento global.
  • Contar el número de apariciones de una determinada cadena.
  • Eliminar espacios y caracteres no imprimibles del principio o final de una cadena.
  • Determinar si una cadena es un operador de comparación o aritmético.
  • Capitalizar todas las palabras en una cadena.

Hay que definir n_cst_string como una variable global, de instancia o local según convenga en la aplicación.

Para habilitar el servicio:
n_cst_string  inv_string

Este objeto utiliza la opción autoinstantiate, que elimina la necesidad de codificar sentencias CREATE o DESTROY.

Para llamar una función del servicio:
n_cst_string  lnv_string 
Integer  li_newlines 
String  ls_line[ ] 
... 
li_newlines = lnv_string.of_ParseToArray(as_text, "~r~n", ls_line)

P.D.: Este objeto es propio de las librerías PowerBuilder Foundation Class, para su entendimiento y uso puede leer el manual de PowerBuilder Foundation Class, en el articulo Objetos PFC para aplicaciones no PFC (PFC Objects for Non PFC Applications) encontrara el link de descarga para utilizar este objeto libre.

Objetos PFC para aplicaciones no PFC (PFC Objects for Non PFC Applications)

La web PFC Guide es un sitio dedicado a la información sobre las librerias PowerBuilder Foundation Class, en la sección Download encontramos la descarga PFC Objects for Non PFC Applications que es una librería que contiene objetos separados de PFC y modificados para su uso en cualquier proyecto, se encuentra en versión PB 6.0.

Los objetos que tiene esta librería son:


1) String Service
Para usar el objeto de servicio de cadena, se tiene que copiar el objeto n_cst_string en su aplicación.

2) Date and Time Service
Para usar el objeto de servicio de fecha y hora, se tiene que copiar el objeto n_cst_datetime en su aplicación.

3) Resize Service
Para usar el objeto de servicio de cambio de tamaño, se tiene que copiar el objeto n_cst_resize en su aplicación.

4) DataWindow Resize Service
Para usar el servicio de cambio de tamaño de DataWindow, se tiene que copiar los objetos n_cst_dwsrv_resize, n_cst_infoattrib y n_cst_propertyattrib en su aplicación.

5) Dropdown Calendar
Para el uso del dropdown calendar, copiar los objetos u_calendar, d_calender, n_cst_infoattrib, n_cst_propertyattrib, n_cst_dropdown, n_cst_calenderattrib y n_cst_datetime en su aplicación.

6) Dropdown Calculator
Para el uso del dropdown calculadora, copiar los objetos u_calculator, d_calculator, n_cst_infoattrib, n_cst_propertyattrib, n_cst_dropdown y n_cst_calculatorattrib into en su aplicación.

7) Progress Bar
Para el uso de la barra de progreso, copiar los objetos u_progressbar, d_progress y n_cst_infoattrib en su aplicación.

viernes, 12 de agosto de 2016

Objeto para reemplazar el uso de DDDW

He creado un objeto para reemplazar el uso de un DDDW o una ventana de búsqueda y/o filtro, el cual tiene las siguientes funcionalidades:

-Se adapta a cualquier campo de un DataWindow.
-Tiene un filtro de búsqueda.
-Trabaja como cualquier DDDW.
-Se cierra al posicionarse en cualquier otro campo del DW u otro objeto de la ventana.
-Aumenta de tamaño. No sale del tamaño de la ventana.


Si el dato filtrado en la búsqueda es muy grande, como se muestra en la siguiente imagen:









Se puede aumentar el tamaño y visualizar mejor el dato, como se muestra en la siguiente imagen sin perder la forma.

(Dar clic en la imagen para agrandar)

Si lo puedes imaginar en PowerBuilder lo puedes crear.

viernes, 15 de enero de 2016

Utilizando PowerFilter

Hola a todos, he implementado el componente PowerFilter en mi aplicación que trabaja con los componentes de PB Ultimate Suite.

Con solo darle clic al botón Filtro, se activara el filtro similar a Excel en el DataWindow:


Este filtro es un muy potente y tiene las mismas opciones que el filtro de Excel:







En el menú manejo las opciones las cuales se activan o desactivan según la ventana, en la siguiente imagen la ventana activa es de consulta:


En la siguiente ventana podrán ver que utilizo el componente Tab Control de PB Ultimate Suite



Hasta la próxima.

martes, 4 de agosto de 2015

Modernizar la presentación de aplicaciones PowerBuilder

Muchas aplicaciones PowerBuilder han sido desarrolladas hace mucho tiempo y la clásica presentación es tener un menú principal asociado con un toolbar con iconos de las  principales opciones, para facilitar el acceso al usuario.

He desarrollado una presentación moderna para aplicaciones PowerBuilder utilizando los componentes Outlook Style Bar y Ribbon Style Menu de PB Ultimate Suite.

Utilizo Outlook Style Bar para obtener un Menú de estilo Outlook en PowerBuilder que reemplaza al clásico menú principal y permita abrir windows dentro de un marco mdi! o mdihelp!.


Utilizo Ribbon Style Menu para obtener un Menú estilo Ribbon en PowerBuilder el cual tiene las opciones comunes que toda ventana necesita como Nuevo, Editar, Guardar, Buscar, Vista Previa, Imprimir, etc.


De esta manera reemplazo al toolbar de opciones asociado a la ventana de la presentación clásica.


Presentación clásica:


Presentación moderna:


Cualquier consulta al correo jorgebarzola@gmail.com

Menú Ribbon en PowerBuilder

Ribbon Style Menu es un componente de PB Ultimate Suite que permite reemplazar el menú tradicional de PowerBuilder por un menú de estilo Ribbon.

PB Ultimate Suite tiene otro tipo de presentación el cual reemplaza ventanas por pestañas, muchas aplicaciones PowerBuilder tienen una gran cantidad de objetos windows, mi Framework cuenta con windows base o ancestras. Por experiencia les digo el usuario tiene mas facilidad en trabajar con windows.

He creado esta presentación utilizando el componente Ribbon Style Menu para modernizar solo la presentación de las aplicaciones PowerBuilder reemplazando el menú tradicional por el menú de estilo Ribbon.


Un objeto window de tipo mdi! o mdihelp! puede trabajar con un menú de estilo Ribbon y abrir windows dentro del marco.


Permite agrupar en pestañas opciones y seguir abriendo windows dentro del marco.


La estructura del menú de estilo Ribbon la define en un objeto menú y desde este codificar los objetos windows que desea abrir según la opción.


Consultas al correo jorgebarzola@gmail.com

Menu Outlook en PowerBuilder

Siempre se ha buscado la manera de que nuestras aplicaciones PowerBuilder se vean mejor, por tal muchos hemos puesto el menú de opciones en un objeto TreeView a un lado del window principal ya sea tipo mdi! o mdihelp!.

He utilizado el componente Outlook Style Bar de PB Ultimate Suite para poder dar a mi Menu TreeView el cual se carga desde un objeto Menú  el estilo del Menú Outlook.

Si se quiere separar por módulos se asocian objetos TreeViews y podriamos tener una presentación moderna en las aplicaciones PowerBuilder como muestra la siguiente imagen:


Consultas al correo jorgebarzola@gmail.com

martes, 11 de marzo de 2014

Creando TabPage usando Custom Visual - User Objects

PowerBuilder se caracteriza por ser la mejor herramienta de programación orientada a objetos y por tal debemos explotarla; es fácil ver muchas aplicaciones con objetos en cantidad que cumplen la mismas funcionalidades o los mismos objetivos, aplicaciones sin herencias, sin polimorfismo es decir sin programación orientada a objetos.

Un tiempo trabaje con las famosas PFC y quede maravillado, pero hay cosas que no me agradaron por su complejidad por tal empece a desarrollar librerias con objetos y funcionalidades similares, mas flexibles, mejores de entender y codificar a mi conveniencia.

Una de ellas fue el uso de TabPages, para esto he creado un TabPage ancestro del cual solo heredo. Para crearlo seguimos los siguientes pasos:


1 - Clic en New del PowerBar y escogemos Custom Visual del Tab PB Object.


2 - Luego de dar clic en OK nos mostrara el Custom Visual - User Object creado que a simple vista es muy similar a un Window Object, continuamos y grabamos con el nombre u_tabpage.


Un TabPage no puede trabajar solo este debe estar contenido en un Tab Control, entonces creamos un Tab Control ancestro. Para crearlo seguimos los siguientes pasos:

1 - Clic en New del PowerBar y escogemos Standar Visual del Tab PB Object.



2 - Escogemos Tab.


3 - Grabamos con el nombre u_tab

Listo, recordemos que u_tab es el Tab Control (Contenedor) ancestro y u_tabpage es el Tabpage (Pestaña o Page) ancestro.

Como asociamos el u_tabpage al u_tab de la siguiente manera:

Clic derecho sobre u_tab, seleccionamos Insert User Object


El trabajo de Tab Control y TabPage con User Object visuales es el mismo que el de tener una ventana y colocar un Tab Control del PowerBar. Un ejemplo de estos en tiempo de ejecución:


lunes, 10 de marzo de 2014

Enviar correos GMail desde PowerBuilder

He utilizado EmailSMTP de la web Topwiz Software para enviar correos electronicos y la experiencia ha sido muy buena, no es nada complicado.

Daré un ejemplo de como usarlo:

Primero descargar esta pequeña aplicación desde el siguiente link:

http://www.topwizprogramming.com/freecode_emailsmtp.html

Empecemos:

La aplicación esta estructurada por los siguientes objetos:



Los visual user objects u_tabpg_settings y u_tabpg_smtp hereran de u_tabpg en tiempo de ejecución podemos ver como se muestran estos objetos, se enlazan a u_tab_main y hacen un control Tab con 2 TabPage.

En la primera pestaña colocamos el correo de envio y el correo destino, el titulo o asunto del correo, el cuerpo del correo y hasta permite adjuntar cualquier tipo de archivo.


En la siguiente pestaña el tipo de Servidor SMTP es smtp.gmail.com por default, el puerto debe ser 465, el correo de envió debe ser una cuenta gmail y luego colocar su contraseña.


Una vez que se detallo la configuración, regresamos a la pestaña Send Mail y damos clic en el botón Send y listo se realiza el envió del correo.

Todo esto se puede resumir en una sola opción y es lo que hice yo, incluso enviar a muchos correos de destino y adjuntar muchos archivos.

El objeto no visual n_smtp tiene funciones que permiten el envió de correo con todas las propiedades de un correo gmail.

Las principales funciones son:

of_SetSubject = Para el Asunto del correo.
of_SetBody = Para el cuerpo del correo.
of_SetFrom = Para el nombre y correo de envió.
of_AddAddress = Para el nombre y el correo de destino.
of_SetLogin = Para el correo y contraseña de envió.
of_AddAttachment = Para adjuntar archivos.


Me ha servido de mucho esta aplicación y espero que este post los ayude, pueden enviar sus preguntas a mi correo que gustoso les responderé cualquier duda.

lunes, 20 de agosto de 2012

ToolbarFilter en Kodigo Framework

Una muestra del poder de PowerBuilder, comparto con ustedes imágenes del objeto ToolbarFilter el cual he construido en mis fuentes bajo Kodigo Framework. 


ToolbarFilter permite ordenar por columnas:


ToolbarFilter permite buscar o filtrar por columna:

Aprovecho este post para conocer a compañeros PowerBuilder que trabajen con Kodigo Framework, escribir al correo jorgebarzola@gmail.com

domingo, 27 de noviembre de 2011

Aplicaciones PowerBuilder 10.5 con Kodigo PowerBuilder Framework

Anteriormente ya había publicado sobre Kodigo PowerBuilder Framework en el año 2008, pero recién es en este año que llego a usarlo y a conocer mejor sus bondades, claro que aun hay mucho por conocer de este Framework. He desarrollo dos aplicaciones ya con Kodigo y los resultados fueron muy buenos, no solo por conseguir una interface agradable para el usuario, si no también porque Kodigo maneja bien la Programación Orientada a Objetos.

Actualmente he desarrollado unas fuentes con Kodigo, he implementado nuevos objetos y nuevas funcionalidades a algunos de sus objetos de Kodigo v3.3.1.5 y he migrado todo a PowerBuilder 10.5, bueno lo que empezó como un tema de investigación y de ejemplo termino siendo mis actuales fuentes de desarrollo (por ahora se quedaron en stand by mis queridas BFC ya mencionare de ellas).

Espero tras este post contactar con otras personas que utilicen Kodigo y poder intercambiar ideas y experiencias.

domingo, 18 de enero de 2009

Standard Visual - User Object

Los Standard Visual - User Object heredan caracteristicas de un control standar de PowerBuilder.

Creando un Standard Visual - User Object

Para crear un Standard User Object, presionamos click en el icono New del PowerBar y escogemos Standar Visual del Tab PB Object.

Creando un CommandButton User Object

Escogemos CommandButton

Nota: Es muy común usar CommandButton's en nuestras apliaciones, entonces para dar un ejemplo de herencia en PowerBuilder crearemos un CommandButton User Object base o ancestro con nombre u_cb.

Lo sgte que tenemos que hacer es heredar del objeto u_cb (Standard Visual CommandButton Ancestro), buscamos el objeto u_cb, le da damos click derecho y elegimos Inherit.

Luego Crearemos el CommandButton Guardar, que va ser descendiente de la clase u_cb

Y asi sucesivamente creamos los CommandButton's que nuestra aplicación necesite ejemplo: "Nuevo, Eliminar, Imprimir, Modificar, Eliminar, Cerrar, etc"

User Object

Una de las principales características de la programación orientada a objetos es la reutilización. En una aplicación, que normalmente tiene una selección de controles u objetos, que fundamentalmente realizan la misma tarea, dispersos en todo el diseño.

Existen dos tipos de User Object:

1 - Visual User Objects

  • Custom Visual
  • External Visual
  • Standard Visual

2 - No Visual(Class)

  • Custom Class
  • Standard Class