Logo2
Menu Bar
[Home] [Code Samples] [Menu Bar]

The RPG to demonstrate an RPG Menu Bar.

                                            
      //***************************************************************
      //   ___             _    _     __ __             _    _        *
      //  | . > ___  ___ _| |_ | |_  |  \  \ ___  _ _ _| |_ <_>._ _   *
      //  | . \/ . \/ . \ | |  | . | |     |<_> || '_> | |  | || ' |  *
      //  |___/\___/\___/ |_|  |_|_| |_|_|_|<___||_|   |_|  |_||_|_|  *
      //                                                              *
      //  A program to demo a Menu Bar                                *
      //                                                              *
      //   4/2014                                 booth@martinvt.com  *
      //***************************************************************
     H option(*nodebugio) dftactgrp(*no) actgrp(*new)

     FMENUBARD  cf   e             workstn

      *  ASCII art panel for heading. (Use a Figlet generator.)
     D FIGLET          ds
     D Figar                         60    dim(6) ctdata perrcd(1)

      * Constants
     D  cTRQ           c                   x'30'
      *   Menu Bar commands to be executed by QCMDEXC
     D  cCmd1          c                   'DSPMSG'
     D  cCmd2          c                   'DSPJOBLOG'
     D  cCmd3          c                   'DSPJOB'
     D  cCmd4          c                   'WRKSPLF'
     D  cCmd5          c                   'WRKLNK'
     D  cCmd6          c                   'WRKUSRJOB'
      * Work fields.
     D wNdx            s              4  0
     D wCmd            s          32702    varying
      * Prototypes
     D RunCommand      pr                  ExtPgm('QCMDEXC')
     D                            32702A   const options(*varsize)
     D                               15P 5 const

      /free
       //-------------------------------------------------------------------
       //-- Mainline                                                      --
       //-------------------------------------------------------------------
         dou *inkc;
           TIMEUSA = (%char(%time(): *usa));
           DATEUSA = %char(%date(): *mdy);
           write S1CMD;
           exfmt FMT01;
           exsr ProcessScreen1;
         enddo;
       //-------------------------------------------------------------------
       //-- Sub routines                                                  --
       //-------------------------------------------------------------------
       begsr *inzsr;
         // change color in heading
         Figar(6) = %subst(Figar(6): 1: 49) + cTRQ + '& Friends';
       endsr;
       //-------------------------------------------------------------------
       begsr ExitPgm;
         *inlr = *on;
         return;
       endsr;
       //-------------------------------------------------------------------
       begsr ProcessScreen1;
           select;
             when *inkc;
               exsr ExitPgm;
             when PULL = 1;
               wCmd = cCmd1;
               RunCommand(wCmd: %len(wCmd));
             when PULL = 2;
               wCmd = cCmd2;
               RunCommand(wCmd: %len(wCmd));
             when PULL = 3;
               wCmd = cCmd3;
               RunCommand(wCmd: %len(wCmd));
             when PULL = 21;
               wCmd = cCmd4;
               RunCommand(wCmd: %len(wCmd));
             when PULL = 23;  // Skipped number creates separation on pull-down.
               wCmd = cCmd5;
               RunCommand(wCmd: %len(wCmd));
             when PULL = 24;
               wCmd = cCmd6;
               RunCommand(wCmd: %len(wCmd));
           endsl;
       endsr;
** FIGAR 1....+....2....+,,,,3,,,,+,,,,4,,,,+....5....+....6....+

  _ )              |    |        \  |            |   _)
  _ \   _ \   _ \   _|    \     |\/ |   _` |   _| _|  |    \
 ___/ \___/ \___/ \__| _| _|   _|  _| \__,_| _| \__| _| _| _|
 







The DSPF for a Menu Bar

      ****************************************************************
      *   ___             _    _     __ __             _    _        *
      *  | . > ___  ___ _| |_ | |_  |  \  \ ___  _ _ _| |_ <_>._ _   *
      *  | . \/ . \/ . \ | |  | . | |     |<_> || '_> | |  | || ' |  *
      *  |___/\___/\___/ |_|  |_|_| |_|_|_|<___||_|   |_|  |_||_|_|  *
      *                                                              *
      *  A display screen for a Menu Bar                             *
      *                                                              *
      *   4/2014                                 booth@martinvt.com  *
      ****************************************************************
                                            DSPSIZ(24 80 *DS3)
                                            ERRSFL
                                            CA03
                                            MNUCNL(CA12)
      ****************************************************************
                R MB                        MNUBAR
                  MNUFLD         2Y 0B  1  2
                                            MNUBARCHC(1 PULLFILE +
                                            ' Display (DSP*) ')
                                            MNUBARCHC(2 PULLEDIT +
                                            ' Work w/ (WRK*) ')
      ****************************************************************
                R PULLFILE                  PULLDOWN(*NOSLTIND)
                  PULL1          2Y 0B  1 02SNGCHCFLD(*AUTOENT)
                                            CHOICE(1 'Display messages')
                                            CHCCTL(1 &C1)
                                            CHOICE(2 'Display job log')
                                            CHCCTL(2 &C2)
                                            CHOICE(3 'Display job')
                                            CHCCTL(3 &C3)
                  C1             1Y 0H
                  C2             1Y 0H
                  C3             1Y 0H
      ****************************************************************
                R PULLEDIT                  PULLDOWN(*NOSLTIND)
                  PULL1          2Y 0B  1 02SNGCHCFLD(*AUTOENT)
                                            CHOICE(21 'Work w/ spool file')
                                            CHCCTL(21 &C21)
                                            CHOICE(23 'Work w/ object links')
                                            CHCCTL(23 &C23)
                                            CHOICE(24 'Work w/ user job')
                                            CHCCTL(24 &C24)
                  C21            1Y 0H
                  C23            1Y 0H
                  C24            1Y 0H
      ****************************************************************
                R FMT01                     MNUBARDSP(MB &MNUCHC &PULL)
                                            OVERLAY
                  FIGLET       360   B  3  3CNTFLD(60) CHGINPDFT
                                            DSPATR(PR) COLOR(RED)
                  DATEUSA        8      4 70
                  TIMEUSA        8      5 70
                                        6 70'system i'
                                        7 70USER
                  MNUCHC         2Y 0H
                  PULL           2S 0H
      *****************************************************************
                R S1CMD
                  LINE77        77     23  2DSPATR(UL)
                                            COLOR(BLU)
                                       24  3'F3=Exit'
                                            COLOR(BLU) 
[Home] [Code Samples] [SQL (simple)] [Subfiles] [Web & .json] [Contact Us] [Other]