Build MoveL & Z-Add statements from display of database file

This code will build a set of 'movel' and z-add statements for selected display/database file.

This code will build a set of 'movel' and z-add statements for selected display/database file. It will use the field name in result 2 & 3 so that you can easily add a prefix for work/display/history, etc. The statements will be added to the bottom of the RPGILE source.


 
BUILDMV - Display for parameters.

 A                                      DSPSIZ(24 80 *DS3)           
 A                                      CA03(03 'END OF JOB')        
 A          R FMT001                                                 
 A                                  2  5'BUILDMV'                    
 A N30                              2 31'BUILD MOVE CALCULATIONS'    
 A                                      DSPATR(HI)                   
 A  30                              2 31'BUILD DATA STRUCTURES'      
 A                                      DSPATR(HI)                   
 A                                  2 73DATE                         
 A                                      EDTCDE(Y)                    
 A                                  3  5'BUILDMV(FMT001)'            
 A                                      DSPATR(UL)                   
 A                                  3 73TIME                         
 A                                      DSPATR(UL)                   
 A                                  6 25'PHYSICAL FILE NAME....'     
 A            FILE          10A  I  6 49                             
 A                                  7 25'OBJECT LIBRARY NAME...'  
 A            LIB1          10A  B  7 49                          
 A                                  9 25'RPG PROGRAM NAME......'  
 A            PROG          10A  I  9 49                          
 A                                 10 25'SOURCE LIBRARY NAME...'  
 A            LIB2          10A  B 10 49                          
 A                                 23  7'CMD03:'                  
 A                                      DSPATR(RI)                
 A                                 23 14'EXIT'                    
 A                                      DSPATR(HI)                
 ****************** End of data ***********


BUILDMVILC - CLP program to collect parameters and call program.

 PGM                                                    
 DCL        VAR(&FILE) TYPE(*CHAR) LEN(10)              
 DCL        VAR(&LIB1) TYPE(*CHAR) LEN(10) +            
              VALUE('*LIBL     ')                       
 DCL        VAR(&PROG) TYPE(*CHAR) LEN(10)              
 DCL        VAR(&LIB2) TYPE(*CHAR) LEN(10) +            
              VALUE('TESTLIB   ')                       
 DCLF       FILE(BUILDMV) RCDFMT(FMT001)                
 CLRPFM     FILE(DSPFFDPF)                              
 CHGVAR     VAR(&IN30) VALUE('0')                       
                                                        
 SNDRCVF    RCDFMT(FMT001)                              
 IF         COND(*IN03 = '1') THEN(GOTO CMDLBL(END001)) 
 IF         COND(&FILE = ' ') THEN(GOTO CMDLBL(END001)) 
 IF         COND(&PROG = ' ') THEN(GOTO CMDLBL(END001)) 
 IF         COND(&LIB1 = ' ') THEN(GOTO CMDLBL(END001)) 
                                                        
 IF         COND(&LIB2 = ' ') THEN(GOTO CMDLBL(END001)) 
 DSPFFD     FILE(&LIB1/&FILE) OUTPUT(*OUTFILE) +        
              OUTFILE(DSPFFDPF)                         
 OVRDBF     FILE(QRPGLESRC) TOFILE(&LIB2/QRPGLESRC) +   
              MBR(&PROG)                                
 CALL       PGM(BUILDMVILE)                             
 CLRPFM     FILE(DSPFFDPF)                              
 END001:     ENDPGM
 ****************** End of data ***************

BUILDMVILE - Program to create RPGILE source records.

FDSPFFDPF  IP   E             DISK                                    
FQRPGLESRC O    E             DISK    RENAME(QRPGLESRC:OUTPUT)        
D ARA             S              1    DIM(100)                        
D                 DS                                                  
D  BYTEA                  1      3                                    
D  BYTE1                  1      1  0                                 
D  BYTE2                  2      2  0                                 
D  BYTE3                  3      3  0                                 
D  BYTE1A                 1      1                                    
D  BYTE2A                 2      2                                    
D  BYTE3A                 3      3                                    
C     *IN(99)       IFEQ      '0'                                     
C                   MOVE      '1'           *IN(99)                   
C                   Z-ADD     1             SEQ               6 2     
C                   END                                               
C*                                                                    
C*                                                                 
C                   MOVE      *BLANKS       BLANK1           80    
C                   MOVEA     BLANK1        ARA(1)                 
C                   MOVE      'C'           ARA(6)                 
C     WHFLDD        IFEQ      0                                    
C                   MOVEA     'MOVE '       ARA(26)                
C                   MOVEA     '*BLANKS'     ARA(36)                
C                   MOVE      ' '           DECA              1    
C                   Z-ADD     WHFLDB        BYTE#             3 0  
C                   MOVE      BYTE#         BYTEA             3    
C                   ELSE                                           
C                   MOVEA     'Z-ADD'       ARA(26)                
C                   MOVEA     '0'           ARA(36)                
C                   Z-ADD     WHFLDP        DEC               1 0  
C                   MOVE      DEC           DECA              1    
C                   Z-ADD     WHFLDD        BYTE#             3 0  
C                   MOVE      BYTE#         BYTEA             3    
C                   END                                           
C*                  MOVEA     WHFLDI        ARA(36)               
C                   MOVEA     WHFLDI        ARA(50)               
C     BYTE1         IFGT      0                                   
C                   MOVE      BYTE1A        ARA(66)               
C                   MOVE      BYTE2A        ARA(67)               
C                   MOVE      BYTE3A        ARA(68)               
C                   ELSE                                          
C     BYTE2         IFGT      0                                   
C                   MOVE      BYTE2A        ARA(67)               
C                   MOVE      BYTE3A        ARA(68)               
C                   ELSE                                          
C                   MOVE      BYTE3A        ARA(68)               
C                   END                                           
C                   END                                           
C                   MOVEA     DECA          ARA(70)               
C                   MOVEL     WHFTXT        TEXT             10   
C                   MOVEA     TEXT          ARA(81)   
C                   MOVEA     ARA           SRCDTA    
C                   MOVE      UDATE         SRCDAT    
C                   Z-ADD     SEQ           SRCSEQ    
C                   WRITE     OUTPUT                  
C                   ADD       1             SEQ       
C*                                                    

This was first published in February 2003

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchEnterpriseLinux

SearchDataCenter

Close