COBOL2002 言語 拡張仕様編


13.2.1 画面入出力機能特殊レジスタ

画面入出力機能特殊レジスタ(WINDOW-STATUS,WINDOW-KEY,WINDOW-CURSORおよびWINDOW-KEYCODE)は,画面節(WINDOW SECTION)があるプログラムごと(プログラム単位,利用者定義関数単位,ファクトリ単位およびオブジェクト単位)に生成する。

画面入出力機能特殊レジスタは大域属性を持つ静的データである。

〈この項の構成〉

(1) WINDOW-STATUS特殊レジスタ(WINDOW SECTION)

WINDOW-STATUS(終了状態)は画面節に対して作成する特殊レジスタの名前であり,暗に次の記述を持つ。

01 WINDOW-STATUS PIC 9(2).

WINDOW-STATUSには,ACCEPT文などの画面入出力文の終了状態が入る。

次に終了状態の値とその意味を示す。

表13‒1 終了状態の値とその意味

意味

00

画面入出力文の実行は正常終了した。

01

フィールド状態表示子(STATUS-n)がオンになる条件が発生した。

(注意)

フィールド状態表示子は,入出力を実行した各フィールドの特別な状態を示すものであり,入力データエラーなどを検出した場合にオンになる。この表示子はフィールド状態条件を指定したIF文で判定できる。ただし,このシステムでは常に00になる。フィールド状態条件の詳細については,「13.5.1 フィールド状態条件(WINDOW SECTION)」を参照のこと。

(2) WINDOW-KEY特殊レジスタ(WINDOW SECTION)

WINDOW-KEY(終了キー)は,画面節に対して作成する特殊レジスタの名前であり,暗に次の記述を持つ。

01 WINDOW-KEY PIC 9(2).

WINDOW-KEYには,ACCEPTまたはREPLY文を実行してデータを入力したときに,オペレータが押した終了キーの種類を示す値が入る。

次に終了キーの値とその意味を示す。

表13‒2 終了キーの値とその意味

意味

00

[Enter] [実行]

01

[PF1]

:

:

24

[PF24]

25

未使用

:

:

99

未使用

注1

SET文でバックカーソルキーに設定したファンクションキーPFnは,終了キーとして使用できない。

注2

ユーザポップアップHELP動作中は,ヘルプキーに設定したファンクションキーPFnは,終了キーとして使用できない。

(例)WINDOW-KEYの参照
       ACCEPT GAMEN FROM WINDOW.
       EVALUATE WINDOW-KEY
         WHEN 1 THRU 5 PERFORM SHORI
         WHEN 6 THRU 9 PERFORM HYOJI
         WHEN 10       PERFORM TOKUI
         WHEN OTHER    PERFORM OWARI
       END-EVALUATE.

(3) WINDOW-KEYCODE特殊レジスタ(WINDOW SECTION)

UNIX COBOL2002では,WINDOW-KEYCODE特殊レジスタ(WINDOW SECTION)は使用できない。

WINDOW-KEYCODE(終了キーコード)は,画面節に対して作成される特殊レジスタの名前であり,暗に次の記述を持つ。

01 WINDOW-KEYCODE PIC X(2).

WINDOW-KEYCODEには,WINDOW SECTIONのACCEPT文およびREPLY文を実行してデータを入力したときにオペレータが押した終了キーのコードが入る。

通常は[Enter]キー,[実行]キーおよび[PF]キーを終了キーとして使用できるが,CBLADTRMサービスルーチンを使用すると任意のキーを終了キーとして追加できる。追加された終了キーを押した場合は,押した終了キーに対応するコードが設定される。終了キーのコードが1バイトコードの場合は,WINDOW-KEYCODE特殊レジスタの前1バイトに終了キーのコードが設定され,後ろの1バイトには0(X'00')が設定される。

CBLADTRMサービスルーチンの詳細については,マニュアル「COBOL2002 ユーザーズガイド」を参照のこと。

(4) WINDOW-CURSOR特殊レジスタ(WINDOW SECTION)

WINDOW-CURSOR(終了カーソル位置)は画面節に対して作成される特殊レジスタの名前であり,次の記述を持つ。

01 WINDOW-CURSOR PIC 9(5).

WINDOW-CURSORには,ACCEPTまたはREPLY文を実行したときに,入力操作を終了した時点の画面上カーソル位置(0〜19,199)を設定する。

(注意)

画面上の1行1カラム目のカーソル位置を0とする。