4-4-5 統計関数

統計関数の引数には、明細行となる「繰り返し」内のフィールド、または明細レコード内のフィールドを指定します。
機能ごとに5種類の関数が用意されています。

関数の種類別動作一覧
種類 動作
基本関数 VrSetForm関数のmodeが1の場合、ページの先頭からVrEndPage関数が出力されるまでの間を統計処理の対象データとして扱います。
VrSetForm関数のmodeが4か5の場合、指定されたキーがブレイクするまでの間を統計処理の対象データとして扱います。
P系関数 改ページ単位の値を統計処理の対象データとして扱います。P系の関数を計算式で使用することはできません。
R系関数

VrSetForm関数のmodeが4か5の場合のみ処理が有効です。累計演算を行います。プロパティで[累計値のクリア]が指定されたキーがブレイクした場合に値を「0」に戻します。

G系関数 VrSetForm関数のmodeが4か5の場合のみ処理が有効です。全データを対象に統計処理を行います。
条件付き関数
VrSetForm関数のmodeが4か5の場合のみ処理が有効です。指定した条件にあったデータを計算対象に統計処理を行います。
参考
  • VrSetForm関数、VrEndPage関数の詳しい説明については『SVF Java PRODUCTS API関数リファレンスマニュアル』を参照してください。
  • 統計関数は、統計関数を使用しているフィールドを対象とすることはできません。
関数名
機能
SUM / PSUM / RSUM / GSUM 数値型フィールドの合計値を計算します。
AVG / PAVG / RAVG / GAVG 数値型フィールドの平均値を計算します。
MIN / PMIN / RMIN / GMIN 文字型、数値型フィールドの最小値を計算します。
MAX / PMAX / RMAX / GMAX 文字型、数値型フィールドの最大値を計算します。
COUNT / PCOUNT / RCOUNT / GCOUNT 文字型、数値型フィールドの出力データ件数を計算します。

SUM / PSUM / RSUM / GSUM

機能 数値型フィールドの合計値を計算します。
説明 各機能に基本、P系、R系、G系の4種類の関数が用意されています。各関数の種類による動作の違いについては、「関数の種類別動作一覧」を参照してください。
書式
  • SUM(数値型フィールド名)
    合計値を計算します。
  • PSUM(数値型フィールド名)
    ページ単位の合計値を計算します。
  • RSUM(数値型フィールド名)
    累計範囲内の合計値を計算します。
    プロパティで、[累計値のクリア]が指定されたキーがブレイクした場合に値を「0」に戻します。

  • GSUM(数値型フィールド名)
    全データを対象に合計値を計算します。
設定 「数値型フィールド名」に、合計する数値データが入ってくる数値型フィールド名を指定します。
使用例 前提条件
次のように設計し、VrSetForm関数のモード(4または5)のレポートライターモードで実行した場合
  • XML様式ファイル
    1ページ4行の明細の帳票(繰り返し設計)で統計関数はフィールド内で設定している場合
    各フィールドは、次のように設定されているとします。

    フィールド名桁数・型キー改ページ累計値のクリア計算式
    KEYXXXX1 NO
    NOXXXX    
    CODE99    
    PRICE9999    

    XXは文字型フィールド、99は数値型フィールドです。

    NOCODEPRICE
    10011100
    10011200
    10011300
    10011400
    10011500
    10012600
    10023700
    10023800
    10023900


    繰り返しフィールドの2行目以降は、SVFX-Designerでは「R」、SVF Web Designerでは「X」と表示されます。

  • 例1
    数値型フィールド「Field」の値として、キーブレイクまでの「PRICE」の合計値を取得する場合
    SUM関数を使用します。
    • 計算式 SUM(PRICE)
    • 編集式 FORMAT(Field,"ZZ,ZZ9")
  • 例2
    数値型フィールド「P_Field」の値として、ページごとの合計値を取得する場合
    PSUM関数を使用します(計算式では使用できないため、編集式として入力します)。
    • 編集式 FORMAT(PSUM(PRICE),"ZZ,ZZ9")
  • 例3
    数値型フィールド「R_Field」の値として、CODEのデータがブレイクするまでの累計値を取得したい場合
    RSUM関数を使用します。
    • 計算式 RSUM(PRICE)
    • 編集式 FORMAT(R_Field,"ZZ,ZZ9")
  • 例4
    数値型フィールド「G_Field」の値として、全データの合計値を取得したい場合
    GSUM関数を使用します。
    • 計算式 GSUM(PRICE)
    • 編集式 FORMAT(G_Field,"ZZ,ZZ9")
結果

