COBOL2002 ユーザーズガイド


12.1.2 画面に対する入出力

〈この項の構成〉

(1) 画面の定義

通信節による画面機能を使用する場合,画面はXMAP3のドロー(パネル定義)機能を利用して定義します。ドロー(パネル定義)機能については,次に示すマニュアルを参照してください。

XMAP3 Version 4の場合
  • マニュアル「画面・帳票サポートシステム XMAP3 プログラミングガイド 画面編」

  • マニュアル「画面・帳票サポートシステム XMAP3 開発・実行ガイド」

XMAP3 Version 5の場合
  • マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」

  • マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」

  • マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」

(2) 使用する文

画面データを送受信したり画面を閉じたりするには,原始プログラム中のデータ部通信記述項のFOR句で"I-O WS"を指定し,次に示す文を使用します。

表12‒1 画面データの送受信で使用する文

使用する文

処理

SEND文

ディスプレイに画面データを送信し,応答の完了を待たないで非同期にプログラムを続行する。

  • NO REPLY指定がないとき

    受信した画面データは,RECEIVE文で受け取る。

  • NO REPLY指定があるとき

    ディスプレイに画面データを送信する。RECEIVE文で画面データを受け取ることはできない。

RECEIVE文

NO REPLY指定のないSEND文で受信したデータを受け取る。

TRANSCEIVE文

ディスプレイに画面データを送信し,受信した画面データを受け取る。

DISABLE文

ディスプレイに出力された画面データを消去する。

(3) 画面の表示モード

画面データの表示モードには次の2種類のモードがあります。

SEND文またはTRANSCEIVE文では,ドロー(パネル定義)機能で画面(パネル)定義時に指定した表示モードで画面データを表示します。ただし,開かれていない画面データの送受信先に対してSEND文またはTRANSCEIVE文を初めて実行する場合,上書き(WRITE)モードを指定してはなりません。

ドロー(パネル定義)機能で,画面(パネル)定義時にこのシステムに任せる指定をした場合,次の規則に従って画面データが表示されます。

(4) 実行時のカーソルの位置づけ

プログラム実行時にカーソルの位置を変更するときは,原始プログラム中で論理マップとして展開したカーソルフィールドに値を設定します。

(5) データ有無コード

データ有無コードとは,論理項目に値を設定しているかどうかを区別するためのコードで,1バイトのコードX'00'〜X'FF'で指定します。

データ有無コードには,原始プログラム中の通信記述項のDATA ABSENCE CODE句で指定したデータ名に設定した値が使われます。

DATA ABSENCE CODE句を指定したときは,プログラム中の通信記述項ごとの最初の通信文を実行する前に値を必ず設定しておく必要があります。データ名に値を設定しなかった場合の動作は保証しません。また,通信文の実行後に値を変更してはなりません。

(6) 実行状態を示すコード

続行できない異常な状態が通信文で発生すると,エラーメッセージが出力されます。通信記述項にSTATUS KEY句の指定があれば,通信文の実行状態を示す5けたのコードがこの句で指定したデータ名に設定され,処理が続行されます。

STATUS KEY句がないときに続行できないエラーが発生すると,プログラムは異常終了します。

STATUS KEY句のデータ名に設定されるコードについては,マニュアル「COBOL2002 言語 拡張仕様編」 「11.1.1 通信記述項(CD)(通信節による画面機能)」を参照してください。

(7) 送受信先の設定方法

画面機能では,送受信先を指定することで,ネットワーク上に接続されたディスプレイに画面データを送受信できます。送受信先の指定方法について,次に示します。

(a) 送受信先の決定のしかた

画面データの送受信先は,通信記述項でのSYMBOLIC TERMINAL句の指定の有無と,環境変数の指定の有無によって次のように決定されます。

表12‒2 画面データの送受信先

条件

SYMBOLIC TERMINAL句でのデータ名の指定

あり

なし

環境変数の指定

あり

環境変数CBLTERM_xxxで指定したディスプレイ

ただし,データ名に設定した内容の先頭1バイトが空白文字(X'20')の場合は,環境変数CBLTERMIDで指定したディスプレイ

環境変数CBLTERMIDで指定したディスプレイ

なし

データ名で指定した仮想端末

ただし,データ名に設定した内容の先頭1バイトが空白文字(X'20')の場合は,XMAP3のセットアップの値(仮定値)

XMAP3のセットアップの値(仮定値)

注※

マニュアル「画面・帳票サポートシステム XMAP3 開発・実行ガイド」を参照してください。

(b) 環境変数による送受信先の設定

送受信先を設定するための環境変数には次の2種類があります。

仮想端末名を指定する環境変数

次の環境変数で仮想端末名を指定します。ここで指定した仮想端末名は,SYMBOLIC TERMINAL句のデータ名に"xxx"で示す名称を指定したときに有効となります。

形式
CBLTERM_xxx=ディスプレイの仮想端末名
規則

xxxおよび仮想端末名は8文字以内の文字列で指定します。

仮想端末名の仮定値を指定する環境変数

SYMBOLIC TERMINAL句の指定を省略したときに仮定される仮想端末の名称を次の環境変数で指定します。

形式
CBLTERMID=ディスプレイの仮想端末名
規則

仮想端末名は8文字以内の文字列で指定します。

(c) SYMBOLIC TERMINAL句の指定

通信記述項のSYMBOLIC TERMINAL句のデータ名に環境変数名または仮想端末名を指定することで,画面データの送受信先を指定できます。

環境変数名による指定方法

データ名に環境変数CBLTERM_xxxの"xxx"の名称を指定します。環境変数で指定した仮想端末名が送受信先として設定されます。

仮想端末名による指定方法

環境変数が指定されていないときは,データ名に仮想端末名を指定することで送受信先を指定できます。

(8) 送受信間の物理マップ

ディスプレイに対して画面データを送受信する場合,SEND文(NO REPLY指定なし)の前に通信記述項のMAP NAME句のデータ名に物理マップ名を指定し,画面データを送受信します。RECEIVE文はその物理マップ名に対して画面データを受信するため,RECEIVE文で物理マップ名は指定しません。

複数の仮想端末に送信した画面データを受信するとき,それぞれの最後に送信したSEND文で指定した物理マップが,RECEIVE文の物理マップとなります。