2009-08-04 27 views
5

私は、JasperReportsを既存のWebアプリケーションに組み込んで、レポートを作成しています。 Webアプリケーションは、古く複雑な既存のデータベースの上に位置し、レポート作成者がレポートを直接作成するのには適していません。JasperReportsとカスタムデータソース

私が見たいのは、私たちの既存のデータアクセス層の周りに何らかのラッパーを書くことです(は、前述の古代の複雑なデータベースと簡単に話すように書かれています)。誰もがJasperResportsのカスタムデータソースを作成したり、このようなことをする経験がありますか?私の要件はどちらか明確ではないため、おそらくです -

は、私は私はおそらく私の質問に明確ではなかったと思います

を更新しました。私は、エンド・ユーザーがiReportのようなものを使ってデータベースに対してレポートを作成し、その後、JasperReportServerを使用してレポートのスケジューリングや表示を行う方法を提供したいと考えています。しかし、データベースは本当に厄介で、このように使用するように設計されていませんでした。私たちは、webappがそれと対話するために使用するアクセスレイヤーを持っています。私はエンドユーザーをDBから遠ざけておきたいと思っています。アクセスレイヤーを使用したカスタムデータソースの考え方は良い選択肢でした。しかし、私はそれを行う方法に関するほとんどの文書を見つけました。たぶんそれは私が思うよりもはるかに簡単です、そして、私はちょうど死んでシンプルなものを複雑すぎるようにしようとしています。

は答えを

感謝を更新しました。私は自分の問題が解決されたとは思わないが、答えが要求段階に伝えるのに役立ったと思う。

答えて

3

すべてのJasperReportsテンプレートは、2つの異なるデータソースを持つことができます。 1つは、jdbcドライバを使用してデータベースに直接接続するか、場合によってはJava Bean(POJO)のコレクション(通常はリスト)を提供します。

JasperReportsテンプレートは、メソッド定義に似ています。それは名前、すなわちコンパイルされたJRオブジェクトおよびパラメータ(データソースおよび最も普及しているいくつかのJavaタイプの入力パラメータのリスト)を有する。

私の提案は、iReportツールを使用することです。 JasperReportsバンドルに付属のサンプルを開き、分析して調整します。それほど複雑ではありません。コンパイルしてクラスパスに追加し、JasperReportsのテンプレートをオーサリング

UPDATE

まかせの顧客は、あなたがあまりにも多くのあなたのシステムを開く必要がありますことを意味します。通常、クライアントは望ましいレポートの説明を提供し、開発者はデータソースを作成してテンプレートを設計します。 JasperReportsはパラメータを持つことができます。 UIを使用してこれらのパラメータを公開すると、ランタイム中のレポートの動作を変更できます。

もっと柔軟にする必要がある場合は、JasperReportsが提供するAPIを使用してオーサリングテンプレートを作成してください。高度なユーザーがシステムと通信してオンザフライレポートを作成するためのシンプルなDLSを想像できます。

+0

私は彼らが複数のデータソース。計画は、レポートのオーサリングにiReportを使用することです。私がここで紛失しているのは、自分のアクセスレイヤーを照会することだと思います。私が見た例はどれもそれについて何も示していません。私は質問を更新しました。 –

4

ジャスパーレポートでは、「JavaBean」データソースを使用できます。データを任意のJava Bean構造体にロードし、それに対してレポートを作成することができます。うまくいく。

「カスタムデータソース」セクションhereを参照してください。

+0

ありがとうございました。私はすでにそれを見てきましたが、それは基本的な例しか示していません。レポートからさまざまなパラメータを引き出す方法を知ることができます。私が見ることができないのは、レポート作成者に利用可能なフィールドを提示する方法です。 –

+1

これは、すべてのJava Beanを含むjarファイルを作成してレポートを作成する方法です。次に、iReportのクラスパスにjarファイルを追加します。上記のリンクの図3.5に示すように、プロバイダクラスに配置します。それはしばらくしていますが、私はそれがうまくいくと思います。 –

+0

@Jacob Schoenこんにちは、私はJava beanにパラメータを渡すことができますか?そして、ビジネスロジックを処理することができます。 – coastline

関連する問題