2012-01-11 12 views
6

Generuję plik PDF, używając JasperReports z Java. W końcu udało mi się poprawnie napisać Jaspera do raportu. Problem polega na tym, że teraz otrzymuję pustą stronę na końcu raportu (nagłówki są drukowane, ale pasek szczegółów jest pusty). Informacje przekazane dla pasma szczegółów są wyświetlane, więc nie ma potrzeby, aby ta strona (co więcej, na końcu ostatniej strony jest puste miejsce). Dołączę JXML na końcu pytania, każda pomoc doceniona.JasperReports, w tym pusta strona na końcu pliku PDF

Dzięki!

To jest zawartość pliku 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> 

I to jest Podraport:

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

Czy kiedykolwiek byłeś w stanie rozwiązać ten problem? – gordonk

Odpowiedz

3

Należy ręcznie ukryć pasma po Detail.
Na przykład próby ukrywania zespół Summary poprzez ustawienie to Print When Expression do Boolean.FALSE

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

Uwaga: nie jestem pewien co do dokładnej kontekście XML, bo zwykle to zrobić w iReport.

+1

Dzięki za odpowiedź. Usunąłem wszystkie pasma z dokumentu w iReport i opuściłem tylko nagłówek strony, detal i stopkę strony. I w podraportach właśnie nagłówek kolumny i szczegóły, więc nie sądzę, że powinno to rozwiązać problem, ale spróbuję. – LeanDe

+0

To rozwiązało mój problem, gdy w niektórych raportach (i podraportach) dostawałem dodatkowe strony. – Doug

+0

Rozwiązuje to problem, ale także nie wyświetla strony, jeśli dane tam są. Jak sprawdzić, czy dane istnieją? – zygimantus

0

I wobec tego problemu, w moim przypadku jest to rozwiązane przez:

  1. idź do raportu Właściwości.
  2. Następnie sprawdź Ignoruj ​​właściwość Paginacja.

To wszystko. Mam nadzieję, że to pomoże.