Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JasperReports including blank page at the end of the PDF

I'm generating a PDF using JasperReports from Java. I finally succeeded in making Jasper correctly paginate the report. The problem is that now I'm getting a blank page at the end of the report (the headers are printed, but the detail band is blank). The information passed for the detail band is all displayed, so there is no need for that page (what is more, there is an empty space at the end of the last page). I will attach the JXML at the end of the question, any help appreciated.

Thanks!

This is the content of the JXML file:

 <?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>

And this is the subreport:

<?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>
like image 481
LeanDe Avatar asked Jan 11 '12 21:01

LeanDe


1 Answers

You should manually hide the bands after Detail.
For example try hiding the Summary band by setting it's Print When Expression to Boolean.FALSE

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

Note: not sure about the exact XML context, since I usually do it in iReport.

like image 136
medopal Avatar answered Oct 19 '22 23:10

medopal