web-dev-qa-db-ja.com

DynamicReportsとDynamicJasper

バックグラウンド

Java DynamicReports を使用したEEアプリケーションの開発でこれまでは十分です。最近 DynamicJasper を見つけました。それが可能かどうか知りたいですより良い選択になります。

DynamicReportsの方が support とコミュニティの方が優れていることがわかります。

ご質問

  • 両方のライブラリでの経験は何ですか?
  • どちらがより良い機能を提供しますか?
  • お互いの長所と短所は何ですか?

ありがとうございました!

28
kospiotr

この質問では、JasperReports APIを使用して(直接的または間接的に)レポートを作成するいくつかの方法に触れます。

DynamicReports(DR)とDynamicJasper(DJ)は、JasperReports APIで一般的なタスクを抽象化(および簡略化)する2つの無料のオープンソースソフトウェアツールです。プログラムによるレポートの開発を検討している場合、これらのツールを使用すると開発時間を短縮できます。

DRおよびDJ APIパッケージには、次の共通機能があります。

  • ダイナミックなデザイン
  • 動的な列幅
  • 安定
  • コードとiReportテンプレートを組み合わせる

私は報告する

iReportは、JasperReportsメソッドを直接呼び出す複雑さを隠すユーザーインターフェイスです。言い換えると、iReportは、コードをコーディングするよりも、レポートを作成するための洗練された親しみやすい方法ですJava手動で呼び出します。最終結果は同じです:コンパイル済みレポート(.jasper)ファイル。

JasperReports API

JasperReports APIは、Javaクラスのセットをプログラマーに提供し、コンピューターがビジネスニーズに基づいてレポートを作成するようにします。このAPIにより、例えば、ユーザーが選択できるWebサイトを開発できます。レポート内で必要な列を作成し、レポートテンプレートをオンザフライで作成します。テンプレートの準備ができたら、ユーザーはレポートを実行して結果を確認できます。

IReportに欠けている機能の1つは、列幅を動的にサイズ変更する機能です。プログラマーは、JasperReports APIを直接使用することにより、レポートの結果セットに最適な列幅のレポートテンプレートを作成できます。

問題は、JasperReports APIが非常に複雑であり、その一部がより多くのドキュメントを使用する可能性があることです。

DynamicJasper

DynamicJasperのWebサイトでは、JasperReports APIに対して次の benefits について言及しています。

  • 自動レイアウト
  • バーコード
  • クリーンExcelサポート
  • Struts&Grailsのサポート

APIの例は、オブジェクト指向の原則がうまく機能していることを示しています。 Webサイトには多くの例が掲載されており、Javadocへのコメントはまばらです。 forum はDynamicReportsよりもアクティブです。

更新:プロジェクトは現在 GitHub にあります。これ以上フォーラムはありませんが、 プロフェッショナルサポート をリクエストできます

DynamicReports

DynamicReportsのWebサイトでは、JasperReports APIに対して次の benefits について言及しています。

  • 継承されたデザイン

Webサイトには多くの例が掲載されていますが、残念ながらJavadocには多くのコメントがありません。さらに、 forum は、JasperReportsまたはDynamicJasperのどちらよりもアクティブではないように見えます。

概要

DynamicReportsに満足している場合は、それに固執すると思いますが、そうでない場合はDynamicJasperを試してください。

51
Scott

上記のさまざまなレポートオプションの使用と評価を数日行ったところ、2セントをミックスに追加すると思いました。同じレポート(Profit&Loss)をJRXML、Dynamic Jasper、Dynamic Reportsで作成しました。 PDFとExcelの両方の形式で出力し、動的列を処理する機能を持つソリューションが必要でした。

これが私が見つけたものです:

[〜#〜] jrxml [〜#〜]

IReportを使用する場合と使用しない場合で使用するのは非常に退屈な作業です。以前にJRXMLを使用した経験がありますが、PDFとExcelの両方でレポートが正しく表示されるようにすることは、実際の戦いであることがわかりました。非表示にして表示することにより、多くの回避策を使用する必要がありました。 PDFまたはExcelになるかどうかに基づいた一部のフィールド。動的列は適切に処理されません。

動的ジャスパー

最初は、Dynamic Jasperを使用するのはかなり良いと思いましたが、レイアウトを完全に制御したり、レポートに追加のコントロールを配置したりするときにいくつかの問題がありました。レポートが列ベースの場合、正常に機能するようです。詳細セクションにサブレポートを追加する方法を理解できなかったため、グループヘッダーまたはフッターに追加する必要がありました。

動的レポート

私の意見では、動的レポートは動的ジャスパーレポートを作成する最も柔軟で簡単な方法です。構文は簡単で直感的で、すぐに使い始めることができます。 Dynamic Jasperのような列ベースのレポートを実行しますが、コンポーネントの海峡をレポートのタイトル、詳細、またはその他の領域にドロップするオプションもあります。フローレイアウトを使用しているため、コンポーネントをレポートと表示にこの順序でドロップするだけです。両方へのエクスポートPDFおよびExcelは一貫していた。

動的レポートの最後の最も重要な利点は、サポートと更新アクティビティです。 DynamicJasperは、半年以上にわたってフォーラムの活動やサポートがありませんでしたが、DynamicReportsは積極的に更新されるだけでなく、開発者(Ricardo Mariaca)も積極的にフォーラムを監視し、質問に迅速に対応します。

8
brett.carr

1年ほど前、DJに出会いました。回避策を必要とするいくつかのマイナーな不具合があったため、DJでの私の経験は最高でした。しかし、プロジェクトがほぼ完了したときにこれらの問題を発見し、それらの回避策はすでに存在していたため、DJを使い続けました。

数か月後、私はDRを見つけ、DRはDJよりも構造が優れていることを知りました。次のプロジェクトでは間違いなくDRを使用します。

正直なところ、私はDJ 3.1.xシリーズを使用しており、新しいバージョンは試していません。また、DRはまだあまり使用していません。

4
Meam

私はDynamicJasperの大ファンですが、最近DynamicReports 4.0.1に切り替えました(現時点では、DynamicJasperの最新リリースは5.0.3です)。可読性と使いやすさの点ではるかに優れたAPIを備えたDynamicReportsは、レポートをその場で設計する際の柔軟性を大幅に高めます。また、ウェブサイトには、新しいアイデアを育むサンプルや、すぐに始めるのに役立つチュートリアルがたくさんあります。この link も良い出発点です。

DynamicReportsを使い始めた唯一の問題は、JasperReportsとDynamicJasperを使用して、最初にJasperReportを作成し(設計)、次にJasperReportオブジェクトをデータソースと一緒にJasperFillManager.fillReport(...)メソッドに渡して、 JasperPrintオブジェクト。 JasperPrintでは、report()。toJasperPrint()メソッドでJasperPrintを作成する前にデータソースを設定するだけです。コンポーネントビルダーまたはそのソースコード内のユーティリティの使用方法を検索して、特別な機能を利用する方法を確認できます。

1
Youness