得意先マスタメンテナンス (AAA904 ソース解説付き)

AAA904 得意先マスタメンテナンス のソースの内容を解説します。

トリプル・アイ の部分は 赤 で、

Super Visual Formade の部分は 緑 、

Pervasive SQL の部分は 青

という感じで、色分けして解説します。

※そのほかの部分(黒)はCOBOLの内容となります。

      *————————————————————————————————————————————————————————————————
      *      得意先マスタメンテナンス
      *
      * 080515 新規作成
      *————————————————————————————————————————————————————————————————
         IDENTIFICATION   DIVISION.
         ENVIRONMENT      DIVISION.
         CONFIGURATION    SECTION.

         WORKING-STORAGE  SECTION.

      *————————————————————————————————————————————————————————————————
      * Visual COBOL (WORKING-STORAGE SECTION の下に追加)
      *————————————————————————————————————————————————————————————————
         01  pp procedure-pointer.

PervasiveSQLで使用するワークフィールドを定義しています。

         COPY  \IJS10\CPBTRDT.CPY.

トリプル・アイで使用するワークフィールドを定義しています。

         COPY  \IJS10\CPIIIDT.CPY.
         COPY  KANRI.CPY.

         COPY  \IJS10\GENGO.WOR.

         COPY  AAAFILE.CPY.
         COPY  TOKUI.CPY.

         COPY  AAASTO.WOR.

         01  GLOVL-AREA.
           02  SW-AREA.
             03  CTL-SW        PIC  9(002).
             03  PGM-SW        PIC  9(001)  VALUE  1.

         01  MESSAGE-AREA.
           02  MES0.
             03                PIC  X(011)  VALUE  “System Err/”.
             03  MES-0         PIC  X(053).

トリプル・アイの画面フィールドの内容をこちらのフィールドで受け渡しを行います。

      *————————————————————————————————————————————————————————————————
      *      画面フィールド
      *————————————————————————————————————————————————————————————————
         01  V2-REC.
           02  V2-KUBN      PIC  X(006).
           02  V2-TCODE.
             03  V2-TC1       PIC  9(004).
             03  V2-TC2       PIC  9(004).

           02  V2-ITEM.
             03  V2-TNAME     PIC  X(040).
             03  V2-RYAKU     PIC  X(020).
             03  V2-FURI      PIC  X(020).
             03  V2-UBIN1     PIC  9(003).
             03  V2-UBIN2     PIC  9(004).
             03  V2-ADRE1     PIC  X(040).
             03  V2-ADRE2     PIC  X(040).
             03  V2-TEL       PIC  X(015).
             03  V2-FAX       PIC  X(015).
             03  V2-MAIL      PIC  X(030).
             03  V2-URL       PIC  X(030).
             03  V2-SAMA      PIC  X(004).
             03  V2-GROUP     PIC  9(003).
             03  V2-SIME      PIC  9(002).
             03  V2-TXSW      PIC  9(001).
             03  V2-ZAN       PIC S9(011).
             03  V2-MEMO1     PIC  X(050).
             03  V2-MEMO2     PIC  X(050).
             03  V2-MEMO3     PIC  X(050).
             03  V2-MEMO4     PIC  X(050).
             03  V2-MEMO5     PIC  X(050).
             03  V2-MEMOSW    PIC  9(001).
             03  V2-KEISW     PIC  9(001).

           02  V2-OK        PIC  X(001).

         77  V2-KINGW     PIC  ————.—-.

      *————————————————————————————————————————————————————————————————
      *      連 絡 節
      *————————————————————————————————————————————————————————————————
       LINKAGE  SECTION.
         01  LN-REC.
           02  LN-KR        PIC  9(002).

      *————————————————————————————————————————————————————————————————
      *      手続き部
      *————————————————————————————————————————————————————————————————
       PROCEDURE  DIVISION  USING  LN-REC.

      *————————————————————————————————————————————————————————————————
      * Visual COBOL (PROCEDURE DIVISION の下に追加)
      *————————————————————————————————————————————————————————————————
           set pp to entry “MFFH”.

      *————————————————————————————————————————————————————————————————
      *      プログラム 開始
      *————————————————————————————————————————————————————————————————
       PROC-EN.
         PERFORM INIT-EN THRU INIT-EX UNTIL PGM-SW NOT = 1.
         PERFORM MAIN-EN THRU MAIN-EX UNTIL PGM-SW NOT = 2.
         PERFORM TERM-EN THRU TERM-EX UNTIL PGM-SW NOT = 3.
       PROC-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      プログラム 開始
      *————————————————————————————————————————————————————————————————
       INIT-EN.
         PERFORM READKR-EN  THRU READKR-EX.

