Word APIでは、繰り返し項目があるテンプレートを複合版と定義しています。
ここでは、Word APIの複合版の差し込み印刷機能について説明します。
複数回にわたって差し込み印刷が実行される差し込み印刷フィールドを繰り返し項目と呼びます。
複合版は、以下の図に示す通り、3つの部分を分けて定義しております。
図の赤枠に該当し、明細部より上にある範囲です。
Microsoft Wordのヘッダーとは異なります。
図の緑枠に該当し、繰り返し項目が定義されている範囲です。
図の青枠に該当し、明細部より下にある範囲です。
Microsoft Wordのフッターとは異なります。
複合版の差し込み印刷では、明細部(繰り返し項目あり)とそれ以外のデータを対応付けする必要があります。
Word APIでは、対象となるデータのカラム名をlinking keyと呼びます。
データで一意の値をもつカラムが該当します。
複合版の差し込み印刷データにはCSV形式とJSON形式のファイルを使えます。
CSV形式の差し込み印刷データは、メインデータとサブデータの2つのファイルが必要です。
ヘッダー(繰り返し項目なし)とフッター(繰り返し項目なし)に対応するデータで、シンプル版と同様です。
明細部(繰り返し項目あり)に対応するデータで、繰り返し項目の差し込み印刷フィールドとそのデータの他に、メインデータとの対応を表すための項目(linking key)とそのデータが必要です。
以下の図の赤枠の「注文番号」がlinking keyです。
この例では、注文番号"AB0001"のメインデータに対して、3つの繰り返し項目に12回の差し込み印刷が実行されます。
サブデータは1つの明細部に対して1つのCSVファイルが必要です。
JSON形式の差し込み印刷データは、階層構造を持った1つのファイルが必要です。
ヘッダー(繰り返し項目なし)とフッター(繰り返し項目なし)に対応するデータで、シンプル版と同様です。
各種インターフェイスで指定するlinking keyには、データで一意の値をもつ第一階層目のオブジェクトのキーを選択します。
以下の図では、「注文番号」,「会社名」,「合計」のいずれかが該当します。
明細部(繰り返し項目あり)に対応するデータで、「AH_DETAIL」をキー、明細部(繰り返し項目あり)のデータを配列として定義します。
以下の図では赤枠が該当します。
下図に実行例を示します。
明細部の行数パターンのオプションで、以下の2種類の明細部の繰り返し方法を指定できます。
Word APIのデフォルトの設定で、テンプレートに定義された明細部の行数を固定したまま、差し込み印刷を実行します。
行数以上の差し込み印刷が発生した場合、2ページ目以降にテンプレートを繰り返します。
各インターフェイスの該当するオプションのFixedが対応します。
明細部のレコード数に併せて、行数が変化します。
各インターフェイスの該当するオプションのVariableが対応します。
明細部の行数パターンをFixedかつ差し込み印刷結果が複数ページに渡る場合に有効になるオプションです。
以下の2種類の編集方法を指定できます。
Word APIのデフォルトの設定で、全ページにテンプレートファイルの本文領域全体を複製します。
各インターフェイスの該当するオプションのRepeatTemplateが対応します。
2ページ目以降は、本文領域のヘッダー部分が表示されません。明細表の繰り返し項目ではない行は最終ページにのみ表示されます。
各インターフェイスの該当するオプションのRepeatDetailが対応します。
明細部の行数パターンをFixedかつ差し込み印刷結果が複数ページに渡る場合に有効になるオプションです。
以下の3種類の編集方法を指定できます。
Word APIのデフォルトの設定で、フッター部分については特に編集を行いません。
各インターフェイスの該当するオプションのLeaveAllが対応します。
最終ページ以外のフッター部分をすべて削除します。
各インターフェイスの該当するオプションのDeleteAllが対応します。
DeleteAllに対して、フッター部分の差し込み印刷フィールドは残します。
各インターフェイスの該当するオプションのLeaveFldが対応します。
Word APIでは、表の行以外に箇条書きについても、明細部(繰り返し項目あり)として差し込み印刷ができます。
表と箇条書きが混在する場合の行数パターンは、行数可変のみに対応しています。
Word APIでは、以下のように複数の明細部を定義できます。ただし、明細部の行数パターンは、1つのテンプレートファイルで共通の必要があり、混在することはできません。
[Install directory]/samples/templates/複合版テンプレート.zipに以下の2種類のテンプレートとデータのサンプルファイルを含んでおります。
請求書(行数固定のテンプレート)
御見積書(行数可変のテンプレート)