2

iReport と Jasper Reports 4.5.0 を使用してレポートを作成しています。まだ解決できないいくつかのテーブルの書式設定で、要件があることを除いて、すべて正常に機能しています。タイトル (2 つ以上の列をグループ化) とサブタイトル (それぞれの列) が必要な列がいくつかありますが、これを達成する方法がわかりません。

必要な最終的な「スタイル」の例を次に示します。

| POSITION |column 2|column 3|
| x  |  Y  |        |        |
------------------------------
| 10 | 20 |value|value
4

3 に答える 3

1

あなたはこれを考えすぎていると思います。あなたの例に基づいて、データにグループ化を使用していない場合は、使用していないように見えますが、これはかなり基本的なものです。

列ヘッダーは、静的なテキスト フィールドにすぎません。列ヘッダー バンドのどこにでも追加できます。JRXML のスタブ化された例を次に示します。

<?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="report1" language="groovy" pageWidth="612" pageHeight="792" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b478862e-b118-4290-8664-eae9b2966b31">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <parameter name="GROUP_BY" class="java.lang.String">
        <defaultValueExpression><![CDATA[]]></defaultValueExpression>
    </parameter>
    <field name="x" class="java.lang.String"/>
    <field name="y" class="java.lang.String"/>
    <field name="column1" class="java.lang.String"/>
    <field name="column2" class="java.lang.String"/>
    <columnHeader>
        <band height="40" splitType="Stretch">
            <staticText>
                <reportElement uuid="039d11f3-52eb-4717-9c83-34cbdcb81d6a" x="0" y="20" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[x]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="f0d66af8-19c2-4d50-9d1a-37b1162a75a8" x="100" y="20" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[y]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="44e3960a-31f3-444c-ad32-061af30cf82c" x="200" y="0" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[column1]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="6d468249-5242-4cf6-a4db-7995bdea15ba" x="300" y="1" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[column2]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="461dc8bb-a938-42ed-86c5-006732fbba4f" x="0" y="0" width="200" height="20"/>
                <textElement/>
                <text><![CDATA[Position]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="23" splitType="Stretch">
            <textField>
                <reportElement uuid="e2aff92b-0f47-4f78-9f49-c861c04533be" x="0" y="3" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{x}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="6091fb48-0bb6-422e-8520-b6e2d6e5cce1" x="100" y="3" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{y}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="8b32925f-256c-4026-a3f1-8e435a12ccd0" x="200" y="3" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{column1}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="8b9d0540-da1a-41bf-b7e8-5f2cf9141fb6" x="300" y="3" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{column2}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>
于 2012-07-03T20:02:12.903 に答える
0

私は同じ問題を抱えていましたが、テーブルコンポーネントを使用していて、行がない場合に最初の列が表示されないようにする必要がありました (列ヘッダーのアプローチでは、希望どおりに機能しませんでした)

したがってcolumnGroup、必要なすべての列 (例では POSITION 列) をラップして、表示したくない行の高さを 0 に設定して、この問題を解決しました (以下の例の JRXML 部分では、、および)columnGroupのタグtableFootercolumnHeadercolumnFooter

以下の例は、このような結果になる表コンポーネントです。

+-------------------+
|     POSITION      |                       
+-------------------+---------------+---------------+
|    x    |    y    |    Column1    |    Column2    |
+---------+---------+---------------+---------------+
|  $F{x}  |  $F{Y}  |  $F{column1}  |  $F{column2}  |
+-------------------+---------------+---------------+

JRXML コード:

<componentElement>
<reportElement x="0" y="0" width="555" height="100" uuid="b3ffd7ef-3e0f-48be-8405-545f6c9cd313"/>
<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="YOURTABLEDATASET" uuid="5f5f5dc3-96fa-40a7-b9ce-0741bf321af6">
        <connectionExpression>YOURCONNECTIONORDATASOURCE</connectionExpression>
    </datasetRun>
    <jr:columnGroup width="340" uuid="10695d6d-0223-4bf7-93e0-82d8ff720988">
        <property name="local_mesure_unitheight" value="pixel"/>
        <jr:tableHeader height="40">
            <staticText>
                <reportElement x="0" y="0" width="340" height="40" uuid="708fab06-2d51-4e70-b17a-4c3b30ebf188"/>
                <textElement verticalAlignment="Bottom"/>
                <text><![CDATA[POSITION]]></text>
            </staticText>
        </jr:tableHeader>
        <jr:tableFooter height="0"/>
        <jr:columnHeader height="0"/>
        <jr:columnFooter height="0"/>
        <jr:column width="170" uuid="80cd4d4e-f92d-4144-8f03-1fdf8662d52f">
            <jr:columnHeader height="30">
                <staticText>
                    <reportElement x="0" y="0" width="170" height="30" uuid="ae24719f-dd68-41d8-9e1f-fffb458309d0"/>
                    <text><![CDATA[x]]></text>
                </staticText>
            </jr:columnHeader>
            <jr:detailCell height="30">
                <textField>
                    <reportElement x="0" y="0" width="170" height="30" uuid="53731196-ea6f-4378-b99a-22ee9f9ea4ba"/>
                    <textFieldExpression><![CDATA[$F{x}]]></textFieldExpression>
                </textField>
            </jr:detailCell>
        </jr:column>
        <jr:column width="170" uuid="ae1bfc2b-69c6-422e-8db0-150ec8d66973">
            <jr:columnHeader height="30">
                <staticText>
                    <reportElement x="0" y="0" width="170" height="30" uuid="93c5f52e-67d6-40c9-afd8-1e867104d9b0"/>
                    <text><![CDATA[y]]></text>
                </staticText>
            </jr:columnHeader>
            <jr:detailCell height="30">
                <textField>
                    <reportElement x="0" y="0" width="170" height="30" uuid="60320299-d2fa-46d6-87c0-25dbe7b14d92"/>
                    <textFieldExpression><![CDATA[$F{y}]]></textFieldExpression>
                </textField>
            </jr:detailCell>
        </jr:column>
    </jr:columnGroup>
    <jr:column width="100" uuid="a2eed3c8-5862-4026-b5b3-dd516f850b44">
        <jr:columnHeader height="30">
            <staticText>
                <reportElement x="0" y="0" width="100" height="30" uuid="9b694559-1a3d-4e68-abfe-7cd95ad447de"/>
                <text><![CDATA[column1]]></text>
            </staticText>
        </jr:columnHeader>
        <jr:detailCell height="30">
            <textField>
                <reportElement x="0" y="0" width="100" height="30" uuid="6c22c7d4-dde9-42f7-8564-a229e235a186"/>
                <textFieldExpression><![CDATA[$F{column1}]]></textFieldExpression>
            </textField>
        </jr:detailCell>
    </jr:column>
    <jr:column width="100" uuid="d57153ea-a883-4b2e-b351-b0950f4aae0d">
        <property name="local_mesure_unitwidth" value="pixel"/>
        <jr:columnHeader height="30">
            <staticText>
                <reportElement x="0" y="0" width="100" height="30" uuid="e64920ab-19de-4108-a63b-fea1484b5ba3"/>
                <text><![CDATA[column2]]></text>
            </staticText>
        </jr:columnHeader>
        <jr:detailCell height="30">
            <textField>
                <reportElement x="0" y="0" width="100" height="30" uuid="bfafd138-ed50-4fb4-91f4-61df26ab66fa"/>
                <textFieldExpression><![CDATA[$F{column2}]]></textFieldExpression>
            </textField>
        </jr:detailCell>
    </jr:column>
</jr:table>

于 2013-12-19T15:15:57.753 に答える