вложенный отчет jasperreports не разделяется

#jasper-reports #subreport #page-break

#jasper-отчеты #вложенный отчет #разрыв страницы

Вопрос:

У меня есть отчет jasper, в котором есть несколько вложенных отчетов. Большинство из них работают нормально, но по какой-то причине один из моих вложенных отчетов не разделяется, если он становится достаточно длинным, чтобы дойти до конца страницы, вместо этого он переходит обратно в начало своего раздела сведений и продолжает писать там, перезаписывая предыдущий текст. Я не вижу никакой разницы между этим вложенным отчетом и тем, который работает правильно. В настоящее время мой проект использует jasper-reports 1.2.5, но я попытался выполнить обновление до 4.0.1 (только для этого одного отчета), и результаты были теми же.

Это раздел jrxml, в который включен мой вложенный отчет, который не работает:

 <subreport  isUsingCache="true">
<reportElement
    x="0"
    y="172"
    width="468"
    height="21"
    key="subreport-3"
    positionType="Float"/>
<dataSourceExpression><![CDATA[$P{dataSourcePreviousYukonLicence}]]></dataSourceExpression>
<subreportExpression  class="java.io.InputStream"><![CDATA[this.getClass().getResourceAsStream("/config/template/subreportPreviousYukonLicence2.jasper")]]></subreportExpression>
  

И это раздел для одного, который действительно работает:

 <subreport  isUsingCache="true">
<reportElement
    x="0"
    y="43"
    width="468"
    height="21"
    key="subreport-2"
    positionType="Float"/>
<dataSourceExpression><![CDATA[$P{dataSourceConvictionHistory}]]></dataSourceExpression>
<subreportExpression  class="java.io.InputStream"><![CDATA[this.getClass().getResourceAsStream("/config/template/subreportConvictionHistory.jasper")]]></subreportExpression>
  

Сами вложенные отчеты оформлены очень похоже, со всеми группами, имеющими is isSplitAllowed="true" , и они используют одинаковые шрифты и одинаковые типы элементов отчета.

Если у кого-нибудь есть какие-либо идеи, почему один разделился бы правильно, а другой нет, мы будем очень признательны за вашу помощь.

Комментарии:

1. У нас практически та же проблема. Похоже, это вызвано самим вложенным отчетом. Если мы используем только вложенный отчет напрямую и заполняем его таким количеством, что он не помещается на одной странице, он также начнет перезаписывать верхние строки.

Ответ №1:

У нас была такая же или, по крайней мере, чрезвычайно похожая проблема. Причина была не в отчете, а в определении вложенного отчета. Он был настроен на наличие нескольких столбцов, и когда он достиг последней строки отчета, он снова начинается сверху во втором столбце.

Установка его в один столбец исправила это. Ниже приведена упрощенная дельта в нашем случае

 -<jasperReport ... columnCount="3" pageWidth="240" pageHeight="555" ...>
 <jasperReport ...  pageWidth="240" pageHeight="555" ...>
  

Теперь полоса начинается со следующей страницы, если вложенный отчет не помещается на текущей странице.