2012-01-11 103 views
6

Estoy generando un PDF usando JasperReports desde Java. Finalmente logré que Jasper paginara correctamente el informe. El problema es que ahora obtengo una página en blanco al final del informe (los encabezados están impresos, pero la banda de detalles está en blanco). La información pasada para la banda de detalles se muestra, por lo que no hay necesidad de esa página (lo que es más, hay un espacio vacío al final de la última página). Adjuntaré el JXML al final de la pregunta, cualquier ayuda apreciada.JasperReports incluyendo una página en blanco al final del PDF

Gracias!

Este es el contenido del archivo JXML:

<?xml version="1.0" encoding="UTF-8"?> 
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="tintoreria" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isFloatColumnFooter="true"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="288"/> 
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> 
     <defaultValueExpression><![CDATA["C:\\work\\REPO-CTK\\lasastra-world\\core\\src\\main\\resources\\jasper\\tintoreria\\"]]></defaultValueExpression> 
    </parameter> 
    <parameter name="totalItems" class="java.lang.String"/> 
    <parameter name="nroPag" class="java.lang.String"/> 
    <parameter name="totalPag" class="java.lang.String"/> 
    <parameter name="supplier" class="java.lang.String"/> 
    <parameter name="creationDate" class="java.lang.String"/> 
    <parameter name="orderNumber" class="java.lang.String"/> 
    <parameter name="fechaPedido" class="java.lang.String"/> 
    <parameter name="datasourceParam" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/> 
    <queryString> 
     <![CDATA[]]> 
    </queryString> 
    <pageHeader> 
     <band height="119" splitType="Stretch"> 
      <rectangle radius="10"> 
       <reportElement x="0" y="0" width="555" height="119" backcolor="#CCCCFF"/> 
       <graphicElement> 
        <pen lineWidth="1.75"/> 
       </graphicElement> 
      </rectangle> 
      <staticText> 
       <reportElement x="112" y="7" width="241" height="32"/> 
       <textElement> 
        <font size="24" isBold="true" isUnderline="true"/> 
       </textElement> 
       <text><![CDATA[Orden de compra]]></text> 
      </staticText> 
      <staticText> 
       <reportElement x="286" y="62" width="63" height="20"/> 
       <textElement> 
        <font size="12"/> 
       </textElement> 
       <text><![CDATA[Proveedor:]]></text> 
      </staticText> 
      <textField> 
       <reportElement x="355" y="62" width="189" height="20"/> 
       <textElement> 
        <font size="12"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$P{supplier}]]></textFieldExpression> 
      </textField> 
      <staticText> 
       <reportElement x="281" y="42" width="72" height="20"/> 
       <textElement> 
        <font size="12"/> 
       </textElement> 
       <text><![CDATA[Orden Nro:]]></text> 
      </staticText> 
      <textField> 
       <reportElement x="355" y="42" width="189" height="20"/> 
       <textElement> 
        <font size="12"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$P{orderNumber}]]></textFieldExpression> 
      </textField> 
      <staticText> 
       <reportElement x="268" y="83" width="85" height="20"/> 
       <textElement> 
        <font size="12"/> 
       </textElement> 
       <text><![CDATA[Fecha Pedido:]]></text> 
      </staticText> 
      <textField> 
       <reportElement x="355" y="83" width="189" height="20"/> 
       <textElement> 
        <font size="12"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$P{creationDate}]]></textFieldExpression> 
      </textField> 
     </band> 
    </pageHeader> 
    <detail> 
     <band height="633" splitType="Stretch"> 
      <subreport runToBottom="false"> 
       <reportElement positionType="Float" stretchType="RelativeToBandHeight" mode="Transparent" x="0" y="0" width="555" height="633" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true"/> 
       <dataSourceExpression><![CDATA[$P{datasourceParam}]]></dataSourceExpression> 
       <subreportExpression><![CDATA["purchaseorder_subreport1.jasper"]]></subreportExpression> 
      </subreport> 
     </band> 
    </detail> 
    <pageFooter> 
     <band height="50" splitType="Stretch"> 
      <rectangle radius="10"> 
       <reportElement positionType="Float" x="0" y="0" width="555" height="50" backcolor="#CCCCFF"/> 
       <graphicElement> 
        <pen lineWidth="1.75"/> 
       </graphicElement> 
      </rectangle> 
      <textField> 
       <reportElement positionType="Float" x="22" y="15" width="239" height="20"/> 
       <textElement> 
        <font size="13"/> 
       </textElement> 
       <textFieldExpression><![CDATA["Cantidad de items: " + $P{totalItems}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement x="331" y="25" width="159" height="20"/> 
       <textElement textAlignment="Right"/> 
       <textFieldExpression><![CDATA["Pagina "+$V{PAGE_NUMBER}+" de "]]></textFieldExpression> 
      </textField> 
      <textField evaluationTime="Report"> 
       <reportElement x="490" y="25" width="40" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression> 
      </textField> 
     </band> 
    </pageFooter> 
</jasperReport> 

Y este es el subinforme:

<?xml version="1.0" encoding="UTF-8"?> 
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="tintoreria_subreport1" pageWidth="540" pageHeight="600" whenNoDataType="NoDataSection" columnWidth="540" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" isFloatColumnFooter="true" whenResourceMissingType="Empty"> 
    <property name="ireport.zoom" value="1.5394743546921208"/> 
    <property name="ireport.x" value="131"/> 
    <property name="ireport.y" value="0"/> 
    <queryString> 
     <![CDATA[]]> 
    </queryString> 
    <field name="itemNumber" class="java.lang.String"/> 
    <field name="description" class="java.lang.String"/> 
    <field name="amount" class="java.lang.String"/> 
    <columnHeader> 
     <band height="22" splitType="Stretch"> 
      <staticText> 
       <reportElement x="1" y="1" width="68" height="20"/> 
       <textElement> 
        <font size="12" isBold="true"/> 
       </textElement> 
       <text><![CDATA[Item]]></text> 
      </staticText> 
      <staticText> 
       <reportElement x="76" y="1" width="373" height="20"/> 
       <textElement> 
        <font size="12" isBold="true"/> 
       </textElement> 
       <text><![CDATA[ Descripción]]></text> 
      </staticText> 
      <line> 
       <reportElement x="69" y="1" width="1" height="21"/> 
      </line> 
      <line> 
       <reportElement x="0" y="21" width="540" height="1"/> 
      </line> 
      <line> 
       <reportElement x="448" y="0" width="1" height="21"/> 
      </line> 
      <staticText> 
       <reportElement x="453" y="1" width="68" height="20"/> 
       <textElement> 
        <font size="12" isBold="true"/> 
       </textElement> 
       <text><![CDATA[Cantidad]]></text> 
      </staticText> 
     </band> 
    </columnHeader> 
    <detail> 
     <band height="13" splitType="Stretch"> 
      <textField> 
       <reportElement x="1" y="0" width="68" height="12"/> 
       <textElement> 
        <font size="9"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$F{itemNumber}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement x="77" y="0" width="371" height="12"/> 
       <textElement> 
        <font size="9"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$F{description}]]></textFieldExpression> 
      </textField> 
      <line> 
       <reportElement x="69" y="0" width="1" height="13"/> 
      </line> 
      <line> 
       <reportElement x="448" y="0" width="1" height="13"/> 
      </line> 
      <textField> 
       <reportElement x="453" y="1" width="75" height="12"/> 
       <textElement> 
        <font size="9"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$F{amount}]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
