*DECK DCQRY226
       IDENTIFICATION DIVISION. 
       PROGRAM-ID. QRY226.
*CALL COPYRIGHT 
      **********************************************************
      *    THIS MODULE FORMATS THE QUERY RESPONSE REPORT
      *    FOR SHOW QUERIES AGAINST SCHEMAS (ENTITY-ID = 26). 
      **********************************************************
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION. 
       SOURCE-COMPUTER. CYBER.
       OBJECT-COMPUTER. CYBER.
*CALL UPQRYSN 
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT MAST1 ASSIGN TO "MAST1" 
                  ACCESS MODE IS RANDOM 
                  ORGANIZATION IS DIRECT
                  RECORD KEY IS DATA-KEY. 
           SELECT MAST3 ASSIGN TO "MAST3" 
                  ORGANIZATION IS RELATIVE
                  ACCESS MODE IS RANDOM 
                  RELATIVE KEY IS CON-KEY 
                  USE "PRUF = YES". 
           SELECT SYSPRINT ASSIGN TO "OUTPUT".
       DATA DIVISION. 
       FILE SECTION.
*CALL     MAST1FD 
*CALL     MAST3FD 
*CALL     SYSPRTFD
*CALL     QRYCS 
*CALL     WRKSTG77
*CALL     MAST1WS 
*CALL     TESTWACOM 
*CALL     DCDWA26 
*CALL     RPTDEF00
*CALL     RPTDEF26
  
       PROCEDURE DIVISION.
      **********************************************************
      *      MOVE ENTITY-TYPE TO DISPLAY LINE 
      **********************************************************
       MOVE-ENT-ID. 
           MOVE "SCHEMA" TO LIST-LINE-ENTTYPE.
  
