2

メイン レポートとサブレポートを含む iReport で作成したレポートを起動しようとしています。iReport では、サブレポートは正常に起動し、データが含まれていますが、Java コード内から起動しようとすると、サブレポートが空白になります。

私がこれまでに行ったこと:

  • サブレポートへのパスを定義するために使用される「SUBREPORT」と呼ばれるメイン レポートに文字列パラメーターがあります。例: 「E:\java\ReportLauncher\reports\test_subreport1.jasper」

  • メイン レポートのサブレポート式は次のように設定されます: $P{SUBREPORT}

  • サブレポート接続式は次のとおりです: $P{REPORT_CONNECTION}

  • また、メイン レポートのフィールドにマップされる $F{InviInvNo} に設定された "INVOICE_NUMBER" という名前のサブレポート パラメーターも定義しています。

私のJavaコードには、次のものがあります。

HashMap<String, Object> paramHash = new HashMap();
paramHash.put("INVOICE_NUMBER", invoiceID);
paramHash.put("REPORT_CONNECTION", this.conn);
paramHash.put("SUBREPORT", subReportPath);

JasperPrint jasperprint = JasperFillManager.fillReport(this.reportPath, paramHash, this.conn);

メイン レポートは正常に作成され、データが入力されています。ただし、サブレポート領域は空白です。私が間違っていることについて何か考えはありますか?

前もってありがとう、アンディ。

4

1 に答える 1

1

サブレポートクエリについては何も言及していないので:

サブレポートで詳細バンドを使用している場合は、レポートのデータ クエリが必要になります。

古い iReport では、DataメニューからReport Queryクエリを選択してここに記述します。レコードが 1 つだけ必要な場合 (つまり、詳細バンドが 1 回だけ必要な場合) は、ダミー テーブルを使用できます。お気に入り:

SELECT 'a' FROM DUMMY

それ以外の場合、詳細バンドを使用したくない場合は、クエリを使用せずに他のバンドを表示するオプションがあります。Editメニューから を選択しReport Properties、タブの下でMore...フラグWhen no dataAll Sections, no detail

于 2010-04-04T13:14:58.310 に答える