13.5.9 USE文(WINDOW SECTION)
- 形式
-
書き方5(フィールド処理)
書き方6(ファンクションキー処理)
一般規則
-
ファンクションキー処理手続きには,書き方6のUSE文を用いる。フィールド処理手続きには,書き方5のUSE文を用いる。
-
USE文は,宣言部分の節の見出しに続けて書き,終止符と空白で止める。この後に手続きを定義する段落を書く。
-
宣言部分の節からほかの宣言部分および手続き部分の節や段落を参照してはならない。手続き部分からは宣言部分の節や段落をPERFORM文でだけ参照できる。
-
一つの基本項目に対するACCEPT文またはREPLY文によってデータを入力したとき,USE手続きを実行する。作用対象が複数個指定されている場合や集団項目が指定されている場合は,USE手続きは実行しない。
-
USE FOR WINDOW節内にACCEPT文およびREPLY文がある場合,これらの文はそのUSE手続きの出口とみなされる。これらの文は,USE FOR WINDOW節外には記述できない。
-
一つのプログラム,メソッドおよび利用者定義関数の中でUSE FOR WINDOW節は,そのプログラム,メソッドおよび利用者定義関数の中でだけ参照される。したがって,USE FOR WINDOW節内のACCEPT文またはREPLY文がほかのUSE FOR WINDOW節を起動する場合,USE手続きの実行が終了すると,最初にUSE手続きを呼び出した文の次の文へ制御が返る。
(例)USE文の使用例1
-
ACCEPT文またはREPLY文に対応するフィールド処理手続きが定義されていない場合は,ファンクションキーを押してもファンクションキー処理手続きには制御が移らない。
-
USE FOR WINDOW節内にRESUME文を指定してはならない。USE FOR WINDOW内でRESUME文を実行したときの動作は保証しない。
書き方5
-
データ名1は,画面節で入力フィールドまたは入出力フィールドとして指定した基本項目の名前でなければならない。
データ名1で示すフィールドにデータを入力したとき,そのフィールドに対応するフィールド処理手続きに制御が渡る。
-
同じデータ名を二つ以上のUSE文に書いてはならない。
-
データ名1のREPEAT LINE句が記述されている項目に従属する項目の名前の場合,繰り返されるすべてのフィールドがUSE手続きへ制御を移す対象となる。このとき,データ名には添字を付けてはならない。
(例)USE文の使用例2
02 REPEAT 3 TIMES. 03 A I-O 〜. 02 B REPEAT 5 THRU 10 〜. 03 C INPUT 〜. : W1 SECTION. USE FOR WINDOW ON A. : W2 SECTION. USE FOR WINDOW ON C. : ACCEPT A(1) FROM WINDOW. …(1) REPLY A(3) UPON WINDOW. …(2) ACCEPT C(5) FROM WINDOW. …(3)
(1)と(2)はW1 SECTIONへ制御が移る。
(3)はW2 SECTIONへ制御が移る。
書き方6
-
呼び名1は環境部の特殊名段落でPF1〜PF24に関係づけた名前でなければならない。
-
PF1〜PF24はそれぞれ対応するファンクションキーを意味する。ACCEPT文またはREPLY文の終了キーとしてファンクションキー[PFn]を押したとき,キーに対応するファンクションキー処理手続きに制御を移す。ただし,SET BACK CURSOR KEY文で指定したファンクションキーと同じキーを指定した場合は,終了キーとはならないでバックカーソルキーとして扱う。また,HELP KEY句で指定したファンクションキーと同一キーを指定した場合は,終了キーとはならずにヘルプキーとして扱う。
(例)USE文の使用例3
DECLARATIVES. W1 SECTION. USE FOR WINDOW ON A. : W2 SECTION. USE FOR WINDOW ON PF1. : END DECLARATIVES. ACCEPT A FROM WINDOW. …(1) ACCEPT B FROM WINDOW. …(2)
(1)のACCEPT文では,終了キーが[PF1]であればW2 SECTIONを実行する。終了キーが[PF1]以外であれば,W1 SECTIONを実行する。
(2)のACCEPT文では,対応するフィールド処理手続きが定義されていないため,終了キーが[PF1]であってもW2 SECTIONは実行しない。
-
同じファンクションキーを二つ以上のUSE文に書いてはならない。
-
一つのプログラム,メソッド,利用者定義関数内のUSE手続きは,そのプログラム,メソッド,利用者定義関数内だけで参照される。二つのプログラム間でUSE手続きの共用はできない。
(例)USE文の使用例4
- 【標準仕様との関連】
-
「COBOL2002 言語 標準仕様編」 「10.8.53 USE文」