Reporte de la Conferencia DevEssentials
– 04.06.2004
Por Amby
Pues, hasta la tierra de Dorothy,
les comienzo a contar mis aventuras con los magos de Oz, dentro del marco
de la Conferencia DevEssentials 2004 en Kansas City, EEUU.
Como es día introductorio, pues
lo primero fue dar un paseo para conocer el lugar y aunque esto no es VFP
puro y duro, es interesante compartirlo, ¿no?
Pues, es una ciudad bien bonita,
cerca del hotel hay varios puntos relacionados con la historia, entre
ellos:
La estación Union (Union Station), en forma de T con 10 niveles de pisos,
en su conjunto es el mayor edificio del Railway Express en EEUU,
El Memorial de la libertad que es un obelisco con 4 figuras enormes
(espíritus guardianes) que representan los 4 valores patrios:
patriotismo, coraje, sacrificio y honor,
La fuente Henry Wollman Block, que se construyó en recordación del
fundador de H&R Block por sus aportes al desarrollo de esta ciudad,
especialmente la educación y el arte. La fuente es bellísima con 232
pulsores de agua, algunos chorros llegan a alcanzar hasta 120 pies de
altura
Todo esto se encuentra a pocos
pasos del hotel, más allá varios hoteles más y algunos sitios que parecen
sacados de las películas, esos que hemos visto e imaginado tantas veces.
Hubo muy poco tiempo, así que…., a trabajar un poco.
Sesión Pre-Conferencia - Crear
informes con VFP (Reporting with VFP), por Craig Berston (MVP desde
1997). Ha autorizado la traducción de artículos que próximamente estarán en
PortalFox.
Pues comenzó recomendando dedicar
bastante tiempo al diseñador de informes y al nuevo ReportListener que se
ejecuta en tiempo real, ahora solo veremos una introducción que se
complementará con las futuras sesiones.
Bien, para empezar los informes
continúan siendo no orientados a objetos; pero… no todo está perdido, ahora
tendremos la nueva clase base ReportListener. Desde esta clase, se
pueden definir las propiedades para los informes, lo que permite aprovechar
todas las ventajas y escribir o cambiar código en los informes repetitivos
con toda comodidad. Este es un aspecto que se verá con bastante
detenimiento en otra sesión, por ahora lo dejamos ahí … solo vamos a
conocer que existe.
Mejoras en el diseñador de
informes Entre ellas, una de las más
importantes en cuanto a opciones está la ventana Propiedades, la
cual no es más que un formulario de VFP que agrupa gran cantidad que
propiedades viejas y nuevas y que al estar todas juntas agrupadas por
fichas permite que sea muy cómodo el trabajo. Les recomiendo darle un
vistazo, porque está bastante mejorada.
Nuevas opciones de menú
Informes (Reports) –
Print preview – Hace la función
de Presentación preliminar desde el menú, antes no estaba
Propierties - Se abre la misma
ventana propiedades que ya comenté
Load DataEnvironment – Llama a la
ficha DataEnvironment de la ventana Propiedades
Protección de informes
– Para mí, es una de las cosas más útiles que vi en el día de hoy.
Frecuentemente tenemos un dilema y es darle o no al usuario la opción de
modificar el informe y tememos que modifique lo que no debe y por
consiguiente se sucedan los errores.
En la nueva ventana Propiedades
de cada objeto, banda, etc hay una ficha Protection, esta ficha
tiene un grupo de opciones que van a definir y personalizar la protección
que se desea de cada elemento de los que componen el informe. Pues bien, la
claúsula PROTECTED en el comando MODIFY REPORT verificará las propiedades
que fueron definidas antes de que el usuario pueda modificar algo concreto.
De esta forma ahora es el desarrollador quien decide qué y cómo modificar.
Para los objetos hay protección
en cuanto a mover o redimensionar, modificar, eliminar, seleccionar y en
cuanto a su visibilidad.
Para las bandas hay protección en
cuanto a modificación y redimensionamiento.
La ventana Propiedades del
informe, también tiene una interesante y muy útil ficha Protection
que define la protección para opciones de menú (View DataEnvironment y View
Preview) y para el informe como tal, lo que provoca es que se activen o no
fichas de la ventana Propiedades (Page Layout, Optional Bands, Data
Grouping, Variables, Data Environment).
Múltiples bandas de detalle –
Esta una de las grandes y más importantes mejoras de esta nueva versión.
Vimos un ejemplo donde la tabla padre clientes se enlaza con dos tablas
hijas: Regiones y Ordenes. El objetivo del informe era obtener todos los
datos agrupados del cliente. Creando 2 bandas de detalle, y teniendo las
dos tablas hijas relacionadas con Cliente.dbf el resultado que obtuvimos
fue:
Cliente 1
Regiones
Region1 cliente 1
Region2 cliente 1
….
RegionN cliente 1
Ordenes
Orden1 cliente 1
Orden2 cliente 1
….
OrdenN cliente 1
Así sucesivamente para cada
cliente que tenemos. Si un cliente no tiene definidas sus regiones o sus
órdenes, no se imprime la banda correspondiente. Hay que tener en cuenta
que en cada banda tenemos el alias correspondiente y que dentro de todas
las ventajas que proporciona esta nueva capacidad de VFP, también aumentan
las posibilidades de error si no está claro el diseño y la función a
cumplir por cada banda.
Es importante que no confundamos
con los Data Grouping – Agrupaciones de Datos, por que las bandas de
detalles, que pueden llegar a 20, no se anidan, son consecutivas, no se
crean grupos y subgrupos, eso ya existe en VFP, esta nueva facilidad de
Múltiples bandas de detalle cumple objetivos diferentes. Además no olvidar
que las bandas de detalles dependen del alias, no así los grupos.
Craig nos puso otro ejemplo, que
me resultó muy interesante y fue emplear la banda1 para realizar cálculos,
por ejemplo cursores temporales que totalizan campos que luego se emplearán
a través de variables de reporte en la segunda banda de detalle. El ejemplo
concreto es imprimir para cada vendedor sus ventas (valor) y el Porciento
con relación al total, para lo cual necesitamos el total previamente
calculado. Definitivamente esto de múltiples bandas da mucho de si,
podremos quitarnos muchos códigos de encima; pero tendremos que verlo con
mucho detalle.
Todavía existen muchas
limitaciones, entre ellas que la posibilidad de crear múltiples colunmnas
en informes, que ya es nativa desde hace muchísimo, se podrá utilizar; pero
la cantidad de columnas que se defina no será para cada banda de detalle,
será única para el informe.
Cambios es el toolbar de la
vista preliminar (Preview) Hay opciones
nuevas:
Variables y valores
calculables: Se pueden reiniciar en cada
banda de detalle. Las variables pueden sobrevivir al informe, es decir se
podrán utilizar posteriormente; pero las expresiones calculables no.
Como Craig Berston es un amante
del Cristal report, autor de muchos artículos y un libro sobre el tema hizo
una exposición de las bondades del CR y como poder vincularlo con VFP,
recomendando en todo momento que para un informe se em`plee solo VFP o CR,
cada herramienta en dependencia de gustos y necesidades, la mezcla acaba
siendo perjudicial.
Pues hasta aquí esta sesión
introductoria, que estará complementada con 3 sesiones más sobre el tema.
El resto del día hubo intercambio
entre desarrolladores y el KeyNote estuvo a cargo de Scout Ambler quien es
miembro activo de Agile Alliance que se ha concentrado en trabajos de Agile
Database Techniques y Agile Modeling. Explicó las bases en que sustentan
el desarrollo de aplicaciones, se produjo un amplio debate entre los
participantes debido fundamentalmente a las técnicas novedosas e ideas que
desarrollan en su compañía. En fechas posteriores podré comentar un poco
más de este tema, pues no recibimos aun el material de esta sesión.
Pueden tener más información en
www.ronin_inti.com
Espero que les haya reportado
alguna utilidad, este no es el informe final, cada día intentaré adelantar
algunos resúmenes con aspectos que con el tiempo se irán complementando.
Saludos,
Ana
www.amby.net |