SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

5分でわかるActiveReports帳票

5分でわかるActiveReports帳票(2013年度版)-ページレポートにおけるグループ化と式

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

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

グループヘッダ・フッタのレイアウト

 グループヘッダ・フッタに配置できるものは「グループを通じて変化しないもの」か「グループ全体の集計値」です。

 上記の例では、グループのキーとなっているCategoryIDがグループで変化しないフィールドです。この場合、CategoryIDごとのカテゴリー名を格納しているCategoryNameもそのグループを通じて変化しないので、グループヘッダにCategoryNameを表示させることが可能です。

 グループフッタ上の左端のTextBoxコントロール上にマウスカーソルをあわせ、表示される選択装飾アイコンから「CategoryName」を選択すると、以下のような式がValueプロパティに設定されます。

=First(Fields!CategoryName.Value)

 詳細行でCategoryNameを選択したときは「=Fields!CategoryName.Value」と設定されますが、グループヘッダ上でアイコンから選択すると、グループの最初のデータを得る「First」関数が自動的に付きます。グループ化された複数のレコードの内、どのレコードをグループヘッダ上に表示するか、明確に設定するためです。

グループの集計

 次に、グループで集計を取ってみましょう。グループフッタ上の右端のTextBoxコントロール上にマウスカーソルをあわせ、表示される選択装飾アイコンから「ProductSales」を選択すると、以下のような式がValueプロパティに設定されます。

=Sum(Fields!ProductSales.Value)

 今度は、値の合計を得る集計関数である「Sum」関数が自動的に付きました。これで、グループごとの「ProductSales」の合計が表示されるようになります。

 このようにグループヘッダ/フッタ上で選択装飾アイコンからフィールドを選択すると、自動的に集計関数が付加されます。付加される関数は、数値型なら合計を表す「Sum」、それ以外なら最初の項目を表す「First」です。

グループ化と集計を行ったレポート
グループ化と集計を行ったレポート

グループ化とデータの並び順

 ここまでの説明で作成した、グループ化していない単純なレポートとグループ化されたレポートをご覧ください。

 グループ化されたレポートは、CategoryIDでグループ化されており、CategoryIDの順番で出力されています。しかしながら、これらのレポートのデータソースとして設定しているSQL文は、グループ化していない単純なレポートと同じものです。

 セクションレポートでグループ化する場合、データを抽出するSQL文にORDER BY句を設定するなどして、あらかじめグループ化したい順番にデータを整列させておく必要がありました。

 それに対して、ページレポートでグループ化する場合、レポート側の機能で自動的にデータのグループ化を行います。データソースをあらかじめ整列させておく必要はありません。

グループのソート

 また、値に従って並べ替え(ソート)が可能です。Tableのプロパティ設定ダイアログを開き、「グループ」の項目から「並べ替え」のタブを開きます。

 「並べ替え」のための式を追加するパネルがあります(複数設定可能)。ここに、並べ替えの基準となる数値(番号や日付など)となる式を設定すれば、グループ単位で自動的に並べ替えが行われます。ここではCategoryIDフィールドを設定してみます。実行させるとCategoryIDの数値が小さい順にグループが並びます。なお、並び順を「降順」に設定して数値が大きい順に並ばせることも可能です。

ソートの設定
ソートの設定

グループのフィルタ

 式を使ってフィルタリングし、特定の条件を満たすデータのみ出力することも可能です。Tableのプロパティ設定ダイアログを開き、「グループ」の項目から、「フィルタ」のタブを開きます。

 例えば「CategoryID=3のデータは表示しない。それ以外のデータは表示する」という要件を満たしたい場合、以下のように設定します。

  1. 緑の+ボタンを押して、フィルタ式を追加する。
  2. 式欄にCategoryIDを設定する。
  3. 演算子欄に「NotEqual」を設定する。
  4. 値欄に「3」を設定する。

 これで「CategoryID=3のデータは表示しない(CategoryIDが3と等しくないデータのみ表示する)」フィルタが設定されます。このレポートを実行するとCategoryID=3のデータはTableに表示されません。

フィルタの設定
フィルタの設定

次のページ
Tableのレイアウトについて

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
5分でわかるActiveReports帳票連載記事一覧

もっと読む

この記事の著者

グレープシティ株式会社 ActiveReportsチーム(グレープシティカブシキガイシャ アクティブレポートチーム)

 宮城県仙台市に本社を構えるグレープシティでは、日本の業務に適したシステムをより早く開発するためのソフトウェアを提供しています。エンドユーザーの利用しやすさ、幅広いユーザー環境への対応、そして何よりプログラマの作業を軽減することを一番に目指しています。 ActiveReportsは、帳票開発に必要なあらゆる機能を備えた当社を代表するコンポーネントの1つ。1998年の発売以来、日本だけでなく全世界で多数の帳票開発者に使用されています。製品開発は同チームが中心になり、「日本仕様」の厳しい要望を実現することを目指しています。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7453 2015/07/23 16:16

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング