10 章 画面処理機能
COBOL における画面処理機能は、規格化される以前からほとんどの COBOL 処理系によって実装されてきましたが、そのサポート範囲や文法はそれぞれの処理系により異なっていました。本章では COBOL 2002 が定める画面処理機能について説明します。
主な追加機能には以下のものがあります。

・データ部の画面節による画面レイアウトの定義
・画面のフィールド属性の定義
・ACCEPT ・DISPLAY 文による入出力・機能キーの検知
・カーソル位置の移動、検知

10.1 画面の概念
COBOL が入出力する「画面」とは、「長方形に配列された表示可能な文字位置」であって、「キーボードを介しての入出力機能を提供するもの」とされています。即ち、一般的に「キャラクタ端末」と呼ばれるハードウェアを想定しています。ウィンドウやマウス操作はその概念の中に含まれていません。
COBOL の画面を構成する要素について説明します。

10.1.1 フィールド
フィールドとは画面上の連続する文字位置をひとつ以上まとめたものであり、画面に対する入出力操作の基本単位になります。画面中のフィールドは順序付けられており、入力操作の順番を定めることができます。

10.1.2 属性
画面上の表示において目に見えるさまざまな属性を持たせることができます。このような属性は画面上の表示位置に関連付けられます。
属性には、背景色、前景色、高輝度、反転、点滅、必須入力、入力非表示などがある。

COPYRIGHT

2001

COBOL コンソーシアム

110.1.3 機能キー
一般にファンクションキーと呼ばれるものです。プログラムの実行時にオペレータが機能キーを押すと、そのキーに対応した機能キー番号がプログラムに返されます。

10.1.4 CRT 状態
端末入出力操作の状態をあらわす 2 文字の値です。ファイル入出力におけるファイル状
態コードと同様に、ACCEPT 文による入力動作の後に値が設定され、動作の成功・失敗、失敗時の原因、機能キーの値などをプログラムに返します。

10.1.5 カーソル
画面上でキーボード操作を可能とする文字位置を示す目に見える記号です。
オペレータがキーボード入力を行うとき、カーソルは常にその入力位置に見えています。
また、プログラムはオペレータに入力位置を指示するためにカーソルを所定のフィールドに移動することができます。
プログラムは、カーソルロケータと呼ばれる 6 文字のデータ項目を経由して、現在のカーソル位置を検知することもできます。

10.2 画面処理機能の環境部
環境部では、構成節の特殊名段落に、CURSOR 句と CRT

STAT US 句を記述します。

10.2.1 CURSOR 句の書き方
CURS ORIS

データ名 2

データ名 2 は以下のどちらかの形式でなければなりません：
01

データ名 2

PIC 9(6).

または、01

デ ー タ 名 2.
05

X

PIC 9(3).

05

Y

PIC 9(3).

COPYRIGHT

2001

COBOL コンソーシアム

2ここで、レベル番号は任意です。また、後者の書き方で、従属項目 X、Y の名前も任意です。
データ名 2 のはじめの 3 桁はカーソル位置の画面中の縦座標、後ろの 3 桁は横座標を表します。この値は、ACCEPT 文の実行開始時点でのカーソルの位置を指定します。またACCEPT 文終了時のカーソルの位置をプログラムに返します。

10.2.1 CRT STATUS 句の書き方
CRT STATUS

IS

データ名 3

データ名 3 は、長さが 4 文字の英数字項目でなければなりません。
この値は、ACCEPT 文の実行後に、以下の値に設定されます：
0000

送信キーの押下によって ACCEPT 文が正常に完了した。

1xxx

機能キーの押下によって ACCEPT 文が正常に完了した。
xxx の数値は機能キーの番号になる。

2xxx

文脈依存の機能キーの押下によって ACCEPT 文が正常に完了した。
xxx の数値は機能キーの番号になる。

8000

正しい画面位置に入力項目が無いため ACCEPT 文が不成功に終わった。

9xxx

COBOL 処理系の規定するエラーにより ACCEPT 文が不成功に終わった。
xxx の数値は COBOL 処理系によって規定されるエラー番号になる。

10.3 画面処理機能のデータ部
データ部には、作業場所節などと同様に画面節を記述します。画面節では端末入出力の際に表示される画面のレイアウトを記述します。画面節には、画面レコードと従属画面項目を記述します。

10.3.1 画面節の書き方
SCREEN SECTION’
定数名記述項
画面記述項

COPYRIGHT

2001

．
．．

COBOL コンソーシアム

3

10.4 画面記述項
画面中のフィールドのさまざまな属性を記述し、ACCEPT 、DISPLAY 文で参照できるようにします。また、フィールドをデータ項目に関連付け、ACCEPT 文でのキーボード入力と DISPLAY 文での表示をそれぞれ指定されたデータ項目との間で転記されるようにします。

10.4.1 画面記述項の書き方【書き方 1 (集団項目)】
レベル番号
[ IS

[ 記述項名 ]GLOBAL ]
PLUS

一意名 1

MINUS

整数 1

LINE NUMBER IS
CO LUMN

PLUS

一意名 2

MINUS

整数 2

NUMBER IS
CO L[ BLANK SCREEN ][ 画面属性句群 ]LE ADING
[SIGN
1 IS]

[SEPARATE CHARACTER]TRAILING

