|
|
|
|
- Creación de una reporte anidada
- Principio
- Ejemplo 1: Informes anidados simples
- Ejemplo a realizar
- Operaciones a realizar
- Ejemplo 2: Informes anidados con diferentes orientaciones (Paisaje/Retrato)
- Ejemplo a realizar
- Operaciones a realizar
- Características específicas de los informes secundarios
- Bloques en el secundario reporte
- Orientación de la secundaria reporte
- Page se rompe en el secundario reporte
- reporte secundaria basada en una consulta con parámetros
- reporte secundaria basada en una consulta que utiliza una conexión específica
- reporte secundaria impresa desde un bloque de pie de página Page
- Visualización del número total de páginas en la reporte secundaria
Creación de informes anidados
Creación de una reporte anidada Principio La creación de un reporte principal que contiene varios informes secundarios se realiza en varios pasos: - Creación de una reporte principal.
- Creación de los informes secundarios. Estos informes pueden tener una orientación diferente a la del reporte principal.
- Impresión de informes secundarios en el reporte principal con iPrintReport. Se debe utilizar esta función:
- en el evento "Antes de imprimir" un bloque: el reporte secundario se imprimirá antes de este bloque.
- en el evento "Después de imprimir" un bloque: el reporte secundario se imprimirá después de este bloque.
Atención: Si los reportes anidados tienen diferentes orientaciones, se debe llamar a la función iParameter para cambiar la orientación de la impresión.
- Configuración de la impresión de las cabeceras y pies de página de Page para el reporte anidado (iNestedHeaderFooter). Se puede utilizar esta función:
- en el código de apertura de la reporte principal: será tenido en cuenta por todos los informes anidados que se imprimirán desde la reporte principal.
- antes de imprimir la reporte anidada: será tenido en cuenta por los siguientes reporte anidados.
- Impresión de la reporte principal. Para obtener más información, consulte Impresión de un reporte principal que incluye varios informes secundarios.
Observación: Para imprimir informes con diferentes orientaciones (vertical/paisaje), le recomendamos que utilice la secuencia de informes. Este método puede ser fácilmente implementado. Para obtener más información, consulte Secuenciación de informes. Ejemplo 1: Informes anidados simples Ejemplo a realizar La reporte "RPT_Orden" se basa en el archivo de datos de "Ordenes".. Este reporte se utiliza para imprimir las características de cada pedido (fecha, número de cliente, importe total, etc.).. Una pausa en el artículo "OrderNum" se utiliza para separar las diferentes órdenes. La consulta "QRY_ProductOrdered" selecciona todos los productos de un orden especificado. Esta consulta espera un número de pedido como parámetro. La "RPT_ProductOrdered" reporte se basa en la consulta "QRY_ProductOrdered".. Esta reporte sólo imprime los productos seleccionados por la consulta "QRY_ProductOrdered". La reporte "RPT_ProductOrdered" corresponde a la reporte secundaria.. Esta reporte se imprimirá después de cada pausa. Operaciones a realizar - Crear la reporte "RPT_Orders: esta reporte corresponde a la reporte principal.
- Haga clic en en los botones de acceso rápido.
- La ventana de creación de nuevos elementos se abre: haga clic en "Reporte", y luego en "Reporte".
- Crear la consulta "QRY_ProductOrdered. Para obtener más información, consulte Crear una consulta con parámetros.
- Crear la reporte "RPT_ProductOrdered: esta reporte corresponde a la reporte secundaria.
- Haga clic en en los botones de acceso rápido.
- La ventana de creación de nuevos elementos se abre: haga clic en "Reporte", y luego en "Reporte".
Observación: El bloque Page pie de página de este reporte no se imprimirá. Para obtener más información, consulte Bloques en el secundario reporte.
- Introduzca el siguiente código en el evento "Después de imprimir" del bloque Fin de ruptura del reporte "RPT_Order":
// Initialize the query and // pass as parameter the number of the order currently printed iInitReportQuery(RPT_ProductOrdered, MySource.OrderNum) // Print the nested report iPrintReport(RPT_ProductOrdered)
Ejemplo 2: Informes anidados con diferentes orientaciones (Paisaje/Retrato) Ejemplo a realizar El reporte principal ("RPT_LANDSCAPE") se imprime en modo horizontal. Debe llamarse un sub-reporte ("RPT_PORTRAIT") en modo vertical para cada elemento impreso.. El reporte secundario debe iniciarse (cambiando la orientación) en el código "Post-print" del bloque del cuerpo del reporte principal. Luego, la reporte secundaria debe restaurar la orientación de la reporte principal al final de la impresión.. Operaciones a realizar - Cree la reporte "RPT_LANDSCAPE: esta reporte corresponde a la reporte principal.
- Haga clic en en los botones de acceso rápido.
- La ventana de creación de nuevos elementos se abre: haga clic en "Reporte", y luego en "Reporte".
- Elija una orientación en modo horizontal.
Observación: Esta reporte puede ser cualquier tipo de reporte que utilice datos procedentes de cualquier fuente: archivo, consulta, tabla, programación, ....
- En la description del reporte principal, en la pestaña "Opciones", marque "Imprimir el reporte como está".
- En la pestaña "Formato", especifique los márgenes y la sangría. Validar la ventana de description de la reporte.
- Cree el reporte "RPT_PORTRAIT": esta reporte corresponde a la reporte secundaria.
- Haga clic en en los botones de acceso rápido.
- La ventana de creación de nuevos elementos se abre: haga clic en "Reporte", y luego en "Reporte".
- Elija una orientación en modo vertical.
Observación: Esta reporte puede ser cualquier tipo de reporte que utilice datos procedentes de cualquier fuente: archivo, consulta, tabla, programación, ....
- En el description del secundario reporte, en la pestaña "Opciones", marque "Imprimir reporte tal cual".
- En la pestaña "Formato", especifique los mismos márgenes y la misma sangría que los especificados para el reporte principal.. Validar la ventana de description de la reporte.
- Escriba el siguiente código en el "Después de la impresión" del bloque PÁGINA FOOTER de "RPT_LANDSCAPE" Event( principal reporte):
// Call to the report with a different orientation (portrait mode here) iPrintReport(RPT_PORTRAIT) // Note: If this secondary report includes a page footer, this page footer will not be printed.
Características específicas de los informes secundarios Bloques en el secundario reporte Mediante Default, al imprimir un reporte secundario (con iPrintReport), se imprimen todos los bloques del reporte secundario excepto los siguientes: - el bloque Encabezado de página.
- el bloque Pie de página.
Observación: Si el reporte secundario contiene una tabla cuyo encabezado se encuentra en el bloque Encabezado de página, solo el bloque Pie de página no se imprimirá (los demás bloques se imprimirán). En este caso, el bloque de cabecera Page se imprimirá antes del primer fila del tabla (que se encuentra en el reporte secundario). Orientación de la secundaria reporte La reporte secundaria y la reporte principal pueden tener diferentes orientaciones. En este caso, hay que llamar a iParameter para modificar la orientación de la impresión en consecuencia. Observación: Para imprimir informes con diferentes orientaciones (vertical/paisaje), le recomendamos que utilice la secuencia de informes. Este método puede ser fácilmente implementado. Para obtener más información, consulte Secuenciación de informes. Page se rompe en el secundario reporte Las pausas Page definidas en un reporte secundario se tendrán en cuenta al imprimir el reporte principal. reporte secundaria basada en una consulta con parámetros Si la reporte secundaria se basa en una consulta con parámetros, utilice iInitReportQuery para pasar los parámetros a la consulta. Esta función debe utilizarse antes que iPrintReport. reporte secundaria basada en una consulta que utiliza una conexión específica Si la reporte secundaria se basa en una consulta que gestiona una conexión específica, utilice iInitReportQueryConnection para ejecutar esta consulta (y para pasar parámetros si es necesario). Esta función debe utilizarse antes que iPrintReport. reporte secundaria impresa desde un bloque de pie de página Page Si el reporte secundario se imprime desde un bloque de pie de página Page, sus bloques de pie de página Page no se imprimirán. Visualización del número total de páginas en la reporte secundaria Es necesario añadir un contador Page en el reporte principal para que el contador Page s funcione en el reporte anidado. Sin embargo, el contador que se encuentra en el principal reporte puede hacerse Invisible si es necesario.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|