本稿の内容を増補改訂したアップデート版が提供されています。詳しくは連載の目次「5分でわかるActiveReports帳票」をご参照ください。
はじめに
ActiveReports for .NET(以下ActiveReports)はVisual Studioと統合された使いやすいレポートデザイナや高機能なレポートビューワ、多彩な出力形態をサポートする帳票作成コンポーネントです。
これまで紹介してきた表示、集計や改ページといった話題は、帳票アプリケーションを開発する上でどこでも必要となるものでしたが、実際の帳票開発では、データ以外にもユーザーの要求に合わせてさまざまな項目を出力する必要があります。
例えば、日本では「罫線文化」といわれるほど、きっちりと罫線の引かれた帳票が好まれるという事情があり、作成する帳票に対して細かく罫線を配置することが要求されます。今回は、ActiveReportsの罫線機能とデータ折り返しの制御、印刷・用紙設定について紹介していきます。
これまでの記事
- 第1回:5分でわかるActiveReports帳票-らくらく始める帳票作成
- 第2回:5分でわかるActiveReports帳票-集計処理と改ページ
- 第3回:5分でわかるActiveReports帳票-改ページ制御と多段組レイアウト
対象読者
- Visual Basic 2005またはVisual C# 2005を使ってプログラムを作ったことのある方。
- 帳票作成ツールに興味のある方。
必要な環境
- Visual Studio 2005、Visual Studio .NET 2003でプログラムが作れる環境。
本記事のサンプルコードはC# 2.0/Visual Basic 2005で記述しています。
罫線とデータの折り返しが含まれる帳票-「罫線」
最終的な完成イメージ
今回のサンプルはお店(飲食店)のリストです。
レイアウトは罫線で区切られており、1行に表示できる文字数が限られているため、長い文字列を表示するときは折り返して表示しなければなりません。また、データを折り返したときは行の高さも調節する必要があります。
今回は、レイアウト作成に焦点をあてた解説がメインとなるので、データは単純な構造のものを使用します。
ActiveReportsの罫線機能
ActiveReports帳票で罫線を引くには、Lineコントロールを使用します。Lineコントロールのように幅や高さの小さいコントロールをレポートデザイナに配置する場合、マウス操作だけで位置を細かく調整するのはなかなか大変です。
[レポート]メニューの[レポートの設定]-[グローバル設定]で「コントロールをグリッドにあわせる」にチェックを入れておくと、マウスやカーソルキーでコントロールを移動したときに、コントロールがグリッドに沿って移動するので、楽に配置することができます。
また、配置後に[書式]メニューの[整列]-[グリッドにあわせる]を実行しても、コントロールの位置を揃えることができます。複数のコントロールを選択して[整列]や[同じサイズに揃える]を実行すると、選択したコントロールの大きさや位置を一度に整えることができます。
また、「ActiveReports for .NET 3.0J」ツールバーには、レポートデザイナの表示を拡大・縮小する機能があります。帳票に小さなコントロールを配置するときはこちらも便利です。
なお、罫線の種類(実線、点線、破線など)や太さ、色を変更するにはそれぞれ、LineコントロールのLineStyleプロパティ、LineWidthプロパティ、LineColorプロパティを設定します。
LineコントロールのAhchorBottomプロパティを使うと、Lineコントロールの末尾を隣接するセクションまで伸ばすことができます。この機能は主に、セクションの高さが動的に変わるとき、縦線をつなぐために使います。
今回はdetailセクションに配置した縦線のLineのAnchorBottomプロパティをTrueに設定し、detailセクションの下まで縦線を伸ばすようにします。
コントロールを配置する
今回のサンプルでは明細行の高さが可変になるので、明細セクションでは下線を設定しません。後述しますが、折り返すコントロールの箇所によっては位置の自動調整が行われないため、下線とTextBoxなどのコントロールが重なってしまうことがあるためです。
ここでは、罫線の下線はグループフッタに配置します。グループが明細と同じ単位で繰り返すよう、グループヘッダのDataFieldプロパティにShopCodeを指定し、グループフッタにはDetailセクションと同じ幅のLineコントロールを配置します。
さらに、下線用グループフッタのCanShrinkプロパティをTrueにしてセクションをコントロールぎりぎりまで縮めておけば、なお良いでしょう。