|
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)
|
|
|
|