ここでは差し込み印刷におけるNextRecordIf(NextIfフィールド)の使い方についてご紹介します。
■ どんな使い方をするの?
条件に合致すれば次のレコードを差し込むことができます。結果がTrueの場合は次のレコードが差し込まれ
て終了、Falseなら現在のレコードのままで終了です。(次々にレコードを検証するわけではない)
正確には 次のような動作をします。
これを使うと特定の種類のデータのみ差し込むことができます。例えば「会社ごと」「部署ごと」に差し込むことができます。
注:ラベルでは使用できません。
それでは上図のように【会社ごとに氏名を挿入】してみましょう。(種類はレター)
■ 準備:データファイルで会社ごとに区切り(空白行)を入れる
まずはデータファイルで会社ごとに空白行を入れて区切ります。NextIfで「会社名が空白でないなら次レコードも挿入」とするためです。
※ データ量が多く、手動で空白行を入れるのが困難な場合は「Excel:項目ごとに空白行を入れるには」を参考に操作してください。
■ NextRecordIfを使って差し込む
1件目は普通に差し込みます。2件目以降は「会社名が空白でなければ次レコード」という条件で差し込みます。尚、条件として差し込むMergeFieldは現在のレコードの値を参照します。(挿入しようとしているレコードの値ではないため、挿入しようとしている行(同じ行)に条件のフィールドは作成できません)
↓つまり1件目の会社名が空白でないなら2件目(佐々木次郎)が挿入。2件目の会社名が空白でないなら3件目(空白)が挿入。3件目の会社名が空白なのでここで終わり(次ページ)
★現在のレコードの会社名が空じゃないなら次へ → 氏名フィールド挿入
{NextIf { MergeField
会社名
} <> “”
} { MergeField 氏名
}
------------------------------------------------------------------------------
≪会社名≫
≪氏名≫ ←
1レコード目(山田太郎) ≪NextRecordIf≫ ≪氏名≫
←
現在のレコード(1)の会社名が空白でない
(True)ので次へ
→ レコード2の氏名(佐々木
次郎)が挿入
≪NextRecordIf≫ ≪氏名≫ ←
現在のレコード(2)の会社名が空白でない
(True)ので次へ
→ レコード3の氏名(空白)が挿入
≪NextRecordIf≫ ≪氏名≫ ←
現在のレコード(3)の会社名が空白なので(False)次へいかない
→ 現在のレコード3の氏名(空白)が挿入
≪NextRecordIf≫ ≪氏名≫ ←
現在のレコード(3)の会社名が空白なので(False)次へいかない
→ 現在のレコード3の氏名(空白)が挿入
…
フィールド挿入分続く。レコード4(佐藤美和)は次ページに差し込まれ、同様にNextIfで挿入されていきます。
★
細かい操作手順は「会社ごとにデータを差し込む(1ページに 付き同じ種類のデータを挿入)」を参照してください。
★ 補足
上記の仕様(条件は現在のレコードの値を参照)から、挿入したいレコードと同じ行に条件フィールドは作れません。例えば下のデータで「マークが○でないなら次のレコードを挿入」とするとします。
{NextIf { MergeField マーク
} <> “○”
} { MergeField 氏名
}
≪氏名≫ ← レコード1(山田太郎)
≪NextRecordIf≫ ≪氏名≫ ←
現在のレコード(1)のマークが○なので(False)次レコードへはいかない → 現在のレコードの氏名(山田太郎)が挿入
≪NextRecordIf≫ ≪氏名≫ ←
現在のレコード(1)のマークが○なので(False)次レコードへはいかない → 現在のレコードの氏名(山田太郎)が挿入
≪NextRecordIf≫ ≪氏名≫ ←
現在のレコード(1)のマークが○でない(False)次レコードへはいかない → 現在のレコードの氏名(山田太郎)が挿入
………を繰り返し、差し込み結果は下図のようになります。
P1…1レコード目挿入後、現在のレコード(1)のマークが○ではないのでFalseとなり、≪氏名≫フィールド分、レコード1の値(山田太郎)が挿入されます。
P2…次レコード2が次ページに差し込まれ、レコード2のマークは○ではない(True)ので、次レコード3の氏名が挿入。レコード3のマークは○なので(False)次へはいかず≪氏名≫分、レコード3の値が挿入されます。
P3…次レコード4が次ページに差し込まれ、レコード4のマークは○ではない(True)ので、次レコード5の氏名が挿入。レコード5のマークは○なので(False)次へはいかず≪氏名≫分、レコード5の値が挿入されます。
P4…次レコード6が次ページに差し込まれ、その次はないのでここで終了です。
|