2016-09-27 163 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