domingo, 30 de noviembre de 2008

Animacion en Titulo de Ventana

Este truco es muy bueno, lo deseo compartir con uds.

Para hacer movible el titulo de la ventana tienes que programar lo siguiente:

Evento Timer:
Char lc_caracter
lc_caracter = TITLE
TITLE = Mid ( TITLE , 2 )
TITLE = TITLE + lc_caracter

Evento Open:
Timer(0.1)

jueves, 25 de septiembre de 2008

PowerBuilder 11.5

Qué hay de nuevo en PowerBuilder 11.5

La más reciente versión de PowerBuilder trae mejoras en la interoperabilidad con .NET, innovaciones en la tecnología DataWindow y muchas otras y nuevas capacidades para hacer que su trabajo sea aún más fácil, sus aplicaciones aún más robustas y su desarrollo aún más rápido. Esto es lo nuevo en PowerBuilder 11.5:

PowerBuilder es .NET
PowerBuilder da a los desarrolladores la flexibilidad y el poder para traer aplicaciones existentes o construir aplicaciones nuevas para .NET WinForms, WebForms y Smart Clients. Alcanzando otra meta en nuestra ruta hacia .NET, PowerBuilder 11.5 brinda:
Soporte a Ensambles con Nombre Fuerte (“Strong Named Assemblies”)
La habilidad de acceder clases .NET estáticas, primitivas y enumerativas

Soporte a IIS 7
Suplantando la necesidad de “rescribir para .NET”, PowerBuilder 11.5 entrega aplicaciones ricas y frescas, con rapidez y facilidad.

Innovaciones al DataWindow®
PowerBuilder 11.5 trae más avances en la tecnología patentada del DataWindow – la herramienta más rápida para acceso y manipulación de datos. Con PowerBuilder 11.5, nuevas y mejores características de visualización y manipulación de datos brindan una presentación aún más rica de los datos del negocio, a través de una interfaz de usuario enriquecida e interactiva. Las mejoras al DataWindow incluyen la habilidad de crear gráficas en 3D, características especiales de gradiente y transparencia, y soporte a archivos PNG. Además, se agregó el estilo “Rich Text Edit” para columnas.

Seguridad simplificada
Herramientas adicionales de seguridad incorporadas a PowerBuilder 11.5 le permiten crear aplicaciones que respondan a los requerimientos actuales de protección, cumplimiento e integridad. PowerBuilder 11.5 soporta ahora la configuración FDCC (“Federal Desktop Core Configuration”) requerida por todos los clientes federales en Estados Unidos. Adicionalmente, hay soporte para CAS (“Code Access Security”), permitiendo que las aplicaciones .NET corran en zonas parcialmente confiables.

Soporte nativo a RDBMS
Continuando con su tradición de ser una herramienta abierta, PowerBuilder 11.5 viene con controladores nativos para SQL Server 2008 y Oracle 11g, para mayor eficiencia y productividad en el desarrollo.

“Plug-in” para servidores de aplicación y PocketBuilder – gratis
PowerBuilder 11.5 ahora viene con el “plug-in” para servidores de aplicación, el cual permite integrar componentes PowerBuilder con servidores de aplicación de terceros, directamente desde el ambiente integrado de desarrollo de PowerBuilder. Los objetos PowerBuilder pueden ser montados en servidores de aplicación JEE, en donde actuarán tal como lo hace un EJB. Y para aquellos con necesidades de desarrollo móvil, PowerBuilder 11.5 también viene con PocketBuilder, permitiendo desarrollo ágiles para Windows Mobile™.

miércoles, 27 de agosto de 2008

Matriz de Características de PowerBuilder 11.5

El siguiente link contiene un documento que resume los principales componentes en las ediciones Enterprise, Professional y Desktop de PowerBuilder 11.5:

http://www.mtbase.com/contenido/documento.jsp?id=10235

miércoles, 23 de julio de 2008

DWGridXP - DataWindow Grid estilo Windows XP