メイン画面を表示します。(※SCR-EN参照)

         PERFORM SCR-EN     THRU SCR-EX.

得意先マスタ TOKUI.BTR をオープンします。

         PERFORM OPEN-TOKUI THRU OPEN-TOKUI-EX.
                                                 MOVE  1  TO  CTL-SW.
                                                 MOVE  2  TO  PGM-SW.
       INIT-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      メイン  ループ
      *————————————————————————————————————————————————————————————————
       MAIN-EN.
         PERFORM SUB1-EN THRU SUB1-EX UNTIL CTL-SW NOT = 1.
         PERFORM SUB2-EN THRU SUB2-EX UNTIL CTL-SW NOT = 2.

         IF  CTL-SW = 99                         MOVE  3  TO  PGM-SW.
       MAIN-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      プログラム 終了
      *————————————————————————————————————————————————————————————————
       TERM-EN.

得意先マスタ TOKUI.BTR をクローズします。

         PERFORM CLOSE-TOKUI THRU CLOSE-TOKUI-EX.
         EXIT PROGRAM.
       TERM-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      初 期 処 理
      *————————————————————————————————————————————————————————————————
       SUB1-EN.

最初にカーソルを置くフィールドを指定します。position は、指定したフィールドにカーソルを持っていきます。

         DISPLAY “position|TC1”.
                                                 MOVE  2  TO  CTL-SW.
       SUB1-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      画 面 入 力
      *————————————————————————————————————————————————————————————————
       SUB2-EN.

“@input|/nextv” は、画面に対してのインプット命令です。

“@fnamef|/cur” は、現在とまっているフィールド名を取得します。

“@code|/cur” は、現在とまっているフィールドのコードを取得します。

         DISPLAY “@input|/nextv”.
         ACCEPT   ITS-FUNC.

         DISPLAY “@fnamef|/cur”.
         ACCEPT   ITS-NAME.

         DISPLAY  “@code|/cur”.
         ACCEPT   ITS-CODE.

         IF  ITS-FUNC = 132
             DISPLAY “@query|mn_selectno”
             ACCEPT   ITS-MNNO
         ELSE
             INITIALIZE  ITS-MNNO
         END-IF.

“clear|MS” は、トリプル・アイの フィールドMS の表示を初期化します。

         DISPLAY “clear|MS”.

         EVALUATE TRUE

      *ボタン

ITS-MNNO = “0404” は、トリプル・アイで作成したメニューバーのコードです。

下の例では、”0404″ には F4 キーが指定されています。

WHEN ITS-MNNO = “0404”
              AND V2-KUBN  = “編 集”
                  PERFORM TO-DELETE THRU TO-DELETE-EX

 

      *一覧表印刷

             WHEN ITS-MNNO = “0501”
                  CALL   “AAA904A.GNT”  USING  LN-REC
                  CANCEL “AAA904A.GNT”
                  PERFORM SCR-EN THRU SCR-EX
                  INITIALIZE  V2-REC
                  DISPLAY “position|TC1”
                                                 MOVE  2  TO  CTL-SW

      *封筒印刷

             WHEN ITS-MNNO = “0502”
                  CALL   “AAA904F.GNT”  USING  LN-REC
                  CANCEL “AAA904F.GNT”
                  PERFORM SCR-EN THRU SCR-EX
                  INITIALIZE  V2-REC
                  DISPLAY “position|TC1”
                                                 MOVE  2  TO  CTL-SW

 

      *終了

