RTFサブ・テンプレートを使用する状況
RTFサブテンプレートは様々なシナリオで使用できます。
次に、いくつかのRTFサブ・テンプレートの一般的なユースケースを示します。
共通レイアウトの再利用
しばしば、複数のレポートで同じヘッダーとフッターが必要になります。
この内容の組込みにRTFサブ・テンプレートを使用することにより、全体的な変更を単純化でき、更新もレイアウトごとではなくこのサブ・テンプレートのみで済みます。
データの値に基づいた条件付のレイアウト表示
サブ・テンプレートは、レポート・データの値に基づいた条件付レイアウトに適用するために使用することもできます。
RTFテンプレートのchooseコマンドを使用することで、Publisherに、サブテンプレート・ファイルに定義された別の<?template?>を適用するように指示できます。
サブ・テンプレート・ファイルのimport文は条件付にできません。そのかわりに、1つのサブ・テンプレート・ファイルをインポートして、コール文を条件付にできます。1つのサブ・テンプレート・ファイルに複数の<?template?>オプションを定義します。
例
インドと米国内の顧客に送信するレポートがあるとします。データで指定される国コード(COUNTRY_CODE)に応じて、適用する住所のレイアウトを変える必要があります。この例では、RTFテンプレートのif
文の機能を使用して該当するアドレス書式のサブテンプレートをコールします。
サブテンプレート・ファイルは、次のようになります。
<?template:US_Address?>
<?US_Address_Field1?>
<?US_Address_Field2?>
<?US_Address_Field3?>
<?end template?>
<?template:IN_Address?>
<?IN_Address_Field1?>
<?IN_Address_Field2?>
<?IN_Address_Field3?>
<?end template?>
レポートを実行すると、アドレスの書式がデータ内のCOUNTRY_CODEの値に応じて適切に適用されます。
パラメータ値に基づいた条件付のレイアウト表示
この例では、ユーザーのパラメータ値を基に、または値のリストからの選択を基に異なるレイアウトを表示する方法について示します。パラメータはRTFテンプレートに渡すことができ、値に基づいてサブ・テンプレート・ファイル内の異なる<?template?>をコールするために使用できます。
サブ・テンプレート・ファイルのimport文は条件付にできません。
例
レポート・データ・モデルで、DeptNameという名前のパラメータを定義しているとします。このパラメータをMenu型として設定し、これに値リストを関連付けることで、ユーザーがレポート・ビューアでレポートを表示するとき(またはレポートをスケジュールするとき)、リストから選択可能になります。
RTFメイン・レイアウト・テンプレートで次のコマンドを入力し、ユーザーが選択した値を取得するようにします。
<?param@begin:DeptName?>
このユーザーの選択を基にレイアウトを表示する場合、IFまたはCHOOSE文を使用し、パラメータ値を評価して、関連するサブ・テンプレートのコールができます。
CHOOSE文は、多数の条件テストがあり、残りの値に対してデフォルト処理が予期される場合に使用します。たとえば、経理、営業およびマーケティング部門のそれぞれで異なるレイアウトが必要だとします。これ以外のすべての部門はデフォルトのレイアウトを使用できます。
<?import:xdoxsl:///Executive/Department Expenses/DeptSubtemps.xsb?loc=en-US?>
<?param@begin:DeptName?>
<?choose:?>
<?when:$DeptName='Accounting'?>
<?call:tAccounting?>
<?end when?>
<?when:$DeptName='Sales'?>
<?call:tSales?>
<?end when?>
<?when:$DeptName='Marketing'?>
<?call:tMark?>
<?end when?>
<?otherwise:$>
<?call:tDefault?>
<?end otherwise?>
<?end choose:?>
ユーザーがレポートを実行するとき、DeptNameの値を基に、適用されるレイアウトが決定されます。RTFテンプレートのCHOOSE文の詳細は、Choose文の挿入を参照してください。
例
この例では、利子を計算する計算式を含んだサブ・テンプレートの設定方法を示します。
このサブ・テンプレートは、レポート内のデータに対して金利計算を実行して、結果をメイン・テンプレートに返します。この機能をコールする複数のレポートでは、計算式のコンポーネントのタグ名が異なる可能性がありますが、このサブ・テンプレートはそのような状況にも対応します。
次のXMLデータがあるとします。
<LOAN_DATA>
<LOAN_AMOUNT>6000000</LOAN_AMOUNT>
<INTEREST_RATE>.053</INTEREST_RATE>
<NO_OF_YEARS>30</NO_OF_YEARS>
</LOAN_DATA>