*COMDECK DMSSAV5
  
  
      ******************************************************************
      * 
      * SAVE-REC-INFO.
  
       SAVE-REC-INFO. 
           MOVE CAT-WORK TO REC-CAT-WORK. 
           MOVE CONSOLID-LINE TO REC-CON-LINE.
           MOVE DATA-ENTRY-NAME TO REC-NAME.
           MOVE DATA-ENTRY-CAT TO REC-CAT.
           MOVE DATA-ENTRY-LINE TO REC-LINE-NO. 
           MOVE DATA-ENTRY-LINETYPE TO REC-LINETYPE.
           MOVE DATA-RETURN-CODE TO REC-DRCODE. 
           MOVE DATA-NEXT-REC TO REC-NEXT-REC.
           MOVE COLUMN-IN TO REC-COL-IN.
           MOVE DETAIL-LEN TO REC-DTL-LEN.
           MOVE SKIP-COMMENTS TO REC-SKIP-COM.
  
       SAVE-REC-INFO-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * RESTORE-REC-INFO. 
  
       RESTORE-REC-INFO.
           MOVE REC-CAT-WORK TO CAT-WORK. 
           MOVE REC-CON-LINE TO CONSOLID-LINE.
           MOVE REC-NAME TO DATA-ENTRY-NAME.
           MOVE REC-CAT TO DATA-ENTRY-CAT.
           MOVE REC-LINE-NO TO DATA-ENTRY-LINE. 
           MOVE REC-LINETYPE TO DATA-ENTRY-LINETYPE.
           MOVE REC-DRCODE TO DATA-RETURN-CODE. 
           MOVE REC-NEXT-REC TO DATA-NEXT-REC.
           MOVE REC-COL-IN TO COLUMN-IN.
           MOVE REC-DTL-LEN TO DETAIL-LEN.
           MOVE REC-SKIP-COM TO SKIP-COMMENTS.
  
       RESTORE-REC-INFO-XIT.
           EXIT.
  
  
      ******************************************************************
      * 
      * SAVE-GRP-INFO.
      * 
      * THE OCCURRENCE OF "GRP-HOLD" TO SAVE THE INFO IN IS DETERMINED
      * BY "LEVEL-IDX". 
  
       SAVE-GRP-INFO. 
           MOVE CONSOLID-LINE TO GRP-CON-LINE (LEVEL-IDX).
           MOVE DATA-ENTRY-NAME TO GRP-NAME (LEVEL-IDX).
           MOVE DATA-ENTRY-CAT TO GRP-CAT (LEVEL-IDX).
           MOVE DATA-ENTRY-LINE TO GRP-LINE-NO (LEVEL-IDX). 
           MOVE DATA-ENTRY-LINETYPE TO GRP-LINETYPE (LEVEL-IDX).
           MOVE DATA-RETURN-CODE TO GRP-DRCODE (LEVEL-IDX). 
           MOVE DATA-NEXT-REC TO GRP-NEXT-REC (LEVEL-IDX).
           MOVE COLUMN-IN TO GRP-COL-IN (LEVEL-IDX).
           MOVE DETAIL-LEN TO GRP-DTL-LEN (LEVEL-IDX).
           MOVE SKIP-COMMENTS TO GRP-SKIP-COM (LEVEL-IDX).
           MOVE LEVEL-NO TO GRP-LEV-NO (LEVEL-IDX). 
  
       SAVE-GRP-INFO-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * RESTORE-GRP-INFO. 
      * 
      * THE OCCURRENCE OF "HOLD-GRP" TO USE IS DETERMINED BY
      * "LEVEL-IDX".
  
       RESTORE-GRP-INFO.
           MOVE GRP-CON-LINE (LEVEL-IDX) TO CONSOLID-LINE.
           MOVE GRP-NAME (LEVEL-IDX) TO DATA-ENTRY-NAME.
           MOVE GRP-CAT (LEVEL-IDX) TO DATA-ENTRY-CAT.
           MOVE GRP-LINE-NO (LEVEL-IDX) TO DATA-ENTRY-LINE. 
           MOVE GRP-LINETYPE (LEVEL-IDX) TO DATA-ENTRY-LINETYPE.
           MOVE GRP-DRCODE (LEVEL-IDX) TO DATA-RETURN-CODE. 
           MOVE GRP-NEXT-REC (LEVEL-IDX) TO DATA-NEXT-REC.
           MOVE GRP-COL-IN (LEVEL-IDX) TO COLUMN-IN.
           MOVE GRP-DTL-LEN (LEVEL-IDX) TO DETAIL-LEN.
           MOVE GRP-SKIP-COM (LEVEL-IDX) TO SKIP-COMMENTS.
           MOVE GRP-LEV-NO (LEVEL-IDX) TO LEVEL-NO. 
  
      * IF VALID LINE WAS IN "CAT-WORK", REPLACE IT.
           IF DATA-RETURN-CODE = ZERO 
           THEN 
  
      * IF CURRENT RECORD OF GROUP NOT IN "DATA-RECORD", READ IT IN.
             IF DATA-REC-ID NOT = DATA-ENTRY-NAME 
               OR DATA-REC-ID-TRLR NOT = DATA-NEXT-REC
             THEN 
               PERFORM READ-MAST1 THRU READ-MAST1-XIT 
             END-IF 
  
      * MOVE CURRENT LINE INTO "CAT-WORK" AND EXIT. 
             MOVE DATA-DTL (COLUMN-IN : DETAIL-LEN + DTL-HDR-LEN) 
               TO CAT-WORK
  
      *IF "CAT-WORK" NOT VALID, BLANK IT OUT. 
           ELSE 
             MOVE SPACES TO CAT-WORK
           END-IF 
  
       RESTORE-GRP-INFO-XIT.
           EXIT.
  
  
      ******************************************************************
      * 
      * SAVE-ELEM-INFO. 
  
       SAVE-ELEM-INFO.
           MOVE CAT-WORK TO ELEM-CAT-WORK.
           MOVE CONSOLID-LINE TO ELEM-CON-LINE. 
           MOVE DATA-ENTRY-NAME TO ELEM-NAME. 
           MOVE DATA-ENTRY-CAT TO ELEM-CAT. 
           MOVE DATA-ENTRY-LINE TO ELEM-LINE-NO.
           MOVE DATA-ENTRY-LINETYPE TO ELEM-LINETYPE. 
           MOVE DATA-RETURN-CODE TO ELEM-DRCODE.
           MOVE DATA-NEXT-REC TO ELEM-NEXT-REC. 
           MOVE COLUMN-IN TO ELEM-COL-IN. 
           MOVE DETAIL-LEN TO ELEM-DTL-LEN. 
           MOVE SKIP-COMMENTS TO ELEM-SKIP-COM. 
  
       SAVE-ELEM-INFO-XIT.
           EXIT.
  
  
      ******************************************************************
      * 
      * RESTORE-ELEM-INFO.
  
       RESTORE-ELEM-INFO. 
           MOVE ELEM-CAT-WORK TO CAT-WORK.
           MOVE ELEM-CON-LINE TO CONSOLID-LINE. 
           MOVE ELEM-NAME TO DATA-ENTRY-NAME. 
           MOVE ELEM-CAT TO DATA-ENTRY-CAT. 
           MOVE ELEM-LINE-NO TO DATA-ENTRY-LINE.
           MOVE ELEM-LINETYPE TO DATA-ENTRY-LINETYPE. 
           MOVE ELEM-DRCODE TO DATA-RETURN-CODE.
           MOVE ELEM-NEXT-REC TO DATA-NEXT-REC. 
           MOVE ELEM-COL-IN TO COLUMN-IN. 
           MOVE ELEM-DTL-LEN TO DETAIL-LEN. 
           MOVE ELEM-SKIP-COM TO SKIP-COMMENTS. 
  
       RESTORE-ELEM-INFO-XIT. 
           EXIT.
