メニュー方式のアプリケーションからの ILE COBOL プログラムの実行

ILE COBOL プログラムは、メニュー方式のアプリケーション・プログラムからも実行することができます。 ワークステーション・ユーザーは、メニューからオプションを選択して、該当するプログラムを呼び出します。 次の図は、アプリケーション・プログラム・メニューの例です。

図 30. アプリケーション・プログラム・メニューの例
                             PAYROLL DEPARTMENT MENU

    1.  Inquire into employee master
    2.  Change employee master
    3.  Add new employee
    4.  Return


  Option:

多くの場合、この図に示されているメニューは、各オプションが別々の COBOL プログラムを呼び出すようになっている CL プログラムによって表示されます。

上記の PAYROLL DEPARTMENT MENU のディスプレイ・ファイルの DDS は、次のようなものです。

図 31. アプリケーション・プログラム・メニューのデータ記述仕様
 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
      A* MENU PAYROLLD PAYROLL DEPARTMENT MENU
      A
      A          R MENU                      TEXT('PAYROLL DEPARTMENT MENU')
      A                                  1 29'PAYROLL DEPARTMENT MENU'
      A                                  5  4'1.  Inquire into employee master'
      A                                  6  4'2.  Change employee master'
      A                                  7  4'3.  Add new employee'
      A                                  8  4'4.  Return'
      A                                 12  2'Option:'
      A            RESP                 12 10VALUES(1 2 3 4)
      A                                      DSPATR(MDT)

図 31図 30 に図示されているアプリケーション・プログラム・メニューの CL プログラムの例です。

図 32. ILE COBOL プログラムを呼び出す CL プログラムの例
            PGM /* PAYROLL Payroll Department Menu */
            DCLF FILE (PAYROLLD)
     START: SNDRCVF RCDFMT(MENU)
            IF (&RESP=1); THEN(CALL CBLINQ)
            /* Inquiry */
            ELSE +
              IF (&RESP=2); THEN(CALL CBLCHG)
              /* Change */
              ELSE +
                IF (&RESP=3); THEN(CALL CBLADD)
                /* Add */
                ELSE +
                  IF (&RESP=4); THEN(RETURN)
                  /* Return */
            GOTO START
            ENDPGM

ユーザーがアプリケーション・プログラム・メニューから 1、2、または 3 を入力すると図 32 の CL プログラムは、 それぞれ ILE COBOL プログラム CBLINQ、 CBLCHG、または CBLADD を呼び出します。 ユーザーがアプリケーション・プログラム・メニューから 4 を入力すると、CL プログラムはそれを呼び出した元のプログラムに戻ります。