画面・帳票サポートシステム XMAP3 プログラミングガイド 画面編

[目次][用語][索引][前へ][次へ]

7.5.1 COBOLでの画面表示命令

<この項の構成>
(1) SEND文,およびRECEIVE文による画面表示
(2) CALL文による画面表示
(3) コンパイル時のポイント

(1) SEND文,およびRECEIVE文による画面表示

日立COBOLのSEND文,およびRECEIVE文によって画面を入出力する方法を説明します。

(a) 論理マップの取り込み

[図データ]

(b) 通信記述項

[図データ]

1および2は必ず指定してください。ほかの項目は,必要に応じて指定してください。
  1. 通信記述名,および通信種別(I-O)(必須)
    通信記述名にはSEND文,およびRECEIVE文で使用する名称を指定します。通信種別には「I-O」を指定します。
  2. 物理マップ名称格納エリア(必須)
    SEND文およびRECEIVE文で表示したい物理マップ名称を格納するエリアです。
  3. リターンコード格納エリア
    SEND文,RECEIVE文,およびTRANSCEIVE文のリターンコードを格納するエリアです。SEND文,RECEIVE文,およびTRANSCEIVE文が正常に処理されたかを判定する場合,このエリアを参照します。詳細については,「7.2.3(1)(g) STATUS KEY句のリターンコード」を参照してください。
  4. 仮想端末名格納エリア
    最初のSEND文を実行する前に,仮想端末名を格納しておくエリアです。正しい名称を指定しないと,実行時に表示先が決定できなくなりエラーになります。TP1/NET/XMAP3で指定した仮想端末名を指定してください。
  5. 受信日付格納エリア
    受信日付を格納しておくエリアです。受信日付の形式はYYMMDD(YY:西暦下2桁,MM:月,DD:日)の形式となります。
  6. 受信時間格納エリア
    受信時間を格納しておくエリアです。受信時間の形式はHHMMSS(HH:時,MM:分,SS:秒)の形式となります。
(c) RECEIVE文

[図データ]

  1. 通信記述名,および入力論理マップ名
    通信記述名には通信記述項の通信記述名に定義した名称を指定します。
    入力論理マップ名には,WORKING-STORAGE SECTIONのCOPY文で取り込んだ,入力論理マップを指定します。
(d) SEND文

[図データ]

  1. 物理マップ名,およびデータ名1
    物理マップ名には,表示させたい物理マップの名称を指定します。このときデバイスIDを含めない名称を指定してください。RECEIVE文で受信した画面が次画面の場合,物理マップ名の指定は不要です。
    データ名1には,通信記述項の物理マップ格納エリアに定義した名称を指定します。
  2. 通信記述名,および出力論理マップ名
    通信記述名には,通信記述項の通信記述名に定義した名称を指定します。
    出力論理マップ名には,WORKING-STORAGE SECTIONのCOPY文で取り込んだ,表示したい画面の出力論理マップを指定します。

(2) CALL文による画面表示

ここでは,COBOLのCALLインタフェースによってマッピングライブラリを使用する方法を説明します。あらかじめ,WORKING-STORAGE SECTIONのCOPY文を指定し,使用したい論理マップ名(入力論理マップ,および出力論理マップ)を取り込んでおきます。論理マップの取り込みについては「7.2.2 論理マップの取り込み方法(COBOL)」を参照してください。

(a) インタフェース領域の作成

TP1/NET/XMAP3とのインタフェース用領域を作成します。インタフェース領域については,マニュアル「OpenTP1プロトコル TP1/NET/XMAP3編」を参照してください。

[図データ]

また,上記で注釈のついているデータ項目は,以降に説明する命令文で使用するデータ項目です。それ以外のデータ項目については,マニュアル「OpenTP1プロトコル TP1/NET/XMAP3編」を参照してください。

(b) 受信命令(CALL 'CBLDCMCF')

[図データ]

  1. 'RECEIVE'(必須),およびデータ名1
    受信を命令するため,'RECEIVE'を指定します。また,データ名1には,インタフェース領域の一意名1に定義した先頭のデータ項目名を指定します。
  2. 一意名1,一意名2,および入力論理マップ名
    一意名1,および一意名2にはインタフェース領域に定義した一意名1および一意名2を指定します。
    入力論理マップ名にはWORKING-STORAGE SECTIONのCOPY文で取り込んだ入力論理マップ名を指定します。
(c) 送信命令(CALL 'CBLDCMCF')

[図データ]

  1. 'REPLY'(必須),およびデータ名1
    送信を命令するため,'REPLY'を指定します。また,データ名1には,インタフェース領域の一意名1に定義した先頭のデータ項目名を指定します。
  2. 'EMI'(必須),およびデータ名2
    データ名2には,インタフェース領域の一意名1に定義した9個目のデータ項目名を指定します。
  3. 物理マップ名,およびデータ名3
    物理マップ名には,表示させたい物理マップの名称を指定します。このときデバイスIDを含めない名称を指定してください。RECEIVE文で受信した画面が次画面の場合,物理マップ名の指定は不要です。
    データ名3には,インタフェース領域の一意名2に定義した3個目のデータ項目名を指定します。
  4. 一意名1,一意名2,および出力論理マップ名
    一意名1および一意名2には,インタフェース領域に定義した一意名1および一意名2を指定します。
    出力論理マップ名には,WORKING-STORAGE SECTIONのCOPY文で取り込んだ出力論理マップ名を指定します。

(3) コンパイル時のポイント

日立COBOLを使用してOLTPサーバ構成用のプログラムをコンパイルするとき,コンパイラオプション「-OpenTP1」(COBOL2002の場合)または「-Ot」(COBOL85の場合)を指定する必要があります。