COBOL2002 ユーザーズガイド


36.2.6 画面

〈この項の構成〉

(1) CBLACTWIN

COBOLアプリケーションの出力するコンソールおよび画面機能のウィンドウを,DISPLAY文がメッセージを出力するタイミングでアクティブにしたい場合にYESを指定します。YES以外の値を指定したときは,無効となります。

(2) CBLATTRIBUTE

画面節(WINDOW SECTION)のERASE ATTRIBUTE文で指定したフィールドに重ねて表示されているけい線や属性を消去しない場合にYESを指定します。YES以外の値を指定したときは,無効となります。

(例)

次のようなデータ項目を画面に表示する場合,環境変数CBLATTRIBUTEを指定するときと指定しないときでは,次のように動作が異なります。

       01 GAMEN1.
         02 DATA1 LINE 2 COLUMN 5 THRU 20
                  RULE OVER UNDER
                  COLOR YELLOW REVERSE.
         02 DATA2 PIC X(5) LINE 2 COLUMN 10
                  COLOR BLUE
                  VALUE 'ABCDE'.
CBLATTRIBUTE=YESの場合

[図データ]

CBLATTRIBUTE=YES以外の場合

[図データ]

注意事項

けい線や属性は,フィールドの左端より左側から,フィールドの右端より右側の範囲に設定されている必要があります。これ以外の範囲にけい線や属性が設定されている場合,環境変数CBLATTRIBUTEでの動作は保証しません。

(例)

フィールドのデータ項目

  PIC X(5) LINE 5 COLUMN 5 VALUE 'ABCDE'.
  • 正しく表示されるけい線の例

  LINE 5 COLUMN 4 THRU 11 RULE OVER UNDER.
  • 表示が保証されないけい線の例

  LINE 5 COLUMN 5 THRU 11 RULE OVER UNDER.
  LINE 5 COLUMN 4 THRU 10 RULE OVER UNDER.

(3) CBLAUTOCLEAR

画面節(SCREEN SECTIONおよびWINDOW SECTION)の入力文の動作を変更します。環境変数CBLAUTOCLEARにYESを指定すると,カーソルが移動したフィールドが選択状態となります。

YES以外の値を指定したときは,無効となります。

次に,画面節(SCREEN SECTIONおよびWINDOW SECTION)での環境変数CBLAUTOCLEARの機能を説明します。

(a) 画面節(SCREEN SECTIONおよびWINDOW SECTION)での共通の動作

  • 環境変数CBLAUTOCLEARにYESを指定した場合,フィールドに入力制御が渡ると,カーソルはフィールド全体を選択した状態になります。これを選択状態といいます。

  • フィールドが選択状態のままでデータを入力すると,入力前のデータの内容がクリアされ,入力したデータが格納されます。なお,環境変数CBLAUTOCLEARにYES以外を指定した場合,入力されたデータは,入力前のデータに上書きされて格納されます。

(例)
CBLAUTOCLEARにYESを指定した場合

入力前のフィールド:"ABCDE" ←"F"を入力

入力後のフィールド:"F "

CBLAUTOCLEARにYES以外を指定した場合

入力前のフィールド:"ABCDE" ←"F"を入力

入力後のフィールド:"FBCDE"

  • フィールドが選択状態のときにデータを入力すると,選択状態は解除されます。

  • フィールドが選択状態で[BackSpace]キー,[Insert]キー,または[Delete]キーを押した場合,[End]キーが押されたものとして動作します。このとき,カーソルの選択状態は解除されます。

