*COMDECK DMSADD2
  
  
      ******************************************************************
      * 
      * ADD-ITEM-NAME.
      * 
      * ADD-ITEM-NAME ADDS THE NAME OF AN ITEM, BE IT A GROUP OR AN 
      * ELEMENT, TO THE OUTPUT LINE.  ANY ATTEMPT TO USE ANOTHER ENTITY 
      * TYPE WILL BE DIAGNOSED. 
      * 
      * INPUT:   ITEM-CATNAME     - CATNAME OF REQUESTED GROUP OR ELEM
      *          ITEM-ALIAS       - ALIAS OF ELEMENT -- RESET TO ZERO 
      *                             UPON RETURN 
      * 
      * OUTPUT:  FOUND-ENTITY     - "N" IF CATALOGUE ENTRY EMPTY OR 
      *                             FOR ENTITY OTHER THAN GROUP/ELEMENT 
  
       ADD-ITEM-NAME. 
           PERFORM SAVE-ITEM-INFO THRU SAVE-ITEM-INFO-XIT.
           PERFORM CLEAR-DATA-ENTRY THRU CLEAR-DATA-ENTRY-XIT.
           MOVE "N" TO FOUND-ENTITY.
  
      * MOVE ITEM'S FIRST RECORD INTO "DATA-RECORD".
           MOVE ITEM-CATNAME TO DATA-ENTRY-NAME.
           PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT.
  
      * IF ENTRY MISSING, DIAGNOSE AND RETURN.
           IF DATA-RETURN-CODE NOT = ZERO 
           THEN 
             MOVE IDX-500 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             GO TO END-ADD-ITEM-NAME
           END-IF 
  
           MOVE "Y" TO FOUND-ENTITY.
  
      * DETERMINE WHETHER ITEM IS GROUP OR ELEMENT AND PROCESS
      * ACCORDINGLY.
           IF DATA-HDR-ENT-ID = ENT-ID-GROUP
           THEN 
             MOVE ITEM-CATNAME TO GROUP-CATNAME 
             PERFORM ADD-GRP-NAME THRU ADD-GRP-NAME-XIT 
             GO TO END-ADD-ITEM-NAME
           END-IF 
  
           IF DATA-HDR-ENT-ID = ENT-ID-ELEM 
           THEN 
             MOVE ITEM-CATNAME TO ELEM-CATNAME
             MOVE ITEM-ALIAS TO ELEM-ALIAS
             PERFORM ADD-ELEM-NAME THRU ADD-ELEM-NAME-XIT 
  
      * ERROR IF ITEM OTHER THAN GROUP OR ELEMENT.
           ELSE 
             MOVE IDX-525 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             MOVE "N" TO FOUND-ENTITY 
           END-IF 
  
       END-ADD-ITEM-NAME. 
           PERFORM RESTORE-ITEM-INFO THRU RESTORE-ITEM-INFO-XIT.
           MOVE SPACES TO ITEM-ALIAS. 
  
       ADD-ITEM-NAME-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * ADD-QUAL-NAME.
      * 
      * ADD-QUAL-NAME ADDS THE NAME OF A QUALIFIER, BE IT A GROUP OR
      * RECORD, TO THE OUTPUT LINE.  ANY ATTEMPT TO USE ANOTHER ENTITY
      * TYPE AS QUALIFIER WILL BE DIAGNOSED.
      * 
      * INPUT:   QUAL-CATNAME     - CATNAME OF REQUESTED GROUP OR RECORD
      *          QUAL-ALIAS       - ALIAS OF RECORD -- RESET TO ZERO
      *                             UPON RETURN 
      * 
      * OUTPUT:  FOUND-ENTITY     - "N" IF CATALOGUE ENTRY EMPTY OR 
      *                             FOR ENTITY OTHER THAN GROUP/RECORD
  
       ADD-QUAL-NAME. 
           PERFORM SAVE-ITEM-INFO THRU SAVE-ITEM-INFO-XIT.
           PERFORM CLEAR-DATA-ENTRY THRU CLEAR-DATA-ENTRY-XIT.
           MOVE "N" TO FOUND-ENTITY.
  
      * PREFACE QUALIFIER WITH KEYWORD "OF".
           MOVE KW-OF TO OUT-FIELD. 
           MOVE KW-OF-LEN TO OUT-LEN. 
           PERFORM ADD-TO-STMT THRU STMT-XIT. 
  
      * MOVE QUALIFIER'S FIRST RECORD INTO "DATA-RECORD". 
           MOVE QUAL-CATNAME TO DATA-ENTRY-NAME.
           PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT.
  
      * IF ENTRY MISSING, DIAGNOSE AND RETURN.
           IF DATA-RETURN-CODE NOT = ZERO 
           THEN 
             MOVE IDX-500 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             GO TO END-ADD-QUAL-NAME
           END-IF 
  
           MOVE "Y" TO FOUND-ENTITY.
  
      * DETERMINE WHETHER QUALIFIER IS GROUP OR RECORD AND PROCESS
      * ACCORDINGLY.
           IF DATA-HDR-ENT-ID = ENT-ID-GROUP
           THEN 
             MOVE QUAL-CATNAME TO GROUP-CATNAME 
             PERFORM ADD-GRP-NAME THRU ADD-GRP-NAME-XIT 
             GO TO END-ADD-QUAL-NAME
           END-IF 
  
           IF DATA-HDR-ENT-ID = ENT-ID-REC
           THEN 
             MOVE QUAL-CATNAME TO RECORD-CATNAME
             MOVE QUAL-ALIAS TO RECORD-ALIAS
             PERFORM ADD-REC-NAME THRU ADD-REC-NAME-XIT 
  
      * ERROR IF QUALIFIER OTHER THAN GROUP OR RECORD.
           ELSE 
             MOVE IDX-528 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             MOVE "N" TO FOUND-ENTITY 
           END-IF 
  
       END-ADD-QUAL-NAME. 
           PERFORM RESTORE-ITEM-INFO THRU RESTORE-ITEM-INFO-XIT.
           MOVE SPACES TO QUAL-ALIAS. 
  
       ADD-QUAL-NAME-XIT. 
           EXIT.
