2016-09-27 2 views
1

Я использую отчет jasper для экспорта своих отчетов в документ Word. В разделе сведений у меня есть дополнительный отчет. У меня проблема с типом разделения групп. Когда я выбираю сплит типа стрейч или немедленный У меня проблема ниже.Jasper report split type

enter image description here

Когда я выбираю Предотвратить тип раздвоения Я не получаю эту ошибку, но на этот раз есть много белого пространства в нижней части страницы, если пространство строк больше, чем оставаться высотой бэнда. Как я могу разделить мои данные частично в нижней части страницы без ошибки макета границы?

образец код. просто скопируйте и вставьте любой редактор студии jasper и введите длинный текст (по крайней мере, заполните две страницы) при запросе.

<?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 на вашем пути к классам и добавьте строку ниже в этом файле:

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

Solution 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-INF/classes в веб-приложении). – dada67