PDA

Ver la Versión Completa : QuickReport - Altura de Detail


hgiacobone
31-05-2011, 22:53:40
Hola gente,
Me ha caido un viejo sistema hecho con D7 y QR para hacer algunos retorques en el modulo que emite la factura impresa.

El reporte está armado sobre un QuickReport en formato A4, que contiene un PageHeader que contienen los campos del Mesater, luego una banda de tipo SubDetail con los campos del Detail y al final una PageFooter que muestra unos campos con los totales.

La cosa es que en proporción gráfica por decirlo de algún modo, el Header ocupa el primer cuarto de página y el pie el último cuarto. En el medio está el área del detalle con el 50% restante, pero si pongo la altura de la banda en esa proporción (unos 15 cm) me salen varias páginas con un registro de detalle por cada hoja. Entonces la Banda debe tener la altura de la linea de texto para que salga un registro bajo el otro en la misma página, pero....

¿Cómo controlo que siempre el PageFooter se imprima bien abajo de la página independientemente si el detalle sale con 6 o con 666 registros?

Saludos cordiales,
(espero se entienda :eek:)

oscarac
31-05-2011, 23:05:36
mmmmm

no tengo mucha experiencia en reportes tipo delphi porque todo lo migro al excel, pero en otro lenguaje que utilizaba antes hacia mas o menos lo siguiente

sabia de antenamo que aproximandamente una hoja a4 tiene 70 lineas imprimibles, entonces contaba las lineas que imprimian y cuando se hacia el EOF, simplemente mandaba lineas en blanco hasta llegar a la linea (por ejemplo) 60 donde ya colocaba los totales del pie

quiza en el beforeprint de la banda puedas mover el top de la misma banda

juanlaplata
07-06-2011, 14:53:42
En mi caso tango 4 bandas:

----------------------------------------------
rbPageHeader
----------------------------------------------
rbColumnHeader
----------------------------------------------
rbDetail
----------------------------------------------
rbPageFooter
----------------------------------------------

En Diseño, todas son de la misma altura.
En Ejecucion solo la rbDetail tiene altura variable, pero no modifica la posicion de la rbPageFooter.
Cualquier duda de configuracion, avisa y la vemos.

yusnerqui
07-06-2011, 16:25:12
Hola, creo que lo que quieres es alinear tu banda a la parte inferior de la hoja, las bandas de QuicReport tienen una propiedad para esto, como no tengo delphi ahora delante no recuerdo su nombre exacto pero es algo como AlingTobottom o algo parecido.

Saludos

hgiacobone
07-06-2011, 16:32:44
En Diseño, todas son de la misma altura.
En Ejecucion solo la rbDetail tiene altura variable, pero no modifica la posicion de la rbPageFooter.
Cualquier duda de configuracion, avisa y la vemos.

Gracias por tu amable respuesta.
Ahora lo que vengo a deducir es que como bien explicabas las bandas de Header y Footer son fijas en tamaño, pero también en "posición lógica".
Con esto me refiero a que si queremos lograr lo siguiente:
----------------------------------------------
| rbPageHeader (1 cm)
----------------------------------------------
rbDetail ('n' cm)
----------------------------------------------
|
|
|
| rbPageFooter (5 cm)
|
----------------------------------------------

...el área destinada la Footer ocupará entonces la cantidad de centimetros contando desde el MARGEN INFERIOR asignado en la configuración de la página y no desde la finalización del rbDetail, ya que este es variable en altura.
Entonces, para el caso anterior, la banda rbPageFooter ocupará 5 cm contando desde la parte inferior de la página hacia arriba. Por lógica, la banda rbPageHeader se calcula comenzando desde el margen superior y yendo hacia abajo.

Este "pequeño" detalle no está en ningún manual ni en la info oficial del producto. :eek:

Gracias a todos los que ayudaron y...

juanlaplata
07-06-2011, 20:05:10
Si quiere que el rbPageFooter tenga 5 cm y ademas este continuo al rbDetail, es decir, que no este en el pie de pagina, si no a continuacion del detalle, podemos hacer 2 cosas:

1- cambiar rbPageFooter por rbChild y a esta ultima asignarle como ParentBand rbDetail, de esta manera esta banda tendra su tamaño fijo pero a partir del detalle.

2- con grupos, se agregaran dos nuevas bandas GroupHeader y GroupFooter, de esta manera el detalle quedaria entre medio de ambas, y el GroupFooter pegado por debajo, pero no en el pie de pagina. Aunque la funcionalidad del grupo no sea esta, asi se ve al fin.

No soy experto ni mucho menos, solo son conocimientos adquiridos en la escuela que mas se aprende que es la de prueba y error.