Les dejo el enlace donde podran descargar otro DataWindow Grid estilo Windows XP: http://www.topwizprogramming.com/freecode_dwgridxp.html

Tiene cosas muy interesantes, haber si se dan un tiempo para investigarla e implementarla en sus apliactivos. Yo ya estoy usandola y me fue de lo mejor.


domingo, 20 de julio de 2008

PowerBuilder Foundation Class

PowerBuilder Foundation Class o simplemente PFC son un conjunto de librerías de clases basadas en una avanzanda programación orientada a objetos. Las PFC usan Servicio Basado en Arquitectura (SBA) y usa simples funciones para habilitar los servicios.

Arquitectura PFC

La arquitectura PFC se basa en dos capas PFC y PFE.

Cada objeto en la capa PFC tiene un descendiente de la capa PFE.
La capa PFC es donde el código o script real que lleva las funcionalidad de las PFC.
La capa PFE se muestra vacía para que el desarrollador pueda modificar y ampliar cuando sea necesario.
Los objetos en la capa PFE son llamados por ejemplo: n_cst_dwsrv_linkage.
Los objetos en la capa PFC se nombran pfc_ por ejemplo: pfc_n_cst_dwsrv_linkage.

Debemos tener en cuenta algunas reglas al usar PFC:

- No modifique los objetos PFC
- Todas las modificaciones se deben realizar en la capa de objetos PFE.
- Heredar los objetos de la capa PFE y no de los objetos de la capa PFC.
- Crear instancias de los objetos de la capa PFE y no de los objetos de capa PFC.

Librerias PFC:

LibreriaDescripción
PFCMAIN.PBL Objetos y controles principales
PFCAPSRV.PBL Objeto aplicacion y objetos de servicio
PFCWINSRV.PBL Servicios de Windows
PFCDWSRV.PBL Servicios DataWindows
PFCUTIL.PBL Objetos y servicios
PFEMAIN.PBL Objetos y controles principales
PFEAPSRV.PBL Objeto aplicacion y objetos de servicio
PFEWINSRV.PBL Servicios de Windows
PFEDWSRV.PBL Servicios DataWindows
PFEUTIL.PBL Objetos y servicios

Tener en cuenta:

Apartir de a version 10.0 PFC vienen separadas de la instalación de PowerBuilder. Entonces para empezar a trabajar con PFC debemos tener en cuenta mucho la versión, si tenemos una versión inferior a la 10.0, entonces encontraremos una carpeta llanada PFC en la unidad que se haya instalado el PowerBuilder. Si trabajamos con la versión 10.0 o superior tendremos que descargar PFC de la siguiente web: http://www.sybase.com/developer/codexchange

viernes, 18 de julio de 2008

Llamando a Eventos de Usuario

Para llamar Eventos de Usuario o User Events en PowerBuilder contamos con 2 funciones que nos permitiran trabajar de manera facil:
  • TriggerEvent()

Sincrono

  • PostEvent()

Asíncrono

TriggerEvent

Dispara un evento asociado con el objeto especifico.

Sintaxis

objectname.TriggerEvent ( event )

Valores de Retorno

  • 1 El Evento existe y existe un script para él.
  • -1 Evento no válido para ObjectName o no hay script para el evento ObjectName

Ejemplo

Parent.TriggerEvent("ue_new")

PostEvent

Adiciona un evento al final de la cola del evento para el objeto.

Sintaxis

objectname.PostEvent ( event )

Valores de Retorno

  • TRUE Existe un evento con un strng.
  • FALSE Evento no válido para objecto o no hay script para el evento.

Ejemplo

Parent.PostEvent("ue_save")

Creando un Objeto Función

El Objeto Funciones (Function Object) nos permiten hacer más fácil la programación. Un objeto función es definida por el usuario.