(b) 画面節(WINDOW SECTION)固有の動作

  • 環境変数CBLAUTOCLEARにYESを指定した場合,ACCEPT文で,データの入力待ちになる前の処理(指定した項目の行,カラム位置に表示されているデータをクリアする)を抑止します。

    なお,環境変数CBLAUTOCLEARにYESを指定しないでACCEPT文を実行した場合,入力待ちになる前に,ACCEPT文で指定した項目の行,カラム位置に表示されているデータを,ACCEPT文で指定した項目の属性(例えば,英数字項目のときは空白文字)でクリアします。環境変数CBLAUTOCLEARにYESを指定すると,ACCEPT文で指定した項目の行,カラム位置に表示されているデータはクリアされません。

    また,このとき,データの入力をしないで空送信しても,ACCEPT文で指定した項目のデータの内容は変わりません。

  • フィールドが選択状態で,[←]キーを押した場合,前方のフィールドにカーソルが移動します。

  • フィールドが選択状態で,[→]キーを押した場合,後方のフィールドにカーソルが移動します。

    次に,画面節(WINDOW SECTION)で環境変数CBLAUTOCLEARにYESを指定した例を示します。

           WINDOW SECTION.
             01 GAMEN FIELD TYPE I-O.
               02 DATA1 PIC X(10) LINE 1 COLUMN 1 
                                  VALUE 'aaaaaaaaaa'.
               02 DATA2 PIC X(10) LINE 1 COLUMN 1 
                                  VALUE 'bbbbbbbbbb'.
               02 DATA3 PIC 9(10) LINE 1 COLUMN 1 
                                  VALUE 1234567890.
(例1)

[図データ]

(例2)

[図データ]

(例3)

[図データ]

(c) 画面節(SCREEN SECTION)固有の動作

  • フィールドが選択状態で,[←]キー,または[→]キーを押した場合,データはクリアされないで,選択状態が解除されます。

    次に,画面節(SCREEN SECTION)で環境変数CBLAUTOCLEARにYESを指定した例を示します。

           WORKING-STORAGE SECTION.
             01 AAA PIC X(10) VALUE 'aaaaaaaaaa'.
             01 BBB PIC X(10) VALUE 'bbbbbbbbbb'.
             01 CCC PIC 9(10) VALUE 1234567890.
           SCREEN SECTION.
             01 GAMEN.
               02 DATA1 PIC X(10) LINE 1 COLUMN 1 USING AAA.
               02 DATA2 PIC X(10) LINE 1 COLUMN 1 USING BBB.
               02 DATA3 PIC 9(10) LINE 1 COLUMN 1 USING CCC.
(例1)

[図データ]

(例2)

[図データ]

(例3)

[図データ]

(例4)

[図データ]

(例5)

[図データ]

(4) CBLENTERCHK

ACCEPT文,またはREPLY文の実行時,画面節(WINDOW SECTION)のENTER-CHECK句を指定した項目にデータの入力がなかったときに,WINDOW-STATUS特殊レジスタへ値を設定したい場合にYESを指定します。YESを指定した場合,WINDOW-STATUS特殊レジスタには「02」が設定されます。YES以外の値を指定したときは,無効となります。

なお,ENTER-CHECK句を指定した項目が複数ある場合,それらすべての項目に対してデータの入力がなかったときだけ,「02」が設定されます。

(5) CBLFEP

-JPN,Alnumオプションまたは-JPN,V3JPNオプション指定時,画面節(SCREEN SECTIONおよびWINDOW SECTION)でカーソルを日本語項目に移動した場合,自動的に日本語入力に切り替えたいときにYESを指定します。YES以外の値を指定したときは,無効となります。

なお,この機能を有効にするには,実行支援の画面環境で「日本語入力のオン/オフを自動的に切り替える」という設定をしておく必要があります。実行支援の設定については,マニュアル「COBOL2002 操作ガイド」を参照してください。

(6) CBLIMEPOS

画面節(SCREEN SECTIONおよびWINDOW SECTION)で,フィールドに日本語を直接入力したい場合にYESを指定します。YES以外の値を指定したときは,無効となります。

(7) CBLJCPOPENDKEY

JCPOPUPサービスルーチンの終了キーを追加したい場合にYESを指定します。

