Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

5分でわかるActiveReports帳票(2013年度版)-Matrixデータ領域を使用したクロス集計表の作成

ActiveReports for .NET 7.0Jで作るサンプル帳票(6)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 ページレポートに用意されているMatrixデータ領域(以下、Matrix)は、データを縦(行)と横(列)の両方向に展開できるコントロールです。行と列それぞれにグループを設定し、行と列が交差するセルに集計値を表示できます。つまり、「クロス集計表」を作成することができるコントロールです。

目次

 Matrixは、他のデータ領域と異なり、横方向にもデータを展開できるため、使い方も他のデータ領域とは少し異なります。今回はこのMatrixの使い方を紹介します。

備考

 本稿は、連載『5分でわかるActiveReports帳票(2007年度版)』(渡辺俊史・宮本奈紗 著)の増補改訂版です。

Matrixレポートの作成

 まず、Matrixを使ったレポートを作成してみましょう。

 プロジェクトにページレポートを追加し、データソース、データセットを設定します。これらの手順については第2回をご参照ください。

 今回も、ActiveReportsに付属するAccessデータベースファイル「Nwind.mdb」を使用します。過去の注文データ(Order Details)テーブルから、注文ごとの価格の合計(Subtotal)、注文日(OrderDate)、発送する地域名(ShipCountry)、発送する区市町村(ShipCity)のデータセットを取得するため、以下のようなクエリーを設定します。

SELECT DISTINCTROW [Order Details].OrderID,
    Sum(CCur([UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS Subtotal,
    Orders.OrderDate,
    Orders.ShipCountry,
    Orders.ShipCity
FROM     [Order Details]
INNER JOIN Orders ON Orders.OrderID = [Order Details].OrderID
GROUP BY [Order Details].OrderID, 
    Orders.OrderDate,
    Orders.ShipCountry,
    Orders.ShipCity
ORDER BY Orders.OrderDate;

Matrixの配置

 次にページレポート上にMatrixを配置します。

 配置したら、プロパティウィンドウからMatrixのFixedSizeプロパティを設定し、クロス集計表が表示される領域を設定します。

 なお、Matrixは、初期状態では2×2の表になっており、各セルはTableデータ領域と同様にTextBoxコントロールで構成されています。

Matrixデータ領域
Matrixデータ領域

 出力内容を分かりやすくするために、それぞれのセル(TextBoxコントロール)に罫線を設定します。セルを選択した状態で、プロパティウィンドウのBorderStyleプロパティを”Solid”に設定します。

 なお、今回紹介しているレポートでは、すべて罫線を設定していますが、以降の説明ではこの罫線を設定する手順は省略しています。

Matrixにフィールドを追加する

 前述のとおり、初期状態のMatrixは4つのセルから構成されており、それぞれのセルを「コーナー」「行ヘッダ」「列ヘッダ」「集計詳細」と言います(下図参照)。

Matrixの構成要素
Matrixの構成要素

 左上の「コーナー」には特別な機能はありません。空白のままにしておくか、タイトルなどを表示するのに使います。

 「行ヘッダ」と「列ヘッダ」には集計対象としてグループ化したいフィールドを、「集計詳細」には集計したいフィールドと集計式を設定します。ここでは、以下のように設定します。

  • 「行ヘッダ」にはフィールド「ShipCountry」を設定します。TextBoxコントロールのValueプロパティは「=Fields!ShipCountry.Value」です。
  • 「列ヘッダ」にはフィールド「OrderDate」を設定します。TextBoxコントロールのValueプロパティは「=Fields!OrderDate.Value」です。
  • 「集計詳細」にはフィールド「Subtotal」を設定します。TextBoxコントロールのValueプロパティは「=Sum(Fields!Subtotal.Value)」です。
備考

 フィールドを設定するには、レポートエクスプローラのデータセットからデザイナ上に設定したいフィールドをドラッグ&ドロップするか、TextBoxコントロール上にマウスを移動した時に表示される「フィールド選択修飾」アイコン(フィールドセレクター)をクリックして表示されるリストから選択してください。

  ここまでの手順で作成したレポートでもプレビュー表示することは可能ですが、集計表として見やすくするために書式を設定します。

  • 「列ヘッダ」に設定されているフィールド「OrderDate」は日付時刻型です。何も書式を設定しないと時刻まで表示されてしまいますので、TextBoxコントロールのFormatプロパティから”Short Date”を選択し、「2000/01/01」のような形式で表示させます。
  • 「集計詳細」に設定しているフィールド「Subtotal」は金額に関する項目です。Formatプロパティから”Currency”を選択し、記号付きの通貨として表示させます。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:5分でわかるActiveReports帳票

もっと読む

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5