No、Name、Address、Phone、Emailの列があるテーブルがあります。 my Java classからパラメータを渡さずにNo
列に自動番号を設定したい。EL
またはJasperReport
でそれを解決する何かがありますか。バージョン5.1を使用しています。
注:単純な表として、ソースとテンプレートは提供していません。
これを試して
テキストフィールドを配置し、式エディタの下にこれを貼り付けます$V{REPORT_COUNT}
そしてjasperjrxmlを保存して実行します
$V{REPORT_COUNT}
は組み込み変数です。
最終値に関心がある場合は、テキストフィールドの評価時間を「レポート」に設定します。
整数値の代わりにアルファベットを印刷することもできます。つまり、1,2,3 ...の代わりにa、b、c ...を印刷できます。
そのために、シーケンス番号として印刷するアルファベットのリストを渡す必要があります。ここでは、次のコードを使用して文字リストを作成します。
List<String> characters = new ArrayList<String>(26);
for (char c = 'a'; c <= 'z' ; c++) {
characters.add(String.valueOf(c));
}
parametersMap.put("charactersList", characters);
ここで、Designに次の式を追加して、結果を数値ではなくアルファベットで表示します。
<textFieldExpression><![CDATA[$P{charactersList}.get(($V{REPORT_COUNT}-1)%26)]]></textFieldExpression>
これにより、シーケンスがアルファベットとしてレンダリングされ、指定されたインデックスのリストに保存されます。