JasperReports, включая пустую страницу в конце PDF
Я создаю PDF-файл с помощью JasperReports из Java. В конце концов мне удалось заставить Джаспера правильно разбить отчет на страницы. Проблема в том, что теперь я получаю пустую страницу в конце отчета (заголовки печатаются, но полоса сведений пуста). Информация, передаваемая для полосы детализации, отображается, поэтому нет необходимости в этой странице (более того, в конце последней страницы есть пустое пространство). Я приложу JXML в конце вопроса, любую помощь оцененный.
спасибо!
это содержимое файла 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:workREPO-CTKlasastra-worldcoresrcmainresourcesjaspertintoreria"]]></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>
и это вложенный отчет:
<?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>
2 ответов
вы должны вручную скрыть полосы после Detail
.
Например, попробуйте скрыть Summary
band, установив это Print When Expression
to Boolean.FALSE
<summary>
<band height="1" splitType="Stretch">
<printWhenExpression><![CDATA[Boolean.FALSE]]></printWhenExpression>
</band>
</summary>
Примечание: не уверен в точном контексте XML, так как я обычно делаю это в iReport.
Я столкнулся с этим вопросом, в моем случае он решается:
- перейти к свойствам отчета.
- затем флажок ignore собственность пагинации.