2016-09-27 153 views
1

我正在使用jasper報告將我的報告導出爲word文檔。在細節部分我有小組報告。我有一個帶分割類型的問題。當我選擇分體式伸展立即我得到了下面的問題。Jasper報告拆分類型

enter image description here

當我選擇防止分體式我沒有得到這個錯誤,但這次有在頁面的底部有很多白色的空間,如果行距大於留隊的高度。如何在頁面底部部分分割我的數據而無邊框佈局錯誤?

示例代碼。只需複製並粘貼任何jasper studio編輯器,並在提示時輸入長文本(至少填寫兩頁)。

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Created with Jaspersoft Studio version 6.3.0.final using JasperReports Library version 6.3.0 --> 
<!-- 2016-09-27T22:00:51 --> 
<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="Test" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="f86bcfb7-d774-451f-9f46-c58f57e0efbb"> 
    <property name="com.jaspersoft.studio.data.sql.tables" value=""/> 
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/> 
    <parameter name="Parameter1" class="java.lang.String"/> 
    <queryString> 
     <![CDATA[select * from dummy]]> 
    </queryString> 
    <field name="sno" class="java.lang.Integer"/> 
    <field name="filed1" class="java.lang.Integer"/> 
    <field name="filed2" class="java.lang.String"/> 
    <columnHeader> 
     <band height="30"> 
      <staticText> 
       <reportElement x="0" y="0" width="120" height="30" uuid="0cd17b54-755c-42fe-9363-7266a24337e3"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <text><![CDATA[Static Text]]></text> 
      </staticText> 
      <staticText> 
       <reportElement x="170" y="0" width="130" height="30" uuid="f216b782-3080-4ba8-8cc3-2609c684f4be"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <text><![CDATA[filed1]]></text> 
      </staticText> 
      <staticText> 
       <reportElement x="300" y="0" width="90" height="30" uuid="71985024-8b9a-49ae-81e0-6d6e9335cec7"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <text><![CDATA[filed2]]></text> 
      </staticText> 
      <staticText> 
       <reportElement x="120" y="0" width="50" height="30" uuid="d45c0977-d842-424b-ab44-7edd5672b72d"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <text><![CDATA[Image]]></text> 
      </staticText> 
     </band> 
    </columnHeader> 
    <detail> 
     <band height="30"> 
      <textField isStretchWithOverflow="true"> 
       <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="0" y="0" width="120" height="30" isPrintWhenDetailOverflows="true" uuid="fb93f1ac-7f7a-48fe-afa7-4aab5370cbec"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <textFieldExpression><![CDATA[""]]></textFieldExpression> 
      </textField> 
      <textField isStretchWithOverflow="true"> 
       <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="170" y="0" width="130" height="30" uuid="b5a72533-c1b6-4af9-a0b7-06d099981190"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <textFieldExpression><![CDATA[$F{filed1}]]></textFieldExpression> 
      </textField> 
      <textField isStretchWithOverflow="true"> 
       <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="300" y="0" width="90" height="30" isPrintWhenDetailOverflows="true" uuid="bab5a3e9-22db-46b0-9302-f7614a6f6add"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <textFieldExpression><![CDATA[$P{Parameter1}]]></textFieldExpression> 
      </textField> 
      <textField isStretchWithOverflow="true"> 
       <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="0" y="0" width="120" height="30" isPrintWhenDetailOverflows="true" uuid="d4338fad-1803-491e-90ef-8e01cb3de80d"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <textFieldExpression><![CDATA["Hello"]]></textFieldExpression> 
      </textField> 
      <textField isStretchWithOverflow="true"> 
       <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="170" y="0" width="130" height="30" isPrintWhenDetailOverflows="true" uuid="8cdac468-0a3f-4ed3-844b-473e1371f92e"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <textFieldExpression><![CDATA[""]]></textFieldExpression> 
      </textField> 
      <textField isStretchWithOverflow="true"> 
       <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="120" y="0" width="50" height="30" isPrintWhenDetailOverflows="true" uuid="6ab2f4f8-04cd-4a6f-b945-3a7af4b8c3fa"/> 
       <box> 
        <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
        <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
       </box> 
       <textFieldExpression><![CDATA["Hello"]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
</jasperReport> 

終於解決了。謝謝@ dada67的詳細答案。

解決方案1: 您可以創建jasperreports.properties在classpath文件和下面的行添加到該文件:

net.sf.jasperreports.consume.space.on.overflow=falsenet.sf.jasperreports.consume.space.on.overflow=false 

解決方案2: 您可以編程設置這個值也

DefaultJasperReportsContext djrc = net.sf.jasperreports.engine.DefaultJasperReportsContext.getI‌​nstance(); 
djrc.setProperty(net.sf.jaspe‌​rreports.engine.fill‌​.JRFillTextElement.P‌​ROPERTY_CONSUME_SPAC‌​E_ON_OVERFLOW, 
        Boolean.toString(false)); 
+0

請創建[最低工作示例](http://stackoverflow.com/help/mcve)然後發佈JRXML。 –

+0

@DaveJarvis請檢查它。我添加了示例代碼 – sakit

回答

1

您所描述的問題似乎與http://community.jaspersoft.com/ireport-designer/issues/8146

根據意見,即將發佈的版本(6.3.1)將解決該問題。

在你可以設置你的jasperreports.properties以下屬性來避免此問題的同時:

net.sf.jasperreports.consume.space.on.overflow=false 
+0

感謝您的詳細信息和鏈接。 – sakit

+0

我應該在哪裏放置jasper.properties文件? – sakit

+0

jasperreports.properties需要放在屬於應用程序類路徑的文件夾中(例如Web應用程序中的WEB-INF/classes)。 – dada67