ITS-MNNO = “01” トリプル・アイで “01” は、Esc キーに指定していたので、

画面の初めの “TC1” にカーソルがある場合、Esc を押したら終了、

それ以外の場合は、Esc を押したら “TC1” へ移動します。

WHEN ITS-MNNO = “01”
                  IF  ITS-NAME = “TC1”
                                                 MOVE  99 TO  CTL-SW
                  ELSE
                      DISPLAY “position|TC1”
                  END-IF

 

 

カーソルが “TC1” にあったときに、トリプル・アイのフィールド”TC1″の値を

COBOLのワークフィールド V2-TC1 に取り込み(転送)ます。

WHEN ITS-NAME   = “TC1”
                  DISPLAY “@get|TC1”
                  ACCEPT     V2-TC1

 

                  EVALUATE TRUE
                      WHEN ITS-MNNO = “0301”
                        OR ITS-FUNC = 101
                           PERFORM SELE-TO-EN THRU SELE-TO-EX

                      WHEN ITS-MNNO = “0302”
                        OR ITS-FUNC = 102
                           PERFORM SELE-TO1-EN THRU SELE-TO1-EX

                      WHEN ITS-MNNO = “0402”
                           PERFORM NEXT-EN THRU NEXT-EX

                      WHEN ITS-MNNO = “0401”
                           PERFORM PREV-EN THRU PREV-EX
                  END-EVALUATE

             WHEN ITS-NAME   = “TC2”
                  DISPLAY “@get|TC2”
                  ACCEPT     V2-TC2

 

“0401” は、トリプル・アイで PageUp キーに指定したので、

PageUpキーを押したら、前項目の “TC1” に移動します。

