/*----------------------------------------------------------------*/            
/* CL Program RSTSPLFC   : COMMAND RSTSPLF   PROCESSING PGM       */            
/* COPYRIGHT (c) 1998 Vengoal Chang                               */            
/* ALL RIGHTS RESERVED.                                           */            
/*----------------------------------------------------------------*/            
/*                                                                */            
/*  0. Create a PF to hold spooled file contents                  */            
/*           CRTPF      FILE(library/spool_db) RCDLEN(202) +      */            
/*                        IGCDTA(*YES) MAXMBRS(*NOMAX)            */            
/*                                                                */            
/*  1. Copy spooled file to DB file member , then you can save it.*/            
/*     CPYSPLF    FILE(spool_mbr) TOFILE(library/db_file) +       */            
/*                TOMBR(member) MBROPT(*REPLACE) CTLCHAR(*PRTCTL) */            
/*                                                                */            
/*  2. When you need it, run cmd to restore spooled file to print */            
/*     , all restored spooled file will be 198 colum.             */            
                                                                                
/*     RSTSPLF    FRMFILE(library/spool_db) FRMMBR(spool_mbr)     */            
/*                                                                */            
/*----------------------------------------------------------------*/            
                                                                                
RSTSPLF:    PGM        PARM(&FRMFIL &FRMMBR)                                    
   /* DECLARE INPUT PARAMETERS */                                               
             DCL        VAR(&FRMFIL) TYPE(*CHAR) LEN(20) /* FILE,LIB */         
             DCL        VAR(&FRMMBR) TYPE(*CHAR) LEN(10)                        
                                                                                
             DCL        VAR(&FILE)  TYPE(*CHAR) LEN(10)                         
             DCL        VAR(&LIB)   TYPE(*CHAR) LEN(10)                         
                                                                                
   /* Message handling variables */                                             
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)                          
             DCL        VAR(&MSGF) TYPE(*CHAR) LEN(10)                          
             DCL        VAR(&MSGFLIB) TYPE(*CHAR) LEN(10)                       
             DCL        VAR(&MSGDTA) TYPE(*CHAR) LEN(256)                       
                                                                                
             MONMSG     MSGID(CPF0000 MCH0000) EXEC(GOTO CMDLBL(ERROR))         
                                                                                
             CHGVAR     VAR(&FILE) VALUE(%SST(&FRMFIL 1 10))                    
             CHGVAR     VAR(&LIB) VALUE(%SST(&FRMFIL 11 10))                    
                                                                                
             CHKOBJ     OBJ(&LIB/&FILE) OBJTYPE(*FILE) +                        
                          MBR(&FRMMBR)                                          
             OVRDBF     FILE(INPUT) TOFILE(&LIB/&FILE) +                        
                          MBR(&FRMMBR)                                          
             OVRPRTF    FILE(QPRINT) PAGESIZE(*N 198) CPI(15) +                 
                          USRDTA(&FRMMBR) SPLFNAME(&FILE) +                     
                          IGCDTA(*YES) SECURE(*YES)                             
                                                                                
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) +                          
                          MSGDTA('Reprinting spooled file from ' +              
                          *CAT &FILE *TCAT ' member ' *CAT &FRMMBR) +           
                          TOPGMQ(*EXT) MSGTYPE(*STATUS)                         
                                                                                
             CALL       RSTSPLFR                                                
                                                                                
             SNDPGMMSG  MSGID(CPI9801) MSGF(QCPFMSG) TOPGMQ(*EXT) +             
                          MSGTYPE(*STATUS) /* Blank status message */           
             RMVMSG     CLEAR(*ALL)                                             
             SNDPGMMSG  MSG('Spooled file ' *CAT &FILE *TCAT ' has +            
                          been reprinted.') MSGTYPE(*COMP)                      
             DLTOVR     FILE(*ALL)                                              
             GOTO       CMDLBL(OK)                                              
                                                                                
error:                                                                          
             RCVMSG     MSGTYPE(*LAST) MSGDTA(&MSGDTA) MSGID(&MSGID) +          
                          MSGF(&MSGF) SNDMSGFLIB(&MSGFLIB)                      
             MONMSG     MSGID(CPF0000) /* In case */                            
                                                                                
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +                    
                          MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)                      
             MONMSG     MSGID(CPF0000) /* In case */                            
                                                                                
OK:                                                                             
                                                                                
             ENDPGM                                                             


    Source: geocities.com/vengoal