01[[ FULL
FUKK] ]
[ AUTO ][SECURE][ SECURE ][ RE QUIRED ][ OCCURS

整数 5

TIMES ]DISPLAY[USAGE IS]
NATIONAL

COPYRIGHT

2001

COBOL コンソーシアム

4

【書き方 2 (基本項目)】
レベル番号
[ IS

[ 記述項名 ]GLOBAL ]
PLUS

一意名 1

MINUS

整数 1

LINE NUMBER IS
CO LUMN

PLUS

一意名 2

MINUS

整数 2

NUMBER IS
CO L
LINE
BLANK
SCREENEND OF LINE
END OF SCREEN
ERASE
1
EOL
01

[ FUKK ]EOS[ 画面属性句群 ][SECURE]PICTUREIS 文 字 列 [ SIZE IS 整 数 1LOCALE[ IS 呼 び 名 1 ]]PIC
[ 送 り 元 -宛 て 先 -句 ][ BLANKWHENZE RO ]JUSTIFIEDRIGHTJUSTLE ADING[SIGN IS][ SEPARATE CHARACTER ]TRAILING[ FULL ][ AUTO ][ SECURE ][ RE QUIRED ][ OCCURS

整数 5

TIMES ]DISPLAY[ US AGE IS ]NATIONAL

COPYRIGHT

2001

COBOL コンソーシアム

5ここで、画面属性句とは：[ BE LL ][ BLINK ]HIGHLIGHTLOWLIGHT[ RE VERSE-VIDEO][ UNDE RLINE ]一意名 3
FOREGROUND-COLOR IS

整数 3
一意名 4

BACKGROUND-COLOR IS

整数 4

送り元‑あて先‑句とは：US ING 一 意 名 7
一意名 5
FROMTO

定数 1
一意名 6

VALUE IS 定 数 2

10.4.2 属性句
上記の一般形式に現れる、画面記述項に特有な句は、フィールドの属性や動作を指示するものです。以降にその意味をまとめます。
AUTO

ACCEPT 文の実行時に次のフィールドへ自動的に移動する。

BACKGROUND‑COLOR

背景色。整数は 0 から 7 までの範囲内で、色番号を指定する。

BELL

DISPLAY 文での表示時に端末の警告音を鳴らす。

BLANK

項目が表示される前に行や画面全体をクリアする。

BLINK

文字を点滅させる。

COLUMN

フィールドの横方向の画面座標を指定する。

ERASE

項目が表示される前に行や画面の一部をクリアする。

FOREGROUND‑COLOR

前景色。整数は 0 から 7 までの範囲内で、色番号を指定する。

COPYRIGHT

2001

COBOL コンソーシアム

6

FROM

表示するデータの送りだし元を指定する。

FULL

フィールドを完全に埋めるか完全に空白のどちらかを強制するHIGHLIGHT

文字を高輝度で表示する。

LINE

フィールドの縦方向の画面座標を指定する。

LOWLIGHT

文字を低輝度で表示する。

REQUIRED

フィールドに少なくとも一文字を入力することを強制する。

REVERSE‑VIDEO

文字を反転表示する。

SECURE

キーボードから入力されるデータが画面上に表示されない。

TO

入力するデータの受けとリ先を指定する。

UNDERLINE

文字を下線表示する。

USING

FROM と TO の共用のデータ項目を指定する。

なお、COBOL 2002 の画面処理機能では、罫線に関する属性は仕様化されませんでした。

10.5 画面処理機能の手続き部
10.5.1 ACCEPT 文の書き方
ACCE PT 画 面 名 1
一意名 3
LINE

NUMBER

整数 1

AT

一意名 4

CO LUMNNUMBER
CO L[ ONEXCEPTION[ NO TON

整数 2

無条件文 1 ]EXCEPTION

無条件文 2 ][ END-ACCEP T ]画面名 1 は、画面節で宣言された基本項目であるか、または集団項目であって TO 句やUSING 句を持つ基本項目を含むものでなければなりません。
LINE 指定、COLUMN 指定は、画面名 1 が表す画面レコードの、端末上の相対座標を指定します。画面名 1 が集団項目である場合、従属するフィールドは画面名 1 の開始位置からの相対位置になります。以降にその様子を図示します。

COPYRIGHT

2001

COBOL コンソーシアム

7

端末LINE 指 定

画面レコードCO LUMN 指 定フィールド 1
フィールド 2
フィールド 3

画面からの入力動作が正常に完了すると、もし CRT

STAT US 項目が宣言されていれば、そこに 0000、1xxx、2xxx のいずれかの値が設定され、NOTON EXCEPTION 指定が書かれていれば無条件文 2 に制御が移行します
画面からの入力動作が正常に完了しなかった場合、もし CRT

STAT US 項目が宣言されていれば、そこに 8xxx、9xxx のいずれかの値が設定され、ONEXCEPTION 指定が書かれていれば無条件文 1 に制御が移行します

10.5.2 DISPLAY 文の書き方
DISPLAY 画 面 名 1
一意名 3
LINEAT

NUMBER

整数 1
一意名 4

CO LUMNNUMBER

CO L[ ONEXCEPTION[ NO TON

整数 2

無条件文 1 ]EXCEPTION

無条件文 2 ][ END-DISPLAY ]画面名 1 は、画面節で宣言された画面項目です。
LINE 指定、COLUMN 指定は、ACCEPT 文と同様です。

COPYRIGHT

2001

COBOL コンソーシアム

8