Vous êtes sur la page 1sur 16

VFP9 - Mejoras realizadas al Diseador de Informes

por Amby

Tanto el Motor de Informes, como su Diseador en VFP 9.0, son los aspectos sobre los que ms cambios se han incorporado. Como respuesta a la retroalimentacin hecha por los usuarios, Microsoft ha mejorado significativamente el Generador de informes en VFP 9.0, ha velado por proteger todo el trabajo invertido, por lo que no modific la estructura actual del archivo FRX.

Nuevo comando SET REPORTBEHAVIOR


Es como un interruptor que enciende o apaga la salida asistida por objetos. Admite como parmetros, los valores 80 90 Dado que antes se empleaba GDI y ahora GDI+ hay diferencias en el interlineado, alineacin y espaciado. Eso puede afectar a informes existentes. Por tanto el valor predeterminado es 80. La asignacin desde Herramientas - Opciones - Informes es Global; pero aun as se puede cambiar para cada informe que haga falta de forma especfica. El nuevo generador de informes se llama ReportBuilder.APP y viene con VFP 9.0. Algunos de los logros han sido:

1. Mejorar el interfaz de usuario:


La interfaz de usuario ha sido mejorada en varios aspectos, que al sumarlos representan un importante ahorro de tiempo, veamos en detalles las diferencias entre VFP 8.0 y VFP 9.0. - Men contextual mejorado El Men contextual del Generador de informes en VFP 9.0 agrega las opciones: Bandas opcionales, Variables y Propiedades.

- Nueva ventana propiedades de Informes Por su parte la nueva ventana Propiedades de Informe utiliza un marco de pgina y pginas para todos los aspectos de propiedades de informe. Esto agiliza el trabajo, ya que no hay que estar abriendo y cerrando cuadros de dilogo. Muchas de estas pginas agrupan a ventanas que ya existan en versiones anteriores como ventanas independientes. Tal es el caso de Clculos, Condicin. Pero hay otras: Proteccin, Entorno de datos, y Otros que son nuevas en este generador.

- Rediseadas las ventanas Propiedades de campo y banda En VFP 8.0 la ventana propiedades de un campo se corresponde con la ventana exp resin de informe mostrada ms adelante en este mismo escrito. Por su parte, VFP 9.0 ofrece una nueva ventana de Propiedades de campo, cuyo formato es tambin un marco de pginas con pginas que determinan los valores para los diferentes aspectos relativos al campo. El diseo actual es muy prctico e intuitivo.

Las bandas en VFP 9.0 adquieren una nueva dimensin y en el Diseador se ha incluido una nueva ventana Propiedades para cada banda. El nuevo diseo comprende no slo las bandas de detalle, sino todas las bandas del informe. Veamos ambos casos.

- Cambios en el Cuadro de dilogo generador de expresiones. El primer cambio que salta a la vista es la mayor amplitud para la expresin, tanto en la ficha General como en el generador de expresiones.

- Nuevo Cuadro de dilogo seleccin mltiple En VFP 9.0 existe el cuadro de dilogo Seleccin mltiple que permite establecer las propiedades Proteccin e Imprimir cuando para ms de un objeto de diseo a la vez. Permite adems cambiar cualquier otra propiedad de Proteccin a un objeto individual. Para utilizar esta nueva caracterstica, seleccione ms de un objeto, y luego haga doble clic en cualquiera de ellos para llamar al cuadro de dilogo Seleccin mltiple. Resulta muy productivo sobre todo el haber incluido la posibilidad de dar valor a la condicin de impresin en el cuadro de texto Imprimir cuando.

- Nueva opcin en el Men Archivo Este men contiene una nueva opcin Guardar como clase. El objetivo es guardar el Entorno de datos como clase, lo que constituye, a su vez, una de las novedades aportadas al Motor de informes en VFP 9.0. Sobre el tratamiento del Entorno de datos, ver: Visual FoxPro 9.0 Novedades - Manipulacin de entorno de datos en el diseador de Informes - Nueva opcin en el Men Ver En el men Ver hay una nueva opcin - Barra de Diseador de informes - Nuevos botones la barra de Herramientas del Diseador de informes Incluye dos opciones nuevas: Ajustar pgina y Propiedades del tipo de letra, las que vemos ahora en la barra de Herramientas.

- Mejoras en el Men Informes, y el men contextual del Generador de informes En el men Informes hay opciones nuevas: Vista Preliminar, Carga entorno de datos, Bandas opcionales y Propiedades. El resto de las opciones estn mejor agrupadas.

- Cambios en la ficha Informes de Herramientas - Opciones. Las nuevas opciones son:

y y

y y y

