web-dev-qa-db-ja.com

Jaspersoft iReport Designerの列のすべての値を合計する方法は?

以下にJaspersoft iReport Designerの同様のレポートがありますが、縦列「Doctor Payment」にあるすべての値を合計して合計「1601」を取得する方法を理解できませんか?この列の長さは可変です(つまり、行の数はデータベースのサイズと更新頻度によって異なります)。

列内のすべての値の合計を与える$V{COLUMN_COUNT}(実際には行数を与えない、ここでは5)のような変数はありますか?いいえの場合、どうすればいいですかsum

Doctor ID   Doctor Payment
 A1             123
 B1             223
 C2             234
 D3             678
 D1             343
Total          1601
26
Sagar Nikam

タスクを解決するのは非常に簡単です。 "Doctor Payment"列の値を合計するための新しい変数を作成して使用する必要があります。

あなたの場合、変数は次のように宣言できます:

<variable name="total" class="Java.lang.Integer" calculation="Sum">
    <variableExpression><![CDATA[$F{payment}]]></variableExpression>
</variable>
  • 計算タイプSum;
  • Reset typeisReport;
  • 変数式$ F {payment}です。ここで $ F {payment}は合計を含むフィールドの名前です(Doctor Payment)。

動作例。

CSVデータソース:

 doctor_id、payment 
 A1,123 
 B1,223 
 C2,234 
 D3,678 
 D1,343 

テンプレート:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ...>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="doctor_id" class="Java.lang.String"/>
    <field name="payment" class="Java.lang.Integer"/>
    <variable name="total" class="Java.lang.Integer" calculation="Sum">
        <variableExpression><![CDATA[$F{payment}]]></variableExpression>
    </variable>
    <columnHeader>
        <band height="20" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="10" isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Doctor ID]]></text>
            </staticText>
            <staticText>
                <reportElement x="100" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="10" isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Doctor Payment]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement x="0" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{doctor_id}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{payment}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <summary>
        <band height="20">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement>
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Total]]></text>
            </staticText>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <box leftPadding="10"/>
                <textElement>
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <textFieldExpression><![CDATA[$V{total}]]></textFieldExpression>
            </textField>
        </band>
    </summary>
</jasperReport>

結果は次のようになります:

Generated report via iReport's preview


JasperReports Ultimate Guide で多くの情報を見つけることができます。

63
Alex K

列のiReportsカスタムフィールド(合計、平均など)

  1. 変数を右クリックし、変数の作成をクリックします

  2. 新しい変数をクリックします

    a。右側のプロパティに注意してください

  3. それに応じて変数の名前を変更します

  4. 値クラス名を正しいデータ型に変更します

    a。 3つのドットをクリックして検索できます

  5. 正しいタイプの計算を選択してください

  6. 式を変更する

    a。小さなアイコンをクリックします

    b。計算を行う列を選択します

    c。完了をクリックします

  7. 初期値式を0に設定

  8. 増分タイプをnoneに設定します

  9. Incrementerのファクトリクラス名は空白のままにします
  10. リセットタイプの設定(通常はレポート)

  11. 新しいテキストフィールドをステージにドラッグします(通常は最終ページフッターまたは列フッター)

  12. 新しいテキストフィールドをダブルクリックします
  13. 式「テキストフィールド」をクリアします
  14. 新しい変数を選択します

  15. 完了をクリックします

  16. 新しいテキストを望ましい位置に配置します
12
Matt