IF  ITS-MNNO = “0401”
                      DISPLAY “position|TC1”
                  ELSE
                      PERFORM READ-EN THRU READ-EX
                  END-IF

 

             WHEN ITS-NAME   = “TNAME”
                  DISPLAY “@get|TNAME”
                  ACCEPT     V2-TNAME

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|TC2”
                  END-IF

             WHEN ITS-NAME   = “RYAKU”
                  DISPLAY “@get|RYAKU”
                  ACCEPT     V2-RYAKU

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|TNAME”
                  END-IF

             WHEN ITS-NAME   = “FURI”
                  DISPLAY “@get|FURI”
                  ACCEPT     V2-FURI

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|RYAKU”
                  END-IF

             WHEN ITS-NAME   = “UBIN1”
                  DISPLAY “@get|UBIN1”
                  ACCEPT     V2-UBIN1

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|FURI”
                  END-IF

             WHEN ITS-NAME   = “UBIN2”
                  DISPLAY “@get|UBIN2”
                  ACCEPT     V2-UBIN2

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|UBIN1”
                  END-IF

             WHEN ITS-NAME   = “ADRE1”
                  DISPLAY “@get|ADRE1”
                  ACCEPT     V2-ADRE1

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|UBIN2”
                  END-IF

             WHEN ITS-NAME   = “ADRE2”
                  DISPLAY “@get|ADRE2”
                  ACCEPT     V2-ADRE2

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|ADRE1”
                  END-IF

             WHEN ITS-NAME   = “TEL”
                  DISPLAY “@get|TEL”
                  ACCEPT     V2-TEL

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|ADRE2”
                  END-IF

             WHEN ITS-NAME   = “FAX”
                  DISPLAY “@get|FAX”
                  ACCEPT     V2-FAX

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|TEL”
                  END-IF

             WHEN ITS-NAME   = “MAIL”
                  DISPLAY “@get|MAIL”
                  ACCEPT     V2-MAIL

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|FAX”
                  END-IF

             WHEN ITS-NAME   = “URL”
                  DISPLAY “@get|URL”
                  ACCEPT     V2-URL

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|MAIL”
                  END-IF

             WHEN ITS-NAME   = “SAMA”
                  DISPLAY “@get|SAMA”
                  ACCEPT     V2-SAMA

                  EVALUATE TRUE
                      WHEN ITS-FUNC  =  158
                           DISPLAY “window|KEISHO.SCR”
                           DISPLAY “@input|/nextv”
                           ACCEPT   ITS-FUNC

                           EVALUATE ITS-FUNC
                               WHEN 201   MOVE  “様”    TO  V2-SAMA
                               WHEN 202   MOVE  “御中”  TO  V2-SAMA
                               WHEN 203   MOVE  “殿”    TO  V2-SAMA
                               WHEN 204   MOVE  “宛”    TO  V2-SAMA
                               WHEN OTHER MOVE  ”    ”  TO  V2-SAMA
                           END-EVALUATE

                           DISPLAY “restore”
                           DISPLAY “put|SAMA|” V2-SAMA

                      WHEN ITS-MNNO = “0401”
                           DISPLAY “position|URL”
                  END-EVALUATE

             WHEN ITS-NAME   = “GROUP”
                  DISPLAY “@get|GROUP”
                  ACCEPT     V2-GROUP

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|SAMA”
                  END-IF

             WHEN ITS-NAME   = “SIME”
                  DISPLAY “@get|SIME”
                  ACCEPT     V2-SIME

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|GROUP”
                  END-IF

             WHEN ITS-NAME   = “TXSW”
                  DISPLAY “@get|TXSW”
                  ACCEPT     V2-TXSW

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|SIME”
                  END-IF

             WHEN ITS-NAME   = “ZAN”
                  DISPLAY “@get|ZAN”
                  ACCEPT     V2-ZAN

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|TXSW”
                  END-IF

             WHEN ITS-NAME   = “MEMO1”
                  DISPLAY “@get|MEMO1”
                  ACCEPT     V2-MEMO1

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|ZAN”
                  END-IF

             WHEN ITS-NAME   = “MEMO2”
                  DISPLAY “@get|MEMO2”
                  ACCEPT     V2-MEMO2

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|MEMO1”
                  END-IF

             WHEN ITS-NAME   = “MEMO3”
                  DISPLAY “@get|MEMO3”
                  ACCEPT     V2-MEMO3

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|MEMO2”
                  END-IF

             WHEN ITS-NAME   = “MEMO4”
                  DISPLAY “@get|MEMO4”
                  ACCEPT     V2-MEMO4

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|MEMO3”
                  END-IF

             WHEN ITS-NAME   = “MEMO5”
                  DISPLAY “@get|MEMO5”
                  ACCEPT     V2-MEMO5

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|MEMO4”
                  END-IF

             WHEN ITS-NAME   = “MEMOSW”
                  DISPLAY “@get|MEMOSW”
                  ACCEPT     V2-MEMOSW

                  IF  ITS-MNNO = “0401”
                      DISPLAY “position|MEMO5”
                  END-IF

             WHEN ITS-NAME   = “KEISW”
                  DISPLAY “@get|KEISW”
                  ACCEPT     V2-KEISW

                  EVALUATE TRUE
                      WHEN ITS-MNNO = “0401”
                           DISPLAY “position|MEMOSW”

                      WHEN ITS-FUNC  =  13
                           DISPLAY “put|MS|” “Y:OK    N:キャンセル”
                           DISPLAY “put|OK|” “Y”
                           DISPLAY “position|OK”
                  END-EVALUATE

             WHEN ITS-NAME   = “OK”
                  DISPLAY “@get|OK”
                  ACCEPT     V2-OK

                  EVALUATE TRUE
                      WHEN ITS-FUNC  =  125
                        OR ITS-FUNC  =  126
                        OR ITS-MNNO = “0401”
                        OR V2-OK     =  “N”
                        OR V2-OK     =  “n”
                           DISPLAY “clear|OK”
                           DISPLAY “position|KEISW”

                      WHEN V2-OK    =  “Y”
                        OR V2-OK    =  “y”
                        OR ITS-FUNC  =  190
                           EVALUATE V2-KUBN
                               WHEN “新 規”
                                    PERFORM TO-INSERT
                                    THRU TO-INSERT-EX

                               WHEN “編 集”
                                    PERFORM TO-UPDATE
                                    THRU TO-UPDATE-EX

                           END-EVALUATE

                      WHEN OTHER
                           DISPLAY “clear|OK”
                           DISPLAY “position|OK”
                  END-EVALUATE
         END-EVALUATE.

      *Home or [ok]
         IF  ITS-MNNO  =  “02”
         AND ( V2-KUBN   =  “新 規”  OR  “編 集” )
         AND ITS-CODE  NOT =  “h”
             DISPLAY “put|MS|” “Y:OK    N:キャンセル”
             DISPLAY “put|OK|” “Y”
             DISPLAY “position|OK”
         END-IF.
       SUB2-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      登 録 処 理
      *————————————————————————————————————————————————————————————————
       TO-INSERT.
         INITIALIZE  TO-REC.

