Roger Miller function keys -- code

Roger Miller function keys -- code

This Content Component encountered an error
 The SETKEY program follows: 

I* EXTERNAL D.S. CONTAINING THE COMMAND KEY NAMES.
I*                                                
IKEYDS     E DSSETKEYDS01                         
I*                                           
C*                                                
C*ENTRYPARAMETERS.                             
C*                                                
C           *ENTRY    PLIST                       
C*                                                
C                     PARM           KEYDS        
C*                                                
C* SET ALL FIELDS TO HEX'00'                      
C*                                                
C       BITOF'01234567'   ENTER        
C       MOVELENTER     ROLLUP  
C       MOVELENTER     ROLLDN 
C       MOVELENTER     HELP   
C       MOVELENTER     PRINT  
C       MOVELENTER     BSPACE 
C       MOVELENTER     CLEAR  
C       MOVELENTER     F1     
C       MOVELENTER     F2     
C       MOVELENTER     F3     
C       MOVELENTER     F4     
C       MOVELENTER     F5     
C       MOVELENTER     F6     
C       MOVELENTER     F7     
C       MOVELENTER     F8     
C       MOVELENTER     F9     
C       MOVELENTER     F10    
C       MOVELENTER     F11    
C       MOVELENTER     F12    
C       MOVELENTER     F13 
C       MOVELENTER     F14 
C       MOVELENTER     F15 
C       MOVELENTER     F16 
C       MOVELENTER     F17 
C       MOVELENTER     F18 
C       MOVELENTER     F19 
C       MOVELENTER     F20 
C       MOVELENTER     F21 
C       MOVELENTER     F22 
C       MOVELENTER     F23 
C       MOVELENTER     F24 
C*                                       
C* SET ON THE DESIRED BITS.         
                                     
C      BITON'01237'    ENTER           
C      BITON'012357'   ROLLUP         
C      BITON'01235'    ROLLDN         
C      BITON'012367'    HELP
C      BITON'012356'    PRINT
C      BITON'01234'   BSPACE        
C      BITON'023457'   CLEAR
C      BITON'237'     F1             
C      BITON'236'   F2 
C      BITON'2367'     F3  
C      BITON'235'      F4  
C      BITON'2357'    F5 
C      BITON'2356'      F6
C      BITON'23567'  F7          
C      BITON'234'      F8  
C      BITON'2347'     F9
C      BITON'2346'      F10      
C      BITON'23467'    F11  
C      BITON'2345'     F12 
C      BITON'0237'     F13  
C      BITON'0236'     F14     
C      BITON'02367'    F15         
C      BITON'0235'     F16 
C      BITON'02357'    F17     
C      BITON'02356'    F18 
C      BITON'023567'   F19           
C      BITON'0234'     F20  
C      BITON'02347'    F21   
C      BITON'02346'    F22    
C      BITON'023467'   F23    
C      BITON'02345'    F24      
C*                                     
C      MOVEL'1'  *INLR                  

You must also create a file (I called it SETKEYDS01) that I referenced in the -I- spec as an external data structure. This file will contain each of the variables used in the SETKEY program (above). Define them as 1A variables.

Once you have created your external data structure (SETKEYDS01) and RPG program (SETKEY) you may use them in any program that uses a WORKSTN device.

In your program, define your -F- spec as follows:

FSCREENFMCF E WORKSTN KINFDS DSPFDS

The DSPFDS (File Information Data Structure) must then be referenced in the -I- specs:

 
IDSPFDS  DS                                           
I*                                                          
I                                      369 369 CMDKEY       
I*           

Feedback position 369 contains a HEX value that represents the Function Key that was pressed. The SETKEY program establishes variables that will contain the same HEX value.

During your initial calcs, code the following statements:

 
C       CALL  'SETKEY'        
C       PARM      KEYDS

Now, after any EXFMT statement, check for the key the user hit, as follows:

 
C           CMDKEY    IFEQ F2
C           CMDKEY    IFEQ F15
C           CMDKEY    IFEQ F21
C           CMDKEY    IFEQ HELP
C           CMDKEY    IFEQ ENTER
C           CMDKEY    IFEQ ROLLDN 

I only included a few examples. You may use any of the variables from the SETKEY program. Doesn't this make it a lot easier to know what key the user pressed? I know that many of you use indicators 01 - 24. But what about the other keys like ROLLUP and HELP? (Especially the ENTER key.) Enjoy.

Dig deeper on iSeries skills

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