Generador de Expresiones - regula si el nombre del alias va a preceder al nombre del campo: las posibilidades son: siempre, solo para alias no seleccionadas, nunca. Comportamiento Motor de Informes - Determina el comportamiento en tiempo de ejecucin: las posibilidades son 80 que mantiene el comportamiento anterior y 90 que es la generacin de informes asistida por objetos (comando SET REPORTBEHAVIOR). La vamos a configurar para que trabaje sobre la 90, asistida por objetos. Escala - Agrega nuevos valores: centmetros y pulgadas () Usar alfabeto para fuentes - indica el conjunto de caracteres de lenguaje que va a estar habilitado en el cuadro de dilogo Fuente. Si marcamos esta opcin, en la Ventana Fuentes se activar el combobox Alfabeto. En caso contrario, permanece desactivado. Se agregaron los elementos del contenedor Grid, Forzar al Grid y Mostrar lneas del Grid

Adems, el cursor del ratn cambia de forma para dar una clave visual de los objetos que pueden ser redimensionables.

2. Proporcionar nuevas posibilidades:

- Tooltips Se pueden agregar Tooltips a los controles del informe. Para ello vamos a la ficha Otros de la ventana propiedades. El comando Modificar Tooltip nos permite acceder a un editbox en el que podemos escribir el texto deseado y este se ver reflejado al pasar el ratn por el control. Solamente se aplica a controles. - Comentarios De igual forma, se pueden agregar Comentarios a los controles del informe. Desde la ficha Otros de la ventana propiedades y comando Modificar Comentarios nos permite acceder a un editbox en el que podemos escribir el texto deseado y este se ver reflejado al pasar el ratn por el control. Se aplica a controles, bandas y el Informe. - Modo de recorte para expresiones de caracteres Se puede definir desde la ficha Formato de la Ventana propiedades, los valores se definen desde el cuadro combinado Modo para truncar expresiones de caracteres. Si se escoge el Recorte predeterminado lo que ocurre es que se agregan 3 puntos suspensivos indicando que no cabe la expresin en el espacio actual. El resto de las opciones para aplicar recorte de caracteres, se pueden intuir por la descripcin, que aparece en idioma espaol, si tiene instalado el IDE VFP 9.0 en espaol. - Proteccin En VFP 9.0, puede crear proteccin para uno o ms objetos al utilizar el Diseador de Informes o Diseador de etiquetas. Esto ofrece la posibilidad de que el usuario pueda modificar un informe, sin permitirle an hacer determinados cambios. Para configurar las banderas de proteccin vemos los cuadros de dilogo correspondientes a Propiedades tanto para campos, como para bandas y tambin para informes. En el Diseador de informes esto se ve reflejado en la ficha Proteccin en la Ventana Propiedades, tanto de controles, bandas, como del informe entero. Sobre este tema, ver ms elementos en: Visual FoxPro 9.0 - Novedades - Proteccin de Informes - Posicionamiento absoluto Desde la ventana propiedades - Ficha general se puede indicar el posicionamiento absoluto con propiedades tales como Top, Left, Height y Width. Es muy til para controles que no dependen de una banda. - Tratamiento de imgenes Se han ampliado las posibilidades para definicin de objetos tipo Imagen. Si tenemos definida una clase con valor en la propiedad PictureVal se puede emplear como origen de una imagen en un informe.

- Mltiples bandas de detalle Contar con la posibilidad de crear mltiples bandas de detalle es una de las mejoras ms importantes y ms solicitadas. A partir de VFP 9.0 es posible procesar mltiples tablas hijas para cada registro de la tabla padre. Existen posibilidades ilimitadas de lo que se puede hacer con esta nueva caracterstica. En el Diseador de informes esto se ve reflejado en nuevas opciones de men, la ficha Bandas Opcionales en la Ventana Propiedades.

Sobre este tema, ver ms elementos en:

VFP 9 - Novedades - Mltiples bandas de detalle


Por Amby En los foros apareci este comentario "Alguien ha realizado un reporte con dos detalles, es decir tengo 2 tablas que deseo que aparezcan en mi reporte... Que cuando termine la primera, a continuacin se muestre la otra tabla" All hubo una primera respuesta correcta. Vamos a ampliar un poco este tema, sobre la base de lo que hay en la beta pblica de VFP 9.0. Seguramente, con el tiempo se podr completar ms; pero vamos asimilando las nuevas caractersticas de VFP 9.0 Debido a que este artculo se ha realizado con la versin Beta pblica de VFP9, algunos aspectos pudieran sufrir modificaciones cuando se libere la versin definitiva. Bandas multidetalles - Esta una de las mejoras ms importantes de esta nueva versin. Veamos un ejemplo donde la tabla padre Clientes se enlaza con dos tablas hijas: Ordenes y Pagos. El objetivo del informe es 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 obtenemos es el deseado segn la pregunta planteada en el foro " un reporte con dos detalles, 2 tablas que

