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