2010-06-17 214 views

Respuesta

11

Ok! ¡Encontré una manera de lograr esto!

  1. Las filas generalmente se imprimen en la banda Details.
  2. Al final de la banda de detalles, donde necesita un salto de página, agregue un salto de página.
  3. En las propiedades de pageBreak, edite la impresión When Expression del panel de propiedades.
  4. La expresión será

new java.lang.Boolean((int)($V{REPORT_COUNT}.intValue())%10==0)

donde 10 es el número de registros por página.

Así es como se hace en iReports. El equivalente jrxml para las personas que editan directamente el archivo es el siguiente.

<break> 
    <reportElement x="0" y="23" width="100" height="1"> 
     <printWhenExpression><![CDATA[new java.lang.Boolean((int)($V{REPORT_COUNT}.intValue())%10==0)]]></printWhenExpression> 
    </reportElement> 
</break> 

poner esto justo después de la etiqueta <band> bajo <details> etiqueta.

+0

Esta solución funciona bien si la página tiene más de 10 filas (como en la muestra de la respuesta). En caso de que si el número de filas es menor que el número especificado (la altura del campo de texto puede crecer), el diseño se romperá. Otro problema: la situación cuando tenemos un informe con un número par de páginas 10, por ejemplo 40. La página vacía se agregará al final del informe. –

+0

@AlexK No tengo acceso a Jasper por el momento, por lo que no puedo confirmar, pero cuando los registros son menores a 10, el salto de página simplemente no se agrega. Entonces, para registros menores a 10, no habrá un salto de página y todo se imprimirá en la primera página. La siguiente parte sobre cómo agregar una página adicional podría ser cierta, no recuerdo qué solución utilicé. –

1

Depende de la altura de página que establezca.

+0

La altura de la página no es la forma correcta de controlar, si el tamaño del texto cambia, el recuento va a un lanzamiento. ¿No hay otra forma de especificar el conteo? –

+0

Entonces puede hacerlo usando Variables. Puede aumentar una variable hasta alcanzar el límite deseado. Después de eso, debes comenzar en otra página. No sé si hay otra forma de hacer esto. –

+0

Encontrado un camino, ver mi respuesta a la publicación. –

Cuestiones relacionadas