本稿は、連載『5分でわかるActiveReports帳票(2007年度版)』(渡辺俊史・宮本奈紗 著)の増補改訂版です。
対象読者
- Visual Basic.NETまたはVisual C#を使ってプログラムを作ったことのある方
- 帳票作成ツールに興味のある方
必要な環境
-
Visual Studio 2008 SP1/2010/2012のいずれかでプログラムが作れる環境
(Express EditionではActiveReportsをインストールできません)
本記事のサンプルコードは、C#/Visual Basic 2012で記述しています。
ページレポート:Tableデータ領域
ページレポートの「データ領域」(第2回参照)には、List、BandedList、Table、Matrixなどがあります。前回はListを使用しましたが、今回はTableを使用してみましょう。
データソースとデータセットの追加
プロジェクトにページレポートを追加して、データソース、データセットを追加します。詳しい手順については第2回を参考にしてください。
第2回と同じように、製品に付属するAccessファイルのNwind.mdbに接続します。「種類」は「Microsoft OleDb Provider」、「接続設定」の「OLE DBプロバイダ」には「Microsoft Jet.OLEDB.4.0」を指定します。
データセットに使用するクエリは以下のようにします。このクエリは、製品名・種類名・製品毎の売上金額を得るものであり、Nwind.mdb内にある「Sales by Category」クエリと同じSQL文です。
SELECT DISTINCTROW Categories.CategoryID, Categories.CategoryName, Products.ProductName, Sum([Order Details Extended].ExtendedPrice) AS ProductSales FROM Categories INNER JOIN (Products INNER JOIN (Orders INNER JOIN [Order Details Extended] ON Orders.OrderID = [Order Details Extended].OrderID) ON Products.ProductID = [Order Details Extended].ProductID) ON Categories.CategoryID = Products.CategoryID WHERE (((Orders.OrderDate) Between #1/1/1995# And #12/31/1995#)) GROUP BY Categories.CategoryID, Categories.CategoryName, Products.ProductName ORDER BY Products.ProductName;
Tableの配置
Tableをページレポートに配置します。ツールボックスの「ActiveReports 7ページ」タブから「Table」を選んで、ドラッグ&ドロップします。次に、「FixedSize」と「Size」プロパティに適切な値を設定してページ上の大きさを決めます。こうした設定はListと同様なので第2回をご参照ください。
Tableは、デフォルトでは3行3列の表となっています。
列(縦方向)については、追加して4列以上に増やすことができます。また、削除して2列や1列で使用することも可能です。
一方、横方向の3行はそれぞれ役割が異なります。デフォルトで定義されている3行のうち、一番上の行は「テーブルのヘッダ」、2行目は「テーブルの詳細」、一番下の行は「テーブルのフッタ」です。
一番重要なのは「テーブルの詳細」です。セクションレポートにおけるDetailセクションに当たるものです。通常はこの行がデータを表示する行になります。
また、「グループヘッダ」「グループフッタ」の行も追加することができますが、これについては後述します。