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

Protect your input fields in one easy step

You can also use file maintenance programs as inquiries, learn how here.

There are many cases where file maintenance programs are also used as inquiries (the PDM is a good example with its options 2 and 5).

When you use this approached you need to take some extra steps:

- You add to the program a mode parameter to govern its functions (e.g. '*UPD' or '*INQ').

- Based on the mode parameter you will have to inhibit the program functions that deals with the maintenance:

- Function keys that deals with maintenance.
- Write/update/delete code.
- Make sure you get files data without locking records.
- You will have to protect all the input fields.

This is the biggest and most boring step. You will have to look for all the input field and add to them the DSPATR(PR) keyword.

This tip might help since it will take care of all the fields in one easy step. Another benefit is that it will take care of new fields that might be added to the input records in the future.

 * Normal record with input fields 
A          R RCRD01                    CF10 CA12             
A            FIELD01   R        B  7 17 
A            FIELD02   R        B  8 17 
 * footer record with be used in '*UPD' mode.
A          R FOOT01	               OVERLAY 	                                                 
A                                 10 29'F10=Update'
A                                 22 29'F12=Cancel'
 * footer record with be used in '*INQ' mode.
 * the PROTECT keyword will protect all input-capable fields
 * already displayed. 
A          R FOOT02                                                                
A                                      CA12                       
A                                      OVERLAY PROTECT            
A            HIDEME          1  I 23  2DSPATR(ND)                 
A                                      DSPATR(PC)  
A                                 22 29'F12=Cancel'

I add a new record to the display file FOOT02 

The RPG code changed to take into account the non '*UPD' mode 

Ffile01   uf a E           k disk      

C     *entry        plist     
C                   parm                    PgmMod
 * Lock the record based on PgmMod
C                   if        PgmMod = '*UPD'   
C     klist02       chain     file01          
C                   else  
C     klist02       chain(n)  file01 
C                   EndIf                    
C                   select  
C                   when      PgmMod = '*UPD'  
C                   write     FOOT01        
C                   exfmt     RCRD01          
C                   when      PgmMod = '*INQ'  
C                   write     RCRD01             
C                   exfmt     FOOT02       
C                   EndIf                    


The Best Web Links: tips, tutorials and more.

Ask your programming questions--or help out your peers by answering them--in our live discussion forums.

Ask the Experts yourself: Our application development gurus are waiting to answer your programming questions.

Dig Deeper on iSeries CL programming