IBM Support

COBOL DSPF Window Example

Troubleshooting


Problem

The following example is a COBOL program that displays a subfile in a window with a variable starting position.

Resolving The Problem

The following example is a COBOL program that displays a window with a variable starting postion. The window also contains a subfile:
 
Disclaimer: This is only an example. IBM accepts no responsibility for its correctness.

Display File WINPOS
 
                                            INDARA
                                            CA03(03)
                                            PRINT
                R SCREEN1
                                        2  3'TESTING A WINDOW'
                                        3  3'THAT CAN BE MOVED'
                                        4  3'TO DIFFERENT PLACES'
                                        5  3'ON THE SCREEN'
                R SFLR                      SFL
                  NOTE          65A  B  3  1
                R SFLC                      SFLCTL(SFLR)
      *                                     WINDOW(2 2 7 65)
                                            WINDOW(WINDOW1)
       N34                                  ROLLUP(90)
                                            OVERLAY
       N33                                  SFLDSP
       N32                                  SFLDSPCTL
        33                                  SFLINZ
                                            SFLSIZ(0099)
                                            SFLPAG(0004)
                  SFRN20         4S 0H      SFLRCDNBR(CURSOR)
                                        2  2'INSERT LINE(S) BEFORE LINE NO.:'
                                            COLOR(WHT)
                  LINENO         2A  B  2 33
                                            DSPATR(UL)
                                            DSPATR(PR)
                R WINDOW1                   WINDOW(&WLIN &WCOL 7 65)
                  WLIN           2S 0P
                  WCOL           2S 0P                                 


COBOL Source
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SFLCBL.
        DATE-WRITTEN. SEPT 16,1996.
        DATE-COMPILED.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
         SOURCE-COMPUTER. IBM-AS400.
         OBJECT-COMPUTER. IBM-AS400.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

            SELECT WINPOS
                  ASSIGN       TO WORKSTATION-WINPOS
                  ORGANIZATION IS TRANSACTION
                  ACCESS MODE IS DYNAMIC
                  RELATIVE KEY IS RECNUM
                  FILE STATUS IS WINPOS-FILE-STATUS
                  CONTROL-AREA IS WS-CONTROL.

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


        WORKING-STORAGE SECTION.

       01 WS-CONTROL.

       03  IN03                   PIC 1 INDIC 03.
           88 END-PROGRAM         VALUE B"1".
           88 NOT-END-PROGRAM     VALUE B"0".
      *        EXIT PROGRAM
       03  IN33                   PIC 1 INDIC 33.
      *        SUBFILE DISPLAY & SFLINZ
       03  IN32                   PIC 1 INDIC 32.
      *        SUBFILE DISPLAY CONTROL
       03  IN34                   PIC 1 INDIC 34.
      *        ROLLUP


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

        01 GENERAL.
          05 RECNUM        PIC 9(3).

      *
       01  W5-SWITCHES.
           03  W5-TURN-ON             PIC 1           VALUE B"1".
           03  W5-TURN-OFF            PIC 1           VALUE B"0".

        PROCEDURE DIVISION.

        MAIN-PROCESS.

           PERFORM INITIALIZE-001.
           PERFORM CLEAR-SUBFILE.
           PERFORM DISPLAY-001 UNTIL END-PROGRAM.
           CLOSE WINPOS.
           EXIT PROGRAM.
           STOP RUN.


         DISPLAY-001.
           WRITE DISPLAY-RECORD FORMAT IS "SCREEN1".
           READ WINPOS
             INDICATORS ARE WS-CONTROL.
           PERFORM DISPLAY-002 UNTIL END-PROGRAM.

         DISPLAY-002.
           MOVE 4 TO WLIN.
           MOVE 4 TO WCOL.
           WRITE DISPLAY-RECORD
             FORMAT IS "WINDOW1"
             INDIC IS WS-CONTROL.
           MOVE 1 TO SFRN20 OF SFLC-O.
           WRITE DISPLAY-RECORD
             FORMAT IS "SFLC"
             INDICATORS ARE WS-CONTROL.
           READ WINPOS
             INDICATORS ARE WS-CONTROL.

           CLEAR-SUBFILE.
              MOVE W5-TURN-ON TO IN33.
              MOVE 2 TO WLIN.
              MOVE 2 TO WCOL.
              WRITE DISPLAY-RECORD
                FORMAT IS "WINDOW1"
                INDIC IS WS-CONTROL.
              WRITE DISPLAY-RECORD
                FORMAT IS "SFLC"
                INDIC IS WS-CONTROL.
              MOVE W5-TURN-OFF TO IN33.

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

[{"Type":"MASTER","Line of Business":{"code":"LOB68","label":"Power HW"},"Business Unit":{"code":"BU070","label":"IBM Infrastructure"},"Product":{"code":"SWG60","label":"IBM i"},"ARM Category":[{"code":"a8m3p000000F98bAAC","label":"Programming ILE Languages-\u003ECOBOL"}],"ARM Case Number":"","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"All Versions"}]

Historical Number

8015445

Document Information

Modified date:
17 April 2025

UID

nas8N1010233