The CLIST in Figure 1 is a sample
application that invokes ISPF dialog management services to display
input and output panels. The application displays an input panel
on which user enters the information to be used as criteria for searching
the user catalog. The input panel is shown in Figure 2. The application invokes ICQGCL00
using the search criteria that the user specified. The application
displays the results on an output panel (Figure 3),
which lists the data sets matching the search criteria.
Figure 1. A Sample
Application Using ICQGCL00 /*******************************************************************/
/* */
/* THIS SAMPLE APPLICATION SEARCHES THE USER CATALOG FOR DATA SET */
/* NAMES THAT MATCH THE CRITERIA SPECIFIED BY THE USER. IT */
/* RETURNS A LIST OF DATA SET NAMES THAT ARE DISPLAYED ON AN */
/* OUTPUT PANEL. */
/* */
/*******************************************************************/
PROC 0
CONTROL END(ENDO)
/* PROCESSING
/* .
/* .
/* .
SET LOOP = YES
ISPEXEC DISPLAY PANEL(PANEL1) /* DISPLAY PANEL TO USER
IF &LASTCC = 8 THEN +
SET LOOP = NO /* END PRESSED, DON'T CONTINUE
DO WHILE &LOOP = YES /* REPEAT UNTIL END PRESSED
ISPEXEC TBCREATE QCLDSNTB +
NAMES(QCLPREF QCLDSN1 QCLDSN2 QCLDSN QCLACT) +
NOWRITE REPLACE /* CREATE TABLE TO DISPLAY
SET PARM1 = PREFIX(&NRSTR(&USER)) /* SET UP PARAMETERS
SET PARM2 = QUAL1(&NRSTR(&QCLDSN1))
SET PARM3 = QUAL2(&NRSTR(&QCLDSN2))
SET PARM4 = EXACT(Y)
SET PARM5 = TABLE(QCLDSNTB)
ICQGCL00 &PARM1 &PARM2 &PARM3 &PARM4 &PARM5 /* CALL ICQGCL00+
TO GET LIST OF DATA SET NAMES
SET LCC = &LASTCC
IF &LCC = 0 THEN +
DO /* MATCH FOUND
ISPEXEC TBTOP QCLDSNTB /* GO TO TOP OF TABLE
ISPEXEC TBDISPL QCLDSNTB PANEL(PANEL2)
IF &LASTCC ¬= 8 THEN +
DO
.
. /* PROCESS SELECTIONS
.
ENDO
ENDO
ELSE +
DO
.
. /* ISSUE APPROPRIATE MESSAGE
.
ENDO
ISPEXEC DISPLAY PANEL(PANEL1) /* DISPLAY PANEL TO USER
IF &LASTCC = 8 THEN +
SET LOOP = NO /* END PRESSED, DON'T CONTINUE
ENDO
/*
/* PROCESSING
/* .
/* .
/* .
Figure 2. Sample Application
Input Panel Definition (PANEL1))ATTR
% TYPE(TEXT) INTENS(HIGH)
+ TYPE(TEXT) INTENS(LOW)
_ TYPE(INPUT) INTENS(HIGH) CAPS(ON) JUST(LEFT)
¬ TYPE(INPUT) INTENS(HIGH) PAD(_) CAPS(ON)
)BODY
+ List of Data Set Names - Specification
+COMMAND%===>_ZCMD +
+
+Specify criteria to use in searching for data set names below.
+
+ISPF Library:
+ Project %===>_USER +
+ Group %===>_Q2 +
+ Type %===>_Q3 +
+
+
+
)PROC
VER (&USER,NB) /* ensure PROJECT is specified
IF (&Q2 = ' ') /* if second qualifier is blank
&Q2 = '*' /* default it to asterisk
IF (&Q3 = ' ') /* if third qualifier is blank
&Q3 = '*' /* default it to asterisk
&QCLPREF = &USER
&QCLDSN1 = &Q2
&QCLDSN2 = &Q3
)END
Figure 3. Sample Application
Output Panel Definition (PANEL2))ATTR DEFAULT(%+_)
% TYPE(TEXT) INTENS(HIGH)
+ TYPE(TEXT) INTENS(LOW)
_ TYPE(INPUT) CAPS(ON) JUST(LEFT) PAD(_) INTENS(HIGH)
@ TYPE(INPUT) CAPS(ON) JUST(LEFT) INTENS(HIGH)
$ TYPE(OUTPUT) CAPS(ON) INTENS(HIGH)
)BODY
+ Data Set List
+Command ===>@Z %SCROLL ===>@Z +
+
+Type action to be performed to the right of the data set name.
+
)MODEL
$QCLDSN +@QCLACT
)INIT
.ZVARS = '(ZCMD ZSCML)'
IF (&ZSCML = ' ') /* if scroll is blank,
&ZSCML = 'PAGE' /* default it to PAGE
.CURSOR = QCLACT /* set cursor at first action field
)PROC
)END