2

何も含まれていないレポート ページを削除する必要があります。

空白を含むページがあるので、それを削除したいです。すべてを試しましたが、問題は解決しません。

私はこのコードを試しました:

private void removeBlankPage(List<JRPrintPage> pages) {

    for (Iterator<JRPrintPage> i = pages.iterator(); i.hasNext(); ) {
        JRPrintPage page = i.next();
        if (page.getElements().size() == 0)
            i.remove();
    }
}

しかし、要素が存在し、空白であるため、到達することはありません if (page.getElements().size() == 0)。(サイズは常に!=0)

Print When Expression属性を書き込もうとしているので、空白の場合は前のテキストを取得したいので、ページがすべて空白であると確信しており、この場合空白のテキストを印刷しません。空白のページが消えるように

しかし、前のテキストを取得できません。

それで、あなたは何を提案しますか?

親レポートの jrxml は次のとおりです。

<detail>
    <band height="802" splitType="Stretch">

        <subreport runToBottom="true">
            <reportElement uuid="14905216-11ed-48c5-aa9c-37a425b186d1" x="51" y="267" width="507" height="535"/>
            <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource) $P{REPORT_DATA_SOURCE}).subDataSource("//BODYR/BODYR_table/BODYR_line")]]></dataSourceExpression>
            <subreportExpression><![CDATA[$P{REPORT_PATH} + "BODYR.jasper"]]></subreportExpression>
        </subreport>
    </band>
</detail>

サブレポートは次のとおりです。

<detail>
    <band height="22" splitType="Stretch">
        <textField pattern="" isBlankWhenNull="true">
            <reportElement uuid="79bfae52-ea0f-4f1f-a310-31464cb82f1e" stretchType="RelativeToBandHeight" mode="Transparent" x="0" y="0" width="555" height="22"/>
            <textElement>
                <font fontName="Arial" size="13"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{LBODY}]]></textFieldExpression>
        </textField>
    </band>
</detail>
4

0 に答える 0