0

単純な式でテキスト フィールドを追加しようとしています。

$F{foo}

ページ フッター バンドに。ただし、どの評価時間を選択しても、常にfoo最初の行からフィールドの値が表示されるようです。最後の行から値を表示させることは可能ですか?

4

1 に答える 1

0

このサンプルを試すことができます:

<?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="show_last_row_in_footer" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="106e6d12-70ca-44b4-a55d-845952f57346">
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="name" class="java.lang.String"/>
    <field name="id" class="java.lang.String"/>
    <sortField name="name"/>
    <variable name="firstValueOnPage" class="java.lang.String" resetType="Page" calculation="First">
        <variableExpression><![CDATA[$F{id}]]></variableExpression>
    </variable>
    <columnHeader>
        <band height="20">
            <staticText>
                <reportElement uuid="5f3d2dfa-b44c-43eb-ac49-aa4ebb81b733" x="0" y="0" width="100" height="20"/>
                <box>
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Id]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="5f3d2dfa-b44c-43eb-ac49-aa4ebb81b733" x="100" y="0" width="100" height="20"/>
                <box>
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Name]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="50" splitType="Stretch">
            <textField>
                <reportElement uuid="55abd358-2770-4337-a117-3f8592ce0a34" x="100" y="0" width="100" height="50"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="55abd358-2770-4337-a117-3f8592ce0a34" x="0" y="0" width="100" height="50"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <pageFooter>
        <band height="43" splitType="Stretch">
            <textField evaluationTime="Page">
                <reportElement uuid="e147d45b-45a3-4749-829f-b648a2c7805f" x="0" y="0" width="163" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA["The last id on page: " + $F{id}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="bbf6f99a-c60c-42e9-8147-97b9f3ee4316" x="326" y="0" width="138" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA["The first id on page: " + $V{firstValueOnPage}]]></textFieldExpression>
            </textField>
            <textField evaluationTime="Report">
                <reportElement uuid="e147d45b-45a3-4749-829f-b648a2c7805f" x="163" y="0" width="163" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA["The last id for report: " + $F{id}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="9ecd61c0-98fa-4282-a0d1-cd8cd325f987" x="435" y="23" width="80" height="20"/>
                <textElement textAlignment="Right"/>
                <textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
            </textField>
            <textField evaluationTime="Report">
                <reportElement uuid="1c663c4d-1279-447a-91d6-6d03bc53a841" x="515" y="23" width="40" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
            </textField>
        </band>
    </pageFooter>
</jasperReport>

このCSV データソースでサンプルをテストしました:

Oslo,45
Berne,22
Boston,32
Chicago,39
Chicago,35
New York,44
Chicago,11
Dallas,47
Oslo,42
Dallas,43
Paris,5
San Francisco,48
Paris,18
Dallas,4
Boston,23
Dallas,0
Dallas,19
Dallas,10
Lyon,38
Lyon,2
Dallas,40
Dallas,36
Dallas,37
Lyon,28
Lyon,17
New York,46
New York,41
Paris,25
San Francisco,7
Berne,9

結果のレポートの最初のページは次のようになります ( iReport v 4.8.0に組み込まれています):

iReport によって生成されたレポートの最初のページ

結果のレポートの最後のページは次のようになります ( iReport v 4.8.0に組み込まれています):

ここに画像の説明を入力

ページの最後の行の値 (青色) を取得するために、デフォルトのEvaluationTimeまたはEvaluationTimeがPageの値に等しい式を使用しました。

ページの最初の行の値 (赤色) を取得するために、次の属性を持つ変数 ( firstValueOnPage ) を使用しました:
resetType :ページ
計算:最初

レポート全体の最後の行(緑色) の値を表示するために、 evaluationTime equals Report value を使用しました。


iReport 4.8.0を使用しました。

名前フィールドによるソートを追加しました。並べ替えなしでデータに対して同じ動作が得られます。

于 2013-04-26T21:17:53.910 に答える