3

Jasper Reports で Bean のパラメータにアクセスするにはどうすればよいですか?

Jasper Reports でモデル (コレクションではない) のデータを表示する必要があります。

モデルを Map のパラメーターとして Jasper Report に渡します。

Map<String,Object> params = new HashMap<String,Object>();
params.put("object", object);

このオブジェクトには、レポート ヘッダー セクションに表示する必要があるデータのフィールドが含まれています。

jsp のように${object.name}, ${object.phone}、JasperReports でこれをどのように達成するのでしょうか?

やってみましたがうまくいき$P{object.name}ません。

誰でもこれを達成する方法を教えてもらえますか?

4

1 に答える 1

11

これを行うには、いくつかの手順があります。

1)パラメータを定義します。 これは、パラメータの型の完全なパッケージ名とクラス名になります。何かのようなもの:

<parameter name="object" class="com.mystuff.User"/>

2)必要な値のゲッター メソッドを呼び出し ます。適切なフィールドにテキスト フィールドを追加します。User クラスのメソッドの値を使用したい場合getId()、テキストフィールドは次のようになります。

<textField>
    <reportElement uuid="09bf47a8-8fc7-45c5-911a-c79c3d405ada" x="205" y="22" width="100" height="20"/>
    <textElement/>
    <textFieldExpression><![CDATA[$P{parameter1}.getId()]]></textFieldExpression>
</textField>

3) iReport でクラスパスを設定し ます。iReport を使用してレポートをデザインしている場合は、com.mystuff.User クラスのコンパイル済みバージョンがどこにあるかを iReport に伝える必要があります。Eclipse を使用している場合は、プロジェクトの bin フォルダーを指すだけで済みます。コンパイル済みプロジェクトの jar がある場合は、それを指すことができます。クラスパス設定は にありますTools -> Options -> Classpath Tab

于 2012-07-06T20:34:20.547 に答える