以下に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
タスクを解決するのは非常に簡単です。 "Doctor Payment"列の値を合計するための新しい変数を作成して使用する必要があります。
あなたの場合、変数は次のように宣言できます:
<variable name="total" class="Java.lang.Integer" calculation="Sum">
<variableExpression><![CDATA[$F{payment}]]></variableExpression>
</variable>
動作例。
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>
結果は次のようになります:
JasperReports Ultimate Guide で多くの情報を見つけることができます。
列のiReportsカスタムフィールド(合計、平均など)
変数を右クリックし、変数の作成をクリックします
新しい変数をクリックします
a。右側のプロパティに注意してください
それに応じて変数の名前を変更します
値クラス名を正しいデータ型に変更します
a。 3つのドットをクリックして検索できます
正しいタイプの計算を選択してください
式を変更する
a。小さなアイコンをクリックします
b。計算を行う列を選択します
c。完了をクリックします
初期値式を0に設定
増分タイプをnoneに設定します
リセットタイプの設定(通常はレポート)
新しいテキストフィールドをステージにドラッグします(通常は最終ページフッターまたは列フッター)
新しい変数を選択します
完了をクリックします