テンプレート機能
テンプレートには、書式設定とレイアウトを強化するいくつかの機能が含まれています。
テンプレート機能については、次のトピックで説明します:
改ページの挿入
いくつかの方法で改ページを作成できます。 PDF、RTFおよびPPT出力では、改ページがサポートされています。 HTML出力では改ページはサポートされていません。
特定の要素が発生した後に改ページを作成するには、split-by-page-break別名を使用します。 これにより、レポート出力によって、特定の要素のすべてのインスタンス間にハード改ページが挿入されます。
グループの出現ごとに改ページを挿入するには、グループを閉じる<?end for-each?>
タグの直前に、グループ内にsplit-by-page-breakフォーム・フィールドを挿入します。 このフォーム・フィールドのヘルプ・テキストに、次の構文を入力します:
<?split-by-page-break:?>
次のXMLについて、新しいサプライヤごとに改ページを作成するとします:
<SUPPLIER>
<NAME>My Supplier</NAME>
<INVOICES>
<INVOICE>
<INVNUM>10001-1</INVNUM>
<INVDATE>1-Jan-2005</INVDATE>
<INVAMT>100</INVOICEAMT>
</INVOICE>
<INVOICE>
<INVNUM>10001-2</INVNUM>
<INVDATE>10-Jan-2005</INVDATE>
<INVAMT>200</INVOICEAMT>
</INVOICE>
</INVOICES>
</SUPPLIER>
<SUPPLIER>
<NAME>My Second Supplier</NAME>
<INVOICES>
<INVOICE>
<INVNUM>10001-1</INVNUM>
<INVDATE>11-Jan-2005</INVDATE>
<INVAMT>150</INVOICEAMT>
</INVOICE>
â¦
次の図に示すテンプレート・サンプルでは、PageBreakというフィールドにsplit-by-page-break構文が含まれています:
PageBreakフィールドを<?end for-each?>
フィールドの直前に<?split-by-page-break:?>
構文で配置します。 「The PageBreak」フィールドは、SUPPLIERループの最後に配置されます。 これにより、新しい各サプライヤが発生する前に改ページが挿入されます。 このメソッドでは、グループの後にネイティブのMicrosoft Word改ページを使用するときに、グループの最後に余分なページが取り出されるのを防ぎます。
アナリティクスによって作成された直接FOファイル、またはRTFテンプレートを使用して生成されたExcel出力では、ネストされた表の行に改ページ(break-before="page")を使用できます。 これにより、セクションを含む分析レポートをExcelファイルにエクスポートできます。 たとえば、セクションがあるダッシュボード・ページで、「改ページの挿入」セクション・プロパティを「最外部列」に設定した場合、ダッシュボード・ページをExcelファイルにエクスポートすると、Excelファイルには各セクションの情報が別々のタブに格納されます。
最初のページ番号を挿入
一部のレポートでは、初期ページ番号を指定された番号に設定する必要があります。 たとえば、月ごとのレポートでは、月ごとの番号付けを継続する必要がある場合があります。 PDFおよびPPT出力の初期ページ番号は設定できますが、HTMLまたはRTF出力には設定できません。
テンプレートで次の構文を使用して、初期ページ番号を設定します:
<?initial-page-number:pagenumber?>
pagenumberは、数値を保持するXML要素またはパラメータです。
また、前のセクションのページ番号も続行できます。 ドキュメント内の新しいセクションのデフォルトの動作は、ページ番号付けをリセットすることです。 ただし、レポートでページ番号付けを次のセクションに進める必要がある場合は、次のコマンドを使用します:
<?initial-page-number:'auto'?>
このコマンドを使用すると、前のセクションからページ番号を継続できます。
例1 - XMLデータ要素からページ番号を設定
XMLデータに初期ページ番号を保持する要素が含まれている場合、次に例を示します:
<REPORT>
<PAGESTART>200<\PAGESTART>
....
</REPORT>
テンプレートに次のように入力します:
<?initial-page-number:PAGESTART?>
初期ページ番号は、PAGESTART要素の値で、この場合は200です。
例2 - パラメータ値を渡してページ番号を設定
PAGESTARTというパラメータを定義する場合は、パラメータをコールして初期値を渡すことができます。
テンプレートに次のように入力します:
<?initial-page-number:$PAGESTART?>
最初にテンプレートでパラメータを宣言する必要があります。 「パラメータの設定」を参照してください。
最後のページのみのコンテンツを指定
Microsoft Wordの機能を使用して、最初のページ、奇数ページおよび偶数ページに別のページ・レイアウトを指定します。 この機能は、PDFおよびPPT出力でのみサポートされています。
これらのオプションを実装するには、「ファイル」メニューから「ページ設定」を選択し、「レイアウト」タブを選択します。
ただし、Microsoft Wordでは、異なる最後のページの設定は提供されません。 これは、小切手や請求書、購買オーダーなどのドキュメントで、最終ページのみで特定の場所にコンテンツ(小切手や要約など)が必要な場合に役立ちます。
最後のページのみのコンテンツを指定するには:
この2つのタグの上または下にあるページ上のコンテンツは、レポートの最後のページにのみ表示されます。 また、このコマンドは最終ページのコンテンツを明示的に指定するため、レポートに対して以前に定義した目的のヘッダーまたはフッターを最後のページで再挿入する必要があることに注意してください。
この例では、最後のページの下部に表示される要約を含む請求書リストを生成するレポートに対して、最後のページのみの機能を使用します。
次のXMLを想定します:
<?xml version="1.0" encoding="WINDOWS-1252"?>
<INVOICELIST>
<VENDOR>
<VENDOR_NAME>Nuts and Bolts Limited</VENDOR_NAME>
<ADDRESS>1 El Camino Real, Redwood City, CA 94065</ADDRESS>
<INVOICE>
<INV_TYPE>Standard</INV_TYPE>
<INVOICE_NUM>981110</INVOICE_NUM>
<INVOICE_DATE>10-NOV-04</INVOICE_DATE>
<INVOICE_CURRENCY_CODE>EUR</INVOICE_CURRENCY_CODE>
<ENT_AMT>122</ENT_AMT>
<ACCTD_AMT>122</ACCTD_AMT>
<VAT_CODE>VAT22%</VAT_CODE>
</INVOICE>
<INVOICE>
<INV_TYPE>Standard</INV_TYPE>
<INVOICE_NUM>100000</INVOICE_NUM>
<INVOICE_DATE>28-MAY-04</INVOICE_DATE>
<INVOICE_CURRENCY_CODE>FIM</INVOICE_CURRENCY_CODE>
<ENT_AMT>122</ENT_AMT>
<ACCTD_AMT>20.33</ACCTD_AMT>
<VAT_CODE>VAT22%</VAT_CODE>
</INVOICE>
</VENDOR>
<VENDOR>
...
<INVOICE>
...
</INVOICE>
</VENDOR>
<SUMMARY>
<SUM_ENT_AMT>61435</SUM_ENT_AMT>
<SUM_ACCTD_AMT>58264.68</SUM_ACCTD_AMT>
<TAX_CODE>EU22%</TAX_CODE>
</SUMMARY>
</INVOICELIST>
レポートには、各VENDORとそのINVOICEデータが表示され、ページの下部にのみ表示されるSUMMARYセクションが表示されます。 この図のテンプレートを示します。
Microsoft Wordセクション区切りを挿入します(タイプ): 次のページ)テンプレートの最初のページ。 最終ページの場合は、新しい行を挿入して、要約表をページの下部に配置します。 次の図に、サマリー表を示します。
この例では、次のようになります。
-
FおよびEコンポーネントには、for-eachグループ化文が含まれています。
-
グレー表示されたレポート・フィールドは、XML要素のプレースホルダーです。
-
「Last Page Placeholder」フィールドの構文は次のとおりです:
<?start@last-page:body?> <?end body?>
最後のページ・レイアウトを宣言します。 この文の上または下のコンテンツは、最後のページにのみ表示されます。 文の上のコンテンツはヘッダーとみなされ、文の下のコンテンツはフッターとみなされます。
最後のページに繰り越すヘッダーとフッターがレポートに含まれている場合は、最後のページで再挿入する必要があります。
セクション区切り(タイプ)を挿入する必要があります: 次のページ)ドキュメントに、最後のページ・レイアウトを指定します。 この例は、Wordインストール用のTemplate Builderのサンプル・フォルダにあります。
ドキュメント内の新しいセクションのデフォルト動作は、最後のページのページ番号付けのページ番号をリセットすることです。 前のセクションのページ番号付けを続行するには、次のコマンドを使用します:
<?initial-page-number:'auto'?>
このコマンドを使用すると、前のセクションからページ番号を継続できます。
レポートの長さが1ページのみの場合は、最初のページ・レイアウトが使用されます。 レポートで(小切手印刷の実装などで)1つのページ・レポートを最後のページ・レイアウトにデフォルト設定する必要がある場合は、最後のページの最後のページ・プレースホルダーに次の代替構文を使用できます:
<?start@last-page-first:body?> <?end body?>
この構文を置換すると、レポートの最後のページ・レイアウトが1ページのみになります。
偶数ページまたは奇数ページで終了
レポートに奇数および偶数ページ・レイアウトが異なる場合は、次のステップに従って、レポートが奇数ページまたは偶数ページで特に終了するように強制できます。 この機能は、PDFおよびPDF出力でサポートされていますが、RTFまたはHTML出力ではサポートされていません。
たとえば、異なる奇数/偶数フッター機能を使用して、購買オーダーの条件をレポートのフッターに含めることができ、条件が最終ページに印刷されるようにします。
または、特定のレイアウトを使用せずに、レポートが偶数ページに終了するようにバインド要件を設定できます。
レイアウトを含む偶数ページを終了するには:
-
テンプレートのフォーム・フィールドに次の構文を挿入します:
<?section:force-page-count;'end-on-even-layout'?>
最終ページのレイアウト要件がなく、ページ数を強制的に優先奇数または偶数にするために空白ページをイジェクトする場合は、次の構文を使用します:
<?section:force-page-count;'end-on-even'?>
または
<?section:force-page-count;'end-on-odd'?>
空白ページの挿入
レポートの最初のページ、偶数ページ、または奇数ページで、空白ページを挿入してページ番号をスキップできます。
fo:page-sequence
オブジェクトは、ページ出力要素のコンテナとして使用されます。 fo:page-sequence
のxdofo:blank-on
属性では、次のことを行うかどうかを指定できます:
-
最初のページ、偶数ページまたは奇数ページは空白のままにします。
-
最初のページ、偶数ページ、または奇数ページのページ番号をスキップします。
ページ数をスキップするように指定した場合、ページのレンダリング時にページ番号カウンタは表示されません。 内部ページ番号カウンタは、設定に関係なく増分します。
属性名 | 値 | デフォルト |
---|---|---|
xdofo:blank-on |
|
none |
RTFテンプレートのタグは次のとおりです:
<?section:xdofo:blank-on;'even'?>
<?section:xdofo:blank-on;'odd'?>
<?section:xdofo:blank-on;'first'?>
<?section:xdofo:blank-on;'even-skip-page-count'?>
<?section:xdofo:blank-on;'odd-skip-page-count'?>
<?section:xdofo:blank-on;'first-skip-page-count'?>
例
レポートで奇数ページを空白のままにするには、テンプレートの先頭にあるフォーム・フィールドに次のコードを指定します:
<?section:xdofo:blank-on;'odd'?>
オーダー・レポートの偶数ページのページ数をスキップするには、テンプレートの最初にあるフォーム・フィールドに次のコードを指定します:
<?section:xdofo:blank-on;'even-skip-page-count'?>
ハイパーリンクの挿入
PDF、RTF、HTML、PPTおよびExcel出力のハイパーリンクを追加できます。
ハイパーリンクは固定または動的であり、内部または外部の宛先にリンクできます。 ハイパーリンクをシェイプに追加することもできます。
-
テキストまたはシェイプに静的ハイパーリンクを挿入するには、ワード・プロセッサの挿入ハイパーリンク機能を使用します。
テキストまたはシェイプに静的ハイパーリンクを挿入するには:
-
テキストまたはシェイプを選択します。
-
右マウス・メニューを使用して「ハイパーリンク」を選択するか、「挿入」メニューから「ハイパーリンク」を選択します。
-
「ハイパーリンクの挿入」ダイアログ・ボックスのいずれかのメソッドを使用して、URLを入力します。
-
-
入力XMLデータにハイパーリンクまたはハイパーリンクの一部を含む要素が含まれている場合は、実行時に動的ハイパーリンクを作成できます。 「ハイパーリンクの挿入」ダイアログの「ファイル名またはWebページ名を入力」フィールドに、次の構文を入力します:
{URL_LINK}
ここで、URL_LINKは受信データ要素名です。
URLを構成するためにXMLデータ・ファイルから要素を追加する固定URLがある場合は、次の構文を入力します:
http://www.example.com?product={PRODUCT_NAME}
ここで、PRODUCT_NAMEは受信データ要素名です。
どちらの場合も、実行時に動的URLが作成されます。
-
実行時にパラメータを渡して動的URLを構成することもできます。
パラメータ名と要素名を中カッコで囲んで入力し、次のようにURLを作成します:
{$SERVER_URL}{$REPORT}/cstid={CUSTOMER_ID}
ここで、SERVER_URLおよびREPORTは実行時にテンプレートに渡されるパラメータ($記号に注意)で、CUSTOMER_IDはXMLデータ要素です。 このリンクは次のように表示されます:
http://myserver.domain:8888/CustomerReport/cstid=1234
ターゲット属性をURLに追加するには、次のものをURL文字列に追加します:
??target=_target_value
たとえば:
http://www.example.com??target=_top
ターゲット属性の値は、次のとおりです:
-
_top
-
_blank
-
_self
-
_parent
-
framename
次の構文を使用して、ターゲットの値を動的に渡すことができます:
http://www.example.com/index.html??target={$myTarget}
myTargetは、値を保持するパラメータの名前です。
内部リンクの挿入
内部リンクは、ドキュメント内のセクションを指します。
Microsoft Wordのブックマーク機能を使用して、テンプレートに内部リンクを挿入します。
- 文書内の目的の宛先にカーソルを置きます。
- 「挿入」メニューから、「ブックマーク」を選択します。
- ブックマーク・ダイアログで、このブックマークの名前を入力し、「追加」を選択します。
- ブックマーク・ターゲットにリンクするドキュメント内のテキストまたはシェイプを選択します。
- 右マウス・メニューを使用して「ハイパーリンク」を選択するか、「挿入」メニューから「ハイパーリンク」を選択します。
- 「ハイパーリンクの挿入」ダイアログで、「ブックマーク」を選択します。
- リストから、作成したブックマークを選択します。
実行時に、リンクは生成されたレポートに保持されます。
目次を含める
目次を挿入するには、ワープロの手順に従います。
「パブリッシャ」は、PDFおよびPPT出力の目次機能をサポートしています。 RTFサポートは制限されています: レポートの生成後、ユーザーはF9
を押してページ番号をリセットする必要があります。
「パブリッシャ」には、XMLデータから文書に動的セクション・ヘッダーを作成する機能もあります。 これらを目次に組み込むことができます。
動的見出しを作成するには、次のステップを実行します:
実行時に、TOCプレースホルダーと見出しテキストが置換されます。
PDF出力でのブックマークの生成
RTFテンプレートで目次を定義する場合、目次定義を使用して、出力PDFのナビゲーション・ペインの「ブックマーク」タブでリンクを生成できます。
ブックマークは、静的または動的に生成できます。
RTFテンプレートでのブックマークのサポートは、ドキュメント内のリンク(移動)機能を使用できるように、単一点のブックマークに制限されています。 ブックマークの配列はサポートされていません。
-
静的な目次のリンクを作成するには:
構文を入力します:
<?copy-to-bookmark:?>
目次のすぐ上、
<?end copy-to-bookmark:?>
目次のすぐ下。
-
動的目次のリンクを作成するには:
構文を入力します:
<?convert-to-bookmark:?>
目次のすぐ上、
<?end convert-to-bookmark:?>
目次のすぐ下。
PDFファイルを開くときのブックマークの初期状態を制御するには、次のコマンドを使用します:
<?collapse-bookmark:state;level?>
where
state
には、次の値を指定できます:
-
非表示-目次エントリを縮小
-
表示-目次エントリを展開
および
level
は、目次縮小レベルを設定します。 次に例を示します:1
は、目次のエントリの第1レベルを縮小します。2
は、第1レベルと第2レベルのエントリを縮小します。
次の例に示すように、このコマンドを<?copy-to-bookmark:?>
および<?convert-to-bookmark:?>
とともに使用します:
-
目次エントリのレベル1およびレベル2を非表示にする静的目次を作成するには、次のように入力します:
<?copy-to-bookmark:?> <?collapse-bookmark:hide;2?>
目次のすぐ上、
<?end copy-to-bookmark:?>
目次のすぐ下。
-
展開された目次のレベル1と2を表示する動的な目次のリンクを作成するには、次のように入力します:
<?convert-to-bookmark:> <?collapse-bookmark:show;2?>
目次のすぐ上、
<?end convert-to-bookmark:?>
目次のすぐ下。
チェック・ボックスの挿入
レポート・テンプレートにチェック・ボックスを含めることができます。このチェック・ボックスは、受信データの値に基づいて選択または選択解除として表示するように定義できます。
チェック・ボックスはPDF出力でのみサポートされています。
ドロップダウン・リストの挿入
ドロップダウン・フォーム・フィールドを使用して、XMLデータから、ドロップダウン・フォーム・フィールドで定義する他の値への相互参照をテンプレートに作成できます。
たとえば、次のXMLがあるとします:
<countries>
<country>
<name>Chad</name>
<population>7360000</population>
<continentIndex>5</continentIndex>
</country>
<country>
<name>China</name>
<population>1265530000</population>
<continentIndex>1</continentIndex>
</country>
<country>
<name>Chile</name>
<population>14677000</population>
<continentIndex>3</continentIndex>
</country>
. . .
</countries>
各<country>
エントリには、大陸を表す数値である<continentindex>
エントリがあります。 ドロップダウン・フォーム・フィールドを使用して、<continentindex>
値を実際の大陸名に相互参照する索引をテンプレートに作成できます。 その後、公開されたレポートに名前を表示できます。
チェック・ボックスとドロップダウン・リスト機能を使用して、チェック・ボックスを使用して移入データを表示するレポートを作成し、特定の制限に達した数値を示すことができます。 次の図に、チェック・ボックスを使用した移入データのレポートの例を示します:
このレポートを作成するためのテンプレートを次の図に示します。フィールドには、次の表に示す値があります。
ドロップダウン・リストのフィールドの説明:
- FE - フォーム・フィールド入力 :
<?for-each:country?>
- 国繰返しグループを開始します。 - 中国 - フォーム・フィールド入力:
<?name?>
- 名前要素のプレースホルダー。 - 1,000,000 - フォーム・フィールド入力:
<?population?>
- 移入要素のプレースホルダー。 - (チェックボックス) - フォーム・フィールド入力:
<?population>1000000?>
- チェックボックスの条件を設定します。 対象グループ・エレメントの値が1,000,000を超える場合、チェックボックスはオンとして表示されます。 - アジア - フォーム・フィールド入力:
<?contintentIndex?>
- continentIndex要素のドロップダウン・フォーム・フィールド。 その内容については、前述の説明を参照してください。 実行時に、XML要素の値は、ドロップダウン・フォーム・フィールドで相互参照される値に置き換えられます。 - EFE - フォーム・フィールド入力:
<?end for-each?>
- 国グループを終了します。
改ページ後の行ヘッダーの繰返し
グループ左の構造など、複数の行にまたがる行ヘッダーがレポートに含まれている場合は、最初のセルのコンテンツを次のページで繰り返すように指定できます。
次の表の例を参照してください。
前述の例では、レポートが04-Dec-12グループにまたがる場合、ほとんどの場合、セル・コンテンツ"04-Dec-12"は次のページで繰り返すことを希望します。 セルの内容を繰り返すように指定するには、繰り返す表データ・セルのフォーム・フィールドに次のコードを挿入します:
<?attribute@block:xdofo:rowspancell-repeat-nextpage;'true'?>
この機能は、表セルに対してスキャンされる数値行数が1より大きい場合にのみ役立ちます。