ReportTemplate を使用した Jasper レポートのオーサリング
Jasper Studio との統合
設計ファイル (.jrxml) は、オープンソースのレポートライブラリである Jasper レポートライブラリによって生成されます。これらの設計ファイルは、Jasper Studio で実行されるすべてのオーサリングおよび設計の XML 表現です。設計にドラッグされたチャートやテーブルなどのエレメントは、自動的に JRXML ファイルに取り込まれます。Jasper Studio は Eclipse ベースのオーサリングプラットフォームであり、これを使用して Jasper 設計を作成できます。
|
Jasper Studio は、Eclipse IDE プラグインとして設定できます。
|
Jasper Studio で Windchill JAR ファイルを統合するための手順は次のとおりです。
1. 新規 Jasper レポートプロジェクトを作成します。
2. プロジェクトプロパティウィンドウで Java のビルドパスを開き、このビルドパスに Windchill から dataset.jar を追加します。データセット jar には、dataset30112020105242.jar のように日時がサフィックスとして付けられています。
3. Jasper プロジェクトに対して > 手順を実行します。
4. 以下に示すように、{STUDIO_INSTALLATION_DIR}\plugins フォルダ内の Jasper Studio ディレクトリに dataset.jar を追加します。Jasper Studio の PREVIEW 機能にはプラグインフォルダから JAR ファイルを読み取る独自のクラスパスがあるので、これは必須です。
5. Jasper Studio を再起動します。
Jasper Studio でのオーサリング
Jasper Studio との Windchill の統合の一部として、WNCJRDataSource が実装されており、これにより ReportTemplateJRDataSource を介してレポートテンプレートがサポートされています。
Jasper レポートをオーサリングする手順は次のとおりです。
1. Jasper プロジェクトが Jasper Studio で設定されていなければなりません。「Project」と「Jasper Report」オプションを右クリックします。
2. Jasper ファイルの名前を指定し、「Next」をクリックします。
3. 空のレコードアダプタを作成するには、 > > の順に選択します。
4. プロジェクトの「Outline」には「Fields」はありません。
5. 「Design」パネルの「Basic Elements」パレットから、「Table」エレメントを「Design」エディタの詳細領域にドラッグします。
6. 「Table Wizard」で、新規データセットオプションを使用して「Create a Table」を選択し、「Next」をクリックします。1 つの Jasper 設計に対して複数のデータセットまたは複数のレポートテンプレートを定義できます。新規データセットを作成するたびに、以前に Jasper 設計で作成したデータセットが追加のオプションとしてウィザードに表示されます。
7. 「Dataset」ウィザードには、所定のソースからデータセットを作成するオプションがあります。「Create new dataset from a connection or Data Source」を選択し、データセット名を指定します。「Next」をクリックします。
8. 「Dataset Wizard」で、「New」をクリックして、必要なレポートテンプレートに基づいてアダプタを作成します。または、レポートテンプレートに基づいて既存のアダプタを選択します。
9. 「Data Adapter Wizard」で、ハイライトされているオプションの下をクリックし、「Next」をクリックします。
10. アダプタの名前を指定し、「Finish」をクリックします。
11. 以下に示すように、「Open Type Wizard」で、必要なレポートテンプレートプロバイダクラスを選択します。PartReportTemplate があるので、それを選択し、「OK」をクリックします。
12. 「Data Adapter Wizard」で、クラス名とアダプタ名を確認し、「Finish」をクリックします。
13. これで、新しく作成したアダプタが「Data Source Wizard」にデフォルトの選択として表示されます。「Next」をクリックします。
14. 「Fields Wizard」で、「Dataset Fields」からレポートテンプレートのすべてのフィールドまたは関連するフィールドを選択し、「Fields」セクションに移動して、「Finish」をクリックします。
15. レポートプロジェクトの > > に移動します。以下に示すように、作成したすべてのフィールドを各コラムに配置できるようにテーブル内にコラムを作成します。
16. コラムを作成した後、「Table」の各コラムに「Fields」をドラッグできます。
17. フィールドを追加するには、 > > > の順にクリックします。「Use a JRDatasource expression」を選択し、編集アイコンをクリックします。「Expression Editor Wizard」で、ReportTemplateJRDataSource 定義式を編集します。それに対して、1 つ目の必須パラメータとしてレポートテンプレート名を使用し、2 つ目のパラメータ (wt.inf.container.OrgContainer=Demo Organization/wt.pdmlink.PDMLinkProduct=GOLF_CART などのコンテナパスを指す) としてコンテナパスを使用して、コンストラクタ定義を指定します。コンテナパスが指定されていない場合、所定のレポートテンプレートを見つけるために、デフォルトの Windchill コンテナパスが使用されます。
18. 「Expression Editor Wizard」で、ReportTemplateJRDataSource 定義式を編集して、レポートテンプレートの名前、コンテナの名前、およびコンテナのタイプを指定します。たとえば、("PartReportTemplate"、"Site"、"Site") などです。「Finish」をクリックします。
19. データセットのプロパティが更新され、修正した定義式が含まれていることを確認します。
20. データセットを右クリックし、「Dataset and Query」を選択します。
「Dataset and Query Dialog」をブラウズし、「Language」を「sql」から「csv」に変更します。「OK」をクリックします。
21. Jasper Studio ウィンドウで、「Save」をクリックします。レポートのプレビューを表示するには、「Preview」をクリックします。
Prog-Example:
レポート名 | JRXML の場所 | ローダーの場所 | 入力 JSP の場所 | 必要な ReportTemplate QML の場所 | CriteriaPage の場所 |
DemoReportObject | <$WT_HOME> /prog_examples/JasperIntegration /JasperReports/Sample/DemoReportObject.jrxml | <$WT_HOME> /prog_examples/JasperIntegration /loadFiles/reports/jasper/loadDemoReportObject.xml | <$WT_HOME>/prog_examples/JasperIntegration/netmarkets/jsp/report/jasper/demoInputPage.jsp | <$WT_HOME>/prog_examples/JasperIntegration/loadFiles/reports/jasper/DocumentReportTemplate.qml <$WT_HOME>/prog_examples/JasperIntegration/loadFiles/reports/jasper/PartReportTemplate.qml <$WT_HOME>/prog_examples/JasperIntegration/loadFiles/reports/jasper/PartStateCount.qml | |