SUMの値はレコード上で集計した結果です。レコード外で集計すると全データが対象になります。
RSUMの計算において、今回の設計例では[累計値のクリア]が指定されていないため、全レコードが累計の対象です。

制限事項
  • 指定キーごとに累計値を「0」に戻して処理する場合は、累計値をクリアしたいキーフィールド(上記の例の場合「KEY」)のプロパティで、[累計値のクリア]の設定をする必要があります。

  • 複数キーに[累計値のクリア]が指定されている場合は、指定したキーがブレイクすると毎回値が「0」に戻されます。そのため、キーごとに保持した値を取得できません。

AVG / PAVG / RAVG / GAVG

機能

 

数値型フィールドの平均値を計算します。
説明 各機能に基本、P系、R系、G系の4種類の関数が用意されています。各関数の種類による動作の違いについては、「関数の種類別動作一覧」を参照してください。
書式
  • AVG(数値型フィールド名)
    平均値を計算します。
  • PAVG(数値型フィールド名)
    ページ単位の平均値を計算します。
  • RAVG(数値型フィールド名)
    累計範囲内の平均値を計算します。
    プロパティで、[累計値のクリア]が指定されたキーがブレイクした場合に値を「0」に戻します。

  • GAVG(数値型フィールド名)
    全データを対象に平均値を計算します。
設定 「数値型フィールド名」に、平均値を計算する数値データが入ってくる数値型フィールド名を指定します。
使用例 前提条件
次のように設計し、VrSetForm関数のモード(4または5)のレポートライターモードで実行した場合
  • XML様式ファイル
    1ページ4行の明細の帳票(繰り返し設計)で統計関数はフィールド内で設定している場合
    各フィールドは、次のように設定されているとします。

    フィールド名桁数、型キー改ページ累計値のクリア計算式
    KEYXXXX1 NO
    NOXXXX    
    CODE99    
    PRICE9999    

    XXは文字型フィールド、99は数値型フィールドです。

    NOCODEPRICE
    10011100
    10011200
    10011300
    10011400
    10011500
    10012600
    10023700
    10023800
    10023900


    繰り返しフィールドの2行目以降は、SVFX-Designerでは「R」、SVF Web Designerでは「X」と表示されます。

     

  • 例1
    数値型フィールド「Field」の値として、キーブレイクまでの「PRICE」の平均値を取得する場合
    AVG関数を使用します。
    • 計算式 AVG(PRICE)
    • 編集式 FORMAT(Field,"ZZ,ZZ9")
  • 例2
    数値型フィールド「P_Field」の値として、ページごとの平均値を取得する場合
    PAVG関数を使用します(計算式では使用できないため、編集式として入力します)。
    • 編集式 FORMAT(PAVG(PRICE),"ZZ,ZZ9")
  • 例3
    数値型フィールド「R_Field」の値として、CODEのデータがブレイクするまでの平均値を取得する場合
    RAVG関数を使用します。
    • 計算式 RAVG(PRICE)
    • 編集式 FORMAT(R_Field,"ZZ,ZZ9")
  • 例4
    数値型フィールド「G_Field」の値として、全データの平均値を取得する場合
    GAVG関数を使用します。
    • 計算式 GAVG(PRICE)
    • 編集式 FORMAT(G_Field,"ZZ,ZZ9")
結果

AVGの値はレコード上で集計した結果です。レコード外で集計すると全データが対象になります。
RAVGの計算において、今回の設計例では[累計値のクリア]が指定されていないため、全レコードが累計の対象です。

制限事項

複数キーに[累計値のクリア]が指定されている場合は、指定したキーがブレイクすると毎回値が「0」に戻されます。そのため、キーごとに保持した値を取得できません。

MIN / PMIN / RMIN / GMIN

機能 文字型、数値型フィールドの最小値を計算します。
説明 各機能に基本、P系、R系、G系の4種類の関数が用意されています。各関数の種類による動作の違いについては、「関数の種類別動作一覧」を参照してください。
書式
  • MIN(フィールド名)
    最小値を取得します。
  • PMIN(フィールド名)
    ページ単位の最小値を取得します。
  • RMIN(フィールド名)
    累計範囲内の最小値を計算します。
    プロパティで[累計値のクリア]が指定されたキーがブレイクした場合に値を「0」に戻します。

  • GMIN(フィールド名)
    全データを対象に最小値を取得します。
