COBOL2002 言語 拡張仕様編


13.1 概説(WINDOW SECTION)

画面節(WINDOW SECTION)による画面機能は,データ部の画面節(WINDOW SECTION)で画面の各フィールドの位置や属性を指定し,ACCEPT,DISPLAYまたはREPLY文によって簡単にデータを入出力する。

画面節(WINDOW SECTION)では画面の各フィールドをレベル構造を用いて指定する。つまり,上位のレベルで画面の行番号を指定し,下位のレベルでその行に含まれるフィールドのカラム番号と属性を指定する。手続き部ではREPLY文などによって,一つまたは幾つかのフィールドを一度に表示したり入力したりする。

画面入出力機能の簡単なプログラム例を次に示す。

〔プログラム例〕
       DATA       DIVISION.
       WORKING-STORAGE SECTION.
       77 TANKA PIC 9(5).
       WINDOW SECTION.…(1)
       01 GAMEN.…(2)
         02 LINE 5.…(3)
           03 OUTPUT COLUMN 15         PIC N(3)
                             VALUE NC'商品名'.…(4)
           03 SHOHIN INPUT COLUMN 30   PIC X(10).…(5)
         02  LINE  8.
           03 OUTPUT COLUMN 15         PIC N(3)
                             VALUE NC'数  量'.
           03 SURYO INPUT COLUMN 30    PIC 9(5).…(6)
         02 LINE 11.
           03 OUTPUT COLUMN 15         PIC N(3)
                             VALUE NC'金  額'.
           03 KINGAKU OUTPUT COLUMN 30 PIC \(11)
                             VALUE SPACE.…(7)
       PROCEDURE DIVISION.
             ERASE ALL WINDOW.…(8)
             REPLY GAMEN  UPON WINDOW.…(9)
             COMPUTE KINGAKU = TANKA * SURYO.…(10)
             DISPLAY KINGAKU UPON WINDOW.…(11)

(1)画面の各フィールドは画面節で指定する。

(2)画面全体に名前を付ける。

(3)画面の行番号(5行目)を指定する。

(4)5行,15列の位置に出力フィールドを指定する。このフィールドには「商品名」を表示する。

(5)5行,30列の位置に入力フィールドを指定する。このフィールドから商品名を入力する。

(6)8行,30列の位置に入力フィールドを指定する。このフィールドから数量を入力する。

(7)11行,30列の位置に出力フィールドを指定する。このフィールドには金額を編集して表示する。

(8)画面全体を消去する。

(9)初期画面を表示して,商品名と数量を入力する。つまり,入力した商品名の単価を,TANKAに求める処理,出力フィールドをすべて表示した後,入力フィールドへデータを入力する。

(10)画面節のデータ名は,一般の文で直接参照できる。

(11)COMPUTE文で計算した金額を表示する。

(例)
  • 次の形式の初期画面を表示する。

    [図データ]

  • 商品名と数量のデータを入力する。

  • 商品名に対応する単価を求め,

    金額 = 単価×数量

    を計算して画面のフィールドに表示する。