REDEFINE
|
operand1 ( | nX
|
) | ||||
operand2 |
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
REDEFINE
ステートメントは、フィールドを再定義するために使用します。 再定義により、1 つ以上のユーザー定義変数にできます。
1 つの REDEFINE
ステートメントで複数のフィールドを再定義できます。
REDEFINE
ステートメントはレポーティングモードでのみ有効です。 ストラクチャードモードでフィールドを再定義するには、DEFINE DATA
ステートメントの REDEFINE
節を使用します。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | ステートメント参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | S | A | G | A | U | N | P | I | F | B | D | T | L | C | 可 | 不可 | ||||
operand2 | S | A | G | A | N | P | I | F | B | D | T | L | C | 可 | 可 |
構文要素の説明:
ユーザー定義変数 #A
(フォーマット/長さ A10)の値は "123ABCDEFG" です。
REDEFINE #A (#A1(N3) #A2(A7))
#A1
の値は "123" です。 #A2
の値は "ABCDEFG" です。
ユーザー定義変数 #B
(フォーマット/長さ A10)の値(16 進形式)は "12345CC1C2C3C4C5C6C7" です。
REDEFINE #B (#B1(P4) #B2(A7))
#B1
の値は "12345C"(16 進形式)です。
#B2
の値は "C1C2C3C4C5C6C7"(16 進形式)です。
REDEFINE #B (#BB1(B2)8X)) or REDEFINE #B(#BB1(B2))
#BB1
の値は "1234"(16 進形式)です。
注意:
パックデータ(P フォーマット)では必要な桁数を指定します。 次の式でパック形式のデータのバイト数を求めることができます。
バイト数 = (桁数 + 1) / 2
、小数点以下は切り上げ
COMPUTE #V (N8.2) = #Y (N10) = ... REDEFINE #V (3X #A(N3) 2X #P (N2)) #Y (#B(N3) 7X)
この例では、"YYYYMMDD" 形式のシステム変数 *DATN
の値を再定義し、"日/月/年" の順で 3 フィールドに分割して結果を出力しています。
MOVE *DATN TO #DATINT (N8) REDEFINE #DATINT (#YEAR (N4) #MONTH (N2) #DAY (N2)) DISPLAY NOTITLE #DATINT #DAY #MONTH #YEAR END
#DATINT #DAY #MONTH #YEAR --------- ---- ------ ----- 19950108 8 1 1995