メインコンテンツまでスキップ
バージョン: 開発中

Sum

Sum ( series {; attributePath} ) : Real

引数説明
seriesField, Array合計を求めるデータ
attributePathText合計値を取得したい属性のパス
戻り値Realseriesの合計

説明

Sumコマンドは、seriesの合計値を返します。

seriesがインデックスフィ-ルドの場合、合計を求めるためにインデックスが使用されます。

(一次元または二次元の) 配列を series に渡すことができます。この場合配列は整数、倍長整数、または実数型でなければなりません。

このコマンドは、seriesがオブジェクト型フィールドである場合にのみ、テキスト型である任意のattributePath引 数を受け入れます。これにより計算したい属性のパスを定義する事ができます。ネストされた属性に対しては標準のドット表記 (例:"company.address.number")を使用して下さい。オブジェクトの属性名は大文字と小文字を区別するという点に注意して下さい。数値型の属性のみ計算されます。
属性のパス内の値に数値型でないものがあった場合、それらは無視されます。

このコマンドが正しく実行されると、OKシステム変数は1に設定されます。ユーザが進捗サーモメータの停止ボタンをクリックするなどして処理が中断されると、OK変数は0に設定されます。

例題 1

以下の例はフォームに置かれた変数vTotalのオブジェクトメソッドです。オブジェクトメソッドはvTotalに一連のデータの合計値を代入します:

 vTotal:=Sum([Employees]Salary)

以下のメソッドは、ブレーク処理をアクティブにしてセレクション内のレコードを印刷するために呼び出されます:

 ALL RECORDS([Employees])
 ORDER BY([Employees];[Employees]LastNm;>)
 BREAK LEVEL(1)
 ACCUMULATE([Employees]Salary)
 OUTPUT FORM([Employees];"PrintForm")
 PRINT SELECTION([Employees])

注: BREAK LEVELコマンドの引数は、印刷するレポートのブレーク数と同じ数でなければなりません。ブレーク処理に関する詳細は印刷コマンドを参照してください。

例題 2

この例では配列中の値の合計値を求めます:

 ARRAY REAL($ArrGrades;0)
 QUERY([Exams];[Exams]Exam_Date=!01/07/11!)
 SELECTION TO ARRAY([Exams]Exam_Grade;$ArrGrades)
 vSum:=Sum($ArrGrades)

例題 3

オブジェクト型フィールドの属性を計算する例題については、Averageコマンドの詳細の例題3を参照して下さい。

参照

ACCUMULATE
Average
BREAK LEVEL
Max
Min
ORDER BY
PRINT SELECTION
Subtotal

プロパティ

コマンド番号1
スレッドセーフである
システム変数を更新するOK