I am writing one cobol program where in the first record format user need to enter the customer number. If the customer number is not found then error message 'Customer Not Found" on line 23 sholud be displayed. If the customer number is found then customer details should be displayed (Second record format) along with the first one. In DSPF file in the first record format I have define one output field and make it non display with indicator N21. Now when the customer is not found then this get displayed with message 'Customer not found' working fine.
The issue is that when customer is found then only detail record format is displayed. The first one gets hide and on pressing enter key then first one is displayed back.
Please see the DSPF DDS and cobol program. Please help me out how to display the detail screen along with the first screen.
The issue is that when customer is found then only detail record format is displayed. The first one gets hide and on pressing enter key then first one is displayed back.
Please see the DSPF DDS and cobol program. Please help me out how to display the detail screen along with the first screen.
Code:
0000.10 A*%%TS SD 20220905 151841 NARENKUM REL-V7R5M0 5770-WDS
0000.20 A*%%EC
0000.30 A DSPSIZ(24 80 *DS3)
0000.40 A REF(NARENKUM1/CUSMSTP)
0000.50 A INDARA
0000.60 A CA03(03 'PRESS F3 TO EXIT.')
0000.70 A R CUSPMT
0000.80 A*%%TS SD 20220905 151841 NARENKUM REL-V7R5M0 5770-WDS
0000.90 A 1 3'CUSTOMER MASTER INQUIRY'
0001.00 A 3 3'CUSTOMER NUMBER'
0001.10 A 5 3'USE F3 TO END PROGRAM, USE ENTER T-
0001.20 A O RETURN TO PROMPT SCREEN'
0001.30 A CUST R B 3 20REFFLD(CUSMST/CUST NARENKUM1/CUSMST-
0001.40 A P)
0001.50 A ERRORMSG 40 O 23 4
0001.60 A N21 DSPATR(ND)
0001.70 A R CUSFLDS
0001.80 A*%%TS SD 20220905 050052 NARENKUM REL-V7R5M0 5770-WDS
0001.90 A OVERLAY
0002.00 A 8 3'NAME'
0002.10 A 9 3'ADDRESS'
0002.20 A 10 3'CITY'
0002.30 A 11 3'STATE'
0002.40 A 7 3'CUST'
0002.50 A CUST R O 7 14REFFLD(CUSMST/CUST NARENKUM1/CUSMST-
0002.60 A P)
0002.70 A NAME R O 8 14REFFLD(CUSMST/NAME NARENKUM1/CUSMST-
0002.80 A P)
0002.90 A ADDR R O 9 14REFFLD(CUSMST/ADDR NARENKUM1/CUSMST-
0003.00 A P)
0003.10 A CITY R O 10 14REFFLD(CUSMST/CITY NARENKUM1/CUSMST-
0003.20 A P)
0003.30 A STATE R O 11 14REFFLD(CUSMST/STATE NARENKUM1/CUSMS-
0003.40 A TP)
****************** End of data *******************************************************
0031.00 WORKING-STORAGE SECTION.
0032.00 01 WS-FILE-STATUS.
0033.00 05 WS-CUS-FILE-STATUS PIC X(2) VALUE '00'.
0034.00 05 WS-CUS-SCREEN-FILE-STATUS PIC X(2) VALUE '00'.
0034.01
0035.00 01 WS-SCREEN-CONTROL-AREA.
0036.00 05 WS-KEY-PRESSED PIC X(2).
0039.00 88 FUNCTION-KEY03 VALUE "03".
0039.04
0040.00 01 WS-SCREEN-INDICATORS.
0041.00 05 WS-SCR-INDICATOR PIC 1 OCCURS 99 TIMES INDICATOR 1.
0042.00 88 INDICATOR-OFF VALUE B"0".
0043.00 88 INDICATOR-ON VALUE B"1".
0043.01
0044.00 01 WS-INDICATORS-USED.
0045.00 05 INVALID-CUSNO PIC 9(2) VALUE 21.
0051.00 PROCEDURE DIVISION.
0052.00 0000-START.
0053.00 PERFORM 1000-INITIALISATION.
0054.00 PERFORM 2000-MAIN-PROCESSING
0055.00 UNTIL FUNCTION-KEY03.
0056.00 PERFORM 3000-TERMINATION-PROCESS.
0057.00 0000-EXIT.
0058.00 STOP RUN.
0060.00 1000-INITIALISATION.
0061.00 PERFORM 1100-OPEN-FILE.
0062.00 INITIALIZE WS-SCREEN-INDICATORS.
0063.00 INITIALIZE WS-KEY-PRESSED.
0064.00 INITIALIZE CUSPMT-I.
0064.01 INITIALIZE CUSPMT-O.
0065.00 PERFORM 1200-DISPLAY-HEADER.
0070.00 1100-OPEN-FILE.
0071.00 OPEN INPUT CUSTOMER-FILE.
0081.00 OPEN I-O CUSTOMER-SCREEN-FILE.
0094.00 1200-DISPLAY-HEADER.
0095.00 WRITE DISPLAY-RECORD
0096.00 FORMAT IS "CUSPMT"
0097.00 INDICATORS ARE WS-SCREEN-INDICATORS.
0098.00 READ CUSTOMER-SCREEN-FILE
0098.01 FORMAT IS "CUSPMT"
0099.00 INDICATORS ARE WS-SCREEN-INDICATORS.
0103.00 2000-MAIN-PROCESSING.
0103.01 MOVE CUST OF CUSPMT-I TO CUST OF CUSMST.
0103.02 READ CUSTOMER-FILE
0103.03 INVALID KEY
0103.04 MOVE 'CUSTOMER NOT FOUND' TO ERRORMSG OF CUSPMT-O
0103.05 SET INDICATOR-ON(INVALID-CUSNO) TO TRUE
0103.10 PERFORM 2200-DISPLAY-HEADER
0103.13 NOT INVALID KEY
0103.14 MOVE 'Y' TO WS-CHECK
0103.15 MOVE SPACES TO ERRORMSG OF CUSPMT-O
0103.16 SET INDICATOR-OFF(INVALID-CUSNO) TO TRUE
0103.17 INITIALIZE WS-SCREEN-INDICATORS
0103.18 PERFORM 2100-WRITE-SCREEN-RECORD
0103.19 IF NOT FUNCTION-KEY03
0103.20 PERFORM 1200-DISPLAY-HEADER
0103.21 END-IF
0103.31 END-READ.
0124.01 2100-WRITE-SCREEN-RECORD.
0124.03 MOVE NAME OF CUSMST TO NAME OF CUSFLDS-O.
0124.04 MOVE CITY OF CUSMST TO CITY OF CUSFLDS-O.
0124.05 MOVE STATE OF CUSMST TO STATE OF CUSFLDS-O.
0124.06 MOVE ADDR OF CUSMST TO ADDR OF CUSFLDS-O.
0124.07 MOVE CUST OF CUSMST TO CUST OF CUSFLDS-O.
0124.12 WRITE DISPLAY-RECORD
0124.13 FORMAT IS "CUSFLDS"
0124.15 END-WRITE
0124.16 READ CUSTOMER-SCREEN-FILE
0124.19 END-READ.


Comment