Crystal Reportsを使用すると、ページフッターをセクション(セクションa、セクションb、...)に分割して、条件に応じて印刷できるようにすることができます。条件1が真の場合は、セクションaを印刷し、そうでない場合はセクションbを印刷します。
iReportを使って似たようなものを作らなければなりませんが、その方法がわかりません。より多くのセクションを作成するオプションが見つかりません。誰か助けてくれませんか?
Crystal Reportsを使用すると、ページフッターをセクション(セクションa、セクションb、...)に分割して、条件に応じて印刷できるようにすることができます。条件1が真の場合は、セクションaを印刷し、そうでない場合はセクションbを印刷します。
iReportを使って似たようなものを作らなければなりませんが、その方法がわかりません。より多くのセクションを作成するオプションが見つかりません。誰か助けてくれませんか?
アレックスのコメントを展開して拡張を提案するframe
には、フッター内に考えている各セクションをレイアウトできます。次に、一連printWhenExpression
の要素の代わりにフレームごとに設定します。
例えば:
<?xml version="1.0" encoding="UTF-8"?>
<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="report3" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="0" bottomMargin="0" uuid="35abc101-1375-42c5-9f5f-2eb3542ca382">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="footerPrint" class="java.lang.String">
<defaultValueExpression><![CDATA["1"]]></defaultValueExpression>
</parameter>
<pageFooter>
<band height="51">
<frame>
<reportElement uuid="c8bef919-0e83-4d72-9b25-1a7e0aa6b82b" x="0" y="0" width="555" height="20">
<printWhenExpression><![CDATA[$P{footerPrint}.equals("1")]]></printWhenExpression>
</reportElement>
<staticText>
<reportElement uuid="4ad1f177-9e43-4d9f-8f05-012090c33193" x="0" y="0" width="100" height="20"/>
<textElement/>
<text><![CDATA[Footer Print: 1]]></text>
</staticText>
</frame>
<frame>
<reportElement uuid="c8bef919-0e83-4d72-9b25-1a7e0aa6b82b" x="0" y="0" width="555" height="20">
<printWhenExpression><![CDATA[$P{footerPrint}.equals("2")]]></printWhenExpression>
</reportElement>
<staticText>
<reportElement uuid="4ad1f177-9e43-4d9f-8f05-012090c33193" x="0" y="0" width="100" height="20"/>
<textElement/>
<text><![CDATA[Footer Print: 2]]></text>
</staticText>
</frame>
</band>
</pageFooter>
</jasperReport>
フレームは同じ寸法に設定され、残りはまったく同じ x/y 座標に設定されます。したがって、本質的にそれらは重複しますが、式を正しく行うと、一度に 1 つだけが表示されます。
もちろん、他のオプションは各要素の式を設定することですが、この方法が簡単だと思います。