PDA

Ver la Versión Completa : Ayuda con compositereport


Vlady
06-02-2009, 17:58:56
Hola amigos del club tengo el siguiente inconveniente un compositereport donde imprimo 4 reporte para una factura, en el reporte1 el encabezado de la factura con logo, en el reporte2 me imprime los detalles de la factura, el reporte3 me imprime la discriminación de IVAS y descuentos y el reporte4 los totales con retenciones, todo anda bien, el problema q tengo es cuando el tamaño de la factura es de mas de una hoja, necesito q me imprima en el encabezado de cada hoja el reporte1, el problema es q en este momento tengo el reporte1 con el formato rbTitle, cuando lo cambio a rbPageFooter no lo imprime y solo imprime desde el reporte2, no imprime el primer reporte, este lo he cambiado tambien a rbGroupHeader y tampoco me lo imprime, en este reporte solo se imprimie un solo registro con los datos de la empresa, la fecha el numero de factura.

asi es como lleno el Compositereport

procedure TImprimiendo.ReporteCopiaAddReports(Sender: TObject);
begin
ReporteCopia.Reports.Add(Reporte1);
ReporteCopia.Reports.Add(Reporte2);
ReporteCopia.Reports.Add(Reporte3);
ReporteCopia.Reports.Add(Reporte4);
end;


Utilizo delphi 7, firebird 2.0 y Quickreport 4.05
No se este problema a q se debe, si alguien me puede ayudar se lo agradeceria

ContraVeneno
06-02-2009, 19:21:08
Todos tus reportes deben de tener las mismas banda para que se tenga el efecto de que es un solo reporte. Es decir, todos deben de tener una barra de título igual.

Vlady
06-02-2009, 20:46:25
Es decir q el reporte1 q es el titulo lo debo repetir tambien en cada uno de los otros reportes?, o cada reporte debe ser de tipo title

luisgutierrezb
06-02-2009, 20:54:36
Fue un error al escribir o quieres que el titulo sea pagefooter en lugar de pageheader?

ContraVeneno
06-02-2009, 21:41:39
Una cosa es el "PageHeader" y otra cosa es el "Title", al menos hablando de bandas de Quickreport. Una banda "PageHeader" debería de aparecer igual en todos los reportes que quieras incluir en el CompositeReport, al hacer esto, si tu reporte tienes varias páginas aparecerá la misma información en todas. Y la banda "Title" la podrías incluir solo en el primer reporte que incluyes en el CompositeReports. Lo mismo aplica para la banda "Summary", la cuál la puedes incluir solo en el último reporte que incluyas en tu CompositeReports.

En otras palabras, todos los reportes que incluyas en tu compositeReports, para que al final den la apariencia de que son un solo reporte, todos deberían tener la misma banda "PageHeader" y la misma "PageFooter" si la utilizas.

Vlady
06-02-2009, 22:50:23
si tienes razon fue un error es rbPageHeader no rbPageFooter, pero entonces segun le entiendo a contraveneno y perdon por ser tan visoño en Quickreport es q debo repetir por cada reporte la consulta que esta en el Reporte1, es decir yo por ejemplo en el reporte2 tengo solo una banda detalle con el detalle de los articulos de la factura, entonces en ese mismo reporte debo añadir una banda rbPageHeader con los mismos datos y en el reporte3 tambien solo tengo una banda detalle con la discriminacion de los IVAS entonces ahi tambien debo añadir la banda rbPageHeader del embazado?

hecospina
07-02-2009, 15:28:38
Hola Vlady
Realmente no entiendo por que crear cuatro reportes si segun lo que describes podria hacerse solo en uno
El contenido del primer reporte lo puedes colocar en un encabezado de pagina, con esto te aparece en todas las paginas

El detalle que tienes en un segundo reporte, lo colocas en el detalle de este primero

y los dos ultimos que al parecer son totales o resumenes de impuestos y retenciones los colocas en un pie de pagina

Todo esto en un solo reporte
Podria ser que yo no tenga claro el concepto de coposytereport :confused:

ContraVeneno
07-02-2009, 16:14:34
No tendrías porque repetir la consulta, lo único que haces, es enlazar todos los encabezados al misma consulta. La consulta (supongamos un TQuery) se realiza solo una vez. Incluso puedes utilizar el evento "BeforePrint" de cada reporte (o hacer uno para todos) donde le asignes los valores a tu banda "PageHeader".

Ahora bien, la idea principal del CompositeReports es hacer que varios reportes diferentes, los puedas integrar y mostrarlos al usuario como si fuera un solo reporte. A lo que "diferentes" se refiere, es a que contienen información completamente diferente, que no se puede integrar en una sola consulta y que los campos son diferentes. Por ejemplo, en uno mostrarías "Clave, Descripción, Cantidad, Precio" y en otro "Descripción, porcentaje, participación, usuario".

PERO, si los campos en todos tus reportes son similares, por ejemplo que todos tengan "Descripción, cantidad , precio", en ese caso lo mejor es obtener todos los datos en una sola consulta y mostrarlos todos en un solo reporte.

Vlady
09-02-2009, 18:03:53
este no es mi caso ya que estoy manejando un reporte con un encabezado dos bandas detalles y una banda con un sumary
y lo q deseo es q la banda encabezado se me repita cada vez q se imprima una nueva hoja