トリプル・アイの画面の内容を、COBOLのワークフィールドへ転送しています。

※GADA-EN を参照。

         PERFORM GADA-EN      THRU GADA-EX.

得意マスタ TOKUI.BTR にレコードを書き込みます。

         PERFORM INSERT-TOKUI THRU INSERT-TOKUI-EX.
         IF  0  =  B-STAT
             DISPLAY “put|MS|” “新規登録しました。”
         ELSE
             MOVE     ERR-MSG  TO  MES-0
             DISPLAY “put|MS|” MES0
             DISPLAY “@input|OK”
             ACCEPT   ITS-FUNC
         END-IF.

         INITIALIZE  V2-OK  V2-KUBN.
         DISPLAY “clear|OK”.
         DISPLAY “clear|KUBN”.
         DISPLAY “position|TC1”.
       TO-INSERT-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      修 正 処 理
      *————————————————————————————————————————————————————————————————
       TO-UPDATE.
         PERFORM GADA-EN      THRU GADA-EX.

得意マスタ TOKUI.BTR のレコードを書き換え(更新)ます。

         PERFORM UPDATE-TOKUI THRU UPDATE-TOKUI-EX.
         IF  0  =  B-STAT
             DISPLAY “put|MS|” “編集しました。”
         ELSE
             MOVE     ERR-MSG  TO  MES-0
             DISPLAY “put|MS|” MES0
             DISPLAY “@input|OK”
             ACCEPT   ITS-FUNC
         END-IF.

         INITIALIZE  V2-OK  V2-KUBN.
         DISPLAY “clear|OK”.
         DISPLAY “clear|KUBN”.
         DISPLAY “position|TC1”.
       TO-UPDATE-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      削 除 処 理
      *————————————————————————————————————————————————————————————————
       TO-DELETE.
         PERFORM WIN-KEIKOKU-EN THRU WIN-KEIKOKU-EX.
         DISPLAY “put|MS|”
                 “削除します。 本当によろしいですか?”.

         DISPLAY “@input|OK”.
         ACCEPT   ITS-FUNC.

         EVALUATE TRUE
             WHEN ITS-FUNC = 190
                  DISPLAY “restore”
                  PERFORM SCR-EN THRU SCR-EX

                  INITIALIZE  TO-REC
                  MOVE     V2-TCODE      TO  TO-TCODE
                  PERFORM DELETE-TOKUI THRU DELETE-TOKUI-EX
                  IF  B-STAT  =  0   
                      DISPLAY “put|MS|” “削除しました。”
                  ELSE
                      MOVE     ERR-MSG  TO  MES-0
                      DISPLAY “put|MS|” MES0
                  END-IF

             WHEN OTHER
                  DISPLAY “restore”
                  PERFORM SCR-EN THRU SCR-EX
         END-EVALUATE.

         DISPLAY “position|TC1”.
         DISPLAY “clear|OK”.
       TO-DELETE-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      TOKUI の 読 込 み
      *————————————————————————————————————————————————————————————————
       READ-EN.

V2-TCODE で、得意マスタ TOKUI.BTR よりレコードを読み込みます。

         MOVE     V2-TCODE     TO  TO-TCODE.   

         PERFORM GETEQ-TOKUI THRU GETEQ-TOKUI-EX.

         IF  0  NOT =  B-STAT
             MOVE    “新 規”  TO  V2-KUBN
             DISPLAY “put|KUBN|”   V2-KUBN