*CALL     DCQRYCOM
      * 
       3460-SHOW-CHAR.
      * 
           MOVE "030" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           IF QTBL-OUT-CAT IS EQUAL TO "996"
           THEN 
               GO TO 3470-CHECK-SUPER 
           END-IF 
           MOVE "140" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           MOVE "200" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           MOVE "300" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           MOVE "450" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           MOVE "475" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           MOVE "550" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           MOVE "575" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           IF QTBL-OUT-CAT IS EQUAL TO "997"
           THEN 
               GO TO 3470-CHECK-SUPER 
           END-IF 
      * 
       3465-SHOW-COMP.
      * 
           IF QTBL-OUT-CAT IS EQUAL TO "999"
           THEN 
               GO TO 3466-JUST-COMP 
           END-IF 
           MOVE "030" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           MOVE "300" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
      * 
       3466-JUST-COMP.
      * 
           IF QTBL-OUT-CAT IS  NOT EQUAL "999"
           THEN 
               GO TO 3470-CHECK-SUPER 
           END-IF 
           MOVE "900" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           GO TO 3470-CHECK-SUPER.
      * 
       3467-SHOW-PERS.
      * 
           MOVE "030" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
           MOVE "140" TO CATEGORY-NUMBER
           PERFORM 3500-DISPLAY-CATEGORY THRU 3749-DISPLAY-CAT-XIT
      * 
      *    CHECK TO SEE IF ANY OUTPUT 
      * 
       3470-CHECK-SUPER.
      * 
           IF CATEGORY-OUTPUT-SW IS EQUAL TO "Y"
           THEN 
               GO TO 3100-NEXT-HIT
           END-IF 
      * 
       3475-NO-CATS.
      * 
           MOVE NO-CATS-MSG TO STD-RPT-MESSAGE
           PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT 
           GO TO 3100-NEXT-HIT
  
      ******************************************************************
      * 
      *        D I S P L A Y     C A T E G O R Y
      * 
      *        RETRIEVES LINES FOR SPECIFIED CATEGORY AND FORMATS 
      *        EITHER A 70, 80 OR 132 CHARACTER LINE. 
      * 
      ******************************************************************
      * 
       3500-DISPLAY-CATEGORY. 
      * 
           MOVE CATEGORY-NUMBER TO DATA-ENTRY-CAT 
           MOVE 0001 TO CATLINE-COUNTER 
           PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT 
           IF DATA-RETURN-CODE IS EQUAL TO "0"
           THEN 
               GO TO 3510-CK-1ST-LINE 
           END-IF 
      * 
      *    CHECK FOR SUPER CATEGORY AND BYPASS MESSAGE
      * 
           IF QTBL-OUT-CAT IS GREATER THAN 950
           THEN 
               GO TO 3749-DISPLAY-CAT-XIT 
           ELSE 
               GO TO 3715-NOCAT-LINE
           END-IF 
      * 
      *    CHECK IF FIRST CATEGORY LINE IS IN THE DESIRED RANGE.
      *    READ PAST LINES WITH NUMBERS LOWER THAN LOW-LIMIT. 
      * 
       3510-CK-1ST-LINE.
      * 
           IF CAT-LINE IS LESS THAN FRLINE-LIMIT
           THEN 
               GO TO 3515-BYPASS-LINE 
           END-IF 
      * 
      *    RETRIEVE 1ST LINE OF CATEGORY
      * 
           IF CAT-LINE IS GREATER THAN TOLINE-LIMIT 
           THEN 
               GO TO 3517-CK-SUPER-CAT
           ELSE 
               GO TO 3520-OUTPUT-CATHDR 
           END-IF 
      * 
       3515-BYPASS-LINE.
      * 
           PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
           IF DATA-RETURN-CODE IS EQUAL TO "0" OR "3" 
           THEN 
               GO TO 3510-CK-1ST-LINE 
           END-IF 
      * 
       3517-CK-SUPER-CAT. 
      * 
           IF QTBL-OUT-CAT IS GREATER THAN 950
           THEN 
               GO TO 3749-DISPLAY-CAT-XIT 
           ELSE 
               GO TO 3715-NOCAT-LINE
           END-IF 
      * 
      *    LOOKUP AND OUTPUT CATEGORY HEADER LINE 
      * 
       3520-OUTPUT-CATHDR.
      * 
           MOVE 1 TO SUB4 
      * 
       3525-NEXT-CATNUM.
      * 
           IF ENT26-CATNUMS (SUB4) IS EQUAL TO CATEGORY-NUMBER
           THEN 
               GO TO 3530-DISPLAY-HDG 
           ELSE 
               ADD 1 TO SUB4
               GO TO 3525-NEXT-CATNUM 
           END-IF 
      * 
       3530-DISPLAY-HDG.
      * 
           MOVE SPACES TO STD-RPT-CATHDG
           MOVE ENT26-CATHDRS (SUB4) TO CATEGORY-HEADER 
           MOVE 2 TO PRT-CTL
           PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT 
           MOVE 1 TO PRT-CTL
           MOVE SPACES TO STD-RPT-CATHDG
           PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT 
           MOVE "Y" TO CATEGORY-OUTPUT-SW 
      * 
      *    FORMAT CATEGORY DETAIL LINES.
      *    IF 70 CHARACTER FORMAT PUT OUTPUT LINE ON
      *    SEPARATE LINE. 
      * 
       3590-FMT-CAT-DETAIL. 
      * 
           IF DISPLAY-LINE-LENGTH IS NOT EQUAL TO "070" 
           THEN 
               GO TO 3550-FMT-LINE-PREFIX 
           ELSE 
               PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT 
               GO TO 3560-OUTPUT-STD
           END-IF 
      * 
       3550-FMT-LINE-PREFIX.
      * 
           MOVE CAT-REV  TO  STDRPT-REVNO 
           MOVE CAT-LINE TO  STDRPT-LINE
      * 
      *    CHECK FOR COMMENT LINE 
      * 
       3560-OUTPUT-STD. 
      * 
           IF CAT-COMMENT IS NOT EQUAL TO "*" 
           THEN 
               GO TO 3565-CATEGORY-CHECK
           ELSE 
               PERFORM 5300-FMT-CAT030 THRU 5399-FMT-CAT030-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
      * 
      *    CHECK FOR CATEGORY NUMBERS AND ENTER FORMATTING ROUTINE
      * 
       3565-CATEGORY-CHECK. 
      * 
           IF CATEGORY-NUMBER IS EQUAL TO "010" 
           THEN 
               PERFORM 5100-FMT-CAT010 THRU 5199-FMT-CAT010-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "020" 
           THEN 
               PERFORM 5200-FMT-CAT020 THRU 5299-FMT-CAT020-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "030" 
           THEN 
               PERFORM 5300-FMT-CAT030 THRU 5399-FMT-CAT030-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "140" 
           THEN 
               PERFORM 5500-FMT-CAT140 THRU 5690-FMT-CAT140-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "200" 
           THEN 
               PERFORM 12200-FMT-CAT200 THRU 12270-FMT-CAT200-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "300" 
           THEN 
               PERFORM FMT-CAT300 THRU FMT-CAT300-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "450" 
           THEN 
               PERFORM FMT-CAT450 THRU FMT-CAT450-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "475" 
           THEN 
               PERFORM FMT-CAT475 THRU FMT-CAT475-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "550" 
           THEN 
               PERFORM FMT-CAT550 THRU FMT-CAT550-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "575" 
           THEN 
               PERFORM FMT-CAT575 THRU FMT-CAT575-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           IF CATEGORY-NUMBER IS EQUAL TO "900" 
           THEN 
               PERFORM 5900-FMT-CAT900 THRU 5999-FMT-CAT900-XIT 
               GO TO 3700-GET-NEXT-LINE 
           END-IF 
           GO TO 3710-NOCAT-DATA. 
      * 
      *    RETRIEVE NEXT LINE OF CATEGORY - CHECK FOR END 
      * 
      * 
       3700-GET-NEXT-LINE.
      * 
           IF CATLINE-COUNTER IS EQUAL TO FORLINE-LIMIT 
           THEN 
             GO TO 3749-DISPLAY-CAT-XIT 
           END-IF 
           PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
           IF DATA-RETURN-CODE IS EQUAL TO 1 OR 2 
           THEN 
               GO TO 3749-DISPLAY-CAT-XIT 
           END-IF 
           IF CAT-LINE IS GREATER THAN TOLINE-LIMIT 
           THEN 
               GO TO 3749-DISPLAY-CAT-XIT 
           END-IF 
           ADD 1 TO CATLINE-COUNTER 
           GO TO 3590-FMT-CAT-DETAIL. 
      * 
       3749-DISPLAY-CAT-XIT.
      * 
           EXIT.
  
      * 
      *   FORMAT WARNING AND INFORMATION MESSAGES 
      * 
      * 
       3710-NOCAT-DATA. 
      * 
           MOVE NO-CAT-MSG TO STD-RPT-MESSAGE 
           PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT 
           GO TO 3100-NEXT-HIT. 
      * 
       3715-NOCAT-LINE. 
      * 
           MOVE NO-LINES-MSG TO STD-RPT-MESSAGE.
           PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT 
           GO TO 3100-NEXT-HIT. 
  
      * 
       3800-NOMORE-HITS.
      * 
      * 
      *    ON-LINE VERSION WILL DETERMINE NEXT STEP HERE
      * 
           GO TO 1500-QUERY-END.
  
