Problem solve Get help with specific problems with your technologies, process and projects.

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.

 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)) 
 CALL       PGM(BUILDMVILE)                             
 CLRPFM     FILE(DSPFFDPF)                              
 END001:     ENDPGM
 ****************** End of data ***************

BUILDMVILE - Program to create RPGILE source records.

FDSPFFDPF  IP   E             DISK                                    
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                   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       

This was last published in February 2003

Dig Deeper on iSeries CL programming

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.