Reports for WinForms
集計関数の使い方
C1Report の使い方 > VBScript 式 > 集計関数の使い方

集計関数は、出力されるグループのデータをまとめるために使用されます。レポートヘッダフィールドで使用された式は、データセット全体の集計値を返します。グループのヘッダまたはフッタで使用された式は、そのグループの集計値を返します。

C1Report の集計関数はすべて、次の2つの引数を受け取ります。


C1Report では、次の集計関数が定義されています。

値の型 説明
Avg 現在のグループ内の式の平均値。たとえば、次の式はグループ全体の平均売上高と特定の製品の平均売上高を計算します。 Avg(SalesAmount)
Avg(SalesAmount, ProductType = 3)
Sum グループ内のすべての値の合計。
Count グループ内の、値が null でないレコードの数。式にアスタリスク(*)を使用すると、すべてのレコードを含めることができる。たとえば、次の式は、住所の値が有効な(null ではない)従業員の数と従業員の総数をカウントします。 Count(Employees.Address)
Count(*)
CountDistinct グループ内の、値が null でないレコードの数。
Min, Max 式の最小値および最大値。たとえば、次の式は売上高の最大値を取得します。 "Min Sale = " & Max(SaleAmount)
Range 式の最小値と最大値の範囲。
StDev, Var 現在のグループ内の、式の標準偏差および分散。これらの値は、SQL や Microsoft Excel と同様に、サンプル(n-1)の式を使って計算される。
StDevP, VarP 現在のグループ内の、式の標準偏差および分散。これらの値は、SQL や Microsoft Excel と同様に、母集団(n)の式を使って計算される。

集計関数を使用するには、ヘッダセクションまたはフッタセクションに計算フィールドを追加し、フィールドのText プロパティに式を割り当てます。

たとえば、NWind.xml サンプルファイルの "Employee Sales by Country" レポートには、複数の集計フィールドが含まれています。このレポートは、レコードを国(Country)別や従業員(Employee)別にグループ化しています。

Employee グループのフッタセクションにある SalespersonTotal フィールドには、次の式が含まれています。

=Sum([SaleAmount])

このフィールドは Employee グループのフッタにあるため、この式は従業員別の総売上高を返します。

CountryTotal フィールドと GrandTotal フィールドにも、まったく同じ式が含まれています。しかし、これらのフィールドはそれぞれ Country グループのフッタおよびレポートフッタにあるため、これらの式は国別の総売上高およびレコードセット全体の売上高を返します。

グループ内から上位レベルの集計値を参照する場合があります。たとえば、"Employee Sales by Country" レポートには、国別の売上高を総売上高に対する割合(%)で表示するフィールドがあります。Country グループ内で計算されるすべての集計値は、現在の国を参照するため、この割合値を直接計算することはできません。その代わり、PercentOfGrandTotal フィールドでは次の式を使用します。

=[CountryTotal]/[GrandTotal]

CountryTotalGrandTotal は、それぞれ、Country フッタセクションとレポートフッタセクションにあるフィールドです。したがって、CountryTotal は国別の合計値を、GrandTotal はレコードセット全体の合計値を保持します。

コントロールがレコードセット全体に渡ってデータを調べる必要があるため、集計関数の評価には時間がかかります。したがって、集計関数を使用する計算フィールドの数は少なくしてください。集計関数を使用しないフィールドでは、集計式を再度評価するのではなく、集計関数を使用するフィールドから集計値を直接読み取ります。

たとえば、NorthWind データベース内の "Employee Sales by Country" レポートには、各売上高を国別の総売上高に対する割合(%)で表示する詳細フィールドがあります。このフィールドには、次の式が含まれています。

=[SaleAmount]/[CountryTotal]

SaleAmount は、レコードセットのフィールドへの参照で、各詳細レコードごとに値が変化します。CountryTotal は、集計関数を含むレポートフィールドへの参照です。コントロールは、この式を評価する際にレポートフィールドから直接集計値を取得します。集計の再計算は行いません。

For the complete report, see report "Employee Sales by Country" in the Nwind.xml report definition file, which is available in the ComponentOne Samples folder.