このサイトをご覧になるには、JavaScriptを有効にしてください。
レポートにおける合計の計算は、{Sum(DataBand1)}のように式を指定することで行うことができます。DataBandを使った操作を行うたびに、1つの値が計算される。そして、計算された値をすべて足し合わせて、合計値を表示します。この場合、合計値はバンドと関連付けられます。Stimulsoftレポートでの合計の計算は、別の方法、つまり即座に行うことができます。つまり、バンドに関連付けない合計を計算するのです。これを行うには、関数の前に特別な接頭辞Totalsをセパレータ". "で囲みます。接頭辞Totalsを持つ関数の計算は、バンドに関連付けられた合計とは対照的に、関数が呼び出された場所で行われ、その計算はレポートのレンダリング中に実行されます。
合計 関数
機能 |
機能説明 |
サンプル |
算術平均を計算します。 引数で、オブジェクトまたは2つのオブジェクトを指定する |
{Avg(DataSource.Column1)} - Column1列の算術平均が計算されます。
すべての関数は2つの引数を持つことができます。例えば、レポートでは複数のデータバンドを使用します。最初のデータバンドの算術平均を計算する必要があります。この場合、第一引数はバンド、第二引数は計算対象である{Avg(DataBand1,DataSource.Column2)}となります。結果として、Column2の算術平均が計算されますが、DataBand1の値に対してのみ計算されます。 |
|
値の数または一意な値の数を計算します。 |
{Count()} - 結果は、データ・ソースのエントリ数です。 |
|
指定されたオブジェクトから最初の値を表示します。 引数で、オブジェクトまたは2つのオブジェクトを指定します。 |
{First(DataSource1.Column1)} - 結果は、DataSource1のColumn1の最初の値です。 |
|
指定されたオブジェクトから最後の値を表示します。 引数で、オブジェクトまたは2つのオブジェクトを指定します。 |
{Last(DataSource1.Column1)} - 結果は、DataSource1のColumn1の最後の値です。 |
|
指定されたオブジェクトから最大値を表示します。 引数で、オブジェクトまたは2つのオブジェクトを指定する |
{Max(DataSource1.Column1)} - 結果はDataSource1のColumn1からの最大値です。
{MaxStr(DataSource1.Column1)} - すべての値がアルファベット順にソートされます。結果は最後の値です。
{Max(DataBand2, DataSource.Column2)} - DataBand2バンドのColumn2の最大値が結果として表示されます。 |
|
リストから平均値(非等価)を表示します。 引数で、オブジェクトまたは2つのオブジェクトを指定する |
Column1には2,5,6,1,7という5つの値が含まれているとします。Median(DataSource1.Column1)} 関数は、このリストの平均値、つまり結果は6を表示します。
{Median(DataBand2, DataSource.Column2)} -結果はDataBand2のColumn2の平均値です。 |
|
指定されたオブジェクトから最大値を表示します。 引数で、オブジェクトまたは2つのオブジェクトを指定する |
{Min(DataSource1.Column1)} - 結果はDataSource1のColumn1からの最小値です。
{MinStr(DataSource1.Column1)} - すべての値がアルファベット順に並べ替えられます。結果は最初の値です。
{Min(DataBand2, DataSource.Column2)} - 結果はDataBand2バンドのColumn2の最小値です。 |
|
値のリストの中で最も一般的な値を表示します。 引数で、オブジェクトまたは2つのオブジェクトを指定する |
{Mode(DataSource1.Column1)}とします。例えば、Column1に2, 2, 6, 7, 8, 7, 6, 5, 9, 4という値のリストがあったとします。この場合、値のリストの中で最も多く繰り返されるので、結果は7となります。 |
|
値のランクを表示します。接頭語のTotalsは必須である。 ランクを処理し割り当てるためのオブジェクト(オブジェクトの種類)。 タイトなランク、タイトでないランクを割り当てるための値(trueまたはfalse)。 値のソート方向。 |
{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, 68, 71で割り当てられます。この場合、ランクは次のようになります。9-ランク1、9-ランク1、31-ランク3、44-ランク4、44-ランク4、68-ランク7、71-ランク8となる。つまり、数値にランクをつける際には、直前の値のランクと、このランクを持つ数値の数が考慮される。 |
|
値の合計の結果を表示します。 引数で指定します。 処理とランク付けを行うオブジェクト(タイプオブジェクト)。 条件 和算式 |
{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の値の合計が結果になります。 |
バンドに関連しない合計を計算するためのサンプル
例えば、カテゴリー別に商品を一覧できる「Master-Detail Report」があります。
本レポートでは、レポート全体に対して、各カテゴリーごとに結果を算出することができます。また、全体に対する各カテゴリーの割合を計算することも可能です。まず始めに、あるカテゴリの商品量を計算してみましょう。そのためには、レポートテンプレートにフッターバンドを追加し、合計を計算する式{Sum(DataBand2,Products.UnitPrice)}をテキストコンポーネントとして配置します。値の合計には、Sum関数を使用します。その引数には、合計とデータ列を計算し、その値を要約するオブジェクトを指定します。カテゴリーごとの商品量を計算する必要があるので、合計を計算するオブジェクトは詳細データバンド、つまりDataBand2となります。UnitPrice列の値は、各商品の価格を示している。したがって、これらの値の合計がカテゴリの合計となる。
この場合、結果はデータバンドに関連付けられます。レポートによる合計を計算するには、バンドと関連付けられていない関数を使用します。そのためには、関数に接頭辞Totalsを". "区切りで追加します。オブジェクトとして、データソースを指定する必要があります。レポートの合計を計算する式は、{Totals.Sum(Products, Products.UnitPrice)} となります。結果は、マスターバンドに表示されます。
毎回、レポートでマスターバンドを印刷すると、レポートによる合計が表示されます。計算結果を用いて、総計に占める各カテゴリーの割合を算出することが可能です。結果は割合で表示されます。割合の計算方法は、レポート別合計のカテゴリ別合計を{(Sum(DataBand2,Products.UnitsInStock) / Totals.Sum(Products,Products.UnitsInStock))} で割ることで算出します。シェアを表示するテキストコンポーネントには、パーセントの書式を設定します。結果はマスターバンドに表示されます。
このように、レポート内の任意の合計を計算することができます。バンドに関連しない合計を計算するには、関数名の前にTotalsを付け、セパレータに". "を使用します。
|