</jasperReport> 
+1

¿Alguna vez pudo resolver este problema? – gordonk

Respuesta

3

Usted debe ocultar manualmente las bandas después de Detail.
Por ejemplo intentar ocultar la banda Summary estableciendo que es Print When Expression a Boolean.FALSE

<summary> 
    <band height="1" splitType="Stretch"> 
      <printWhenExpression><![CDATA[Boolean.FALSE]]></printWhenExpression> 
    </band> 
</summary> 

Nota: no estoy seguro sobre el contexto XML exacta, ya que normalmente hago en iReport.

+1

Gracias por la respuesta. He eliminado todas las bandas del documento en iReport y solo he dejado el encabezado de página, el detalle y el pie de página. Y en el subinforme simplemente Encabezado de columna y Detalle, así que no creo que eso deba resolver el problema, pero lo intentaré. – LeanDe

+0

Esto resolvió mi problema cuando obtuve páginas extra adicionales en algunos de mis informes (y subinformes). – Doug

+0

Esto resuelve el problema, pero tampoco muestra la página si los datos están allí. ¿Cómo verificar si los datos existen? – zygimantus

0

que se enfrentaron a este problema, en mi caso es resuelto por:

  1. Ir a Propiedades del informe.
  2. Luego marque Ignorar propiedad de paginación.

Eso es todo. Espero que ayude.

Cuestiones relacionadas