複合版の差し込み印刷

Word APIでは、繰り返し項目があるテンプレートを複合版と定義しています。
ここでは、Word APIの複合版の差し込み印刷機能について説明します。

繰り返し項目

複数回にわたって差し込み印刷が実行される差し込み印刷フィールドを繰り返し項目と呼びます。

複合版のパート定義

複合版は、以下の図に示す通り、3つの部分を分けて定義しております。

Compound Part Image

ヘッダー(繰り返し項目なし)

図の赤枠に該当し、明細部より上にある範囲です。
Microsoft Wordのヘッダーとは異なります。

明細部(繰り返し項目あり)

図の緑枠に該当し、繰り返し項目が定義されている範囲です。

フッター(繰り返し項目なし)

図の青枠に該当し、明細部より下にある範囲です。
Microsoft Wordのフッターとは異なります。

linking key

複合版の差し込み印刷では、明細部(繰り返し項目あり)とそれ以外のデータを対応付けする必要があります。
Word APIでは、対象となるデータのカラム名をlinking keyと呼びます。
データで一意の値をもつカラムが該当します。

複合版の差し込み印刷データ

複合版の差し込み印刷データにはCSV形式とJSON形式のファイルを使えます。

複合版の差し込み印刷データ(CSV)

CSV形式の差し込み印刷データは、メインデータとサブデータの2つのファイルが必要です。

メインデータ

ヘッダー(繰り返し項目なし)とフッター(繰り返し項目なし)に対応するデータで、シンプル版と同様です。

サブデータ

明細部(繰り返し項目あり)に対応するデータで、繰り返し項目の差し込み印刷フィールドとそのデータの他に、メインデータとの対応を表すための項目(linking key)とそのデータが必要です。
以下の図の赤枠の「注文番号」がlinking keyです。
この例では、注文番号"AB0001"のメインデータに対して、3つの繰り返し項目に12回の差し込み印刷が実行されます。
サブデータは1つの明細部に対して1つのCSVファイルが必要です。

Compound CsvData Image

複合版の差し込み印刷データ(JSON)

JSON形式の差し込み印刷データは、階層構造を持った1つのファイルが必要です。

第一階層

ヘッダー(繰り返し項目なし)とフッター(繰り返し項目なし)に対応するデータで、シンプル版と同様です。
各種インターフェイスで指定するlinking keyには、データで一意の値をもつ第一階層目のオブジェクトのキーを選択します。
以下の図では、「注文番号」,「会社名」,「合計」のいずれかが該当します。

第二階層

明細部(繰り返し項目あり)に対応するデータで、「AH_DETAIL」をキー、明細部(繰り返し項目あり)のデータを配列として定義します。
以下の図では赤枠が該当します。

Compound JsonData Image

複合版の差し込み印刷の実行例

下図に実行例を示します。

Compound data merge exec example Image

複合版の差し込み印刷のオプション

明細部の行数パターン

明細部の行数パターンのオプションで、以下の2種類の明細部の繰り返し方法を指定できます。

行数固定(デフォルト)

Word APIのデフォルトの設定で、テンプレートに定義された明細部の行数を固定したまま、差し込み印刷を実行します。
行数以上の差し込み印刷が発生した場合、2ページ目以降にテンプレートを繰り返します。
各インターフェイスの該当するオプションのFixedが対応します。

Compound Fix Image

行数可変

明細部のレコード数に併せて、行数が変化します。
各インターフェイスの該当するオプションのVariableが対応します。

Compound Variable Image

行数固定の明細表が複数ページに渡る場合のスタイル

明細部の行数パターンをFixedかつ差し込み印刷結果が複数ページに渡る場合に有効になるオプションです。
以下の2種類の編集方法を指定できます。

本文領域全体を複製(デフォルト)

Word APIのデフォルトの設定で、全ページにテンプレートファイルの本文領域全体を複製します。
各インターフェイスの該当するオプションのRepeatTemplateが対応します。

明細表の繰り返し

2ページ目以降は、本文領域のヘッダー部分が表示されません。明細表の繰り返し項目ではない行は最終ページにのみ表示されます。
各インターフェイスの該当するオプションのRepeatDetailが対応します。

Compound Fix RepeatDetail Image

明細部の行数パターンをFixedかつ差し込み印刷結果が複数ページに渡る場合に有効になるオプションです。
以下の3種類の編集方法を指定できます。

Word APIのデフォルトの設定で、フッター部分については特に編集を行いません。
各インターフェイスの該当するオプションのLeaveAllが対応します。

最終ページ以外のフッター部分をすべて削除します。
各インターフェイスの該当するオプションのDeleteAllが対応します。

Compound Fix DeleteAll Image

DeleteAllに対して、フッター部分の差し込み印刷フィールドは残します。
各インターフェイスの該当するオプションのLeaveFldが対応します。

Compound Fix LeaveFld Image

明細部の種類

Word APIでは、表の行以外に箇条書きについても、明細部(繰り返し項目あり)として差し込み印刷ができます。
表と箇条書きが混在する場合の行数パターンは、行数可変のみに対応しています。

Compound Bullet Image

明細部の数

Word APIでは、以下のように複数の明細部を定義できます。ただし、明細部の行数パターンは、1つのテンプレートファイルで共通の必要があり、混在することはできません。

表が複数存在する場合の例

Compound Multi Table Image

箇条書きが複数存在する場合の例

Compound Multi Bullet Image

サンプルファイル

[Install directory]/samples/templates/複合版テンプレート.zipに以下の2種類のテンプレートとデータのサンプルファイルを含んでおります。
請求書(行数固定のテンプレート)
御見積書(行数可変のテンプレート)