前回の記事
本稿は、連載『5分でわかるActiveReports帳票(2007年度版)』(渡辺俊史・宮本奈紗 著)の増補改訂版です。
対象読者
- Visual Basic.NETまたはVisual C#を使ってプログラムを作ったことのある方
- 帳票作成ツールに興味のある方
必要な環境
-
Visual Studio 2008 SP1/2010/2012のいずれかでプログラムが作れる環境
(Express EditionではActiveReportsをインストールできません)
本記事のサンプルコードは、C#/Visual Basic 2012で記述しています。
ページレポート
ActiveReports for .NET 7.0Jより、「ページレポート」が追加されました。ページレポートは、印刷結果と同じレイアウトでデザインできるWYSIWYGデザイナを提供しています。設計時のレイアウトがそのまま印刷結果に直結するため、直観的な帳票デザインができるようになっています。
なお、6.0J以前と同じレポートデザイン形式も使用することができ、7.0Jではその形式は「セクションレポート」と呼ばれるようになりました。ページレポート、セクションレポートは異なるレイアウト形式のレポートですが、シームレスに1つのビューワで表示できます。
ページレポートの詳しいアーキテクチャなどの情報が記載されているホワイトペーパーは、こちらからダウンロードできます。
セクションレポートとページレポートの違い
セクションレポートとページレポートでは、レポートの構造が異なります。
セクションレポートの場合は、データの数だけセクション(詳細セクション、グループヘッダセクションなど)を繰り返し出力することでページを構成します。そのため、デザイナ画面と実際の生成結果(印刷・プレビュー内容)は一致しません。
一方、ページレポートの場合、デザイナ画面でページ上に表示したい要素としてコントロールを配置します。このときはデザイン画面と実際の生成結果はWYSIWYG(what you see is what you get:見たままが得られる)の関係になる点がセクションレポートと異なります。
ページ上にデータを繰り返し表示させたい場合は、TableコントロールやListコントロールといった「データ領域(詳細は後述)」をページ上に配置します。このときはページ上のどの範囲までデータを繰り返し表示させるかを設定できます。例えば、下図「ページレポートのデザイン画面」の場合、斜線が引かれている部分に繰り返しデータが表示されます。
ページレポートのレポートコントロール
ページレポートに配置可能なコントロールは、ツールボックスに表示されます。
ページレポートのコントロールは、「データ領域」と「レポートコントロール」の2種類に分けられます。
データ領域
コントロールに連結されたデータセットを元に、行や列などを決められた範囲(領域)に繰り返し出力するコントロールです。データ領域コントロール上には、後述のレポートコントロールを配置することも可能です。ただし、データ領域コントロール上に別のデータ領域コントロールを配置することはできません。
List
連結されたデータ分だけ、データ領域部分を繰り返し出力するコントロールです。データ領域上の任意の場所に自由にレポートコントロールを配置できます。タックシールのように自由にレイアウトした項目を繰り返し出力するようなレイアウトに適しています。
BandedList
基本的にListコントロールと同様に自由に配置したレポートコントロールを繰り返し出力できるコントロールですが、グループヘッダ/フッタを定義できます。
Matrix
縦方向だけではなく、横方向にも繰り返しデータを出力できるコントロールです。
Table
行と列で構成されるコントロールです。ヘッダやフッタも定義でき、データセットを単純な表として表示するのに適したコントロールです。
Chart
グラフを出力するためのコントロールです。
OverflowPlaceHolder
List、BandedList、Matrix、Tableなどの他のデータ領域について、設定した範囲にデータが収まりきらない時、その続きを表示する場所を指定するためのコントロールです。詳細については後述します。
レポートコントロール
レポート上に実際にデータを表示するためのコントロールです。これらは上記の「データ領域」内に貼り付けたり、ページレイアウト上に直接貼り付けて使用します。
Barcode
バーコードシンボルを表示するためのコントロールです。
Bullet
データを1次元的なグラフ形式で表示するためのコントロールです。
Calendar
日付を基にしたデータなどをカレンダー形式で表示するためのコントロールです。
CheckBox
ブール型のデータをチェックボックス形式で表示するためのコントロールです。
Container
複数のレポートコントロールのコンテナとなるコントロールです。複数のコントロールを視覚的にグループ化する時などに使用します。
FormattedText
データのマージ操作やXHTML書式付きのテキストを表示することができるコントロールです。
Image
画像を表示するためのコントロールです。
Line
直線を表示するためのコントロールです。
Shape
四角形、角丸四角形、楕円などの図形を表示するためのコントロールです。
SparkLine
データの傾向を5種類の簡易的なグラフで表示することができるコントロールです。
TextBox
データ(文字列)を表示するための最も一般的なコントロールです。