機械翻訳について

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?>
適切な住所書式でサブ・テンプレートをコールするには:
  1. 次のロケーションにカタログにサブ・テンプレートを作成します:

    顧客/請求書レポート

    RTFファイルをアップロードし、サブ・テンプレートを住所として保存します。

  2. メイン・テンプレートに次を入力してサブ・テンプレートをインポートします:
    <?import:xdoxsl:///Customers/Invoice Reports/Addresses.xsb?>
    
  3. 住所を表示するロケーションに、次の情報を入力します:
    <?if:COUNTRY_CODE='USA'?>
            <?call:US_Address?>    
         <?end if?>   
         <?if:COUNTRY_CODE='IN'?>         
            <?call:IN_Address?>          
         <?end if?>    
    

レポートを実行すると、データのCOUNTRY_CODEの値に応じて、住所書式が正しく適用されます。

パラメータ値に基づくレイアウトの条件付き表示

次の例では、ユーザー・パラメータ値または値リストからの選択に基づいて異なるレイアウトを表示する方法を示します。 パラメータはRTFテンプレートに渡され、値に基づいてサブテンプレート・ファイル内の別の<?template?>をコールするために使用できます。

サブテンプレート・ファイルのインポート文を条件付けることはできません。

レポート・データ・モデルで、DeptNameという名前のパラメータを定義したとします。 このパラメータをMenuタイプとして設定し、値リストに関連付けます。これにより、ユーザーはレポート・ビューアでレポートを表示したとき(またはレポートのスケジュール時に)リストから選択できます。

RTFメイン・レイアウト・テンプレートで、次のコマンドを入力して、ユーザーが選択した値を取得します:

<?param@begin:DeptName?>

このユーザー選択に基づいてレイアウトを表示するには、IF文またはCHOOSE文を使用してパラメータ値を評価し、関連付けられたサブテンプレートをコールします。

条件付きテストが多数あり、残りの値に対してデフォルトのアクションが想定される場合は、CHOOSE文を使用します。 たとえば、会計部門と営業部門、マーケティング部門にはそれぞれ異なるレイアウトが必要です。 他のすべての部門はデフォルト・レイアウトを使用できます。

レイアウトを表示するには:
  1. RTFファイルを作成し、次のテンプレート宣言を含めます:
    <?template:tAccounting?>
       -  -  -  Specific Accounting Layout here  -  -  - 
    <?end template?>
    
    <?template:tSales?>
       -  -  -  Specific Sales Layout here  -  - -
    <?end template?> 
    
    <?template:tMark?>
       -  -  -  Specific Marketing Layout here - -
    <?end template?> 
    
    <?template:tDefault?>
       -  -  -  Default Layout here  -  - -
    <?end template?>
    
  2. 次のロケーションにカタログにサブ・テンプレートを作成します:

    Shared Folders/Executive/Department Expenses

    RTFファイルをアップロードし、サブ・テンプレートをDeptSubtempsとして保存します。

  3. メインのRTFテンプレートに、次のコマンドを含めます:
<?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文の挿入」を参照してください。

単純計算または繰返しFormulaの処理

単純な計算は、RTFサブテンプレートを使用して処理することもできます。 XSLサブテンプレートを使用して、より複雑な算式を処理する必要があります。

次の例では、利息を計算する計算式を含むサブテンプレートの設定を説明します。

サブテンプレートは、このレポートのデータに対する利息計算を実行し、結果をメイン・テンプレートに戻します。 サブテンプレートによって、この機能を呼び出す複数のレポートで、フォーミュラのコンポーネントに異なるタグ名が使用される場合があります。

次のXMLデータがあるとします:

<LOAN_DATA>
   <LOAN_AMOUNT>6000000</LOAN_AMOUNT>
   <INTEREST_RATE>.053</INTEREST_RATE>
   <NO_OF_YEARS>30</NO_OF_YEARS>
</LOAN_DATA>
利息を計算する計算式を含むサブ・テンプレートを設定するには:
  1. RTFファイルで、calcInterestというテンプレート宣言を作成します。 このサブテンプレートでは、フォーミュラのエレメント(元金、利率、および年数)ごとにパラメータを定義します。 各パラメータのデフォルト値を設定する必要があることに注意してください。
    <?template:calcInterest?>
       <?param:principal;0?>
       <?param:intRate;0?>
       <?param:years;0?>
       <?number($principal) * number($intRate) * number($years)?>
    <?end template?>
    
  2. 次のロケーションにカタログにサブ・テンプレートを作成します:

    Shared Folders/Subtemplates

    RTFファイルをアップロードし、サブ・テンプレートを計算として保存します。

  3. メイン・テンプレートで、次のように入力してサブ・テンプレートをインポートします:
    <?import:xdoxsl:///Subtemplates/calculations.xsb?>
    
  4. 計算結果を表示するロケーションに、パブリッシャフィールドに次のように入力します:
    <?call@inlines:calcInterest?>
       <?with-param:principal;./LOAN_AMOUNT?>
       <?with-param:intRate;./INTEREST_RATE?>
       <?with-param:years;./NO_OF_YEARS?>
    <?end call?>      
    

    ここで@inlinesコマンドを使用することに注意してください。 これはオプションです。 @inlinesコマンドは、サブ・テンプレートへのコールが行われるテンプレート内のロケーションで、結果をインラインでレンダリングします。 この機能は、たとえば、コール前のテキスト文字列と同じ行に結果を保持する場合に使用します。