Jasper レポートのローカライズのカスタマイズ
目的
Jasper レポートのローカライズバージョンを提供します。
バックグラウンド
Windchill レポート内のデータソースオブジェクトとレポートオブジェクトの両方に、ローカライズ可能なテキストが含まれています。これらのオブジェクトのテキストをローカライズすることによって、設定したロケールでテキストを表示できます。
範囲/適用可能性/前提条件
このドキュメンテーションは Jasper レポートのローカライズに関する情報を提供します。前提条件は以下のとおりです。
<WindchillHome><MyPackage> に関連付けられているソースディレクトリで、ファイルを作成するアクセス権限がある。
<WindchillHome> の関連サブディレクトリ <MyTaskPackage> で、Info*Engine タスク <MyTask> を作成した。
<WindchillHome> のサイトコンテキストで、ReportTemplate <MyReportTemplate> を作成した。
サイトコンテキストで、Windchill レポートオブジェクト <MyReport> を作成した。
<WindchillHome>/codebase/JasperReports/<ReportFolder> に Jasper レポート <MyJasperReport>.jasper を作成した。
<WindchillHome>/codebase/JasperReports/<ReportFolder> に、関連するロケールプロパティファイルを作成した。
WBR 統合では、レポートメタモデルを更新するためのアクセス権限も必要です。このマニュアルでは、WBR システムで使用されるテキストを外部化するために、標準の Java リソースバンドルを使用する手順について説明します。ローカライズされたテキストをサポートするには、言語固有のリソースバンドルを作成し、テキストを適切な言語に翻訳する必要があります。複数の言語のサポートが必要で、サポート対象の言語にテキストを翻訳できることを前提とします。このマニュアルで言及されているテキスト要素は、レポート名、パラメータ、および列で構成されています。WBR レポートに表示される実際のデータは、データソースから返されます。このデータのローカライズについては、このマニュアルでは説明しません。
予測される結果
このソリューションでは、最終的に、クライアントのロケールに基づいた複数の言語で WBR レポートを使用できるようになります。
ソリューション
特定のクライアントのロケールをサポートするために翻訳可能な、Java リソースバンドルに対する外部ローカライズテキストを生成。
前提となる知識
この目標を達成するには、以下の内容についてよく理解している必要があります。
Info*Engine User's Guide
JConsole のユーザーインタフェース
レポート管理のユーザーインタフェース
ソリューションエレメント
エレメント
タイプ
説明
<マイタスク>
Info*Engine タスク
Windchill データを読み込んで操作するための Info*Engine タスク。
<マイタスクリソース>
リソースバンドル情報プロパティファイル
Info*Engine タスクのテキストアイテムをローカライズするために使用されるリソースバンドル情報ファイル。
<マイレポートテンプレート>WindchillReportTemplate
Windchill オブジェクト
Windchill データを読み込むための照会を指定する Windchill オブジェクト。
<マイレポートテンプレートリソース>
リソースバンドル情報プロパティファイル
ReportTemplate のテキストアイテムをローカライズするために使用されるリソースバンドル情報ファイル。
<マイレポート>WindchillReport
Windchill オブジェクト
Windchill ユーザーインタフェースでユーザーに表示される Windchill オブジェクト。
<マイレポートリソース>
リソースバンドル情報プロパティファイル
レポートのテキストアイテムをローカライズするために使用されるリソースバンドル情報ファイル。
手順 - Info*Engine タスクデータソースのローカライズ
1. ファイル <Windchill_ホーム>/src/<マイパッケージ>/<マイタスクリソース>.rbInfo を作成します。タスクメソッド名、パラメータ名、およびコラム名のエントリを追加します。言語固有のバージョンの <マイタスクリソース>.rbInfo を作成し、関連する Java ソースおよびコンパイル済みクラスファイルを生成します。
2. タスク XML ファイル <Windchill_ホーム>/tasks/<マイタスクパッケージ>/<マイタスク>.xml を編集して、リソースバンドルを指定します。タスクコメントに以下の行を追加してください。
{resouceBundle: <MyPackage>.<MyTaskResource> }
手順 - ReportTemplate データソースのローカライズ
1. ファイル <Windchill_ホーム>/src/<マイパッケージ>/<マイレポートテンプレートリソース>.rbInfo を作成します。タスクメソッド名、パラメータ名、および列名として、必要に応じてエントリを追加します。言語固有のバージョンの <マイレポートテンプレートリソース>.rbInfo を作成し、関連する Java ソースおよびコンパイル済みクラスファイルを生成します。
2. <マイレポートテンプレート> を更新して、リソースバンドルを指定します。Windchill「サイト」 > 「ユーティリティ」に移動します。
3. <MyReportTemplate> を選択し、「更新」をクリックして「照会ビルダー」を起動します。
4. 「レポート」 > 「プロパティ」の順に選択し、「リソースバンドル」フィールドに「<MyPackage>.<MyReportTemplateResource>」と入力します。
5. 「OK」をクリックして変更内容を保存します。
手順 - Windchill レポートオブジェクト名のローカライズ
1. パス <WindchillHome>/src/<MyPackage>/<MyReport>.rbInfo にファイルを作成します。
2. レポートオブジェクト名のエントリを追加します。
3. 言語固有のバージョンの <MyReportResource>.rbInfo を作成し、関連する Java ソースおよびコンパイル済みクラスファイルを生成します。
5. <MyReport> を更新して、リソースバンドルを指定します。Windchill「サイト」 > 「レポート」ページに移動します。
<MyReport>「編集」を選択します。
6. <MyPackage>.<MyReportResource>「リソースバンドル」フィールドに「」と入力し、「OK」をクリックします。
7. レポート属性 LocalizedName がクライアントのロケールに基づいた翻訳済みテキストであることを確認します。
Jasper レポートのローカライズ
Jasper レポートをローカライズする方法については、JasperSoft のドキュメンテーションを参照してください。
関連するロケールファイルが <WindchillHome>/codebase/JasperReports/<ReportFolder> に作成されていることを前提としています。
参照:
サンプルコード
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport xmlns = "http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://jasperreports.sourceforge.net/jasperreports
http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name = "jasper_report_template" language = "groovy" pageWidth = "595"
pageHeight = "842" columnWidth = "555" leftMargin = "20" rightMargin = "20"
topMargin = "20" bottomMargin = "20" resourceBundle = "localizationdemo">
<title>
<band height = "552">
<textField>
<reportElement positionType = "Float" x = "150" y = "20"
width = "400" height = "50"/>
<textElement>
<font size = "24"/>
</textElement>
<textFieldExpression class = "java.lang.String">
<![CDATA[$P{REPORT_LOCALE}.getDisplayName ($P{REPORT_LOCALE})]]>
</textFieldExpression>
</textField>
<textField isStretchWithOverflow = "true" isBlankWhenNull = "true">
<reportElement positionType = "Float" x = "20" y = "125"
width = "530" height = "20"/>
<textElement textAlignment = "Justified">
<font size = "14"/>
</textElement>
<textFieldExpression class = "java.lang.String">
<![CDATA[$R{localization.text1}]]>
</textFieldExpression>
</textField>
</band>
</title>
</jasperReport>
Windchill コードでの使用例
Windchill がサポートするすべてのロケールに対して、すべての定義済みレポートがローカライズされます。
関連パッケージ/クラスの Javadoc
基本モジュール
wt.query.template
レポートモジュール
com.ptc.windchill
その他の関連 Windchill ドキュメント
レポート管理のオンラインヘルプ
これは役に立ちましたか?