Creando un Objeto Función
  • Click en el icono New del PowerBar
  • Click en el icono Function del Tab PB Object, luego click en OK
    • Dentro del Painter del Objeto Función, podremos realizar la codificación que necesitamos. (Para el ejemplo f_pc_user es una funcion que no tiene argumento)

    Painter Funcion

    Como esta función me devuelve el nombre del usuario de la pc, solo para tomar un ejemplo la quiero visualizar en el Titulo del Window Principal, entonces en el Open de este coloco:

    This.Title = f_pc_user()

    Como dije antes f_pc_user no tiene argumento, cuando un Objeto Función tiene argumento o argumentos se debe hacer asignar valores dentro de los parentisis ( ) .

    jueves, 17 de julio de 2008

    CoolBar: Separador en ToolBar

    No quiero desaprovechar la oportunidad para compartir con uds esa funcionalidad que nos permite el CoolBar, como explique en el post anterior (CoolBar: Texto en Icono del ToolBar) en el objeto no visual (nvo) n_srv_menu existe una funcion llamada of_setmenuiteminfo donde no tan solo se controla o se codifica que el icono del ToolBar tenga texto, sino que tambien que el ToolBar pueda contar con un separador. Tenemos que escribir en la propiedad Tab del sub item (para el ejemplo m_ordendecompra) lo siguiente:
    nt=1 nos permitira tener un separador, pero yo a la vez tambien quiero que ese sub item tenga texto en el icono asi que le doy coma (,) st=1, y listo.

    Creando Librerías - PowerBuilder Library's (PBL)

    Para crear una libreria o PBL de manera rapida debemos seguir los sgtes pasos:

    • Click derecho sobre el Workspace, elejimos Properties.
    • Nos mostrara la sgte ventana Properties of Target

      1 - Click en New...

    2 - Escribimos el nombre de la librería.

    3 - Click en Guardar.

    • Luego click en Apply y en OK, eso es todo listo.

    CoolBar: Texto en Icono del ToolBar

    Hace unos días atras un compañero de Mexico, se agrego a mi msn y me pregunto sobre el CoolBar, que lo habia implementado en su aplicativo (desarrollado en PowerBuilder 9.0) y que estaba de lo mejor pero que queria colocar texto a los iconos del ToolBar, me dijo es posible eso, claro que es posible:
    Tenemos que escribir en la propiedad Tab del sub item (para el ejemplo m_cliente) lo siguiente:
    Si vamos al objeto no visual (nvo) n_srv_menu dentro de la funcion de este objeto llamada of_setmenuiteminfo, veremos un codigo donde nos podremos dar cuenta que ahi se codifica la funcionalidad de esta opcion.

    Window Ancestro

    Explicare un poco sobre como crear un Window Base o Ancestro y como crear herencias de este.

    1 - Tenemos que crear un Window Object el cual sera nuestro Window Base o Ancestro: 2 - Guardaremos el Window creado con el nombre w_base

    3 - Para poder reutilizar las propiedades del Window Base o Ancestro vamos agregar eventos de usuario (User Events). Para crear User Events, nos posicionamos en la pestaña Event List que se encuentra en la parte inferior:

    4- Luego click derecho sobre cualquier evento del Window Object, click en Add5- Solo agregaremos el nombre del User Event en Event Name

    6- Debemos crear los siguientes eventos de usuario (Solo por mencionar algunos):
    • ue_nuevo
    • ue_grabar
    • ue_eliminar
    • ue_anular
    • ue_buscar
    • ue_imprimir
    • ue_preliminar
    • ue_siguiente
    • ue_anterior
    • ue_inicio
    • ue_fin
    • ue_validar
    • ue_zoom
    • ue_regla

    7 - Para heredar de este Window Base o Ancestro (w_base) solo tenemos que darle click derecho sobre el y elegir la opcion Inherit from (desde la version 10.5 a inferiores solo dice Inherit)

    Espero haber sido de gran ayuda, cualquier comentario o sugerencia no duden en escribir

    martes, 6 de mayo de 2008

    Utilizando Coolmenu y Fondo en MDI

    Habia comentado ya sobre el Coolmenu y el estilo tan simpatico que le da al menu, tambien habia comentado de como colocar una imagen de fondo en un MDI, bueno junte ambos (bueno en mis aplicativos trabajo con ellos) y lo baje a este enlace para compartir con todos uds amigos desarrolladores PowerBuilder que les gusta lo diferente y lo bonito en nuestros aplicativos y tambien para que si otros que no, se animen a usarlo:

    http://www.file-upload.net/download-836052/Coolmenu---Wallpaper.rar.html

    DataWindow Grid Estilo XP

    Este truco fue desarrollado por Brad Wery, al que considero un maestro de GUI en PowerBuilder, no quise dejar de compartir este truco muy simpatico espero lo puedan implementar en sus aplicativos, el enlace para descargar este truco es:

    http://uploading.com/en/files/PN67V9LW/XP_DataWindow_Grid.rar.html

    DataWindow Tooltip

    Este truco no es mio, lo baje hace mucho tiempo de una web que no recuerdo y lo pueden descargar de este enlace:

    http://uploading.com/en/files/CISAZPYR/DataWindow_Tooltip.rar.html

    Estandares para los nombres de variables

    Aqui les dejo un enlace muy bueno, de como se deben nombrar las variables y los objetos:

    http://www.pbdr.com/pbstd/varnmstd.htm

    Negrita en CommandButton

    Este truco es muy bueno solo tenemos que colocar lo sgte:

    cb_1.weight = 700 // negrita
    cb_1.weight = 400 // normal

    lunes, 5 de mayo de 2008

    Usando Tooltips en controles

    Este truco es muy bueno y quiero compartirlo con todos los desarrolladores PowerBuilder que les gusta tener en sus apliactivos cosas simpaticas, lo encontramos disponible en este enlace:

    http://pbsite.milente.nl/pbtip015.html



    Cerrar todas la ventanas activas en un MDI

    Para cerrar todas las ventanas activas en un MDI, copias este codigo en el evento clicked de un item del menu:

    Window lw_ActiveSheet

    lw_ActiveSheet = ParentWindow.GetActiveSheet()

    Do While IsValid(lw_ActiveSheet)

    Close(lw_ActiveSheet)
    lw_ActiveSheet = ParentWindow.GetActiveSheet()

    Loop

    sábado, 26 de abril de 2008

    Obtenga el número de items en un Treeview

    CONSTANT integer TV_FIRST = 4352
    CONSTANT integer TVM_GETCOUNT = TV_FIRST + 5


    long ll_tvitemcount
    ll_tvitemcount = Send ( handle(tv_1), TVM_GETCOUNT, 0, 0 )

    Kodigo Powerbuilder Framework

    Kodigo PowerBuilder Framework es un proyecto de código abierto desarrollado en PowerBuilder 10.0, su creador de sobrenombre Yeyi, nos permite descargar este Framework en:

    Coolbar


    Aart Onkenhout el creador de Coolmenu, nos deja el Coolbar un componente muy bueno para tener nuestro ToolBar al estilo Office 2003, lo encontramos disponible para la version 9.0 y 10.0 de PowerBuilder en:

    http://pbsite.milente.nl/coolbar.html

    Coolmenu

    Aart Onkenhout es el creador de Coolmenu (Actualmente Coolmenu 2.5 Build 175), quien nos permite tener un menu al estilo Office 2003, disponible en las versiones 9.0, 10.0, 10.5 y 11.0 de PowerBuilder, es una alternativa muy buena para decorar nuestras apliaciones, lo encontraran en esta web:

    http://pbsite.milente.nl/

    Poblando un TreeView

    Muchas veces necesitamos usar el objeto TreeView y poblarlo con datos de Tablas de nuestra base de datos. Para este ejemplo tenemos que conectarnos a la base de datos demo, les dejo el link para que puedan descargar el archivo desarrollado en PowerBuilder 10.5:

    viernes, 25 de abril de 2008

    Cambiar el estilo de presentación del DataWindow Object

    Para cambiar el estilo de presentación del DataWindow Object se debe seleccionar el DataWindow Object, darle clic derecho y elegir la opcion Edit Source

    Ejemplo:

    Valores:

    - 0 (Default) Freeform, Group o Tabular
    - 1 Grid
    - 2 Label
    - 3 Graph
    - 4 Crosstab
    - 5 Composite
    - 7 RichText

    Por ejemplo si tenemos un DataWindow Object de estilo Freeform y deseamos cambiar a estilo Grid

    processing=0

    Cambiar por:

    processing=1

    Conexión de MSQL Server 2000 desde PowerBuilder 9.0

    Para conectarse a MSQL Server 2000 desde PowerBuilder 9.0 debemos seguir los sgtes pasos:

    1. Buscamos el Driver Nativo (MSS Microsoft SQL Server), luego clic derecho y elegimos New Profile...

    2. Luego seguimos el sgte paso:

    3. Clic en la pestaña Preview, luego clic en boton Copy, luego clic en el boton Test Connection, si la conexion es satisfactoria o exitosa, nos mostrara un mensaje (Connection successful), por ultimo clic en Aceptar.

    Toolbar Office 2003

    Este articulo es muy bueno, lo encontre hace mucho tiempo atras y lo he ido utilizando me agrado mucho espero que les agrade tambien y puedan implementarlo en sus aplicaciones, les dejo el link:

    http://pbdj.sys-con.com/node/140739

    jueves, 24 de abril de 2008

    DataWindow Stored Procedure

    Para crear un DW de tipo Stored Procedure, seguimos los sgtes pasos:
    1 - Clic en New del PowerBar, luego en la pestaña DataWindow elegimos Grid y OK
    2 - Luego nos mostrara la sgte ventana donde elegiremos Stored Procedure y Next
    3 - Luego en la sgte ventana buscamos el Stored Procecure con el que queremos trabajar y Next, Next, Finish.

    4 - Por ultimo asociamos el Objeto DataWindow de tipo Stored Procedure al Control DataWindow de la ventana en la que deseamos mostrar los datos.

    domingo, 13 de abril de 2008

    Sybase Lanza PowerBuilder 10.5

    En marzo de 2006 Sybase hizo el lanzamiento de la versión 10.5 de PowerBuilder. Esta nueva versión se debe adquirir como un producto aparte por ser una actualización mayor de la vesion 10. A continuación describimos las principales características de la versión 10.5

    Nuevo estilo de Presentación TreeView en los datawindows


    Una de las principales mejoras de la versión 10.5 es el nuevo estilo de presentación de los datawindows "tree view" que presenta la información en formato de árbol jerárquico. Se usan nuevas funciones para expandir y colapsar los nodos y se disparan nuevos eventos cuando se expande o se colapsa un nodo. También son incorporados nuevas propiedades a los datawindows pertenecientes a el estilo de presentación en treeview. Básicamente se muestra la información como en un control TreeView pero ya directamente desde un datawindow, con todas las ventajas que esto conlleva.

    Mejoras en el estilo de Presentación Rich Text en los datawindows

    El estilo de presentación de texto enriquecido de los datawindows ahora usa un nuevo editor de texto que cumple con las especificaciones de RTF versión 1.6. Este editor de texto ha sido notablemente mejorado tanto en funcionalidad como en aspecto hacia el usuario.

    Soporte de Decimales en las expresiones

    Los tipos de datos decimal ahora son soportados en los DataWindow. En anteriores versiones de PowerBuilder los valores "decimal" eran convertidos en valores "double" en las expresiones del DataWindow. Ahora usted puede usar valores tipo decimal como argumentos para hacer retrieve al datawindow. En PowerBuilder 10.5, el tipo de datos decimal suporta hasta 28 dígitos.

    Nueva Opción de Calendario DropDown en los Datawindows

    La opción del calendario drop-down del DataWindow esta disponible para el uso en cualquier columna del DataWindow que tenga un EditMask de tipo de dato Date, DateTime, o TimeStamp.Con esto aparecerá un pequeño calendario donde el usuario podrá seleccionar la fecha y quedara guardada en el edit mask. La propiedad EditMask DDCalendar tiene la opción que permite por separado seleccionar calendario por mes, año y fecha.

    Propiedad Autosize height en todas las bandas del DataWindow

    En PowerBuilder 10.5, la propiedad Height.Autosize se puede poner en cualquier banda del DataWindow. En anteriores versiones de PowerBuilder, esta propiedad esta solo disponible únicamente en la banda de detalle (Detail band).

    Nueva propiedad para esconder la línea azul del Print Preview

    Por defecto cuando un datawindow se muestra en presentación preliminar muestra un margen con una línea de color azul. Para esconderla ahora PB 10.5 tiene una propiedad para verla o esconderla.

    Nuevos Iconos

    Los iconos por defecto del PowerBuilder 10.5 han sido actualizados y se han incrementado para usar en las aplicaciones. Cuando se migren aplicaciones a esta versión se actualizaran automáticamente.

    Mejoras en los Menús y Barras de Herramientas

    Esta es una de las mas notorias mejoras de esta versión que permite tener menús con un estilo contemporáneo que tiene una apariencia tridimensional similar al usado en Microsoft Office 2003 y Visual Studio 2005, y usted podrá incluir imágenes en el menú y en el titulo de las bandas.

    Soporte para el Uso de PowerBuilder y Oracle 8.x, 9.x y 10g

    En el sgte enlace encontraremos un documento que describe aspectos de interoperabilidad de PowerBuilder con Oracle, para mas informaciçon dar click a:

    http://www.mtbase.com/contenido/documento?id=4,00052

    Window Object

    El Objecto Window es la interface principal entre el usuario y la aplicación. Un Window permite hacer entrada de datos, ver informes, etc.

    Creando un Objeto Window

    - Click en el boton NEW del PowerBar, a continuación nos mostrara la sgte ventana, elegimos la pestaña PB Object, click a Window y OK.

    - Luego se mostrara el Objecto Window creado al cual le debemos definir un nombre (siempre anteponiendo w_)
    Tipos de Windows

    La propiedad WindowType permite establecer el tipo de la ventana. Cómo se comportan los diferentes tipos de ventana se verá a continuación.

    Window Main (Ventana Principal): Son independientes de otros windows

    Window Popup (Ventana Emergente): Son Windows secundarios que se abren desde una ventana principal. Se abren fuera de la ventana principal, pero se cierran o minimizan cuando se cierra o minimiza la ventana principal.


    Window Child (Ventana Hija): Los Windows Child son siempre abiertos desde un window main o popup, los que llegan a ser su window parent. Un window child sólo existe dentro de su parent. No puede tener asociado un menú y nunca son considerados como el window activo. Un window child se cierra cuando su parent se cierra.

    Window Response (Ventana de Respuesta): Los Windows Response piden información al usuario, siempre son abiertos dentro de otro window.

    Window MDI Frame (Ventana Marco): Es el Window principal de una aplicación MDI. Todas las otras ventanas que se abren dentro de la aplicación lo hacen dentro del marco de esta ventana. Tienen la propiedad de que al cerrarse provoca el cierre de todas las ventanas abiertas en su ámbito. Pueden tener un menú asociado que suele ser el menú general de la aplicación.


    sábado, 29 de marzo de 2008

    Apariencia Office 2003 en Objeto Menu

    Desde la version 10.5, el objeto menú puede tener la apariencia de los menús de Office 2003, como...?, de la siguiente manera:

    Click en el nombre del objeto menú y elegimos contemporarymenu! que se encuentra en el Tab Appearance de la ventana de propiedades.


    sábado, 22 de marzo de 2008

    jueves, 20 de marzo de 2008

    XP ListBar en PowerBuilder

    Tengo este link hace mucho, lo quiero compartir con uds: http://pbdj.sys-con.com/read/98951.htm. Se trata del XP ListBar, este link nos explica el desarrollo de este XP ListBar, similar o igual al ListBar que existe en Window XP.