Прерванное исключение в подотчете JasperReports, но только иногда - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть основной отчет с подробным описанием, нижним колонтитулом страницы, сводкой и фоновыми полосами.Если итоговая полоса (обычно вторая страница) растягивается так, что отчет составляет три страницы, все отлично работает и выглядит великолепно.Однако, по какой-то причине, если сводка составляет только одну страницу, фон для сводной (второй) страницы не отображается.

Вот фон xml:

<background>
    <band height="740" splitType="Stretch">
        <image scaleImage="RetainShape" onErrorType="Blank">
            <reportElement isPrintRepeatedValues="false" x="10" y="10" width="1174" height="730" uuid="e3e48fc0-40e1-4c28-8b59-8d0dbad6266f"/>
            <imageExpression><![CDATA["\\\\SERVER\\Data\\Design Files\\SolidEdgeDrawings\\ERP Draft Images\\"+String.format("%05d",$F{drawingRevision}.getDrawingID())+$F{drawingRevision}.getRevisionID()+($V{PAGE_COUNT}>1 ? "p"+$V{PAGE_NUMBER} : "")+".jpg"]]></imageExpression>
        </image>
        <rectangle radius="5">
            <reportElement mode="Transparent" x="0" y="0" width="1184" height="740" uuid="d8a0802f-d0b4-47ab-b76f-4daefc92a0e0"/>
        </rectangle>
        <subreport>
            <reportElement x="917" y="630" width="267" height="110" uuid="1e62add7-ed82-478d-8102-49e107067ebb"/>
            <subreportParameter name="drawingRevision">
                <subreportParameterExpression><![CDATA[$F{drawingRevision}]]></subreportParameterExpression>
            </subreportParameter>
            <subreportExpression><![CDATA["static/engineering/drawings/subreports/DrawingTitleBlock.jasper"]]></subreportExpression>
        </subreport>
    </band>
</background>

Отчетзавершается, но я вижу эту ошибку в журналах:

2018-11-12 15: 46: 32,499 ОШИБКА [Рисование подотчетов # 1] impl.Jdk14Logger (Jdk14Logger.java:101) - Заполнить2: исключение java.lang.InterruptedException: пусто в java.lang.Object.wait (собственный метод) ~ [?: 1.8.0_144] в java.lang.Object.wait (Object.java:502) ~ [?: 1.8.0_144] at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.suspend (AbstractThreadSubreportRunner.java:185) [jasperreports-6.7.0.jar: 6.6.0] в net.sf.jasperreports.engine.fill.FillerSubreport.suspendSubreportRunner (FillerSubreportParent.java:168) [jasperreports-6.7.0.jar: 6.6.0] в net.sf.jasperreports.engine.fill.FillerSubreportParent.addPage (FillerSubreportParent.java:147) [jasperreports-6 6]: 6.6.0] at net.sf.jasperreports.engine.fill.JRBaseFiller.addPageToParent (JRBaseFiller.java:1426) [jasperreports-6.7.0.jar: 6.6.0] в net.sf.jasperreports.engine.fill.JRVerticalFiller.addPage (JRVerticalFiller.java:2184) [jasperreports-6.7.0.jar: 6.6.0] в net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummaryNoLastFooterSamePage (JRVerticalFiller.java:1300) [jasperreports-6.7.0.jar: 6.6.0] в net.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummary (JRVerticalFiller.java:1189) [jasperreports-6.7.0.jar: 6.6.0] в net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport (JRVerticalFiller.java:160) [jasperreports-6.7.jar: 6.6.0] в net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:615) [jasperreports-6.7.0.jar: 6.6.0] в net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport (JRFillSubreport.java:822) [jasperreports-6.7.0.jar: 6.6.0] в net.sf.jasperreports.engine.fill.JRSubreportRunnable.run (JRSubreportRunnable.java:61) 6-й репер.0.jar: 6.6.0] at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run (AbstractThreadSubreportRunner.java:221) [jasperreports-6.7.0.jar: 6.6.0] в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) [?: 1.8.0_144] в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) [?: 1.8.0_144] в java.lang.Thread.run (Thread.java:748) [?: 1.8.0_144]

Если я достану подотчет в фоновой полосе, остальная часть фона будет отображаться нормально, поэтому ясно, что проблема как-то связана с этим подотчетом.Тем не менее, я не могу понять, почему это иногда работает нормально (первая страница всегда хорошо), но не всегда.Надеюсь, этого достаточно информации без перегрузки ненужных данных.Дайте мне знать, если вам нужно увидеть больше.

Что означает ошибка, и почему фоновая страница для сводной страницы не будет отображаться постоянно?Спасибо!

ОБНОВЛЕНИЕ:

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

Вот список XML для списка:

<componentElement>
    <reportElement x="0" y="11" width="81" height="9" uuid="04ef37bc-783c-42cd-9afe-713453c84634">
        <property name="net.sf.jasperreports.export.headertoolbar.table.name" value="Approvals"/>
    </reportElement>
    <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
        <datasetRun subDataset="DrawingApprovals" uuid="15782f6d-5533-44e6-98a4-2e868a6173a4">
            <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{drawingRevision}.getApprovals())]]></dataSourceExpression>
        </datasetRun>
        <jr:listContents height="9" width="81">
            <textField>
                <reportElement x="0" y="0" width="17" height="9" uuid="675784d9-550a-4368-a813-79f71d8a695c"/>
                <textElement textAlignment="Center">
                    <font size="7"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{revisionID}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="17" y="0" width="17" height="9" uuid="399c832b-0a8f-441e-a24d-d96d4c66334e"/>
                <textElement textAlignment="Center">
                    <font size="7"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{drafter}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="true">
                <reportElement x="34" y="0" width="17" height="9" uuid="fffc0fed-0b4c-4371-91ea-d29b00c509e9"/>
                <textElement textAlignment="Center">
                    <font size="7"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{approver}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="true">
                <reportElement x="51" y="0" width="30" height="9" uuid="e0e7a53d-8a93-4dd2-9f3e-27c49844cbd9"/>
                <textElement textAlignment="Center">
                    <font size="7"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{approvalDate}]]></textFieldExpression>
            </textField>
        </jr:listContents>
    </jr:list>
</componentElement>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...