*CALL     RPTRTCOM
*CALL     RPTRT26 
*CALL     DISPLAYLN 
*CALL     WRITELN 
      * 
       USER-ROUTINE.
      * 
           MOVE SUB-HEADING-LINE TO PRINT-DATA
           ADD 2 TO LINE-CT 
           PERFORM WRITE-LINE THRU WRITE-LINE-XIT 
           MOVE SPACES TO PRINT-DATA
           PERFORM WRITE-LINE THRU WRITE-LINE-XIT 
           IF SEC-PAGE-SW IS EQUAL TO "Y" 
           THEN 
               MOVE LIST-LINE-MSG TO CATA-NAME-LINE 
               MOVE CONTINUATION-LINE TO PRINT-DATA 
               MOVE 1 TO PRT-CTL
               PERFORM WRITE-LINE THRU WRITE-LINE-XIT 
               MOVE 1 TO PRT-CTL
               MOVE STATEMENT-LINE TO PRINT-DATA
               PERFORM WRITE-LINE THRU WRITE-LINE-XIT 
               MOVE "Y" TO SEC-PAGE-SW
           END-IF.
      * 
       USER-ROUTINE-XIT.
      * 
           EXIT.
      * 
       PROGRAM-END-BAD. 
      * 
           MOVE PROGRAM-PROBLEM-MSG TO STD-RPT-MESSAGE
           GO TO 1900-ABORT-RUN 
  
*CALL     MAST1RFC
*CALL     MAST1RNL
*CALL     MAST1EXT
*CALL     MAST1READ 
*CALL     MAST1ALG
  
  
  
