*..1....+....2....+....3....+....4....+....5....+....6....+....7...+.... D*Name++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++ D DS1 DS D Num 2 5 0 D Char 20 30A D D MODS DS OCCURS(2) D Fld1 1 5 D Fld2 6 10 0 * In the following example, CLEAR sets all subfields in the data * structure DS1 to their defaults, CHAR to blank, NUM to zero. /FREE CLEAR DS1; // In the following example, CLEAR sets all occurrences for the // multiple occurrence data structure MODS to their default values // Fld1 to blank, Fld2 to zero. CLEAR *ALL MODS; /END-FREE
*..1....+....2....+....3....+....4....+....5....+....6....+....7...+.... A* Field2 および Field3 は出力可能フィールドとして定義され A* ていて、CLEAR 命令による影響を受けます。また、標識 10 A* は、入力専用フィールドの条件付けを行っている場合にも、 A* CLEAR 命令で変更することができます。これは、CLEAR 命令で A* *ALL が指定されていないため、すべての標識が出力フィールド A* として取り扱われるためです。 A* A*N01N02N03T.Name++++++RLen++TDpBLinPosFunctions++++++++++++++++++++* A R FMT01 A 10 Field1 10A I 2 30 A Field2 10A O 3 30 A Field3 10A B 4 30 A* A* DDS ソース・ステートメントの終わり A* F*Flename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++ FWORKSTN CF E WORKSTN INCLUDE(FMT01) F D*Name++++++++++ETDsFrom+++To/L+++IDc.Keywords++++++++++++++++++++++++ D IN C 'INPUT DATA' /FREE CLEAR FMT01; WRITE FMT01; // PF03 が押されるまでループします。 DOW NOT *IN03; READ FMT01; *INLR = %EOF; // PF04 で入力フィールドが出力フィールドに転送されます。 IF *IN04; Field2 = Field3; Field3 = Field1; CLEAR *IN04; ENDIF; Field1 = IN; // PF11 が押されると、出力または両方と定義された //レコード様式のすべてのフィールドが、初期化ステップ後の //値にリセットされます。 IF *IN11; RESET FMT01; CLEAR *IN11; ENDIF; // PF12 が押されると、出力または両方と定義された // レコード様式のすべてのフィールドが消去されます。 IF *IN12; CLEAR FMT01; CLEAR *IN12; ENDIF; IF NOT *IN03; WRITE FMT01; ENDIF; ENDDO; *INLR = *ON; /END-FREE
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.