ReportViewer for ASP.NET Web Forms
集計グラフ

Reports for WinFormsの 2009 v3 リリースで組み込まれた[グラフ]フィールドは、「集計グラフ機能」と呼ばれるパワフルな新機能を備えています。この機能により、希望の集計関数(合計、平均、標準偏差など)を使用し、同じカテゴリ(DataX)を持つデータ値(DataY)を自動的に集計するグラフを作成できます。

この機能を例示するために、国、顧客、および注文 ID 別にグループ化する「請求書」レポートを考察します。レポートの概要は次のようになります。

[レポートヘッダー]セクション

[ページヘッダー]セクション

[グループヘッダー]セクション(国)

[グループヘッダー]セクション(顧客)

[グループヘッダー]セクション(注文 ID)

[詳細]セクション

[グループフッター]セクション(注文 ID)

[グループフッター]セクション(顧客)

[グループフッター]セクション(国)

[ページフッター]セクション

[レポートフッター]セクション

ここで、グラフを、現在の国の各顧客が発注したすべての注文の合計値を表示するそれぞれの[]ヘッダーに追加する場合を想定します。

まず、[グラフ]フィールドを「国」ヘッダーに追加して、DataXDataY プロパティを次のように設定します。

DataX = "CustomerName"
DataY = "ExtendedPrice"

これは機能しません。国ごとのデータは通常、顧客ごとに複数のレコードを含み、グラフはレコードごとに1つのデータポイントを作成します。グラフには、実際に各顧客の複数の値を単一データポイントに追加する必要があるかどうかを推測できません。

このシナリオを解決するために、Aggregateプロパティが[グラフ]フィールドに追加されました。このプロパティは、グラフに同じカテゴリを持つ値をグラフの単一ポイントに集計する方法を通知します。Aggregateプロパティは、任意の共通集計関数(合計、平均、カウント、最大、最小、標準偏差、および分散)をデータ上で実行するように設定できます。

例を続けると、これで、グラフの Aggregateプロパティを「Sum」に設定できるようになりました。これにより、グラフは、同じ顧客に属するレコードのすべての「ExtendedPrice」値を単一データポイントに追加します。結果は次のようになります。

各顧客が一度だけ表示されることに注意してください。グラフに表示された値は、同じ「顧客」のすべてのフィールドの「ExtendedPrice」値の合計に対応します。

「国」ヘッダーフィールドのグラフが表示されているため、グラフは国ごとに繰り返され、この国のすべての顧客を表示します。

グラフをレポートヘッダーセクションに配置した場合、レポート全体の範囲でデータを集計します。たとえば、各販売員が発注した合計金額を表示するグラフを含む「請求書」レポートを開始すると仮定します。これを実行するには、[グラフ]フィールドをレポートヘッダーセクションに追加し、次のプロパティを設定します。

DataX = "Salesperson"
DataY = "ExtendedPrice"
Aggregate = "Sum"

下の画像に、結果のグラフを示します。

グラフがレポートヘッダーセクションに配置されたため、表示された値はすべての国とすべての顧客を包含します。グラフフィールドをレポートヘッダーから「国」グループヘッダーに移動すると、国ごとに類似のグラフが得られ、この国の各販売員が販売した合計金額を表示します。