Mostrando entradas con la etiqueta power builder. Mostrar todas las entradas
Mostrando entradas con la etiqueta power builder. Mostrar todas las entradas

miércoles, 18 de noviembre de 2009

Filtros SQL dinámico para reportes en SQL Server


Me ha sido de gran utilidad este artículo sobre Filtros dinámicos en SQL Server para realizar Reportes. Se los recomiendo y les puede ser de utilidad usando DataWindow con procedimientos almacenados como fuente de datos para generar los reportes que necesiten.

Espero les sea de utilidad.


martes, 10 de noviembre de 2009

Funte de datos Stored Procedure y Transact SQL


Trabajando con Datawindow y las diferentes fuentes de datos (DataSource), al utilizar la fuente de datos Stored Procedure me ha sido de gran utilidad los siguientes enlaces para trabajar con Transact SQL y la programación para el SQL dinámico generando consultas con criterios de búsqueda.

Referencias:


sábado, 7 de noviembre de 2009

Poblar un DropDownListBox control desde base datos


Para poblar dinámicamente un DropDownListBox control desde una tabla en Power Builder podemos usar un DataStore, en el contructor del DropDownListBox hacemos el retrieve sobre el datastore y luego insertamos en el control los elementos recuperados. Ejemplo:

datastore ds
ds = create datastore
ds.dataobject='dw_tdo_doc'
ds.settransobject(sqlca)
ds.retrieve()
int li
for li=1 to ds.rowcount()
insertitem(ds.getitemstring(li,'tdo_desc'),li)
next
insertitem('Seleccionar...',1)
selectitem(1)

Referencia:


viernes, 30 de octubre de 2009

Datos y Notación por punto en Power Builder


En un post anterior vimos las diferencia entre Culumnas computadas vs Campos computados en Power Builder. Es importante entender estos conceptos para facilitar la implementación sobre los datawindows.

Ahora si queremos por ejemplo acceder al valor de un campo computado, de un datawindow que esta en el header, footer o summary se especifica el número de fila como 1 a través de la notación por puntos, ejemplo:


dw_1.Object.avg_cf[1]

He encontrado referencia sobre este tema en PowerBuilder Technique - Data and Dot Notation. Espero que les sirva de aclaración o ayuda.

miércoles, 28 de octubre de 2009

Power Builder 10.5 ShellExecute


Para abrir cualquier tipo de documentos desde Power Builder versión 10.5 debemos hacer lo siguiente:

  • Declaramos la función local externa:
FUNCTION long ShellExecute(ulong ihwnd,string lpszOp,string lpszFile,string lpszParams, string lpszDir,int wShowCmd ) LIBRARY "shell32.dll" ALIAS FOR "ShellExecuteW"

Para la versión 10.5 utilizamos ShellExecuteW en vez de ShellExecuteA porque PB en la version 10.5 usa Unicode en vez de ASCII.

Este problema se le da respuesta en la siguiente hilo de la lista del grupo de Google comp.soft-sys.powerbuilder.

  • Luego podemos utilizar la función externa de la siguiente forma:
ShellExecute( 0 , "open" , ls_full_path , ls_parm , ls_path , 1 )

Espero que les sea de utilidad.

Referencias:



viernes, 18 de septiembre de 2009

Modify DropDown Datawindow DDDW en Power Builder


En la entrada anterior he dejado referencias para el trabajo con el control DropDownDW. Uno de los contratiempos que he tenido trabajando con este control es cuando aplicamos la función Modify sobre un campo, del DataWindow control, que ha sido editado con este estilo (DropDownDW ) y luego queremos acceder a los registros del Datawindow Child, devolvía valores nulos.

Conclusiones, deberíamos recoger los valores antes de aplicar la función Modify, por ejemplo si nos interesaría proteger el campo o mostrar siempre la flecha.

A otros colegas les ha sucedido algo similar y pueden ver sus comentarios en TodoExpertos .


domingo, 13 de septiembre de 2009

Trabajando con DropDownDW Datawindow


El Datawindow posee varios controles que forman parte del Datawindow Object, los cuales pueden ser modificados en tiempo de deseño o ejecución. Esta vez les dejo referencia sobre como trabajar con el dropdown datawindow para obtener o establecer las propiedades que necesitemos. Por ejemplo si recuperamos datos desde una tabla código-descripción y queremos establecer un item por defecto.

Referencias:

miércoles, 9 de septiembre de 2009

Culumnas computadas vs Campos computados en Power Builder


En el trabajo con Datawindow en Power Builder, podemos diseñar un datawindow object con columnas computadas. Estas poseen gran utilidad frente a los campos computados, pues las columnas computadas forman partes del datawindow object, pudiendo establecer o leer los valores mediantes las funciones GetItemString (Number,Decimal,Date,Time,DateTime) o SetItem.

Para construir una columna computada, vamos a Painter Datawindow, luego definimos el Data Source, en modo Sintaxis en "Design - Convert to Syntax" y establecemos la consulta SQL del datawindow object con las columnas de nuestro interes en la tabla seleccionada. Luego podemos adicionar otra columna como número o cadena en el SELECT y al volver al Painter DataWindow se adiciona automáticamente una columna computada a nuestro datawindow object .

Esta es una manera de adicionar columnas, a nuestro datawindow, que no se reflejan en la tabla selecccionada y poder realizar operaciones sobre ella como parte del datawindow object.

Puedes ver el siguiente ejemplo en Converting a Computed Field to a Computed Column

jueves, 13 de agosto de 2009

Control de Versiones de Fuente en Power Builder con Subversion


Para lograr esta integración los requisitos son los siguientes:

Requisitos:

Power Builder 10.5

Subversion (aplicaciones de consola SVN)

TortoiseSVN (interfaz visual SVN para Window)

PbSccProxy (ver 2009-08-01)

PBSCC Proxy

Power Builder 10.5 posee una utilidad para hacer algunas operaciones de control de versiones llamadas PBNativo, la cual cumple con el estándar SCC (Source Code Control). Un buen documento que explica como configurar y utilizar un repositorio de fuentes PBNativo se puede consultar en MTBase Sysbase de Colombia.

PBNativo vs. PBSCC Proxy

En el repositorio de fuentes PBNativo no se almacena un histórico de las versiones de cada objeto, es decir de los cambios hechos en cada check-out. Aunque cuando se hace un check-in se incrementa el número de versión del objeto, solamente queda guardada la última versión en el repositorio; mientras que con PBSCC y TortoiseSVN podemos obtener un histórico de manera fácil, además de todas las bondades que podemos tener usando Subversion como control de versiones de nuestros fuentes.

Desarrollo

En esta entrada abordare sobre el software necesario que necesitaríamos para hacer un buen control de versiones en Power Builder utilizando Subversion y PbSccProxy.

1. Descargamos, configuramos e instalamos Subversion. Asegurarse de que este ejecutándose como servicio (svnserve.exe)

2.Creamos el repositorio para los fuentes en Subversion (svnadmin) o mediante TortoiseSVN.

3. Instalamos TortoisesSVN y creamos el repositorio local SVN.

4. Instalamos PbSccsetup (pbsccsetup.exe)

5. Abrimos y configuramos las propiedades del espacio de trabajo (workspace) de nuestro proyecto, para un control de Fuentes utilizando PBSCC Proxy. Veamos las propiedades establecidas:



6. Nos conectamos al repositorio SVN

7. Adicionamos los objetos de nuestro espacio de trabajo al repositorio SVN (Add to Source Control…, haciendo click derecho sobre el workspace)

8. Escribimos el mensaje para log del SVN

9. Verificar que los objetos (SR*) fueron adicionados al repositorio SVN

10. Actualizamos nuestra espacio de trabajo haciendo un "PowerBuilder Check Out"

11. Ver el historial del objeto, haciendo click derecho sobre el objeto de la librería y "Show History".