IBM Support

COBOL Example of Windows in Separate Display Files Using STOP RUN

Troubleshooting


Problem

Example of a COBOL program that calls another COBOL program to display a window

Resolving The Problem

The following is an example of a COBOL program that calls another COBOL program to display a window. The second COBOL program then calls another COBOL program to put up another window. If you are exiting program 2 and 3 with GO BACK, refer to the Application Display Programming manual in the section entitled, Defining Windows in a separate display file. The example in the manual is written in RPG but the same principles apply to COBOL. In the display file, note the record format RMVWDW.

In this example, the display files were created with RSTDSP(*YES) on both the first and second display file. If you do not specify this, you will lose data from the display when you return to the previous display screen. There are methods that do not require RSTDSP(*YES) documented in the Application Display Programming manual.

Display File 1:

     A                                      INDARA
    A                                      CA03(03)
    A                                      HELP
    A                                      ALTHELP(CA01)
    A          R FMT1
    A                                      OVERLAY
    A                                  3  3'FULL SCREEN'
    A                                  4  3'THE WINDOW WILL DISPLAY'
    A                                  5  3'ON TOP OF THIS DISPLAY.'
    A          R FMT2
    A                                 23  3'F3=Exit'
    A                                      COLOR(BLU)
    A          R WIND                      WINDOW(4 5 10 10 *NOMSGLIN)
    A            FLD2           5   B  2  3


Display File 2:

     A                                      INDARA
    A                                      CA03(03)
    A                                      HELP
    A                                      ALTHELP(CA01)
    A          R WIND                      WINDOW(4 5 10 10 *NOMSGLIN)
    A            FLD2           5   B  2  3
    A          R DUMMY                     ASSUME
    A                                  2  3' '


Display File 3:

     A                                      INDARA
    A                                      CA03(03)
    A          R WIND                      WINDOW(8 9 10 10 *NOMSGLIN)
    A            FLD2           5   B  2  3
    A          R DUMMY                     ASSUME
    A                                  2  3' '


COBOL Program 1:

       IDENTIFICATION DIVISION.
      PROGRAM-ID. SFLCBL.
        DATE-WRITTEN. MARCH 11, 1997.
        DATE-COMPILED.
      ENVIRONMENT DIVISION.
      CONFIGURATION SECTION.
        SOURCE-COMPUTER. IBM-AS400.
        OBJECT-COMPUTER. IBM-AS400.
      INPUT-OUTPUT SECTION.
      FILE-CONTROL.


           SELECT DISPLAY-FILE
                 ASSIGN       TO WORKSTATION-WINDOWCBL
                 ORGANIZATION IS TRANSACTION
                 FILE STATUS IS DISPLAY-FILE-STATUS.





       DATA DIVISION.
      FILE SECTION.
      FD  DISPLAY-FILE
          LABEL RECORDS ARE STANDARD.
      01  DISPLAY-RECORD.
          COPY DDS-ALL-FORMATS OF WINDOWCBL.


      *


       WORKING-STORAGE SECTION.

       01 FILE-STATUS.
          05  DISPLAY-FILE-STATUS            PIC 99.



       01 WS-INDICATORS.

          05  IN03                   PIC 1 INDIC 03.
             88 END-PROGRAM         VALUE B"1".
             88 NOT-END-PROGRAM     VALUE B"0".
    *
      01 IND-ON                     PIC 1 VALUE B"1".
      01 IND-OFF                    PIC 1 VALUE B"0".



       PROCEDURE DIVISION.

       MAIN-PROCESS.

           PERFORM INITIALIZE-001.

           PERFORM DISPLAY-001 UNTIL END-PROGRAM.
          CLOSE DISPLAY-FILE.
          EXIT PROGRAM.
          STOP RUN.



        DISPLAY-001.
     ****************************************************************
     *
     * DISPLAY THE SCREEN.
     *
     ****************************************************************
          WRITE DISPLAY-RECORD
            FORMAT IS "FMT1".
          READ DISPLAY-FILE
            INDICATORS ARE WS-INDICATORS.
     ****************************************************************
     * CHECK FOR END OF PROGRAM
     ****************************************************************
          IF NOT-END-PROGRAM
            CALL "WINCBL2".


        INITIALIZE-001.
          OPEN I-O DISPLAY-FILE.
          SET NOT-END-PROGRAM TO TRUE.