deseo que aparezcan en mi reporte...Que cuando termine la primera, a continuacin se muestre la otra tabla"

Cmo se obtiene?
Definir multibandas - De forma predeterminada los informes se crean con una sola banda de detalle. Se pueden adicionar bandas desde el dilogo Bandas Opcionales (Optional Bands), incrementando el valor dentro del control Spinner (hasta 20). Luego, hay que definir el alias para cada banda, este aspecto lo veremos con detenimiento. Al aumentar un nmero aparece una nueva banda de detalle y al disminuir uno se elimina la banda con mayor nmero (la ltima en haber sido creada)

El trabajo multibandas nos ofrece nuevas posibilidades; pero nos exige ser mucho ms cuidadosos, porque ahora en cada banda no estar la tabla padre sino una de las hijas, y hay que definir el nombre del alias en el cuadro de texto Expresin del Alias principal (Target alias expresion,) del Cuadro de dilogo Propiedades de la banda de detalle (Detail band propierties). En caso de estar trabajando con una sola banda, pues no pasa nada si la dejamos en blanco, toma la tabla padre que ser justo lo que deseamos.

El cuadro de dilogo Detalles (Detail) contiene las propiedades de la banda de Detalles.

Alias principal (Target alias) - Es el alias que se recorre en la banda donde se encuentra. Es una expresin. Debe ir entre comillas, para que evale la expresin y obtenga los valores existentes en el Alias indicado. Si no se ponen las comillas, se entiende que es una expresin, por ejemplo Clientes, pudiendo ser una variable, o un campo que contiene el nombre del alias que se obtiene en tiempo de ejecucin. Este nombre va a aparecer en la barra gris que define la banda. Se recomienda definir los campos incluyendo el nombre del alias para evitar confusiones. El tipo de alias depender del contenido que se quiera mostrar. Nueva clusula SUMMARY - Esta clusula nos permite obtener slo los encabezados y pie de cada banda sin mostrar el contenido de los detalles, es una buena opcin, porque ahora el usuario podr decidir si quiere la informacin compactada o detallada. Vea ms adelante los resultados que se obtienen al emplearla. Las variables y expresiones calculadas en el informe adquieren una nueva dimensin, Reset based on, en la ficha Variables de la ventana Propiedades indica que se deben procesar los registros de la tabla hija y no se limpia hasta que no termine el informe, lo que permite realizar clculos y combinaciones entre las bandas utilizando valores calculados de unas en otras. Al seleccionar un nmero de banda especfica, VFP procesa el clculo solamente durante el proceso de esa banda. Si se escoge ms de un sitio, pues se procesa mientras duren las bandas seleccionadas.

Diferencias entre las Bandas de Detalles y las Agrupaciones de Datos (Data Grouping)
Bandas de Detalles Se pueden anidar No se crean subgrupos dentro de ellas Dependen del alias principal (target alias) que se le indique Su lmite mximo es de 20 bandas Su lmite mnimo es una banda Agrupaciones de Datos No se anidan, son consecutivas Se crean subgrupos No dependen del alias principal (target alias) Su lmite mximo es de 74 bandas Su lmite mnimo es cero bandas

Cuando termina una banda, si existe otra banda Cuando acaba un grupo, el puntero se mueve al de detalle el puntero se mueve nuevamente al siguiente registro

inicio del alias actual La expresin para el alcance de una banda de detalle (target alias) se limita a una expresin que de nombre a una tabla abierta en la sesin de datos actual No existe lmite para la creacin de una expresin que defina el alcance de un grupo

Diferencias entre los encabezados y pies de Bandas de Detalle y los encabezados y pies de Bandas de Grupos
Encabezados y pies de Bandas de Detalle Se pueden mostrar los encabezados y pie de banda (son opcionales). Si existen, se muestran incluso cuando no hay datos, por ejemplo que no haya coincidencia entre la tabla padre y la hija. Si no se desea imprimir el encabezado de la banda de detalle en este caso, debe utilizar una expresin del tipo NOT EOF(<target alias>) en Imprimir cuando (Print When) La clusula SUMMARY en el comando REPORT FORM, elimina todas las bandas de detalle, as como sus correspondientes encabezados y pies. Si se incluye la clusula SUMMARY, NO se ejecutan los eventos OnEntry / OnExit. Encabezados y pies de Bandas de Grupos Si no hay elemento de agrupacin en la seleccin, no se puede mostrar encabezado y/o pie para l, debido a que no existe tampoco el grupo como tal. Tiene que existir algn elemento, incluso si no se desea imprimir el detalle y se emplea la clusula SUMMARY en el comando REPORT FORM, que se encarga de eliminarla. La clusula SUMMARY en el comando REPORT FORM, NO elimina los encabezados y pies de las bandas de grupo. Aunque se incluya la clusula SUMMARY, los eventos OnEntry / OnExit SIEMPRE se ejecutan.

