33

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

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

Doctor ID   Doctor Payment
 A1             123
 B1             223
 C2             234
 D3             678
 D1             343
Total          1601
4

2 に答える 2

79

あなたの仕事を解決するのはとても簡単です。「Doctor Payment」列の値を合計するための新しい変数を作成して使用する必要があります。

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

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

作業例。

CSV データソース:

doctor_id,支払い
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>

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

iReport のプレビューを介して生成されたレポート


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

于 2012-11-25T15:57:48.990 に答える
21

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

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

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

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

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

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

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

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

  6. 表現を変える

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

    b. 計算する列を選択します

    c. クリックして終了

  7. 初期値式を 0 に設定

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

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

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

  12. 新しいテキスト フィールドをダブルクリックします。
  13. 「テキストフィールド」という表現をクリア</li>
  14. 新しい変数を選択します

  15. クリックして終了

  16. 新しいテキストを適切な位置に配置します</li>
于 2016-05-12T18:38:37.667 に答える