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. 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 first published in February 2003

There are Comments. Add yours.

TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
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
Sort by: OldestNewest

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:

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.