設定 「フィールド名」に、最小値を取得する数値データが入ってくるフィールド名を指定します。
使用例 前提条件
次のように設計し、VrSetForm関数のモード(4または5)のレポートライターモードで実行した場合
  • XML様式ファイル
    1ページ4行の明細の帳票(繰り返し設計)で統計関数はフィールド内で設定している場合
    各フィールドは、次のように設定されているとします。

    フィールド名桁数、型キー改ページ累計値のクリア計算式
    KEYXXXX1 NO
    NOXXXX    
    CODE99    
    PRICE9999    

    XXは文字型フィールド、99は数値型フィールドです。

    NOCODEPRICE
    10011100
    10011200
    10011300
    10011400
    10011500
    10012600
    10023700
    10023800
    10023900


    繰り返しフィールドの2行目以降は、SVFX-Designerでは「R」、SVF Web Designerでは「X」と表示されます。

  • 例1
    数値型フィールド「Field」の値として、キーブレイクまでの「PRICE」の最小値を取得する場合
    MIN関数を使用します。
    • 計算式 MIN(PRICE)
    • 編集式 FORMAT(Field,"ZZ,ZZ9")
  • 例2
    数値型フィールド「P_Field」の値として、ページごとの最小値を取得する場合
    PMIN関数を使用します(計算式では使用できないため、編集式として入力します)。
    • 編集式 FORMAT(PMIN(PRICE),"ZZ,ZZ9")
  • 例3
    数値型フィールド「R_Field」の値として、CODEのデータがブレイクするまでの最小値を取得する場合
    RMIN関数を使用します。
    • 計算式 RMIN(PRICE)
    • 編集式 FORMAT(R_Field,"ZZ,ZZ9")
  • 例4
    数値型フィールド「G_Field」の値として、全データの最小値を取得する場合
    GMIN関数を使用します。
    • 計算式 GMIN(PRICE)
    • 編集式 FORMAT(G_Field,"ZZ,ZZ9")
結果

MINの値はレコード上で集計した結果です。レコード外で集計すると全データが対象になります。
RMINの計算において、今回の設計例では[累計値のクリア]が指定されていないため、全レコードが累計の対象です。

制限事項

複数キーに[累計値のクリア]が指定されている場合は、指定したキーがブレイクすると毎回値が「0」に戻されます。そのため、キーごとに保持した値を取得できません。

MAX / PMAX / RMAX / GMAX

機能 文字型、数値型フィールドの最大値を計算します。
説明 各機能に基本、P系、R系、G系の4種類の関数が用意されています。各関数の種類による動作の違いについては、「関数の種類別動作一覧」を参照してください。
書式
  • MAX(フィールド名)
    最大値を取得します。
  • PMAX(フィールド名)
    ページ単位の最大値を取得します。
  • RMAX(フィールド名)
    累計範囲内の最大値を計算します。
    プロパティで、[累計値のクリア]が指定されたキーがブレイクした場合に値を「0」に戻します。

  • GMAX(フィールド名)
    全データを対象に最大値を取得します。
設定 「フィールド名」に、最大値を取得する数値データが入ってくるフィールド名を指定します。
使用例 前提条件
次のように設計し、VrSetForm関数のモード(4または5)のレポートライターモードで実行した場合
  • XML様式ファイル
    1ページ4行の明細の帳票(繰り返し設計)で統計関数はフィールド内で設定している場合
    各フィールドは、次のように設定されているとします。

    フィールド名桁数、型キー改ページ累計値のクリア計算式
    KEYXXXX1 NO
    NOXXXX    
    CODE99    
    PRICE9999    

    XXは文字型フィールド、99は数値型フィールドです。

    NOCODEPRICE
    10011100
    10011200
    10011300
    10011400
    10011500
    10012600
    10023700
    10023800
    10023900


    繰り返しフィールドの2行目以降は、SVFX-Designerでは「R」、SVF Web Designerでは「X」と表示されます。

  • 例1
    数値型フィールド「Field」の値として、キーブレイクまでの「PRICE」の最大値を取得する場合
    MAX関数を使用します。
    • 計算式 MAX(PRICE)
    • 編集式 FORMAT(Field,"ZZ,ZZ9")
  • 例2
    数値型フィールド「P_Field」の値として、ページごとの最大値を取得する場合
    PMAX関数を使用します(計算式では使用できないため、編集式として入力します)。
    • 編集式 FORMAT(PMAX(PRICE),"ZZ,ZZ9")
  • 例3
    数値型フィールド「R_Field」の値として、CODEのデータがブレイクするまでの最大値を取得する場合
    RMAX関数を使用します。
    • 計算式 RMAX(PRICE)
    • 編集式 FORMAT(R_Field,"ZZ,ZZ9")
  • 例4
    数値型フィールド「G_Field」の値として、全データの最大値を取得する場合
    GMAX関数を使用します。
    • 計算式 GMAX(PRICE)
    • 編集式 FORMAT(G_Field,"ZZ,ZZ9")
