2

グループ、サブグループ、値の 3 つの列を持つテーブルを印刷したいと思います。サブグループが変更されたとき、またはシートの最初の行のときにのみ、グループとサブグループを印刷したい。

これが私のレポートです:

<?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="printWhenGroupChangesInTable" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="f3095c03-6622-4524-a0fc-9471ad06913a">
    <style name="table">
        <box>
            <pen lineWidth="1.0" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TH" mode="Opaque" backcolor="#F0F8FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_CH" mode="Opaque" backcolor="#BFE1FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TD" mode="Opaque" backcolor="#FFFFFF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table 1">
        <box>
            <pen lineWidth="1.0" lineColor="#000000"/>
        </box>
    </style>
    <style name="table 1_TH" mode="Opaque" backcolor="#F0F8FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table 1_CH" mode="Opaque" backcolor="#BFE1FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table 1_TD" mode="Opaque" backcolor="#FFFFFF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <subDataset name="New Dataset 1" uuid="9bf6fe22-d440-4db4-a496-8e0689a3cf35">
        <field name="COLUMN_0" class="java.lang.String"/>
        <field name="COLUMN_1" class="java.lang.String"/>
        <field name="COLUMN_2" class="java.lang.String"/>
        <sortField name="COLUMN_0"/>
        <sortField name="COLUMN_1"/>
        <group name="group">
            <groupExpression><![CDATA[$F{COLUMN_0}]]></groupExpression>
        </group>
        <group name="subgroup">
            <groupExpression><![CDATA[$F{COLUMN_1}]]></groupExpression>
        </group>
    </subDataset>
    <detail>
        <band height="20" splitType="Stretch">
            <componentElement>
                <reportElement uuid="e357d4bd-5ea9-49e6-ac22-161567bf6aea" key="table 1" style="table 1" x="0" y="0" width="555" height="20"/>
                <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="New Dataset 1" uuid="cbc8c9a3-d793-420c-8bbb-37a3d0e540d5">
                        <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRCsvDataSource("C:\\example.csv")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:column width="185" uuid="3f354cfb-b31f-4c52-8103-d47891981e64">
                        <jr:detailCell style="table 1_TD" height="20" rowSpan="1">
                            <textField>
                                <reportElement uuid="699725e5-704a-4fe5-96e0-77eb57b7fc69" isPrintRepeatedValues="false" x="0" y="0" width="185" height="20" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" printWhenGroupChanges="subgroup"/>
                                <textElement/>
                                <textFieldExpression><![CDATA[$F{COLUMN_0}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="185" uuid="8046b163-8e37-489d-a9fd-2ef02c26c7d5">
                        <jr:detailCell style="table 1_TD" height="20" rowSpan="1">
                            <textField>
                                <reportElement uuid="537ee40d-36f4-42ff-99b1-ae3db1497384" isPrintRepeatedValues="false" x="0" y="0" width="185" height="20" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" printWhenGroupChanges="subgroup"/>
                                <textElement/>
                                <textFieldExpression><![CDATA[$F{COLUMN_1}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="185" uuid="9805e883-8dce-4e6b-b5a3-fc2249969e33">
                        <jr:detailCell style="table 1_TD" height="20" rowSpan="1">
                            <textField>
                                <reportElement uuid="b94b64a6-daa0-4cb5-8bcb-7fa0ab2d85dc" x="0" y="0" width="185" height="20"/>
                                <textElement/>
                                <textFieldExpression><![CDATA[$F{COLUMN_2}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
    </detail>
</jasperReport>

そしてサンプルデータ:

group1,subgroup1,value1
group1,subgroup1,value2
group1,subgroup1,value3
group1,subgroup2,value1
group1,subgroup2,value2
group1,subgroup2,value3
group2,subgroup1,value1
group2,subgroup1,value2
group2,subgroup1,value3
group2,subgroup2,value1
group2,subgroup2,value2
group2,subgroup2,value3
group3,subgroup2,value1

私が期待するもの:

グループ1 サブグループ1 値1
                 値2
                 値3
グループ1 サブグループ2 値1
                 値2
                 値3
グループ2 サブグループ1 値1
                 値2
                 値3
グループ2 サブグループ2 値1
                 値2
                 値3
グループ3 サブグループ2 値1

私が得るもの:

グループ1 サブグループ1 値1
                 値2
                 値3
       サブグループ2 値1
                 値2
                 値3
グループ2 サブグループ1 値1
                 値2
                 値3
       サブグループ2 値1
                 値2
                 値3
グループ 3 値 1

両方の textFiled が printWhenGroupChanges="subgroup" でマークされています。

printWhenExpression: $V{subgroup_COUNT}==1 を使用したくありません。 isPrintInFirstWholeBand="true" が考慮されず、[group, subgroup] 連符が新しいページの上に印刷されないためです。

jasper の Web サイトで既にバグ レポートを作成しました:バグ レポート

この問題を解決する方法を知っている人はいますか?

4

0 に答える 0