-1

これを実現するために、標準の列レイアウトを使用できます。テーブルコンポーネントのレイアウトに対してどのように行うことができますか?

4

1 に答える 1

6

とても簡単です。テーブルコンポーネントの新しいデータソースを追加してから、このコンポーネントで使用する必要があります(データソース)。

サンプルjrxml

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ... whenNoDataType="AllSectionsNoDetail" ...>
    <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>
    <subDataset name="tableDataset">
        <queryString language="SQL">
            <![CDATA[SELECT id, city, street FROM address ORDER BY city]]>
        </queryString>
        <field name="ID" class="java.lang.Integer"/>
        <field name="CITY" class="java.lang.String"/>
        <field name="STREET" class="java.lang.String"/>
        <group name="CITY">
            <groupExpression><![CDATA[$F{CITY}]]></groupExpression>
        </group>
    </subDataset>
    <title>
        <band height="58" splitType="Stretch">
            <componentElement>
                <reportElement key="table" style="table" x="0" y="0" width="299" height="46"/>
                <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="tableDataset">
                        <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    </datasetRun>
                    <jr:column width="90">
                        <jr:groupHeader groupName="CITY">
                            <jr:cell height="30" rowSpan="1">
                                <textField>
                                    <reportElement x="0" y="0" width="90" height="30"/>
                                    <textElement/>
                                    <textFieldExpression><![CDATA[$F{CITY}]]></textFieldExpression>
                                </textField>
                            </jr:cell>
                        </jr:groupHeader>
                        <jr:columnHeader style="table_CH" height="30" rowSpan="1">
                            <staticText>
                                <reportElement x="0" y="0" width="90" height="30"/>
                                <textElement/>
                                <text><![CDATA[Id]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="table_TD" height="20" rowSpan="1">
                            <textField>
                                <reportElement x="0" y="0" width="90" height="20"/>
                                <textElement/>
                                <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90">
                        <jr:columnHeader style="table_CH" height="30" rowSpan="1">
                            <staticText>
                                <reportElement x="0" y="0" width="90" height="30"/>
                                <textElement/>
                                <text><![CDATA[Street]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="table_TD" height="20" rowSpan="1">
                            <textField>
                                <reportElement x="0" y="0" width="90" height="20"/>
                                <textElement/>
                                <textFieldExpression><![CDATA[$F{STREET}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
    </title>
</jasperReport>

iReportのデザインは次のようになります。

  • メインレポートビュー:

ここに画像の説明を入力してください

  • テーブルコンポーネントビュー:

ここに画像の説明を入力してください

このサンプルでは、​​メインのデータソースを削除し、TableコンポーネントをTitleバンドに配置しました。レポートを表示するためにwhenNoDataType="AllSectionsNoDetail"プロパティを設定しました。

レポートのデータは、都市フィールドごとにグループ化されています。

于 2012-09-14T14:06:18.047 に答える