結果

MAXの値はレコード上で集計した結果です。レコード外で集計すると全データが対象になります。
RMAXの計算において、今回の設計例では[累計値のクリア]が指定されていないため、全レコードが累計の対象です。

制限事項

複数キーに[累計値のクリア]が指定されている場合は、指定したキーがブレイクすると毎回値が「0」に戻されます。そのため、キーごとに保持した値を取得できません。

COUNT / PCOUNT / RCOUNT / GCOUNT

機能 文字型、数値型フィールドの出力データ件数を計算します。
説明 各機能に基本、P系、R系、G系の4種類の関数が用意されています。各関数の種類による動作の違いについては、「関数の種類別動作一覧」を参照してください。
書式
  • COUNT(フィールド名)
    データ件数を取得します。
  • PCOUNT(フィールド名)
    ページ単位のデータ件数を取得します。
  • RCOUNT(フィールド名)
    累計範囲内のデータ件数を計算します。
    プロパティで、[累計値のクリア]が指定されたキーがブレイクした場合に値を「0」に戻します。

  • GCOUNT(フィールド名)
    全データを対象にデータ件数を取得します。
設定
  1. 「フィールド名」に、データ件数を取得するデータが入ってくるフィールド名を指定します。
  2. 「フィールド名」には、繰り返しフィールド、および明細レコード内の文字、数値、バーコードフィールド名を指定します。
  3. 「フィールド名」を[]で囲み@を付けると、指定されたフィールドの内容が変化したときのみカウントの対象とします。
使用例 前提条件
次のように設計し、VrSetForm関数のモード(4または5)のレポートライターモードで実行した場合
  • XML様式ファイル
    1ページ4行の明細の帳票(繰り返し設計)で統計関数はフィールド内で設定している場合
    各フィールドは、次のように設定されているとします。

    フィールド名桁数、型キー改ページ累計値のクリア計算式
    KEYXXXX1 NO
    NOXXXX    
    CODE99    
    PRICE9999    

    XXは文字型フィールド、99は数値型フィールドです。

    NOCODEPRICE
    10011100
    10011200
    10011300
    10011400
    10011500
    10012600
    10023700
    10023800
    10023900


    繰り返しフィールドの2行目以降は、SVFX-Designerでは「R」、SVF Web Designerでは「X」と表示されます。

  • 例1
    数値型フィールド「Field」の値として、キーブレイクまでの「PRICE」のデータ件数を取得する場合
    COUNT関数を使用します。
    • 計算式 COUNT(PRICE)
    • 編集式 FORMAT(Field,"ZZ,ZZ9")
  • 例2
    数値型フィールド「P_Field」の値として、ページごとのデータ件数を取得する場合
    PCOUNT関数を使用します(計算式では使用できないため、編集式として入力します)。
    • 編集式 FORMAT(PCOUNT(PRICE),"ZZ,ZZ9")
  • 例3
    数値型フィールド「R_Field」の値として、CODEのデータがブレイクするまでのデータ件数を取得する場合
    RCOUNT関数を使用します。
    • 計算式 RCOUNT(PRICE)
    • 編集式 FORMAT(R_Field,"ZZ,ZZ9")
  • 例4
    数値型フィールド「G_Field」の値として、全データの件数を取得する場合
    GCOUNT関数を使用します。
    • 計算式 GCOUNT(PRICE)
    • 編集式 FORMAT(G_Field,"ZZ,ZZ9")
結果

COUNTの値はレコード上で集計した結果です。レコード外で集計すると全データが対象になります。
RCOUNTの計算において、今回の設計例では[累計値のクリア]が指定されていないため、全レコードが累計の対象です。

制限事項

複数キーに[累計値のクリア]が指定されている場合は、指定したキーがブレイクすると毎回値が「0」に戻されます。そのため、キーごとに保持した値を取得できません。

参考

COUNT関数では、@付のフィールド名をパラメーターとして指定することで、指定フィールドのデータで変化した値のみを対象として、件数を取得することが可能です。すべての形式のCOUNT関数で指定できます。
例えば、前述している例のデータで、フィールド「GROUP_CT」でキーブレイクまでのCODEフィールドのデータがブレイクする値を取得したい場合は、次のように設定します。

  • 計算式 COUNT([@CODE])
  • 編集式 FORMAT(GROUP_CT,"ZZ9")
    フィールドの設定例とその計算結果は、次のとおりです。

    計算結果