1

JasperReports 4.7.1を使用して、1 ページあたり 2 列のレポートを作成しています。

グループに属するレコードが複数の列にまたがる場合、グループの先頭だけでなく、各列の先頭にもヘッダーを出力したいと考えています。

グループのプロパティでヘッダーの再印刷( isReprintHeaderOnEachPageプロパティ)を使用すると、各ページの先頭にヘッダーを印刷できます。しかし、新しいコラムの冒頭で同じことを行う方法がまだ見つかりませんでした。

どうすればこれを達成できますか?

現在のレポート ページのスクリーンショット...

ここに画像の説明を入力

私が達成したいこと (2 番目の列のヘッダーに注意してください)...

ここに画像の説明を入力

4

1 に答える 1

1

あなたと同様の問題があり、ColumnHeader バンドを追加して、2 列レポートの 2 列目のみに表示することで解決できました。

私のソリューションが機能するには、isReprintHeaderOnEachPage を true に設定し、groupHeader と columnHeader の高さを同じにすることが重要です。

関連するコードは次のとおりです (もちろん、「telephoneNumber」を適切なグループ式に置き換えます。

<group name="telephoneNumberGroup" isStartNewPage="true" isReprintHeaderOnEachPage="true">
    <groupExpression><![CDATA[$F{telephoneNumber}]]></groupExpression>
    <groupHeader>
        <band height="17">
            <textField>
                <reportElement positionType="Float" x="5" y="0" width="170" height="15" uuid="5e8b892b-f907-4907-9c6d-4419e57325e5"/>
                <textElement verticalAlignment="Middle">
                    <font fontName="Arial" size="6" isBold="true"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{telephoneNumber}]]></textFieldExpression>
            </textField>
        </band>
    </groupHeader>
</group>
<columnHeader>
    <band height="17">
        <printWhenExpression><![CDATA[$V{COLUMN_NUMBER} == 2]]></printWhenExpression>
        <textField>
            <reportElement positionType="Float" x="5" y="0" width="170" height="15" uuid="5e8b892b-f907-4907-9c6d-4419e57325e5"/>
            <textElement verticalAlignment="Middle">
                <font fontName="Arial" size="6" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{telephoneNumber}]]></textFieldExpression>
        </textField>
    </band>
</columnHeader>
于 2014-09-05T11:40:27.613 に答える