RTFサブテンプレートを使用する場合
RTFサブテンプレートは様々なシナリオで使用できます。
次に、RTFサブテンプレートの一般的なユースケースをいくつか示します。
共通レイアウトの再利用
多くの場合、複数のレポートには同じヘッダーとフッターのコンテンツが必要です。
RTFサブテンプレートを使用してこのコンテンツを含めることにより、グローバルな変更は簡略化され、個々のレイアウトではなくサブテンプレートのみを更新する必要があります。
データの値に基づくレイアウトの条件付き表示
サブテンプレートを使用して、レポート・データの値に基づいて条件付きレイアウトを適用することもできます。
RTFテンプレートの"choose"コマンドを使用して、サブテンプレート・ファイルに定義されている別の<?template?>を適用するように「パブリッシャ」に指示できます。
サブテンプレート・ファイルのインポート文を条件付けることはできません。 かわりに、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?>をコールするために使用できます。
サブテンプレート・ファイルのインポート文を条件付けることはできません。
例
レポート・データ・モデルで、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>