集計関数
グループ レポートではほとんどの場合、グループの集計やグループ要素の数など、何らかの要約情報を表示する必要があります。FastReport は、あるデータの期間にわたって集計値を計算するための集計関数を提供しています。集計関数は以下のとおりです。
関数 | 説明 |
---|---|
SUM |
式の集計を返します |
MIN |
式の最小値を返します |
MAX |
式の最大値を返します |
AVG |
式の平均値を返します |
COUNT |
データ期間内の行数を返します |
COUNT
を除くすべての集計関数の構文は、SUM
関数の構文に似ています。
SUM(expression, band, flags)
SUM(expression, band)
SUM(expression)
パラメーターは以下のとおりです。
expression
- 計算される式
band
- 計算が実行されるデータ バンドの名前
flags
- ビット フィールド。次の値を指定できます。
1:非表示のバンドを計算に含める
2:累計を求める(現在のデータ期間のリセット時に、集計値をリセットしない)
3:(前の 2 つのオプションの両方)
expression は唯一の必須パラメーターで、残り 2 つは任意です。それでもやはり、間違いを避けるために、band パラメーターは常に指定することをお勧めします。
COUNT
集計関数の構文は次のとおりです。
COUNT(band, flags)
COUNT(band)
パラメーターの意味は上記と同じです。
すべての集計関数に対する一般規則があります。集計は、データ バンドについてのみ計算することができ、そのバンドのフッターでのみ使用できます。ここで言うフッターは、フッター、ページ フッター、グループ フッター、列フッター、およびレポート フッター(概要バンド)のいずれかです。
集計関数はどのように動作するのでしょうか?グループ レポートの例を使ってこれを見てみましょう。レポートに新しい要素をいくつか追加しましょう。
データ バンド上の Group."ItemsTotal" フィールドには、現在の注文の合計が表示されます。上図で示されるように、グループ フッターに集計関数 SUM
を含んでいるテキスト オブジェクトを置きます。これは、特定のクライアントによって発行されたすべての注文の合計を表示します。電卓を使用して、結果が正しいことを確認することができます。
集計関数は次のように働きます。
- レポートを出力する前に、FastReport はテキスト オブジェクトの内容をスキャンして、集計関数を見つけます。
- 検出された集計は、パラメーターに指定されたデータ バンドにリンクされます(この例では、
SUM
は MasterData1 バンドにリンクされます)。 - レポートの出力中(データ バンドが表示されているとき)、それにリンクされている集計の値が計算されます。この例では、Group."ItemsTotal" フィールドの値が累算されます。
- 集計を表示するグループ フッターが出力されたら、集計値はゼロにリセットされ、次のグループでサイクルが繰り返されます。
集計関数の任意の Flags
パラメーターの目的は何でしょう?レポートは、データ バンドの一部または全部を非表示にすることができます。また一方、データ バンドの表示/非表示に関係なく、すべてのデータ バンドにわたって集計を計算しなければならない場合があります。
この例で、データ バンドの Visible
プロパティを false に設定して、データ バンドが表示されないようにします。この表示されないデータ バンドが計算に含まれるようにするには、関数呼び出しで、3 番目の任意のパラメーターを 1 に設定する必要があります。つまり、次のようにします。
[SUM(<Group."ItemsTotal">,MasterData1,1)]
次のようなレポートが生成されます。
Flags
パラメーターの値を 2 に設定した場合、集計値は表示された直後にリセットされません。集計は、一連の出力ごとの「累計」になります。次のように、関数呼び出しを変更してみましょう。
[SUM(<Group."ItemsTotal">,MasterData1,3)]
値 "3" は、ビット "1" と "2" の組み合わせです。これは、非表示のバンドを計算に含め、グループごとに集計をリセットしないということです。実行の結果は次のようになります。