改ページとセクションレイアウトのテスト
出力項目1つ1つの確認が終わったら、次は「各セクションの配置と改ページ制御のテスト」に移ります。
標準出力へ結果を書き出す「コンソールアプリケーション」や、出力したHTMLをWebブラウザ表示する「Webアプリケーション」とは異なり、帳票アプリケーションの出力には「ページ」という概念を考慮に入れなければなりません。
セクションのページ分割を避ける
ActiveReportsでは1件分のデータを出力する単位として「Detailセクション」が使われますが、この他にもDetailセクションに列ヘッダを付与したり、グループ単位で集計結果を出力するための各種ヘッダ、フッタセクションも用意されています。
ヘッダ・フッタセクションには1回だけ出力される「レポートヘッダ・フッタ」、毎ページの先頭・末尾に必ず出力される「ページヘッダ・フッタ」、Detailセクションの集計単位で出力される「グループヘッダ・フッタ」の3種類があります。
ActiveReportsでは出力先の用紙サイズに合わせてこれらの各セクションを配置していきますが、ページの残りサイズが少ない場合は1つのセクションが途中で改ページされ、2ページに分割されてしまいます。セクション途中の改ページを避けるには、各セクションのKeepTogetherプロパティをTrueにします。
ページ下部の余白を避ける
各セクションのKeepTogetherプロパティをTrueに設定すると、1つのセクションが2ページに分割されるのを避けることができます。しかしこの方法でセクション分割を避けると、各ヘッダ、フッタセクションの高さやDetailセクションの数によっては、ページの下部に余白ができてしまうことがあります。
帳票の要件によっては、このような余白は好まれないこともあります。特に罫線の多い帳票では余白の領域が目立つため、出力ミスのように見えてしまうこともあります。
改ページによる余白の発生を避けるには、できるだけ各セクションの高さを揃え、各ヘッダ・フッタの出現回数やDetailセクションの出力数によってページの「あまり」が発生しないように工夫する必要があります。同時に、各セクションは高さを固定し、出力データの文字列長にあわせてコントロールが拡張されないように設定してください。
このようにセクションを調整したうえで、ヘッダ・フッタの出現パターンを網羅したテストケースを作成して、1つ1つ確認していきます。
ページの先頭に来るヘッダセクションの組み合わせ例
- レポートヘッダ+ページヘッダ
- ページヘッダ+グループヘッダ
- ページヘッダのみ
ページの末尾に来るフッタセクションの組み合わせ例
- ページフッタのみ
- グループフッタ+ページフッタ
- レポートフッタ+ページフッタ
- グループフッタ+レポートフッタ+ページフッタ
この他、Detailセクションの件数がゼロ件のときに発生する「ヘッダだけのセクション」や「フッタだけのセクション」、改ページ制御のミスが原因で発生する「白紙の出力ページ」がないかも確認してください。