CUSMAIN: RPG ソース

図 192. モジュール CUSMAIN のソース
     //****************************************************************
     // プログラム名:   CUSMAIN                                       *
     // 関連ファイル:   MAINMENU (DSPF)                               *
     // 関連プログラム: CUSMNT   (ILE RPG PGM)                        *
     //                 SCHZIP   (ILE RPG PGM)                        *
     //                 SCHNAM   (ILE RPG PGM)                        *
     //         説明:   これは得意先のメイン照会プログラムです。      *
     //                 このプログラムは、次の処置のいずれかを選ぶ    *
     //                 ようにユーザーにプロンプトを出します。        *
     //                 1.得意先レコードの維持                        *
     //                     (追加、更新、削除、表示)                  *
     //                 2.郵便番号による得意先レコードの検索          *
     //                 3.名前による得意先レコードの検索              *
     //****************************************************************

     Fmainmenu  cf   e             workstn indds(indicators)

      // プロトタイプ定義:
     D CustMaintain    pr                  extproc('CUSMNT')
     D SearchZip       pr                  extproc('SCHZIP')
     D SearchName      pr                  extproc('SCHNAM')

      // フィールド定義:
     D indicators      ds
     D    exitKey                      n   overlay(indicators:3)
     D    maintainKey                  n   overlay(indicators:5)
     D    srchZipKey                   n   overlay(indicators:6)
     D    srchCustKey                  n   overlay(indicators:7)

      /free
           // 終了キーが押されるまでループする
           dow  '1';
              // メインメニューの表示
              exfmt hdrscn;

              // 要求された処置の実行
              if exitKey;
                 // プログラムの終了
                 leave;

              elseif maintainKey;
                 // 得意先データの維持
                 CustMaintain();

              elseif srchZipKey;
                 // 郵便番号に基づく得意先データの検索
                 SearchZip();

              elseif srchCustKey;
                 // 得意先名による得意先データの検索
                 SearchName();
              endif;
           enddo;

           *inlr = *on;
      /end-free


このモジュールでは、CALLB 命令コードの使用法について説明します。適当 な RPG モジュール (CUSMNT、SCHZIP、または SCHNAM) は、ユーザーの選択するメニュー項目に 従って CUSMAIN によって呼び出されます。

プログラム・オブジェクトを作成するために、次のことを行ってください。

  1. CRTRPGMOD を使用して、各ソース・メンバー (CUSMAIN、CUSMNT、 SCHZIP、 および SCHNAM) のモジュールを作成する。
  2. 次を入力することによってプログラムを作成する。

    CRTPGM PGM(MYPROG) MODULE(CUSMAIN CUSMNT SCHZIP SCHNAM) ENTMOD(*FIRST)

    注:
    *FIRST オプションは、リストの最初のモジュールである CUSMAIN が プログラム入力プロシージャーとして選択されることを指定します。
  3. 次を入力することによってプログラムを呼び出す。
    CALL MYPROG

図 193 に示すように『メイン・メニュー』が現れます。

図 193. 得意先メイン照会プロンプト画面
   22:30:05                CUSTOMER MAIN INQUIRY                      9/30/94



    Press one of the following PF keys.

                     F3 End Job
                     F5 Maintain Customer File
                     F6 Search Customer by Zip Code
                     F7 Search Customer by Name