前回は、CrystalReports作成したデータをPDF形式で出力させる方法を説明しました。今回の記事では、宛名ラベルのような複数データを横方向に繰り返し印刷する帳票の作成方法を説明します。印字内容は、純粋な宛名ラベルだったら「郵便番号+住所+氏名」程度ですが、今回は通販での注文配送をイメージして下記の項目を印字してみる事にします。上部に印刷する付加情報また、宛名を印刷するラベルは下記の商品を想定します。各ラベルのサイズは66×22.9mmで、上・左の余白はそれぞれ12.9mmと6mmです。データセット定義まずは、前々回と同様DataSetのフィールド定義を行います。データ型は全てStringです。次に、レイアウト定義を行います。レポート”を選択します。レポートウィザードを使用で、エキスパートの使用は標準を選択します。ここで思わずエキスパートの使用で”宛名ラベル”を選択したくなるところですが、宛名ラベルを選んでレイアウトを生成させると明細欄が非常に編集しにくい(実際に一度やってみると分かります)ので、あえて”標準”で雛形を作った後にプロパティを変更する事にします。データは、先ほど作成したDataSetを指定します。フィールドは全項目を選択します。グループ化、レコードの選択はデフォルトのまま次へをクリックします。[画像無し]スタイルは”標準”でOKです。自動生成された帳票レイアウトは、以下の通りです。これをベースに、宛名シール用へ定義を変更していきます。ヘッダ部のレイアウト定義まずは、レポートヘッダ、フッタの高さを0にします。レポートヘッダのタイトルをクリックし、Heightを0にします。(フッタも同様)また、フッタの右端にページ番号のコントロールがあるので、ページヘッダに移動しておきます(宛名ラベル上部の余白に印刷させます)。次にページヘッダの高さをセットします。heightにセットする値は単位がtwipというもので、1440twipが1インチ(2.54cm)に相当します。731.338(twip)となり、731をセットします。ヘッダにあったタイトルは、宛名ラベルでは不要なので全て削除します。DataSetで定義したheaderTextフィールドは、ページヘッダ用なのでヘッダ欄に移動させます。ページヘッダ部を設定した後の状況は以下のような感じになります。詳細部のレイアウト定義ヘッダができたら次は明細部の定義を行います。こちらも、まずは高さを設定します。今回のレイアウトでは、高さが33.9mmのシールに印刷したいので、以下の式により1929を指定します。1928.897高さを変えたら、明細部にあるフィールドの各コントロールを左の方に寄せておきます。この状態で、もし印刷を行うとラベルの左端のみ印刷できる状態になりました。今回は1行に3枚のラベルがある為、横方向の繰り返し処理を定義する必要があります。横方向の繰り返しを行うには、詳細のタイトルを右クリックし「セクションエキスパート」を選択します。左側で詳細が選ばれているのを確認し、右側共通タブの「複数の列で書式設定」にチェックを入れます。チェックを入れると、レイアウトタブが追加されます。レイアウトタブに移ると、詳細バンドの幅を指定する事が可能です。ここはcm単位で指定可能なので、そのまま設定します。設定を行うと、明細バンドのタイトル幅が短くなりました。他に印字項目のフォントサイズ・書式の変更も行いました。以上で、レイアウト作成処理は官僚です。以下のような感じで、テストデータの作成&レポートの印刷処理を行います。ここの考え方は、前回までと特に変更ありません。}動作確認プログラムを実行すると、以下のように横方向の繰り返しがある宛名ラベルが作成できました。氏名の下にある連番を見ると分かりますが、ラベルは横方向に順に印刷されます。印刷方向を縦にしたい場合は、前述の”明細セクションのレイアウト”タブで、印刷方向を「縦から横」に変更します。変更後に再実行してみると、縦方向に順に印刷されている事が確認できます。コメントをキャンセルメールアドレスが公開されることはありません。29お勧め書籍webアプリのセキュリティ対策の為に。