3

JasperReports(v.4.0.6)とDynamicJasperReports(v.4.0.1)を使用してJavaプロジェクトを開発しています。Eclipse用の最新のiReportプラグインを使用してカスタム.jrxmlを生成しました。

私の.jrxmlレポートでは、ユーザーからの入力に応じてJavaプログラムによって入力される2つのパラメーターを定義しています。

<parameter name="ReportTitle" class="java.lang.String"/>
<parameter name="DataFile" class="java.lang.String"/>

次に、このチュートリアルで述べているように、いくつかのパラメーターを事前定義しておく必要があるため、コードからsetTemplate()メソッドを呼び出します。

String table_template = "report_templates/TableTemplate.jrxml";
Map<String, String> params; 
... 
DynamicReportBuilder drb = new DynamicReportBuilder();
drb.setTemplateFile(table_template, true, true, true, true);
DynamicReport dr = drb.build(); 

次のようにして、パラメータをテンプレートに渡します。

params.put("ReportTitle", "CustomTitle");
params.put("DataFile", "CustomSubtitle");

ただし、レポートを生成すると、DJライブラリが値を挿入する場所を事前に保存していないかのように、これら2つのフィールドが空白で表示されます。他のエラーや例外は発生しません。

Jasperライブラリを以前のバージョンにダウングレードしようとしましたが、どちらも役に立ちませんでした。

誰かが私が間違っていることについての洞察を私に与えることができれば幸いです。

前もって感謝します。

4

1 に答える 1

2

パラメータが jrxml ですでに定義されているということは、カスタム式でその値を次のように取得できることを意味するだけです。

params.get("paramName")

事前登録なし ( drb.addParameter(...) )

いつでもカスタム式列を作成し、カスタム式コードにブレークポイントを配置して、実行時にパラメーター マップの内容を確認できます。

DJ 以外のパラメーター、たとえばヘッダーやフッター テキストを使用する場合、問題はないはずです。

于 2012-07-13T21:10:16.710 に答える