5.7.3 SET文
SET文は,次の手段を提供します。
-
表要素に関連する指標を設定して,表操作の参照点を確立する
-
外部スイッチの状態を変更する
-
条件変数の値を変更する
-
オブジェクト参照を設定する
-
画面項目に関連する属性を変更する
-
最新例外状態をクリアする
SET文については,マニュアル「COBOL2002 言語 標準仕様編」 「10.8.43 SET文」,およびマニュアル「COBOL2002 言語 拡張仕様編」 「13.5.8 SET文(WINDOW SECTION)」を参照してください。
- 〈この項の構成〉
(1) 表要素に関連する指標を設定するSET文
表要素に関連する指標を設定して,表操作の参照点を確立するSET文の例を次に示します。
- (例1)
-
指標名から指標名に転記する場合
05 A PIC X(5) OCCURS 10 INDEXED BY K. 05 B PIC 9(8) OCCURS 10 INDEXED BY J.
指標名Kには,表の6番目の要素を参照するときの値,5×6=30が入っています。ここで次のSET文を実行すると,Kの値30を出現番号6に換算して(30/5=6),Bの出現番号6に対応する値8×6=48をJに設定します。
SET J TO K.
- (例2)
-
指標データ項目から指標名に転記する場合
05 A PIC PP999 OCCURS 15 INDEXED BY K. 05 B USAGE INDEX.
Bの値が30のとき,次のSET文を実行すると,Bの値を出現番号に対応して換算しないで,そのままKに設定します。
SET K TO B.
- (例3)
-
整数項目または整数から指標名に転記する場合
05 A PIC X(5) OCCURS 30 INDEXED BY K. 05 B PIC 9(2) VALUE 11.
ここで次のSET文のどちらかを実行すると,Bの値11または整数11を出現番号とみなし,それに対応する値5×11=55をKに設定します。
SET K TO B
または
SET K TO 11
- (例4)
05 A PIC X(5) OCCURS 12 INDEXED BY K. 05 B USAGE INDEX. 05 C USAGE INDEX.
Kには,Aの出現番号7に対応する値5×7=35が入っています。ここで次のSET文を実行すると,Kの値を変換しないで,35をそのままBに設定します。
SET B TO K
そのあとで次のSET文を実行すると,Bの値を変換しないで,35をそのままCに設定します。
SET C TO B
- (例5)
05 A PIC 9(3) OCCURS 20 INDEXED BY K. 05 B PIC 9(8).
Kには,Aの出現番号12に対応する値3×12=36が入っています。ここで次のSET文を実行すると,Kの値を出現番号12に変換(36/3)してBに12を設定します。
SET B TO K
- (例6)
05 A PIC X(7) OCCURS 30 INDEXED BY K. 05 B PIC A(3) OCCURS 30 INDEXED BY J. 05 C PIC 9(2) VALUE 3.
Kには出現番号6に対応する値7×6=42が入っています。Jには出現番号25に対応する値3×25=75が入っています。
ここで,次のSET文を実行すると,Kには出現番号6+3=9に対応する値7×9=63が入ります。
SET K UP BY C
そのあとで次のSET文を実行すると,Kには出現番号9-1=8に対応する値7×8=56が入ります。
SET K DOWN BY 1
また,次のSET文を実行すると,Jには出現番号25-3=22に対応する値3×22=66が入ります。
SET J DOWN BY C
そのあとで次のSET文を実行すると,Jには出現番号22+8=30に対応する値3×30=90が入ります。
SET J UP BY 8
(2) 外部スイッチの状態を変更するSET文
外部スイッチの状態を変更するSET文の例を次に示します。
- (例)
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. UPSI-0 IS SW0 ON STATUS IS ONIND0 OFF STATUS IS OFFIND0. : PROCEDURE DIVISION. : IF OFFIND0 THEN SET SW0 TO ON END-IF.
外部スイッチの状態を変更するSET文の詳細は,「16.2.4 外部スイッチ」を参照してください。
(3) 条件変数の値を変更するSET文
条件変数の値を変更するSET文の例を次に示します。
- (例)
03 OF-WEEK PIC X(3). 88 HOLIDAY VALUE 'SUN'. *>1. 88 WEEKDAY VALUE 'MON' 'TUE' 'WED' 'THU' 'FRI' 'SAT'. *>1.
-
OF-WEEKに対する条件名
ここで次のSET文を実行すると,OF-WEEKには'SUN'が設定されます。
SET HOLIDAY TO TRUE
また,次のSET文を実行すると,OF-WEEKにはWEEKDAYに指定された最初の定数である'MON'が設定されます。
SET WEEKDAY TO TRUE
複数の条件名を書いたときは,そのSET文中に指定したのと同じ順序で,各条件名に対して別々のSET文を書いたのと同じ結果となります。条件名に添字が付いている場合は,繰り返すたびに一つずつ順番に評価します。
-
(4) オブジェクト参照を設定するSET文
「20.2.7 オブジェクト指向による適合」を参照してください。
(5) 最新例外状態をクリアするSET文
「21.7.3 最新例外状態のクリア」を参照してください。