購入明細や商品一覧など、一覧形式の表を含む帳票を作成するというのは非常によくあることだと思います。
ActiveReports for .NETが販売当初より提供しているレポート形式であるセクションレポートで一覧表を作成する場合、ページヘッダ/フッタやグループヘッダ/フッタなど、詳細セクション以外のセクションを活用してデザインすることは多々あると思います。
このとき、セクションをまたいで配置できるコントロール「クロスセクションボックスとクロスセクションライン」を使用することで一覧表の罫線を簡単に表現することができます。
今回はこれらの使い方を、最新バージョン「12.0J」で追加された新機能とともにあらためてご紹介したいと思います。
基本的な使い方
受注コードでグルーピングした受注明細表の作成にクロスセクションボックスとクロスセクションラインを使ってみます。レポートにグループヘッダ/フッタを追加したら、ツールボックスからCrossSectionBoxをグループヘッダ、またはフッタにドロップします。
すると以下のようにセクションをまたいだボックスを配置することができます。このコントロールに罫線(LineStyleプロパティ)を設定することで、表の外枠の罫線として使用できます。
同じことをLineコントロールだけでやろうとすると、合計8個のLineコントロールが必要になります。また、きれいに切れ目のない表にするために各コントロールの位置をきっちり調整しないといけないなど煩わしさもあります。
クロスセクションボックスならこれを1つのコントロールで表現できるので、もちろんセクション間の切れ目など気にする必要はなく、表の枠線が簡単に表現できます。
同様にセクションをまたいで直線を出力できるクロスセクションラインも使用してみます。ツールボックスからCrossSectionLineを必要な数ドロップし、これらを表の内側の縦の罫線としてレイアウトを作成します。完成するとこんな感じです。
わかりやすく線の色を変えてみます。下の青くハイライトした部分がクロスセクションボックスで
こちらがクロスセクションライン。Lineコントロールだけだと12個必要になるところが4個で済んでいます。
線の色を戻してプレビューするとこのような感じで明細表が作成できました。
うまくデザインできないこともある
この便利なクロスセクションボックスですが、これまではレイアウトによっては思うようにデザインできないこともありました。
例えば先ほどの明細表で改ページが発生した場合を見てみます。パッと見はわからないですが、よく見ると表の外枠の罫線の下側だけ太さが異なります。これまではクロスセクションボックスを配置した帳票において改ページが発生した場合、改ページ部分の罫線を出力することができず、そのボックスの罫線を閉じることができませんでした。
もっとわかりやすく、明細内側の横の罫線がない場合のレイアウトで試してみます。この場合は表の下側が完全に開いた状態になってしまいます。
最終行の罫線だけ太くするなどして回避もできますが、コードを書いて独自の処理を実装しなくてはいけないので面倒です。
罫線を閉じればサクッと解決
この問題を解決するためのCloseBorder
プロパティが12.0Jで追加されています。使い方は簡単です。プロパティグリッドからCloseBorder
プロパティをTrueに設定するか、スマートダイアログから「改ページの時に罫線で閉じる」にチェックをいれます。
実行してみると以下のように改ページ部分の罫線もバッチリ出力されました!
いかがでしたでしょうか。12.0Jではこの他にも多数の新機能が追加されております。製品Webサイトではトライアル版のほか、デモアプリケーションも公開しておりますので、是非一度お試しいただければと思います。
ActiveReports for .NET 12.0J – 製品情報
Windowsアプリケーションデモ
Webアプリケーションデモ