グループの定義
グループを定義することによって、要素の出現箇所ごとに、組み込まれたフィールドを表示するようにPublisherに通知しています。実行時に、Publisherは要素の出現箇所をループ処理して、そのたびにフィールドを表示します。
次の例では、XMLファイルのG_VENDOR_NAMEが出現するたびに、その子要素であるVENDOR_NAME(Supplier名)、G_INVOICE_NUM(Invoicesグループ)、入力済金額合計および計上済金額合計をテンプレートで表示します。さらに、G_INVOICE_NUM(Invoicesグループ)が出現するたびに、請求書番号、請求日、GL記帳日、通貨、入力済金額および計上済金額がテンプレートに表示されます。
繰返しフィールドのグループを指定するには、繰り返す要素の前後にグループ・タグを挿入します。
最初の要素の前に、次のタグを挿入します。
<?for-each:XML group element tag name?>
最後の要素の後に、次のタグを挿入します。
<?end for-each?>
繰返しグループの挿入を参照してください。
グループ化のシナリオ
グループ化の際にグループ要素は、XML入力ファイルの繰返し要素の親でなければならないということに注意してください。いくつかのグループ化シナリオがあります。
-
テキストまたは書式設定要素の前後にグループ化タグを挿入すると、グループ・タグに囲まれたテキストまたは書式設定要素が繰り返されます。
-
表の前後にタグを挿入すると、表が繰り返されます。
-
表セル内のテキストの前後にタグを挿入すると、タグに囲まれた表セル内のテキストが繰り返されます。
-
同じ表の行内にある2つの異なる表セルの前後にタグを挿入すると、その1行が繰り返されます。
-
表内の2つの異なる行の前後にタグを挿入すると、タグに囲まれた行が繰り返されます(end groupタグを含む行は繰り返されません)。
基本RTF方式の使用
タグをドキュメントに入力して、繰返し要素グループの開始と終了を定義します。
この例でSuppliersグループを作成するには、次のタグを挿入します。:
<?for-each:G_VENDOR_NAME?>
このタグは、すでに作成してある「Supplier」フィールドの前に挿入します。
文書内の要約行の後に、<?end for-each?>を挿入します。
次の図に、基本RTFグループ化とプレースホルダ・マークアップを設定したPayables Invoice Registerを示します。
この例のまとめ
この例の2番目のグループは請求書グループです。このグループの繰返し要素は表に表示されます。請求書ごとに表の行が繰り返されます。これらの要素を含むグループを表内に作成します。
ノート:
請求書ごとに、表全体ではなく、表の行のみを繰り返す必要があります。表の行の始めと終わりにグループ化タグを配置すると、行のみが繰り返されます。表の周りにタグを配置すると、新しい請求書ごとにヘッダーを含む表全体が繰り返されます。
この例をマークアップするには、表セルのInvoice Numプレースホルダの前に、グループ・タグ<?for-each:G_INVOICE_NUM?>を挿入します。デフォルト・テキストGroup:Invoicesを入力して、グループの開始を指定します。
行の最後の表セル内で、Accounted Amtプレースホルダの後に終了タグを挿入します。デフォルト・テキストEnd:Invoicesを入力して、グループの終了を指定します。
次の図に、フォーム・フィールド方式を使用して設定した例を示します。