090420*      INITIALIZE  V2-ITEM
090420*      DISPLAY  “aclear|TNAME|KEISW|”
         ELSE
             MOVE    “編 集”  TO  V2-KUBN
             DISPLAY “put|KUBN|”   V2-KUBN

             PERFORM DISP-EN THRU DISP-EX
         END-IF.
       READ-EX. 
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      一覧選択
      *————————————————————————————————————————————————————————————————
       SELE-TO-EN.
         MOVE   V2-TCODE  TO  STO-TCODE.
         MOVE   LN-KR     TO  STO-KR.

         CALL   “AAASTO.GNT”   USING  STO-PARA.
         CANCEL “AAASTO.GNT”.

         PERFORM SCR-EN THRU SCR-EX.
         PERFORM ALL-DISP-EN THRU ALL-DISP-EX.
         IF  0  =  STO-FUNC
             MOVE     STO-TCODE  TO  V2-TCODE
             PERFORM READ-EN THRU READ-EX
         ELSE
             DISPLAY “position|TC1”
         END-IF.
       SELE-TO-EX. 
         EXIT.

       SELE-TO1-EN.
         MOVE  LN-KR  TO  STO-KR.

         CALL   “AAASTO1.GNT”  USING  STO-PARA.
         CANCEL “AAASTO1.GNT”.

         PERFORM SCR-EN THRU SCR-EX.
         PERFORM ALL-DISP-EN THRU ALL-DISP-EX.
         IF  0  =  STO-FUNC
             MOVE     STO-TCODE  TO  V2-TCODE
             PERFORM READ-EN THRU READ-EX
         ELSE
             DISPLAY “position|TC1”
         END-IF.
       SELE-TO1-EX. 
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      NEXT  レコード
      *————————————————————————————————————————————————————————————————
       NEXT-EN.

得意マスタ TOKUI.BTR の次のレコードを読み込みます。

         PERFORM GETNEXT-TOKUI THRU GETNEXT-TOKUI-EX.
         IF  0  =  B-STAT
             MOVE    “編 集”      TO  V2-KUBN
             DISPLAY “put|KUBN|”       V2-KUBN
             PERFORM DISP-EN THRU DISP-EX
         ELSE

↑の読み込みエラーの場合、GETGE(Get Grater or Equal)で読み直します。

それでも読み込みエラーの場合は、”最後の得意先”となります。

             INITIALIZE                TO-REC
             MOVE  V2-TCODE        TO  TO-TCODE
             PERFORM GETGE-TOKUI THRU GETGE-TOKUI-EX
             IF  0  =  B-STAT
                 MOVE    “編 集”      TO  V2-KUBN
                 DISPLAY “put|KUBN|”       V2-KUBN
                 PERFORM DISP-EN THRU DISP-EX
             ELSE
                 DISPLAY “put|MS|” “最後の得意先です。”
             END-IF
         END-IF.

         DISPLAY “position|TC1”.
       NEXT-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      PREV  レコード
      *————————————————————————————————————————————————————————————————
       PREV-EN.

得意マスタ TOKUI.BTR の前のレコードを読み込みます。

         PERFORM GETPREV-TOKUI THRU GETPREV-TOKUI-EX.
         IF  0  =  B-STAT
             MOVE    “編 集”  TO  V2-KUBN
             DISPLAY “put|KUBN|”   V2-KUBN
             PERFORM DISP-EN THRU DISP-EX
         ELSE
 

↑の読み込みエラーの場合、GETLE(Get Less or Equal)で読み直します。

