IBM Support

RPG Example Using a Display File to Display a Menu Bar (MNUBAR) with PULLDOWN and CHCCTL

Troubleshooting


Problem

This document incudes an example of a drop-down menu using the MNUBAR keyword. It also illustrates the use of CHCCTL with a PULLDOWN menu.

Resolving The Problem

This document incudes an example of a drop-down menu using the MNUBAR keyword. It also illustrates the use of CHCCTL with a PULLDOWN menu.

DDS display file "MNUBARF":
     A                                      MNUCNL(CA12)
     A
     A          R MB                        MNUBAR
     A            MNUFLD         2Y 0B  1  2
     A                                      MNUBARCHC(1 PULLFILE +
     A                                                '>FILE' )
     A                                      MNUBARCHC(2 PULLEDIT +
     A                                                '>EDIT' )
     A                                      MNUBARSEP((*COLOR WHT) +
     A                                             (*CHAR '.'))
     A
     A          R RECORD                    MNUBARDSP(MB &MNUCHC &PULL)
     A                                      CF03(03 'EXIT')
     A                                 10  3'THIS IS THE APPLICATION RECORD'
     A            FLD1          10   B 11  3
     A            FLD2          10   B 12  3
     A            MNUCHC         2Y 0H
     A            PULL           2S 0H
     A
     A          R PULLFILE                  PULLDOWN
     A            F1             2Y 0B  1 02SNGCHCFLD(*AUTOENT)
     A                                      CHOICE(1 '>ONE')
     A                                      CHCCTL(1 &C1 MSG0001 XZY1337)
     A                                      CHOICE(2 '>TWO')
     A                                      CHCCTL(2 &C2 &MSG1 &LIB/&MSGF)
     A                                      CHOICE(3 '>THREE')
     A                                      CHCCTL(3 &C3)
     A            C1             1Y 0H
     A            C2             1Y 0H
     A            C3             1Y 0H
     A            MSG1           7A  P
     A            LIB           10A  P
     A            MSGF          10A  P
     A
     A          R PULLEDIT                  PULLDOWN
     A            F1             2Y 0B  1 02SNGCHCFLD
     A                                      CHOICE(1 '>ONE')
     A                                      CHCCTL(1 &C21)
     A                                      CHOICE(2 '>TWO')
     A                                      CHCCTL(2 &C22)
     A                                      CHOICE(3 '>THREE')
     A                                      CHCCTL(3 &C23)
     A            C21            1Y 0H
     A            C22            1Y 0H
     A            C23            1Y 0H
     A
     A          R R1
     A                                  3 30'YOU PICKED OPTION'
     A                                  6 35'11111'
     A                                  7 34'111111'
     A                                  8 33'1111111'
     A                                  9 36'1111'
     A                                 10 36'1111'
     A                                 11 36'1111'
     A                                 12 36'1111'
     A                                 13 36'1111'
     A                                 14 36'1111'
     A                                 15 36'1111'
     A                                 16 36'1111'
     A                                 17 33'1111111111'
     A                                 18 33'1111111111'
     A          R R2
     A                                  2 30'YOU PICKED OPTION'
     A                                  6 34'2222222222'
     A                                  7 33'222222222222'
     A                                  8 32'2222'
     A                                  8 42'2222'
     A                                  9 41'2222'
     A                                 10 40'2222'
     A                                 11 39'2222'
     A                                 12 38'2222'
     A                                 13 37'2222'
     A                                 14 36'2222'
     A                                 18 32'22222222222222'
     A                                 19 32'22222222222222'
     A                                 17 33'2222'
     A                                 15 35'2222'
     A                                 16 34'2222'
     A          R R3
     A                                  2 30'YOU PICKED OPTION'
     A                                  7 30'33333333333333333'
     A                                 12 30'  333333333333333'
     A                                 18 30'33333333333333333'
     A                                  6 31'333333333333333'
     A                                 19 31'333333333333333'
     A                                 14 44'3333'
     A                                 15 45'3333'
     A                                 17 44'3333'
     A                                 13 30'  333333333333333'
     A                                  8 44'3333'
     A                                 10 45'3333'
     A                                 11 44'3333'
     A                                  9 45'3333'
     A                                 16 45'3333' 

RPG ILE program:
     FMNUBARF   CF   E             WORKSTN
     C                   MOVE      *BLANKS       FLD1
     C                   MOVE      *BLANKS       FLD2
       DOW *IN03 = '0';
     C                   Z-ADD     4             C3
         WRITE PULLFILE;
         EXFMT RECORD;
         IF *IN03 = '0';
           IF PULL > 0;
             IF PULL = 1;
               EXFMT R1;
             ELSE;
               IF PULL = 2;
                 EXFMT R2;
               ELSE;
                 IF PULL = 3;
                   EXFMT R3;
                 ENDIF;
               ENDIF;
             ENDIF;
           ENDIF;
         ENDIF;
       ENDDO;
     C                   SETON                                        LR 

**NOTE** The documentation for CHCCTL shows the following:
"The control-field parameter is required and it specifies the name of a 1-byte numeric hidden field that, on output, contains the control value for the choice."

For the workstation to know the values supplied to CHCCTL, a WRITE to the record containing those variables is required prior to the EXFMT of the menu bar.
-----------------------------------------------

The example allows you to select an option in the drop down:

This screen shows a drop down menu.

If you select ONE in the FILE drop-down, you will see the following screen:

This screens shows a 1 that will be displayed if you choose ONE from the drop down menu.

If you select TWO in the FILE drop-down, you will see the following screen:

This screens shows a 2 which you would get if you select TWO from the drop down menu.

[{"Type":"MASTER","Line of Business":{"code":"LOB68","label":"Power HW"},"Business Unit":{"code":"BU070","label":"IBM Infrastructure"},"Product":{"code":"SWG60","label":"IBM i"},"ARM Category":[{"code":"a8m0z0000000CHtAAM","label":"Programming ILE Languages"}],"ARM Case Number":"","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"All Versions"}]

Historical Number

595780217

Document Information

More support for:
IBM i

Component:
Programming ILE Languages

Software version:
All Versions

Operating system(s):
IBM i

Document number:
685443

Modified date:
20 January 2025

UID

nas8N1011591

Manage My Notification Subscriptions