Window Program 2:

       IDENTIFICATION DIVISION.
      PROGRAM-ID. SFLCBL.
        DATE-WRITTEN. MARCH 11, 1997.
        DATE-COMPILED.
      ENVIRONMENT DIVISION.
      CONFIGURATION SECTION.
        SOURCE-COMPUTER. IBM-AS400.
        OBJECT-COMPUTER. IBM-AS400.
      INPUT-OUTPUT SECTION.
      FILE-CONTROL.


           SELECT DISPLAY-FILE
                 ASSIGN       TO WORKSTATION-WINDOW2CBL
                 ORGANIZATION IS SEQUENTIAL
                 FILE STATUS IS DISPLAY-FILE-STATUS.





       DATA DIVISION.
      FILE SECTION.
      FD  DISPLAY-FILE
          LABEL RECORDS ARE STANDARD.
      01  DISPLAY-RECORD.
          COPY DDS-ALL-FORMATS OF WINDOW2CBL.


      *


       WORKING-STORAGE SECTION.

       01 FILE-STATUS.
          05  DISPLAY-FILE-STATUS            PIC 99.



       01 WS-INDICATORS.

          05  IN03                   PIC 1 INDIC 03.
             88 END-PROGRAM         VALUE B"1".
             88 NOT-END-PROGRAM     VALUE B"0".
    *
      01 IND-ON                     PIC 1 VALUE B"1".
      01 IND-OFF                    PIC 1 VALUE B"0".



       PROCEDURE DIVISION.

       MAIN-PROCESS.

           PERFORM INITIALIZE-001.

           PERFORM DISPLAY-001 UNTIL END-PROGRAM.
          CLOSE DISPLAY-FILE.
          EXIT PROGRAM.
          STOP RUN.



        DISPLAY-001.
     ****************************************************************
     *
     * DISPLAY THE SCREEN.
     *
     ****************************************************************
          WRITE DISPLAY-RECORD
            FORMAT IS "WIND".
          READ DISPLAY-FILE
            INDICATORS ARE WS-INDICATORS.
     ****************************************************************
     * CHECK FOR END OF PROGRAM
     ****************************************************************
          IF NOT-END-PROGRAM
            CALL "WINCBL3".


        INITIALIZE-001.
          OPEN I-O DISPLAY-FILE.
          SET NOT-END-PROGRAM TO TRUE.


Window Program 3:

       IDENTIFICATION DIVISION.
      PROGRAM-ID. SFLCBL.
        DATE-WRITTEN. MARCH 11, 1997.
        DATE-COMPILED.
      ENVIRONMENT DIVISION.
      CONFIGURATION SECTION.
        SOURCE-COMPUTER. IBM-AS400.
        OBJECT-COMPUTER. IBM-AS400.
      INPUT-OUTPUT SECTION.
      FILE-CONTROL.


           SELECT DISPLAY-FILE
                 ASSIGN       TO WORKSTATION-WINDOW3CBL
                 ORGANIZATION IS SEQUENTIAL
                 FILE STATUS IS DISPLAY-FILE-STATUS.





       DATA DIVISION.
      FILE SECTION.
      FD  DISPLAY-FILE
          LABEL RECORDS ARE STANDARD.
      01  DISPLAY-RECORD.
          COPY DDS-ALL-FORMATS OF WINDOW3CBL.


      *


       WORKING-STORAGE SECTION.

       01 FILE-STATUS.
          05  DISPLAY-FILE-STATUS            PIC 99.



       01 WS-INDICATORS.

          05  IN03                   PIC 1 INDIC 03.
             88 END-PROGRAM         VALUE B"1".
             88 NOT-END-PROGRAM     VALUE B"0".
    *
      01 IND-ON                     PIC 1 VALUE B"1".
      01 IND-OFF                    PIC 1 VALUE B"0".



       PROCEDURE DIVISION.

       MAIN-PROCESS.

           PERFORM INITIALIZE-001.

           PERFORM DISPLAY-001 UNTIL END-PROGRAM.
          CLOSE DISPLAY-FILE.
          EXIT PROGRAM.
          STOP RUN.



        DISPLAY-001.
     ****************************************************************
     *
     * DISPLAY THE SCREEN.
     *
     ****************************************************************
          WRITE DISPLAY-RECORD
            FORMAT IS "WIND".
          READ DISPLAY-FILE
            INDICATORS ARE WS-INDICATORS.


        INITIALIZE-001.
          OPEN I-O DISPLAY-FILE.
          SET NOT-END-PROGRAM TO TRUE.

[{"Type":"MASTER","Line of Business":{"code":"LOB57","label":"Power"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"6.1.0"}]

Historical Number

19382456

Document Information

More support for:
IBM i

Software version:
6.1.0

Operating system(s):
IBM i

Document number:
641803

Modified date:
18 December 2019

UID

nas8N1017792

Manage My Notification Subscriptions