RESET

RESET [INITIAL] operand1

このドキュメントでは、次のトピックについて説明します。

構文図で使用されている記号については、「構文記号」を参照してください。

関連ステートメント:ADD | COMPRESS | COMPUTE | DIVIDE | EXAMINE | MOVE | MOVE ALL | MULTIPLY | SEPARATE | SUBTRACT

関連機能グループ:算術演算とデータ移動操作


関数

RESET ステートメントは、フィールドの値をリセットするために使用します。

  • RESETINITIAL なし)は、指定された各フィールドの内容をフォーマットに依存したデフォルトの初期値に設定します。

  • RESET INITIAL は、指定された各フィールドを DEFINE DATA ステートメントのフィールド定義に従った初期値に設定します。DEFINE DATA ステートメントで INIT 節を指定せずに宣言したフィールドに対して、RESET INITIALRESETINITIAL なし)と同じ効果があります。

注意:

  1. DEFINE DATA ステートメントで CONSTANT 節を指定して宣言したフィールドは、内容を変更できないので、RESET ステートメントで参照できません。
  2. レポーティングモードでは、プログラムに DEFINE DATA LOCAL ステートメントが含まれていなければ、RESET ステートメントを使用して変数を定義することもできます。

構文説明

オペランド定義テーブル:

オペランド 構文要素 フォーマット オペランド参照 ダイナミック定義
operand1   S A G M A U N P I F B D T L C G O

構文要素の説明:

構文要素 説明
RESET operand1
空値にリセット:

RESETINITIAL なし)は、指定された各フィールドの内容(operand1)をデフォルトの初期値にリセットします。

operand1 がダイナミック変数の場合、RESET ステートメントの実行時に変数に含まれている長さの空値にリセットされます。ダイナミック変数の現在の長さは、システム変数 *LENGTH を使用して確認できます。

ダイナミック変数に関する全般的な情報については、「ダイナミック変数およびラージ変数の使用」を参照してください。

RESET INITIAL operand1
初期値にリセット:

RESET INITIAL は、指定された各フィールド(operand1)を DEFINE DATA ステートメントのフィールド定義に従った初期値に設定します。

  • DEFINE DATA ステートメントに INIT 値を指定していない場合、フィールドはそのフォーマットに基づいてデフォルトの初期値で初期化されます。

  • ダイナミック変数を使用する場合、初期値が定義されていなければ、*LENGTH はゼロに設定されます。

  • RESET INITIAL を配列に適用する場合、DEFINE DATA ステートメントで定義した配列全体に適用する必要があります。配列の個々のオカレンスに RESET INITIAL を適用することはできません。

  • X-array を使用する場合、*OCCURRENCE がゼロに設定されます。

  • RESET INITIAL のフィールド(再定義で発生したもの)も使用できません。

  • RESET INITIAL はダイナミック変数に適用されます。

  • RESET INITIAL はデータベースフィールドには適用できません。

** Example 'RSTEX1': RESET (with/without INITIAL)                       
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 NAME                                                                
1 #BINARY  (B4) INIT <1>                                           
1 #INTEGER (I4) INIT <5>                                          
1 #NUMERIC (N2) INIT <25>                                          
END-DEFINE                                                              
*                                                                       
LIMIT 1                                                                 
READ EMPLOY-VIEW                                                        
  /*                                                                    
  WRITE NOTITLE 'VALUES BEFORE RESET STATEMENT:'                        
  WRITE / '=' NAME '=' #BINARY '=' #INTEGER '=' #NUMERIC                
  /*                                                                    
  RESET NAME #BINARY #INTEGER #NUMERIC                               
  /*                                                                    
  WRITE /// 'VALUES AFTER  RESET STATEMENT:'                            
  WRITE / '=' NAME '=' #BINARY '=' #INTEGER '=' #NUMERIC                
  /*                                                    
  RESET INITIAL #BINARY #INTEGER #NUMERIC           
  /*                                                    
  WRITE /// 'VALUES AFTER  RESET INITIAL STATEMENT:'    
  WRITE / '=' NAME '=' #BINARY '=' #INTEGER '=' #NUMERIC
  /*                                                    
END-READ                                                
END

プログラム RSTEX1 の出力:

VALUES BEFORE RESET STATEMENT:                                              
                                                                            
NAME: ADAM                 #BINARY: 00000001 #INTEGER:           5 #NUMERIC:
 25                                                                         
                                                                            
                                                                            
                                                                            
VALUES AFTER  RESET STATEMENT:                                              
                                                                            
NAME:                      #BINARY: 00000000 #INTEGER:           0 #NUMERIC:
  0                                                                         
                                                                            
                                                                            
                                                                            
VALUES AFTER  RESET INITIAL STATEMENT:                                      
                                                                            
NAME:                      #BINARY: 00000001 #INTEGER:           5 #NUMERIC:
 25