メイン・テンプレートからのサブテンプレートのコール

メイン・テンプレートからサブ・テンプレートをコールするには、2つの入力を行う必要があります。

サブ・テンプレートをメイン・テンプレートに実装するには、メイン・テンプレートに2つのエントリを作成する必要があります。

最初に、メイン・テンプレートにサブ・テンプレートをインポートします。インポートの構文で、カタログ内のサブ・テンプレートを検出するPublisherエンジンを指定します。

次に、サブ・テンプレートの内容をレンダリングするコール・コマンドを必要な位置に入力します。

メイン・テンプレートへのサブテンプレートのインポート

メイン・テンプレート内のコール・テンプレート・コマンドより前の任意の位置にインポート・コマンドを入力します。

ロケールが必要ない場合は、次のように入力します。

<?import:xdoxsl:///path to subtemplate.xsb?>

説明

path to subtemplate.xsbは、カタログ内のサブ・テンプレート.xsbオブジェクトへのパスです。

次に例を示します。

<?import:xdoxsl:///Executive/HR_Reports/mySubtemplate.xsb?>

サブ・テンプレートが、「マイ・フォルダ」の下位の個人フォルダにある場合、サブ・テンプレートをインポートするコマンドは次のとおりです。

<?import:xdoxsl:///~username/path to subtemplate.xsb?>

このusernameはユーザー名です。

たとえば、ユーザーmyuserが、「マイ・フォルダ」の下位のSubtemplatesというフォルダにTemplate1というサブテンプレートをアップロードする場合、正しいインポート文は次のようになります。

<?import:xdoxsl:///~myuser/Subtemplates/Template1.xsb?>

サブテンプレートの内容をレンダリングするためのコール

サブテンプレートの内容をレンダリングするコール・コマンドを必要な位置に入力することもできます。

  • サブ・テンプレートをレンダリングするメイン・テンプレート内の位置で、次のようにcall-templateコマンドを入力します。
    <?call-template:template_name?>
    

    説明

    template_nameは、サブテンプレート・ファイル内のテンプレート宣言文の内容に割り当てる名前です(<?template:template_name?>文のように指定します)。

次の図は、メイン・テンプレートで必要な入力を示しています。

ローカライズ済サブテンプレートのインポート

インポートしたサブテンプレートのロケールを指定するには、次のようにインポート文にロケールを追加します。

<?import:xdoxsl:///{path to subtemplate.xsb}?loc={locale_name}?>

説明

path to subtemplate.xsbは、カタログ内のサブ・テンプレート.xsbオブジェクトへのパスです。

および

locale_nameは、ロケールを構成する言語-地域の組合せです。ロケールの指定は、オプションです。

次に例を示します。

<?import:xdoxsl:///Executive/HR_Reports/mySubtemplate.xsb?loc=en-US?>

また、${_XDOLOCALE}を使用して、実行時のユーザー・ロケールに基づいてローカライズ済サブ・テンプレートをインポートすることもできます。次に例を示します。

<?import:xdoxsl:///Executive/HR_Reports/mySubtemplate.xsb?loc=${_XDOLOCALE}?>

この例では、会社の住所がすべてのテンプレートに固定の文字列として表示されます。すべてのテンプレートでこの文字列を再表示するのではなく、1つのサブ・テンプレートに配置して、他のすべてのテンプレートから参照できます。

サブ・テンプレートに文字列を配置して参照するには:
  1. RTFファイル内に次のテンプレート宣言を入力します。
    <?template:MyAddress?>
    My Company
    500 Main Street
    Any City, CA 98765
    <?end template?>
    
  2. カタログ内のCustomer Reports/Templatesの場所にサブ・テンプレートを作成します。
  3. このファイルをサブ・テンプレートにアップロードして、"共通コンポーネント"として保存します(Publisherによってオブジェクトに.xsbの拡張子が割り当てられます)。
  4. メイン・テンプレートで、次のインポート文をフォーム・フィールドに入力するか、直接テンプレートに入力します。
    <?import:xdoxsl:///Customer Reports/Templates/Common Components.xsb?>
    
  5. メイン・テンプレートで、アドレスを表示する位置に次の入力をします。:
    <?call-template:MyAddress?>

実行時に、MyAddressサブ・テンプレートの内容がフェッチされ、メイン・テンプレートのレイアウト内でレンダリングされます。

この機能では、文字列だけでなく、サブ・テンプレート内の任意の有効なRTFテンプレート機能を挿入できます。さらに、パラメータを一方から他方へ渡すことも可能です。この例については、「RTFサブテンプレートを使用する状況」を参照してください。