Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。3.0J」を使って帳票アプリケーションを作成していきます。今回は改ページ時のセクション制御方法や、多段組レイアウトについて解説していきます。本稿の内容を増補改訂したアップデート版が提供されています。詳しくは連載の目次「5分でわかるActiveReports帳票」をご参照ください。Studioと統合された使いやすいレポートデザイナや、高機能なレポートビューア、多彩な出力形態をサポートする帳票作成コンポーネントです。今回は前回に引き続きActiveReports帳票の改ページ制御と、多段組レイアウト帳票について紹介していきます。2005を使ってプログラムを作ったことのある方。帳票作成ツールに興味のある方。2003でプログラムが作れる環境。2005で記述しています。改ページ制御について最終的な完成イメージ今回は、改ページの制御について説明していきます。前半は前回のサンプルを少し変えた、以下のような帳票を例に解説を進めていきます。Detailセクションの高さが低いままだと改ページ制御について特に意識していなくてもうまく用紙に収まってしまうことが多いため、今回はあえてセクションの高さを広げるためにDetailセクションのレイアウトへ「商品コードのバーコード」を追加しています。前回はPageBreakコントロールを利用した改ページを主に紹介しましたが、今回はセクションに用意されたプロパティを利用した改ページの制御を中心に解説していきます。セクション出力前後のタイミングで改ページ制御を行うには、各セクションのNewPageプロパティを利用します。NewPageプロパティには、None、Before、After、BeforeAfterのいずれかを設定できます。セクション出力前と出力後の両方で改ページするセクションがページ区切りで分割されるのを防ぐActiveReportsでは用紙に対して各セクションを順番に出力していくので、ページの最後で残りサイズより大きなセクションを出力すると、セクションが2ページにまたがって出力されてしまいます。明細が切れた注文集計表このような場合、Detailセクションまたはグループヘッダ/フッタセクションのKeepTogetherプロパティを設定することで、ページ区切りによってセクション出力が分割されるのを避けることができます。KeepTogetherプロパティをTrueに設定すると、ActiveReportsはセクションの出力前に残り用紙サイズを判断し、サイズ不足でセクションが切れてしまう場合には改ページしてからセクションを出力します。ページヘッダとページフッタにはKeepTogetherプロパティが存在しません。ActiveReportsでは、各ページのページヘッダとページフッタの領域が最初に確保され、残りの領域に対して他のセクションが配置されていきます。ページヘッダとページフッタの高さの合計が用紙サイズよりも大きくなってしまうと、実行時にエラーが発生するので注意してください。グループヘッダを毎ページ出力するグループヘッダのセクションは通常、グループの出力ごとに1度だけ出力されます。これを毎ページ出力させたい場合は、グループヘッダのRepeatStyleプロパティを「OnPage」または「OnPageIncludeNoDetail」に設定します。設定値にOnPageを設定すると、そのページに1件以上detailセクションが出力される場合のみグループヘッダが出力されます。OnPageIncludeNoDetailに設定すると、detailセクションが出力されない(=グループフッタのみ出力される)ケースでもグループヘッダが表示されます。関連するdetailセクションまたはグループフッタを含むページごとにグループヘッダを出力するグループ化して改ページするセクションの大きさによっては、以下のようにグループヘッダだけが前ページに出力され、detailセクションから次のページ出力が始まってしまうことがあります。グループヘッダを、detaliセクションやグループフッタと1つのブロックとして同一ページに出力するためには、グループヘッダのGroupKeepTogetherプロパティを設定します。グループヘッダ、詳細、グループフッタの各セクションを同じページに出力するグループヘッダが次ページへ移動された注文集計表このサンプルでは、注文番号グループヘッダセクションのGroupKeepTogetherプロパティをFirstDetailに設定し、ヘッダは必ず明細行と一緒に表示するよう制御しています。ERPソリューション部所属。ERPシステムの設計・開発に従事。業務でActiveReportsを使用。パッケージ開発部所属。ECサイト構築パッケージの設計・開発に従事。データベース・データアクセスフォーラムリーダー。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。12:00法務担当者、6割超が今後業務で「生成AIを使用したい」と回答。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。