Los encabezados y pies de ambos tipos de bandas tienen caractersticas similares, por ejemplo la evaluacin de su contenido y el cdigo colocado en sus eventos OnEntry y OnExit ocurren en el mismo momento.

Otros Ejemplos
1. Con un nico cursor. Para poner los totales al inicio, en el encabezado de banda. Hacer 2 bandas con igual alias, en la primera banda se calcula el total y se muestra el valor calculado en el encabezado. Pero esta banda no tiene ms nada, no hay nada en el detalle ni el pie de banda. Entonces, en la segunda banda estn los datos en el detalle; lo importante es que VFP no est apuntando al ltimo registro de esa tabla, por haber hecho SUM, COUNT, o la operacin que sea, no, el puntero de la tabla al llegar a la segunda banda apunta al registro que corresponde por la relacin padre-hija que existe con la tabla padre que es quien rige el informe. El ejemplo concreto es imprimir para cada vendedor sus ventas (valor) y el porcentaje con relacin al total, para lo cual necesitamos el total previamente calculado. En este caso se utiliza una expresin representando el alias igual al alias principal (target alias) en la primera banda de detalle. Esto le dice al VFP que desea procesar todos los registros de la tabla antes de moverse a la siguiente banda de detalles. 2. Con mltiples cursores. Cuando tiene mltiples cursores, utilice un alias principal (target alias) en blanco cuando desee que una banda sea procesada slo una vez. Esto es til si se desea mostrar informacin resumida, algo similar a lo que brinda el encabezado y pie de grupo.

Ejemplo: Necesitamos agrupar el informe por ClienteID. Podemos ofrecer informacin sobre el Cliente en el Encabezado o pie de banda de grupo. Pero, podemos adems colocar una banda de detalle entre Ordenes y Pagos que contenga informacin adicional sobre el Cliente, que puede ser, por ejemplo el estado actual de su cuenta. Al no colocar Alias principal (Target alias) su contenido aparecer slo antes de que se vaya a procesar la banda de Pagos. No hace falta escribir cdigo en Imprimir cuando (Print When) ni seleccionar Eliminar datos repetidos (Suppress Repeated Value). Qu ocurre en tiempo de ejecucin? VFP verifica que el dato Alias principal (target alias) est vaco o en uso, luego verifica que sea el alias actual o hija. Si el desarrollador tiene establecido su comportamiento de uno-a-muchos, por ejemplo con SET SKIP en su entorno de datos, el VFP lo respeta. Si no tiene definido nada, crea uno y lo elimina al finalizar el informe para dejar el entorno tal y como estaba.

y y

Si la primera banda de detalles no tiene Alias principal (target alias), procesa el primer registro de la tabla principal y se mueve a la siguiente banda de detalles. Si la primera banda de detalles tiene Alias principal (target alias) que es un alias hijo del alias principal, procesa todos los registros de la tabla hija mostrando los relacionados y pasa a la siguiente banda. El puntero permanece en el primer registro de la tabla principal. Si la primera banda tiene el nombre de alias igual al nombre del alias principal, procesa todos los registros del alias principal y luego se mueve a la siguiente banda de detalles.

Limitaciones:
y
Mezclar mltiples columnas y mltiples bandas. Utilizar mltiples columnas en informes multibandas puede trabajar en algunos casos; pero pueden darse muchos casos de efectos desagradables si trata de darle columnas diferentes a las bandas y si no inician en pgina nueva para cada grupo y van de arriba abajo. No es posible re-ordenar las bandas. No es un proceso nativo, pero se puede hacer eliminando y adicionando bandas y re-colocando los objetos en la posicin que se desea. Se puede agrandar el tamao de otras bandas, mover hacia ellas el contenido de la banda a eliminar re-crearla y luego re-posicionar los objetos. Se pueden seleccionar todos los objetos de la banda si se hace Doble-Clic en la banda separadora.

Como vemos, las posibilidades para trabajar los informes se amplan notablemente en esta nueva versin y aunque quedara mucho por lograr, al menos, esta pregunta de los foros, ya tiene respuesta nativa en VFP 9.0

Vous aimerez peut-être aussi