RECOFFSET( ) 関数

現在のレコードを基準にして、指定された n 番目にあるレコードのフィールド値を返します。

構文

RECOFFSET(フィールド, レコードの数)

パラメーター

名前 種類 説明
フィールド

文字

数値

日付時刻

値を取得するフィールドの名前。

レコードの数 数値

現在のレコードから数えたレコード数。現在のレコードより後のレコードを指定する場合は正の数、現在のレコードより前のレコードを指定する場合は負の数にします。

出力

文字、数値、または日付時刻。戻り値は、入力のフィールド パラメーターと同じデータ カテゴリに属します。

基本的な例

次のレコードの Amount 値が返されます。

RECOFFSET(Amount,1)

前のレコードの Amount 値が返されます。

RECOFFSET(Amount, -1)

高度な例

演算フィールド内で RECOFFSET を使用する

演算フィールド Next_Amount には、次のレコードが同じ顧客番号である場合に限り、次のレコードの Amount フィールドの値が表示されます。

この演算フィールドをスクリプトで定義するには、次の構文を使用します。

DEFINE FIELD Next_Amount COMPUTED
RECOFFSET(Amount,1) IF RECOFFSET(Customer,1) = Customer
0

次のレコードの顧客番号が現在のレコードの顧客番号と同じ場合に限り、Next_Amount は次のレコードの Amount フィールドの値になります。そうでない場合、Next_Amount には値ゼロが割り当てられます。

備考

RECOFFSET( ) 関数は現在のレコードを基準にして、指定された前後 n 番目にあるレコードのフィールド値を返します。

RECOFFSET( ) の使用に適する場面

この関数は高度な比較テストを行う場合によく使用されます。

この関数は、現在のレコードのフィールドと別のレコードのフィールドで値を比較するために使用できます。たとえば、現在のレコードの金額と前のレコードの金額の差額を計算する演算フィールドを追加する場合などに使用します。

テーブルの開始または終了位置

この関数では、フィールドにテーブルの開始または終了位置を指定した場合、数値フィールドに対してはゼロ、文字フィールドに対しては空白の文字列、日付フィールドに対しては 1900/01/01 が返されます。現在のレコードと比較するレコードがそれ以上存在しないため、このような場合には、関数は空白の出力を返します。

ACL のスクリプト作成ガイド 14.1