レポートの合計の計算は、{Sum(DataBand1)}などの式を指定することで実行できます。同時に、レポートのレンダリング時に合計が計算されます。DataBandを使用した操作が実行されるたびに、単一の値が計算されます。次に、計算されたすべての値が合計され、合計値が表示されます。この場合、合計はバンドに関連付けられます。Stimulsoftレポートの合計の計算は、別の方法で、つまり即座に行うことができます。つまり、バンドに関連付けられていない合計を計算します。これを行うには、関数の前に区切り文字「。」を付けた特別なプレフィックスTotalsを使用します(例:{Totals.Sum(DataBand1)})。接頭辞Totalsが付いた関数の計算は、バンドに関連付けられた合計ではなく、関数が呼び出された場所で行われます。
合計関数:
関数 | 説明 | サンプル |
{Avg()}when | 算術平均を計算します。引数で、1つまたは2つのオブジェクトを指定します | {Avg(DataSource.Column1)}-Column1列の算術平均が計算されます。 {AvgDate(DataSource.ColumnDate)}-ColumnDate列の日付の平均が計算されます。 {AvgTime(DataSource.ColumnTime)}-ColumnTime列による平均時間が計算されます。 すべての関数は2つの引数を持つことができます。たとえば、レポートはいくつかのデータバンドを使用します。最初のデータバンドの算術平均を計算する必要があります。この場合、最初の引数はバンドで、2番目の引数は計算のオブジェクトです-{Avg(DataBand1、DataSource.Column2)}。その結果、Column2の算術平均が計算されますが、DataBand1値のみが計算されます。 |
{Count()} | 値の数または一意の値の数を計算します。 | {Count()}-結果はデータソースのエントリ数です。 {Count(DataBand1、DataSource.Column1)}-結果は、DataBand1のColumn1列のエントリ数です。 {CountDistinct(DataSource.Column1)}-結果は、DataSource.Column1の一意のエントリの数です。 {CountDistinct(DataBand2、DataSource.Column2)}-結果は、DataBand2のColumn2列の一意のエントリの数です。 |
{First()} | 指定されたオブジェクトの最初の値を表示します。 | {First(DataSource1.Column1)}-結果は、DataSource1からのColumn1の最初の値です。{First(DataBand2、DataSource.Column2)}-結果は、DataBand2バンドのColumn2の最初の値です。 |
{Last()} | 指定されたオブジェクトの最後の値を表示します。 | {Last(DataSource1.Column1)}-結果は、DataSource1からのColumn1の最後の値です。{Last(DataBand2、DataSource.Column2)}-結果は、DataBand2のColumn2の最後の値です。 |
{Max()} | 指定されたオブジェクトの最大値を表示します。 | {Max(DataSource1.Column1)}-結果は、DataSource1のColumn1からの最大値です。{MaxDate(DataSource1.ColumnDate)}-結果は、DataSource1のColumnDateからの最大日付です。{MaxTime(DataSource1.ColumnTime)}-結果は、DataSource1のColumnTimeからの最大時間です。 {MaxStr(DataSource1.Column1)}-すべての値はアルファベット順にソートされます。結果が最後の値です。 {Max(DataBand2、DataSource.Column2)}-結果は、DataBand2バンドのColumn2の最大値になります。 |
{Median()} | リストからの平均(非算術)値を表示します。 | Column1に2、5、6、1、7の5つの値が含まれているとします。{Median(DataSource1.Column1)}関数は、このリストの平均値を表示します。つまり、結果は6です。 {Median(DataBand2、DataSource.Column2)}-結果は、DataBand2のColumn2の平均値です。 |
{Min()} | 指定されたオブジェクトの最大値を表示します。 | {Min(DataSource1.Column1)}-結果は、DataSource1のColumn1からの最小値です。{MinDate(DataSource1.ColumnDate)}-結果は、DataSource1のColumnDateからの最小の日付です。{MinTime(DataSource1.ColumnTime)}-結果は、DataSource1のColumnTimeからの最小時間です。 {MinStr(DataSource1.Column1)}-すべての値はアルファベット順にソートされます。結果が最初の値です。 {Min(DataBand2、DataSource.Column2)}-結果は、DataBand2バンドのColumn2の最小値です。 |
{Mode()} | 値のリストで最も一般的な値を表示します。 | {Mode(DataSource1.Column1)}。Column1に値のリストが含まれているとします:2、2、6、7、7、8、7、6、5、9、4。この場合、結果は7になります。これは、次のリストで最も頻繁に繰り返されるためです。値。 {Mode(DataBand2、DataSource.Column2)}-結果は、最も一般的なDataBand2のColumn2からの値になります。 |
{Rank(,)} | 値のランクを表示します。接頭辞Totalsは必須です: | {Totals.Rank(DataBand1、DataSource.Column1)}。Column1に値のリストが含まれているとします:44、9、36、55、71。この場合、値は昇順、つまり9、36、44、55、71で並べ替えられ、それぞれにランクが付けられます。割り当てられます。番号9はランク1を受け取ります。36-ランク2; 44-ランク3; 55-ランク4; 71-ランク5。デフォルトでは、タイトなランクを計算し、ランクを割り当てるための値を昇順で並べ替えます。 {Totals.Rank(DataBand1、DataSource.Column1、true、StiRankOrder.Dess)}-この場合、trueに設定されているため、ランクが低くなります。ランクが割り当てられると、StiRankOrderがDescに設定されているため、値は降順で並べ替えられます。昇順(デフォルトで使用)で並べ替えるには、Asc(StiRankOrder.Asc)に設定する必要があります。 厳密でないランクの例は、{Totals.Rank(DataBand1、DataSource.Column1、false、StiRankOrder.Asc)}です。Column1に値のリストが含まれていると仮定します:44、9、44、9、31、64、68、71。値は昇順で割り当てられます。つまり、9、9、31、44、44、44、68、71です。この場合、ランクは次のようになります。9-ランク1、9-ランク1、31-ランク3、44-ランク4、44-ランク4、44-ランク4、68-ランク7、71-ランク8。つまり、数値にランクを割り当てる場合、前の値のランクとこのランクの値の数が考慮されます。 |
{Sum()} | 値の合計の結果を表示します。 | {Sum(DataSource1.Column1)}-結果は、DataSource1のすべてのColumn1値の合計です。 {SumDistinct(DataSource1.Column1)}-結果は、DataSource1内のすべての一意のColumn1値の合計です。 SumTime(DataSource1.Column1)-結果は、DataSource1のColumn1からの時間の合計です。 {Sum(DataBand2、DataSource2.Column2)}-結果は、DataBand2のColumn2の値の合計です。 {SumDistinct(DataBand1、DataSource.Column1、DataSource.Column2)}-結果は、DataBand2のColumn1からの一意の値に対応するColumn2値の合計です。 |
バンドに関連付けられていない合計を計算するためのサンプル。
たとえば、カテゴリごとの製品のリストであるマスター詳細レポートがあります。 このレポートでは、レポート全体のカテゴリごとに結果を計算できます。合計の各カテゴリの割合を計算することも可能です。まず、カテゴリ内の製品の量を計算しましょう。これを行うには、レポートテンプレートにフッターバンドを追加し、合計{Sum(DataBand2、Products.UnitPrice)}を計算する式を含むテキストコンポーネントを配置します。値の合計には、Sum関数が使用され、その引数は、合計とデータ列が計算されるオブジェクトを指定し、その値が要約されます。カテゴリごとに製品の量を計算する必要があるため、合計を計算する対象は詳細なデータバンド、つまりDataBand2になります。UnitPrice列の値は、各製品の価格を示します。したがって、 この場合、結果はデータバンドに関連付けられます。レポートで合計を計算するには、バンドに関連付けられていない関数を使用します。このために、「。」を使用して、接頭辞Totalsを関数に追加します。セパレータ。オブジェクトとして、データソースを指定する必要があります。レポートの合計を計算する式は、{Totals.Sum(Products、Products.UnitPrice)}になります。結果はマスターバンドに表示されます。 レポートにマスターバンドを印刷するたびに、レポートごとの合計が表示されます。計算結果を使用して、総計の各カテゴリのシェアを計算することができます。結果はパーセンテージで表示されます。比率を計算するには、合計をカテゴリで除算し、合計をレポートで割る必要があります-{(Sum(DataBand2、Products.UnitsInStock)/ Totals.Sum(Products、Products.UnitsInStock))}。シェアが表示されるテキストコンポーネントには、パーセンテージ形式を設定します。結果はマスターバンドに表示されます。 したがって、レポート内の任意の合計を計算することができます。バンドに関連しない合計を計算するには、関数名の前にTotalsを付け、セパレータに”. “を使用します。 |