XMLデータのテンプレート・レイアウトへの関連付け
この項の図は、買掛/未払金請求書台帳のサンプル・レイアウトを示しています。
次の点に注意してください。
-
テンプレートに定義されているデータ・フィールド。
次に例を示します: サプライヤ、請求書番号および請求書日付
-
レポートの実行時に繰り返されるテンプレートの要素。
たとえば、レポートされるサプライヤごとに、テンプレートのすべてのフィールドが繰り返されます。 請求書表の各行は、レポートされる請求書ごとに繰り返されます。
XML入力ファイルの使用
次に、買掛/未払金請求書台帳レポート・テンプレートへの入力として使用されるXMLファイルを示します。
例を簡略化するために、表示されているXML出力は、買掛/未払金レポートの実際の出力から変更されています。
<?xml version="1.0" encoding="WINDOWS-1252" ?>
- <VENDOR_REPORT>
- <LIST_G_VENDOR_NAME>
- <G_VENDOR_NAME>
<VENDOR_NAME>COMPANY A</VENDOR_NAME>
- <LIST_G_INVOICE_NUM>
- <G_INVOICE_NUM>
<SET_OF_BOOKS_ID>124</SET_OF_BOOKS_ID>
<GL_DATE>10-NOV-03</GL_DATE>
<INV_TYPE>Standard</INV_TYPE>
<INVOICE_NUM>031110</INVOICE_NUM>
<INVOICE_DATE>10-NOV-03</INVOICE_DATE>
<INVOICE_CURRENCY_CODE>EUR</INVOICE_CURRENCY_CODE>
<ENT_AMT>122</ENT_AMT>
<ACCTD_AMT>122</ACCTD_AMT>
<VAT_CODE>VAT22%</VAT_CODE>
</G_INVOICE_NUM>
</LIST_G_INVOICE_NUM>
<ENT_SUM_VENDOR>1000.00</ENT_SUM_VENDOR>
<ACCTD_SUM_VENDOR>1000.00</ACCTD_SUM_VENDOR>
</G_VENDOR_NAME>
</LIST_G_VENDOR_NAME>
<ACCTD_SUM_REP>108763.68</ACCTD_SUM_REP>
<ENT_SUM_REP>122039</ENT_SUM_REP>
</VENDOR_REPORT>
XMLファイルは要素で構成されます。 各タグ・セットは要素です。 たとえば、<INVOICE_DATE> </INVOICE_DATE>
は請求書日付要素です。 "INVOICE_DATE"はタグ名です。 タグ間のデータは要素の値です。 たとえば、INVOICE_DATE
の値は"10-NOV-03"です。
XMLファイルの要素には階層構造があります。 もう1つの方法は、要素に親子関係があることです。 XMLサンプルでは、一部の要素は別の要素のタグ内に含まれています。 含まれる要素は親であり、含まれる要素はその子です。
すべてのXMLファイルには、他のすべての要素を含むルート要素が1つのみ含まれます。 この例では、VENDOR_REPORT
がルート要素です。 要素LIST_G_VENDOR_NAME
、ACCTD_SUM_REP
およびENT_SUM_REP
は、VENDOR_REPORT
タグの間に含まれ、VENDOR_REPORT
の子です。 各子要素には独自の子要素を含めることができます。
プレースホルダーとグループの識別
テンプレートのコンテンツおよびレイアウトは、入力XMLファイルのコンテンツおよび階層に対応している必要があります。 テンプレートの各データ・フィールドは、XMLファイルのエレメントにマッピングする必要があります。 テンプレート内の繰返し要素の各グループは、XMLファイル内の親子関係に対応している必要があります。
データ・フィールドをマップするプレースホルダーを定義します。 繰返し要素を指定するグループを定義します。
ノート:
「パブリッシャ」では、受信XMLデータの階層に従わないグループ化がレポートに必要な場合、データの再グループ化がサポートされます。 この機能の使用方法については、「XMLデータの再グループ化」を参照してください。
プレースホルダーの使用
レポート・テンプレートの各データ・フィールドは、XMLファイルのエレメントに対応している必要があります。
テンプレート設計をマークアップするときに、XML要素のプレースホルダーを定義します。 プレースホルダーにより、テンプレート・レポート・フィールドがXML要素にマップされます。 実行時に、プレースホルダーはXMLデータ・ファイル内の同じ名前の要素の値に置き換えられます。
たとえば、サンプル・レポート・レイアウトの「サプライヤ」フィールドは、XML要素VENDOR_NAMEに対応します。 テンプレートをマークアップするときに、サプライヤ・フィールドの位置にVENDOR_NAMEのプレースホルダーを作成します。 実行時に、このプレースホルダーはXMLファイルの要素の値に置き換えられます(サンプル・ファイルの値はCOMPANY Aです)。
繰返し要素のグループの識別
サンプル・レポートには、サプライヤとその請求書がリストされます。 サプライヤおよび請求書ごとに繰り返されるフィールドがあります。
したがって、レポートは2つの繰返しフィールドのグループで構成されます:
-
各サプライヤに対して繰り返されるフィールド
-
請求書ごとに繰り返されるフィールド
請求書グループはサプライヤ・グループ内にネストされています。 これは、次のように表すことができます:
サプライヤ
-
サプライヤ名
-
請求書
-
請求書番号
-
請求書日付
-
元帳日付
-
通貨
-
入力金額
-
計上済金額
-
-
入力金額合計
-
合計計上済金額
この構造をXML入力ファイルの階層と比較します。 前述のSuppliers(サプライヤ)グループに属するフィールドは、要素G_VENDOR_NAMEの子です。 請求書グループに属するフィールドは、要素G_INVOICE_NUMの子です。
グループを定義すると、「パブリッシャ」に要素(親)の「それぞれ」オカレンスが表示され、含まれるフィールド(子)が表示されることが通知されます。 実行時に、「パブリッシャ」は要素の出現をループし、毎回フィールドを表示します。