それでも読み込みエラーの場合は、”最後の得意先”となります。

            INITIALIZE                TO-REC
             MOVE     V2-TCODE     TO  TO-TCODE
             PERFORM GETLE-TOKUI THRU GETLE-TOKUI-EX
             IF  B-STAT = 0
                 MOVE    “編 集”  TO  V2-KUBN
                 DISPLAY “put|KUBN|”   V2-KUBN
                 PERFORM DISP-EN THRU DISP-EX
             ELSE
                 DISPLAY “put|MS|” “最初の得意先です。”
             END-IF
         END-IF.

         DISPLAY “position|TC1”.
       PREV-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      データ  →  画面出力
      *————————————————————————————————————————————————————————————————
       DISP-EN.
         MOVE  TO-TCODE  TO  V2-TCODE.
         MOVE  TO-TNAME  TO  V2-TNAME.
         MOVE  TO-RYAKU  TO  V2-RYAKU.
         MOVE  TO-FURI   TO  V2-FURI.
         MOVE  TO-UBIN1  TO  V2-UBIN1.
         MOVE  TO-UBIN2  TO  V2-UBIN2.
         MOVE  TO-ADRE1  TO  V2-ADRE1.
         MOVE  TO-ADRE2  TO  V2-ADRE2.
         MOVE  TO-TEL    TO  V2-TEL.
         MOVE  TO-FAX    TO  V2-FAX.
         MOVE  TO-MAIL   TO  V2-MAIL.
         MOVE  TO-URL    TO  V2-URL.
         MOVE  TO-SAMA   TO  V2-SAMA.
         MOVE  TO-GROUP  TO  V2-GROUP.
         MOVE  TO-SIME   TO  V2-SIME.
         MOVE  TO-TXSW   TO  V2-TXSW.
         MOVE  TO-ZAN    TO  V2-ZAN.
         MOVE  TO-MEMO1  TO  V2-MEMO1.
         MOVE  TO-MEMO2  TO  V2-MEMO2.
         MOVE  TO-MEMO3  TO  V2-MEMO3.
         MOVE  TO-MEMO4  TO  V2-MEMO4.
         MOVE  TO-MEMO5  TO  V2-MEMO5.
         MOVE  TO-MEMOSW TO  V2-MEMOSW.
         MOVE  TO-KEISW  TO  V2-KEISW.

         DISPLAY “put|TC1|”    V2-TC1.
         DISPLAY “put|TC2|”    V2-TC2.
         DISPLAY “put|TNAME|”  V2-TNAME.
         DISPLAY “put|RYAKU|”  V2-RYAKU.
         DISPLAY “put|FURI|”   V2-FURI.
         DISPLAY “put|UBIN1|”  V2-UBIN1.
         DISPLAY “put|UBIN2|”  V2-UBIN2.
         DISPLAY “put|ADRE1|”  V2-ADRE1.
         DISPLAY “put|ADRE2|”  V2-ADRE2.
         DISPLAY “put|TEL|”    V2-TEL.
         DISPLAY “put|FAX|”    V2-FAX.
         DISPLAY “put|MAIL|”   V2-MAIL.
         DISPLAY “put|URL|”    V2-URL.
         DISPLAY “put|SAMA|”   V2-SAMA.
         DISPLAY “put|GROUP|”  V2-GROUP.
         DISPLAY “put|SIME|”   V2-SIME.
         DISPLAY “put|TXSW|”   V2-TXSW.

         MOVE      V2-ZAN   TO V2-KINGW.
         DISPLAY “put|ZAN|”    V2-KINGW.

         DISPLAY “put|MEMO1|”  V2-MEMO1.
         DISPLAY “put|MEMO2|”  V2-MEMO2.
         DISPLAY “put|MEMO3|”  V2-MEMO3.
         DISPLAY “put|MEMO4|”  V2-MEMO4.
         DISPLAY “put|MEMO5|”  V2-MEMO5.
         DISPLAY “put|MEMOSW|” V2-MEMOSW.
         DISPLAY “put|KEISW|”  V2-KEISW.
       DISP-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      画面  →  データ
      *————————————————————————————————————————————————————————————————
       GADA-EN.
         MOVE  V2-TCODE  TO  TO-TCODE.
         MOVE  V2-TNAME  TO  TO-TNAME.
         MOVE  V2-RYAKU  TO  TO-RYAKU.
         MOVE  V2-FURI   TO  TO-FURI.
         MOVE  V2-UBIN1  TO  TO-UBIN1.
         MOVE  V2-UBIN2  TO  TO-UBIN2.
         MOVE  V2-ADRE1  TO  TO-ADRE1.
         MOVE  V2-ADRE2  TO  TO-ADRE2.
         MOVE  V2-TEL    TO  TO-TEL.
         MOVE  V2-FAX    TO  TO-FAX.
         MOVE  V2-MAIL   TO  TO-MAIL.
         MOVE  V2-URL    TO  TO-URL.
         MOVE  V2-SAMA   TO  TO-SAMA.
         MOVE  V2-GROUP  TO  TO-GROUP.
         MOVE  V2-SIME   TO  TO-SIME.
         MOVE  V2-TXSW   TO  TO-TXSW.
         MOVE  V2-ZAN    TO  TO-ZAN.
         MOVE  V2-MEMO1  TO  TO-MEMO1.
         MOVE  V2-MEMO2  TO  TO-MEMO2.
         MOVE  V2-MEMO3  TO  TO-MEMO3.
         MOVE  V2-MEMO4  TO  TO-MEMO4.
         MOVE  V2-MEMO5  TO  TO-MEMO5.
         MOVE  V2-MEMOSW TO  TO-MEMOSW.
         MOVE  V2-KEISW  TO  TO-KEISW.
       GADA-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      画面  再表示
      *————————————————————————————————————————————————————————————————
       ALL-DISP-EN.
         DISPLAY “put|KUBN|”    V2-KUBN.
         DISPLAY “put|KANRI|”   KR-KANRI(LN-KR).
         DISPLAY “put|KRNAME|”  KR-KRNAME(LN-KR).
       ALL-DISP-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      画面表示
      *————————————————————————————————————————————————————————————————
       SCR-EN.
         EVALUATE KR-GASW
             WHEN 2      DISPLAY “screen|AAA904b.SCR|”
             WHEN OTHER  DISPLAY “screen|AAA904b.SCR|F”
         END-EVALUATE.

         DISPLAY  “put|KANRI|”  KR-KANRI(LN-KR).
         DISPLAY  “put|KRNAME|” KR-KRNAME(LN-KR).
       SCR-EX.
         EXIT.

       WIN-KEIKOKU-EN.
         EVALUATE KR-GASW
             WHEN 2      DISPLAY “window|KEIKOKUb.SCR|F”
             WHEN OTHER  DISPLAY “window|KEIKOKUb.SCR|F”
         END-EVALUATE.
       WIN-KEIKOKU-EX.
         EXIT.

      *————————————————————————————————————————————————————————————————
      *      コピー句
      *————————————————————————————————————————————————————————————————
         COPY \IJS10\BTR.CPY.
         COPY READKR.CPY.

         COPY \IJS10\GENGO.CPY.

         COPY AAABTTO.CPY.
       SOURCE-END.

      *————————————————————————————————————————————————————————————————
      * ↑:125  ←:126 →:127 ↓:128 PageUp:121 PageDown:122
      *  Esc:111 Home:129 F1:101~F10:110 F11:141 F12:142
      *
      *  メニュー
      *  IF  ITS-FUNC = 132
      *      DISPLAY “@query|mn_selectno”
      *      ACCEPT   ITS-MNNO
      *  ELSE
      *      INITIALIZE  ITS-MNNO
      *  END-IF.
      *
      *      ITS-MNNO = “01”
      *
      *  NO イベント テキスト           アクセラレータ  サブ オプション
      *  01  132  Esc 終了           Esc
      *  02  132  Home 入力完了      Home
      *  03  132  一覧選択                            Y
      *    01  132  F1  一覧            F1
      *    02  132  F2  カナ一覧        F2
      *  04  132  キー操作                            Y
      *    01  132  PageUp   前項目  PageUp
      *    02  132  PageDown 次項目  PageDown
      *    03  132  ——–
      *    04  132  F4       削除    F4
      *  05  132  F3 印刷                             Y
      *    01  132  一覧印刷
      *    02  132  封筒印刷