1

最初の行から最後の行まで連続して、テーブルのジャスパーレポートにデータ/値を表示したい..しかし、レコードがBigDecimalまたはDoubleの場合、文字列型の値を表示することしかできません。

これは私のレポートです:

 Name       Amount    Price

 dendi      150.0     12.500
 patricia 
 Kelvin 
 Andrew

金額と価格はテーブルの最後のレコードを示したばかりなので、次のような Java プロジェクトでパラメーターを使用してそれらを呼び出す場合はどうすればよいですか。

paramater.put("name",name);
parameter.put("amount", amount);
4

1 に答える 1

2

テーブルの各レコードが Map に入り、すべてのマップがコレクションに追加されるJRMapCollectionDataSourceを使用できます。パラメータを使用すると、レコードごとに繰り返されません。

たとえば、あなたの場合、マップとマップのコレクションを作成できます

Collection<Map<String, Object>> records = new ArrayList<Map<String,Object>>();

Map<String, Object> record1 = new HashMap<String, Object>();

record1.put("Name","dendi");
record1.put("Amount",amount1); //amount1 is a BigDecimal for 150.0
record1.put("Price", price1); // price1 is a Double for 12.500

records.add(record1); // add each record to your map

Map<String, Object> record2 = new HashMap<String, Object>();
record2.put("Name","patricia");
record2.put("Amount",amount2); //amount2 is a BigDecimal 
record2.put("Price", price2); // price2 is a Double 

records.add(record2); // add each record to your map

jrxmlでキーと同じフィールドを定義します(名前、金額、価格 - 後の 2 つは BigDecimal/Double 型)。Jasper Reports ライブラリは、オブジェクトから BigDecimal または Double へのキャストを処理します。お役に立てれば。

PS: このコードは説明のみを目的としています

于 2012-09-04T07:59:59.963 に答える