YES以外の値を指定したときは,無効となります。

詳細は,「30.5.3 JCPOPUP」を参照してください。

(8) CBLM7ENDKEY

MIOS7で使用する終了キー([I]〜[VIII]キー)の互換キーを,変更したい場合にYESを指定します。YESを指定した場合,互換キーの組み合わせが[Alt]+[F1]キー〜[Alt]+[F8]キーから,[Shift]+[F1]キー〜[Shift]+[F8]キーに変更されます。

YES以外の値を指定したときは,無効となります。

(9) CBLNOCLOSE

ウィンドウのシステムメニュー,およびタイトルバーの[閉じる]ボタンを非活性 にしたいときにYESを指定します。これによって,COBOLプログラムの実行中にウィンドウを閉じて強制的にプログラムを中断できなくなります。

YES以外の値を指定したときは,無効となります。

(10) CBLONLYNUM

環境変数CBLAUTOCLEARにYESを指定した場合の入力動作の変更を,画面節(WINDOW SECTION)の数字項目,および数字編集項目だけに限定したい場合,YESを指定します。

環境変数CBLAUTOCLEARの機能については,「(3) CBLAUTOCLEAR」を参照してください。

YES以外の値を指定したときは,無効となります。

また,この環境変数はCBLAUTOCLEARにYESが指定されていない場合,無効となります。

(11) CBLOVERFLOW

画面節(WINDOW SECTION)でのデータ入力時,カーソルが自動的に移動する機能を抑止し,けたあふれチェックをしたい場合,YESを指定します。

CBLOVERFLOWにYESを指定すると,入力フィールドまたは更新フィールドの最後の文字が入力されても,カーソルが自動的に次のフィールドに移動しなくなります。また,最後の文字を入力した状態から続けて文字を入力すると,オーバフローのエラーメッセージが出力されます。

YES以外の値を指定したときは,無効となります。

(12) CBLSETFIELD

画面節(WINDOW SECTION)のSET文でフィールドの属性を変更する場合,それまでにSET文で変更した属性をクリアしたいときにYESを指定します。

YES以外の値を指定したときは,無効となります。

(例)
CBLSETFIELD=YESの場合

[図データ]

CBLSETFIELD=YES以外の場合

[図データ]

(13) CBLUNDERDOT

画面節(SCREEN SECTIONおよびWINDOW SECTION)で,入力,および入出力フィールドにピリオド(.)を表示したい場合は,YESを指定します。YES以外の値を指定したときは,無効となります。

(14) CBLUPDOWNMOVE

画面節(WINDOW SECTION)のACCEPT文,またはREPLY文実行時,[↑]キー,[↓]キーの動作を変更する環境変数です。

通常,この環境変数を指定していない場合,[↑]キー,[↓]キーを操作すると,現在のフィールドの前フィールド,または次フィールドにカーソルが位置づけられます。この環境変数を指定した場合,カーソルは下方向に位置する,入力,および入出力フィールドの先頭入力位置にカーソルが位置づけられます。YES以外の値を指定したときは,無効となります。

環境変数CBLUPDOWNMOVEを指定した場合,カーソルの動作例を次に示します。なお,ここで扱っているフィールドはすべて数字項目を扱う入力フィールドとします。

(例1)

[↓]キーを押す

[図データ]

カーソルは下に向かって移動します。この場合,真下より左方向に入力フィールドがあるため,そのフィールドの先頭入力位置にカーソルが位置づけられます。

(例2)

[↓]キーを押す

[図データ]

カーソルは下に向かって移動します。この場合,真下より左方向に入力フィールドがないため,左端から最初に位置する入力フィールドの先頭入力位置に,カーソルが位置づけられます。

(例3)

[↓]キーを押す

[図データ]

現在,カーソルの位置より下方向に入力フィールドがないため,画面上部に位置する入力フィールドの位置に,カーソルが位置づけられます。