集計関数は、出力されるグループのデータをまとめるために使用されます。レポートヘッダフィールドで使用された式は、データセット全体の集計値を返します。グループのヘッダまたはフッタで使用された式は、そのグループの集計値を返します。
C1Report の集計関数はすべて、次の2つの引数を受け取ります。
C1Report では、次の集計関数が定義されています。
値の型 | 説明 |
---|---|
Avg | 現在のグループ内の式の平均値。たとえば、次の式はグループ全体の平均売上高と特定の製品の平均売上高を計算します。 Avg(SalesAmount) |
Sum | グループ内のすべての値の合計。 |
Count | グループ内の、値が null でないレコードの数。式にアスタリスク(*)を使用すると、すべてのレコードを含めることができる。たとえば、次の式は、住所の値が有効な(null ではない)従業員の数と従業員の総数をカウントします。 Count(Employees.Address) |
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]
CountryTotal と GrandTotal は、それぞれ、Country フッタセクションとレポートフッタセクションにあるフィールドです。したがって、CountryTotal は国別の合計値を、GrandTotal はレコードセット全体の合計値を保持します。
コントロールがレコードセット全体に渡ってデータを調べる必要があるため、集計関数の評価には時間がかかります。したがって、集計関数を使用する計算フィールドの数は少なくしてください。集計関数を使用しないフィールドでは、集計式を再度評価するのではなく、集計関数を使用するフィールドから集計値を直接読み取ります。
たとえば、NorthWind データベース内の "Employee Sales by Country" レポートには、各売上高を国別の総売上高に対する割合(%)で表示する詳細フィールドがあります。このフィールドには、次の式が含まれています。
=[SaleAmount]/[CountryTotal]
SaleAmount は、レコードセットのフィールドへの参照で、各詳細レコードごとに値が変化します。CountryTotal は、集計関数を含むレポートフィールドへの参照です。コントロールは、この式を評価する際にレポートフィールドから直接集計値を取得します。集計の再計算は行いません。
レポートの完全なサンプルについては、ComponentOne Samples フォルダーに存在するNwind.xml レポート定義ファイルの「Employee Sales by Country」レポートを参照してください。