BarTenderで各レコードごとに複数部を順番に印刷または丁合い印刷する方法
質問
BarTenderドキュメントが現在、3行のテーブルを持つSQL Serverデータベースにリンクされていて、各レコードごとに複数枚印刷したい場合、BarTenderはどの順番でラベルを印刷しますか?
対象製品
BarTender Designer 2019以降
回答
指定した印刷枚数に基づき、BarTenderはまずレコード1のすべてのコピーを印刷し、次にレコード2のすべてのコピー、というように選択した各レコードごとに印刷します。たとえば、各レコードにつき2枚印刷するよう指定した場合、印刷される順番は「1, 1, 2, 2, 3, 3」となります。
BarTenderは「部単位印刷(コラート印刷)」には対応していません。つまり、BarTenderで印刷ジョブ全体を1セット印刷してから繰り返す、つまり「1, 2, 3, 1, 2, 3」のような順番で印刷するオプションはありません。
ただし、BarTenderには標準でこの機能はありませんが、以下の方法でこの制限を回避することが可能です。
例えば、図1-1の「テーブルA」が現在BarTenderドキュメントにリンクされているテーブルで、「テーブルB」が「テーブルA」のコピーだとします。この2つを組み合わせることで、1セット目の全レコードを印刷してから2セット目を印刷することができます。
図1-1
BarTenderでは、カスタムSQLステートメント(図1-2)を使うことで、データベースファイルやテーブル自体を変更せずに実現できます。SQLUNION ALL演算子を使えば、2つ以上のSELECT文の結果を結合できます(図1-3)。返されたデータは1つのテーブルとして表示されます。
SELECT column1, column2, ... FROM table_A;
UNION ALL
SELECT column1, column2, ... FROM table_A;
図1-2
図1-3
詳細情報
*印刷したい重複行の数に応じて、UNION ALL演算子を同じSELECT文の間に複数回使う必要があります。
*重複レコードを含めるには、UNIONではなくUNION ALLを使用してください。
*この方法にはいくつか制限があります:
- BarTenderでは、カスタムSQLステートメントを指定(上級者向け)オプションは一部のデータベースタイプでのみサポートされています。
- 複雑なSQLクエリの場合、BarTenderでカスタムSQLステートメントを指定するのが難しい場合があります。