|
Back To LeighWeb Mainframe Utilities Page
View the documentation associated with this module
/**********************************************************************
/* CLIST: PRINTIT *
/* AUTHOR: DAVID LEIGH *
/* FUNCTION: THIS CLIST CONTROLS AN CLIST/ISPF DIALOG TO ENABLE *
/* PRINTING OF DATASETS TO MULTIPLE LOCATIONS AND IN *
/* MULTIPLE FORMATS. IT MAY BE EXECUTED AS A CLIST OR AS AN*
/* EDIT MACRO. A COMPANION CLIST, "$PRINTIT" EXISTS *
/* SPECIFICALLY FOR THE DSLIST ENVIRONMENT. *
/**********************************************************************
PROC 0 PRNTPFX(SYST.ISPF) /* POINT TO AN ISPF SET OF LIBRARIES */ +
PCOPIES(0) /* DEFAULT "OVERRIDE" VALUE FOR EACH CONFIGURATION*/ +
PDSN() /* THE INPUT DATASET IF ANY */ +
CONFIG() /* PRINT CONFIGURATION NAME FOR BATCH EXECUTION */ +
GOTOSEC(REDISPLAY) /* INITIALIZE "VERIFY" SECTION GOTO LABEL */ +
HLDCLASS(X) /* DEFAULT HOLD CLASS */ +
DFLTCLAS(X) /* DEFAULT PRINT CLASS */ +
DFLTDEST(LOCAL) /* DEFAULT PRINT DESTINATION */ +
DFLTPORT(81) /* INDICATE =< LRECL FOR PORTRAIT DEFAULT */ +
BATCHCC(0) /* INITIALIZE THE BATCH RETURN CODE TO ZERO */ +
JCLREVEW(N) /* INITIALIZE THE JCL REVIEW VALUE TO "NO" */ +
TIMEA('0,15') /* CPU TIME SETTING FOR JOB CLASS "A" */ +
TIMEB('5,00') /* CPU TIME SETTING FOR JOB CLASS "B" */ +
TIMEC('5,00') /* CPU TIME SETTING FOR JOB CLASS "C" */ +
TIMED('5,00') /* CPU TIME SETTING FOR JOB CLASS "D" */ +
TIMEV('0,05') /* CPU TIME SETTING FOR JOB CLASS "V" */ +
TIME1('1,00') /* CPU TIME SETTING FOR JOB CLASS "1" */ +
TIME4('0,15') /* CPU TIME SETTING FOR JOB CLASS "4" */ +
TIME5('5,00') /* CPU TIME SETTING FOR JOB CLASS "5" */ +
ADMIN('MATT BRINKMAN 402-458-2258') /* CURRENT PRINTIT ADMIN */ +
ADMINID('P@UMJB') /* ADMINISTRATOR'S TSO ID */ +
BATCH /* INDICATE NON-INTERACTIVE EXECUTION */ +
HELP /* DISPLAY HELP INSTEAD OF PROCESSING */ +
DEBUG /* SHOW DEBUGGING MESSAGAS DURING EXECUTION */
CONTROL NOMSG NOLIST NOFLUSH NOPROMPT
/**********************************************************************
/* CONTROL CLIST/EDIT MODE PROCESSING *
/**********************************************************************
ERROR DO
SET MODE = CLIST
RETURN
END
ISREDIT MACRO (OPT1 OPT2)
ERROR OFF
/**********************************************************************
/* LOG THE USE *
/**********************************************************************
/**********************************************************************
/* CONTROL DEBUG PROCESSING *
/**********************************************************************
ISPEXEC CONTROL ERRORS RETURN
IF &DEBUG = DEBUG OR &OPT1 = DEBUG OR &OPT2 = DEBUG THEN +
CONTROL MSG LIST CONLIST SYMLIST NOFLUSH
ELSE CONTROL NOMSG NOLIST NOFLUSH NOPROMPT
IF &HELP = HELP OR &OPT1 = HELP OR &OPT2 = HELP THEN GOTO HELPSEC
/**********************************************************************
/* ESTABLISH SOME VARIABLES *
/**********************************************************************
ISPEXEC SELECT PGM(USERINFO) PARM(&SYSUID)
/* CALL 'SYS2.USC1.LINKLIB(USERINFO)' '&SYSUID '
ISPEXEC VGET (PACODE PSLOC CCNTR BINNM)
SET PACODE = &STR(&CCNTR)
SET PSLOC = &STR(&BINNM)
ISPEXEC VPUT (PACODE PSLOC)
SET LP = &STR((
SET RP = &STR())
/***********************************************************************
/* OPEN PRINTIT TABLE *
/***********************************************************************
ISPEXEC TBOPEN PRINTIT NOWRITE
SET OPENCC = &LASTCC
SELECT (&OPENCC)
WHEN (8) DO
ISPEXEC TBCREATE PRINTIT KEYS(PTCONNAM) +
NAMES(PTBURST PTCHARS PTCKPTLN PTCKPTPA PTCKPTSE +
PTCLASS PTCOMPCT PTCONTRL PTCOPIES PTDATACK +
PTDEFALT PTDEST PTDPAGLB PTFCB PTFLASH +
PTFORMS PTFRMDEF PTGRPID PTINDEX PTJESDS +
PTLINDEX PTLINECT PTMODIFY PTPAGEDF PTPIMSG +
PTPRMODE PTPRTY PTSYSARA PTTHRHLD PTTRC PTUCS +
PTWRITER PTDESC PTSEL PTSKEL01 PTTAIL01 +
PTOPT01 PTSKEL02 PTTAIL02 PTOPT02 PTSKEL03 +
PTTAIL03 PTOPT03 PTSKEL04 PTTAIL04 PTOPT04 +
PTSKEL05 PTTAIL05 PTOPT05 PTSKEL06 PTTAIL06 +
PTOPT06 PTSKEL07 PTTAIL07 PTOPT07 PTSKEL08 +
PTTAIL08 PTOPT08 PTSKEL09 PTTAIL09 PTOPT09 +
PTSKEL10 PTTAIL10 PTOPT10 PTSKEL11 PTTAIL11 +
PTOPT11 PTSKEL12 PTTAIL12 PTOPT12 PTSKEL13 +
PTTAIL13 PTOPT13)
ISPEXEC TBVCLEAR PRINTIT
SET PTCONNAM = DEFAULT
SET PTDEST = &STR(&DFLTDEST)
SET PTCLASS = &STR(&DFLTCLAS)
SET PTCOPIES = 1
SET PTDESC = &STR(DEST=&DFLTDEST AND SYSOUT CLASS=&DFLTCLAS)
SET PTSKEL01 = PRINTIT1
SET PTTAIL01 = Y
SET PTOPT01 = N
SET PTSKEL02 = PRINTIT2
SET PTTAIL02 = Y
SET PTOPT02 = N
SET PTSKEL03 = PRINTIT3
SET PTTAIL03 = Y
SET PTOPT03 = N
SET PTSKEL04 = PRINTPDS
SET PTTAIL04 = Y
SET PTOPT04 = N
SET PTSKEL05 = PRINTIT4
SET PTTAIL05 = Y
SET PTOPT05 = N
ISPEXEC TBADD PRINTIT
ISPEXEC TBCLOSE PRINTIT REPLCOPY
ISPEXEC TBVCLEAR PRINTIT
ISPEXEC TBOPEN PRINTIT NOWRITE
END
WHEN (12) DO
ISPEXEC TBSTATS PRINTIT STATUS2(TABSTAT)
IF &STR(&TABSTAT) = 1 OR &STR(&TABSTAT) = 2 THEN +
GOTO OPEN_CONTINUE
SET ZEDLMSG = &STR(ATTEMPTING TO ACCESS THE PRINTIT ISPF TABLE)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ001W)
ISPEXEC TBOPEN PRINTIT NOWRITE
SET OPENCC = &LASTCC
DO &I = 1 TO 30 WHILE &OPENCC ¬= 0
ISPEXEC TBOPEN PRINTIT NOWRITE
SET OPENCC = &LASTCC
END
IF &OPENCC ¬= 0 THEN +
DO
SET ZEDLMSG = &STR(UNABLE TO ACCESS PRINTIT ISPF +
TABLE. PLEASE TRY LATER)
ISPEXEC SETMSG MSG(UTLZ001)
EXIT CODE(12)
END
END
WHEN (16 ¦ 20) DO
SET ZELDMSG = &STR(SEVERE ERROR ATTEMPTING TO ACCESS PRINTIT +
ISPF TABLE. NOTIFY TECH SUPPORT)
ISPEXEC SETMSG MSG(UTLZ001)
EXIT CODE(16)
END
END
/***********************************************************************
/* GET THE DATASET INFORMATION IF THIS IS EXECUTED AS A MACRO *
/***********************************************************************
OPEN_CONTINUE: +
IF &MODE ¬= CLIST THEN +
DO
ISREDIT (LN,CL) = CURSOR
/* IF &OPT1 ¬= PACKED AND &OPT2 ¬= PACKED THEN +
/* DO
/* ISREDIT (PACK) = PACK
/* IF &PACK = ON THEN +
/* DO
/* SET ZEDSMSG = &STR(DATA IS PACKED)
/* SET ZEDLMSG = &STR(SPECIFY "PRINTIT PACKED" OR +
/* UNPACK THE DATA AND SAVE +
/* THE DATASET FIRST)
/* ISPEXEC SETMSG MSG(UTLZ001)
/* SET BATCHCC = 12
/* GOTO FINISH
/* END
/* END
IF &CL = 0 THEN +
DO
ISREDIT (PDSN) = DATASET
ISREDIT (MBR) = MEMBER
IF &STR(&MBR) > THEN SET PDSN = &STR(&PDSN(&MBR))
END
ELSE +
DO
ISREDIT (LN,CL) = CURSOR
ISREDIT (PDSN) = LINE .ZCSR
SET SYSDVAL = &SUBSTR(&CL:+
&LENGTH(&NRSTR(&PDSN)),&NRSTR(&PDSN))
READDVAL PDSN
SET X = &LENGTH(&STR(&PDSN))
SET Y = &SYSINDEX(&STR(&LP&RP),&STR(&PDSN))
DO WHILE +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(.) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(?) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(") OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(') OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(:) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(;) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(&&) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(~) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(`) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(|) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(%) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(ª) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(*) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(_) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(-) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(=) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(+) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(!) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(?) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(?) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(\) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR({) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(}) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(/) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(>) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(<) OR +
&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(&LP) OR +
&SUBSTR(&X-1:&X,&STR(&PDSN)) = &STR(&RP&RP) OR +
&SUBSTR(&X-1:&X,&STR(&PDSN)) = &STR(&LP&RP) OR +
&SUBSTR(&X-1:&X,&STR(&PDSN)) = &STR('&RP) OR +
&SUBSTR(&X-1:&X,&STR(&PDSN)) = &STR(&RP&LP) OR +
(&SUBSTR(&X:&X,&STR(&PDSN)) = &STR(&RP) AND +
(&SYSINDEX(&STR(&LP),&STR(&PDSN)) = 0)
SET X = &X - 1
END
SET PDSN = &SUBSTR(1:&X,&STR(&PDSN))
IF &Y > 0 THEN SET PDSN = &STR(&PDSN&LP.0&RP)
END
END
/***********************************************************************
/* IF A DATASET EXISTS, ATTEMPT TO GET THE LRECL AND RECFM *
/***********************************************************************
IF &STR(&PDSN) > AND &BATCH ¬= BATCH THEN +
DO
LISTDSI '&PDSN'
IF &LASTCC = 0 THEN +
DO
SET PCC = &SUBSTR(&LENGTH(&STR(&SYSRECFM)),+
&STR(&SYSRECFM))
IF &PCC ¬= A AND &PCC ¬= M THEN SET PCC =
ISPEXEC VGET (PTITPORT PTITLAND) PROFILE
IF &SYSLRECL <= &DFLTPORT THEN SET PTCONNAM = &PTITPORT
ELSE SET PTCONNAM = &PTITLAND
ISPEXEC TBGET PRINTIT
IF &LASTCC = 0 THEN +
DO
SET PTSEL = S
ISPEXEC TBMOD PRINTIT
END
END
END
/***********************************************************************
/* GO RIGHT TO PRINT IF BATCH PROCESSING *
/***********************************************************************
IF &BATCH = BATCH THEN GOTO PRINT_SECTION
/***********************************************************************
/* REDISPLAY LIST SCREEN *
/***********************************************************************
ISPEXEC VGET PPGMNAME
CONTROL END(ENDO)
IF &STR(&PPGMNAME) = THEN +
DO
SET SYSOUTTRAP = 1000
ACF
LIST *
END
SET SYSOUTTRAP = 0
SET SYSDVAL = &STR(&SYSNSUB(1,&SYSOUTLINE1))
READDVAL X Y N A M E S
SET PPGMNAME = &STR(&N &A &M &E &S)
ENDO
CONTROL END(END)
IF &STR(&PDSN) > THEN +
SET ZEDLMSG = &STR(TYPE "S" NEXT TO DESIRED PRINT CONFIGURATION+
(S) AND PRESS TO PRINT.)
ELSE +
SET ZEDLMSG = &STR(ENTER DSN && "S" NEXT TO DESIRED PRINT +
CONFIGURATION(S) && PRESS TO PRINT.)
ISPEXEC SETMSG MSG(UTLZ000)
REDISPLAY: +
SET ZTDMARK = &STR(*** END OF CURRENT PRINT CONFIGURATIONS ***)
ISPEXEC TBDISPL PRINTIT PANEL(PRINTIT)
SET PANELCC = &LASTCC
/* IF &STR(&PDSN) > THEN +
/* SET ZEDLMSG = &STR(TYPE "S" NEXT TO DESIRED PRINT CONFIGURATION+
/* (S) AND PRESS TO PRINT.)
/* ELSE +
/* SET ZEDLMSG = &STR(ENTER DSN && "S" NEXT TO DESIRED PRINT +
/* CONFIGURATION(S) && PRESS TO PRINT.)
/**********************************************************************
/* HANDLE MEMBER GROUP HELP FIRST *
/**********************************************************************
IF &STR(&PMBR) = &STR(?) THEN +
DO
SET PMBR =
ISPEXEC SELECT PGM(ISPTUTOR) PARM(UTILH107)
GOTO REDISPLAY
END
/**********************************************************************
/* PROCESS LINE COMMANDS NEXT *
/**********************************************************************
IF &ZTDSELS ¬= &STR(0000) THEN +
DO
ISPEXEC CONTROL DISPLAY SAVE
DO WHILE &ZTDSELS ¬= &STR(0000)
SELECT (&PTSEL)
/************ ADD A NEW ROW *************/
WHEN (A) DO
IF &STR(&SYSUID) ¬= &STR(&ADMINID) THEN +
DO
SET ZEDLMSG = &STR(TO ADD A TABLE ROW +
PLEASE CONTACT +
&ADMIN)
ISPEXEC SETMSG MSG(UTLZ001W)
GOTO NEXT_LINE
END
ISPEXEC TBVCLEAR PRINTIT
SET PTCANCEL = NO
SET PTSKEL01 = PRINTIT1
SET PTTAIL01 = Y
SET PTOPT01 = N
SET PTSKEL02 = PRINTIT2
SET PTTAIL02 = Y
SET PTOPT02 = N
SET PTSKEL03 = PRINTIT3
SET PTTAIL03 = Y
SET PTOPT03 = N
SET PTSKEL04 = PRINTIT4
SET PTTAIL04 = Y
SET PTOPT04 = N
SET RETURN = &STR(ADD_CONTINUE)
GOTO CONFIG_LOOP
SET PTSEL =
ADD_CONTINUE: IF &PTCANCEL = NO THEN +
DO
ISPEXEC TBEND PRINTIT
IF &ZTDSELS > 0001 THEN +
DO
SET ZEDLMSG = &STR(AN +
"UPDATE-TYPE" +
LINE COMMAND +
PRECLUDED THE +
PROCESSING OF +
YOUR SUBSEQUENT +
LINE COMMANDS)
ISPEXEC SETMSG MSG(UTLZ001)
END
SET ZTDSELS = &STR(0000)
ISPEXEC LIBDEF ISPTABL +
DATASET ID('&PRNTPFX..ISPTLIB')
ISPEXEC TBOPEN PRINTIT WRITE
SET OPENCC = &LASTCC
DO &I = 1 TO 30 WHILE &OPENCC ¬= 0
ISPEXEC TBOPEN PRINTIT WRITE
SET OPENCC = &LASTCC
END
IF &OPENCC = 0 THEN +
DO
ISPEXEC TBADD PRINTIT ORDER
ISPEXEC TBSORT PRINTIT +
FIELDS(PTCONNAM,C,A)
ISPEXEC TBCLOSE PRINTIT
ISPEXEC TBOPEN PRINTIT NOWRITE
/***** NOTIFY OF NEW ROWS *****/
SEND '&STR(*** &SYSUID ADDED A ROW TO PRINTIT ***)' U(P@UMJB) LOGON
END
ELSE +
DO
SET ZEDLMSG = &STR(UNABLE TO OPEN +
THE PRINTIT +
ISPF TABLE FOR +
UPDATE. PLEASE +
TRY LATER.)
ISPEXEC SETMSG MSG(UTLZ001W)
END
END
ELSE +
DO
SET ZEDLMSG = &STR("CANCEL" ISSUED, NO +
NEW PRINT CONFIGURATION +
WAS ADDED.)
ISPEXEC SETMSG MSG(UTLZ000W)
END
END
/******** CHANGE A ROW *********/
WHEN (C) DO
IF &STR(&SYSUID) ¬= &STR(&ADMINID) THEN +
DO
SET ZEDLMSG = &STR(TO CHANGE A TABLE ROW +
PLEASE CONTACT +
&ADMIN)
ISPEXEC SETMSG MSG(UTLZ001W)
GOTO NEXT_LINE
END
SET PTCANCEL = NO
SET RETURN = &STR(CHANGE_CONTINUE)
GOTO CONFIG_LOOP
CHANGE_CONTINUE: SET PTSEL =
IF &PTCANCEL = NO THEN +
DO
ISPEXEC TBEND PRINTIT
IF &ZTDSELS > 0001 THEN +
DO
SET ZEDLMSG = &STR(AN +
"UPDATE-TYPE" +
LINE COMMAND +
PRECLUDED THE +
PROCESSING OF +
YOUR SUBSEQUENT +
LINE COMMANDS)
ISPEXEC SETMSG MSG(UTLZ001)
END
SET ZTDSELS = &STR(0000)
ISPEXEC LIBDEF ISPTABL +
DATASET ID('&PRNTPFX..ISPTLIB')
ISPEXEC TBOPEN PRINTIT WRITE
SET OPENCC = &LASTCC
DO &I = 1 TO 30 WHILE &OPENCC ¬= 0
ISPEXEC TBOPEN PRINTIT WRITE
SET OPENCC = &LASTCC
END
IF &OPENCC = 0 THEN +
DO
ISPEXEC TBMOD PRINTIT
/***** NOTIFY OF NEW ROWS *****/
SEND '&STR(*** &SYSUID MODDED PRINTIT ROW 2 ***)' U(P@UMJB) LOGON
ISPEXEC TBSORT PRINTIT +
FIELDS(PTCONNAM,C,A)
ISPEXEC TBCLOSE PRINTIT
ISPEXEC TBOPEN PRINTIT NOWRITE
END
ELSE +
DO
SET ZEDLMSG = &STR(UNABLE TO OPEN +
THE PRINTIT +
ISPF TABLE FOR +
UPDATE. PLEASE +
TRY LATER.)
ISPEXEC SETMSG MSG(UTLZ001W)
END
END
ELSE +
DO
SET ZEDLMSG = &STR("CANCEL" ISSUED, NO +
PRINT CONFIGURATION +
WAS CHANGED.)
ISPEXEC SETMSG MSG(UTLZ000W)
END
END
/******** DELETE A ROW *********/
WHEN (D) DO
IF &STR(&SYSUID) ¬= &STR(&ADMINID) THEN +
DO
SET ZEDLMSG = &STR(TO DELETE A TABLE ROW +
PLEASE CONTACT +
&ADMIN)
ISPEXEC SETMSG MSG(UTLZ001W)
GOTO NEXT_LINE
END
ISPEXEC SELECT CMD(%YOUSURE COLUMN(26) ROW(1))
IF &LASTCC > 0 THEN GOTO NEXT_LINE
SET PTSEL =
ISPEXEC TBEND PRINTIT
IF &ZTDSELS > 0001 THEN +
DO
SET ZEDLMSG = &STR(AN "UPDATE-TYPE" LINE +
COMMAND PRECLUDED THE +
PROCESSING OF YOUR +
SUBSEQUENT LINE +
COMMANDS)
ISPEXEC SETMSG MSG(UTLZ001)
END
SET ZTDSELS = &STR(0000)
ISPEXEC LIBDEF ISPTABL +
DATASET ID('&PRNTPFX..ISPTLIB')
ISPEXEC TBOPEN PRINTIT WRITE
SET OPENCC = &LASTCC
DO &I = 1 TO 30 WHILE &OPENCC ¬= 0
ISPEXEC TBOPEN PRINTIT WRITE
SET OPENCC = &LASTCC
END
IF &OPENCC = 0 THEN +
DO
ISPEXEC TBGET PRINTIT
ISPEXEC TBDELETE PRINTIT
ISPEXEC TBCLOSE PRINTIT
ISPEXEC TBOPEN PRINTIT NOWRITE
END
ELSE +
DO
SET ZEDLMSG = &STR(UNABLE TO OPEN THE +
PRINTIT ISPF TABLE +
FOR UPDATE. PLEASE +
TRY LATER.)
ISPEXEC SETMSG MSG(UTLZ001W)
END
END
/******** CHECK SDSF FOR JOBS IN THIS CLASS ********/
WHEN (J) DO
ISPEXEC TBSKIP PRINTIT NUMBER(0) NOREAD +
POSITION(CRP)
ISPEXEC TBVCLEAR PRINTIT
SET PTSEL = S
ISPEXEC TBTOP PRINTIT
ISPEXEC TBSCAN PRINTIT ARGLIST(PTSEL) CONDLIST(EQ)
IF &LASTCC = 0 THEN +
DO
ISPEXEC TBSKIP PRINTIT NUMBER(0) NOREAD +
POSITION(CRP2)
IF &CRP = &CRP2 THEN +
DO
SET PTSEL =
ISPEXEC TBMOD PRINTIT
/***** NOTIFY OF NEW ROWS *****/
SEND '&STR(*** &SYSUID MODDED PRINTIT ROW 3 ***)' U(P@UMJB) LOGON
END
END
ISPEXEC TBTOP PRINTIT
ISPEXEC TBSKIP PRINTIT NUMBER(&CRP)
ISPEXEC SELECT CMD(%PRINTQ &PTCLASS)
END
/******** CHECK THE VPS QUEUE FOR VPS PRINTERS ******/
WHEN (Q) DO
ISPEXEC SELECT PGM(VM60ISPF) NEWAPPL(VMCF) +
NOCHECK PARM(2)
END
WHEN (S) DO
PRINT_SECTION: SET GOTOSEC = &STR(PRINT)
GOTO VERIFY
PRINT: ISPEXEC VGET PJOBCLAS PROFILE
SET TIME = &STR(&&)&STR(TIME&PJOBCLAS)
SET TIME = &TIME
IF &JCLREVEW = Y THEN +
DO
DELETE '&SYSUID..TEMP.PRINTIT.JCL'
FREE DDNAME(ISPFILE TEMPDD)
ALLOCATE DDNAME(TEMPDD) +
DSN('&SYSUID..TEMP.PRINTIT.JCL') +
NEW CATALOG +
UNIT(SYSDA) VOLUME(WRK$$$) +
SPACE(1,1) +
TRACKS RELEASE DSORG(PS) +
RECFM(F B) LRECL(80) BLKSIZE(23440)
FREE DDNAME(TEMPDD)
ALLOCATE DDNAME(ISPFILE) +
DSN('&SYSUID..TEMP.PRINTIT.JCL') +
OLD
ISPEXEC FTOPEN
ISPEXEC FTINCL PRINTIT
SET SAVECC = &LASTCC
ISPEXEC FTCLOSE
FREE DDNAME(ISPFILE)
IF &SAVECC > 0 THEN +
DO
SET ZEDLMSG = &STR(JCL CREATION +
FAILED WITH A +
RETURN CODE OF +
"&SAVECC")
ISPEXEC SETMSG MSG(UTLZ001W)
END
ELSE +
DO
SET ZEDLMSG = &STR(YOU MUST SUBMIT +
THIS JCL +
YOURSELF)
ISPEXEC SETMSG MSG(UTLZ001W)
ISPEXEC EDIT +
DATASET('&SYSUID..TEMP.PRINTIT.JCL')
END
END
ELSE +
DO
ISPEXEC FTOPEN TEMP
ISPEXEC FTINCL PRINTIT
SET SAVECC = &LASTCC
ISPEXEC FTCLOSE
IF &SAVECC > 0 THEN +
DO
SET ZEDLMSG = &STR(JCL CREATION +
FAILED WITH A +
RETURN CODE OF +
"&SAVECC")
ISPEXEC SETMSG MSG(UTLZ001W)
END
ELSE +
DO
ISPEXEC VGET ZTEMPF
SET ZEDLMSG = &STR(PRINT JOB +
SUBMITTED)
ISPEXEC SETMSG MSG(UTLZ000)
SUBMIT '&ZTEMPF'
END
END
IF &STR(&ZTDSELS) = &STR(0000) OR +
&STR(&ZTDSELS) = THEN +
IF &BATCH = BATCH THEN GOTO FINISH
ELSE GOTO CONTINUE
END
WHEN (L) DO
SET PTSEL =
SET PTITLAND = &STR(&PTCONNAM)
ISPEXEC VPUT PTITLAND PROFILE
SET ZEDLMSG = &STR("LANDSCAPE" PROFILE SET TO +
"&PTCONNAM")
ISPEXEC SETMSG MSG(UTLZ000W)
END
WHEN (P) DO
SET PTSEL =
SET PTITPORT = &STR(&PTCONNAM)
ISPEXEC VPUT PTITPORT PROFILE
SET ZEDLMSG = &STR("PORTRAIT" PROFILE SET TO +
"&PTCONNAM")
ISPEXEC SETMSG MSG(UTLZ000W)
END
/****** VIEW AN EXISTING PRINT CONFIGURATION *******/
WHEN (V) DO
SET SKELOPT = N
VIEW_LOOP: ISPEXEC DISPLAY PANEL(PRINTIT2)
IF &LASTCC < 8 THEN +
DO
IF &STR(&SKELOPT) = Y THEN +
DO
SET SKELOPT = N
VIEW_LOOP_2: ISPEXEC DISPLAY PANEL(PRINTIT1)
IF &LASTCC < 8 THEN GOTO VIEW_LOOP_2
END
GOTO VIEW_LOOP
END
SET PTSEL =
ISPEXEC TBMOD PRINTIT
END
WHEN ( ) ISPEXEC TBMOD PRINTIT
OTHERWISE DO
LINE_COMMANDS: ISPEXEC TBEND PRNTCMDS
ISPEXEC TBCREATE PRNTCMDS NOWRITE REPLACE KEYS() +
NAMES(PTCMD PTCMDDES)
SET PTCMD = &STR(A)
SET PTCMDDES = +
&STR(ADD A NEW PRINT CONFIGURATION. )
ISPEXEC TBADD PRNTCMDS
SET PTCMD = &STR(C)
SET PTCMDDES = +
&STR(CHANGE AN EXISTING PRINT CONFIGURATION )
ISPEXEC TBADD PRNTCMDS
SET PTCMD = &STR(D)
SET PTCMDDES = +
&STR(DELETE AN EXISTING PRINT CONFIGURATION )
ISPEXEC TBADD PRNTCMDS
SET PTCMD = &STR(J)
SET PTCMDDES = +
&STR(CHECK SDSF FOR JOBS USING THIS OUTPUT CLASS )
ISPEXEC TBADD PRNTCMDS
SET PTCMD = &STR(L)
SET PTCMDDES = +
&STR(INDICATE WHICH PRINT CONFIGURATION YOU WOULD LIKE TO )
ISPEXEC TBADD PRNTCMDS
SET PTCMD =
SET PTCMDDES = +
&STR(USE AS YOUR PERSONAL "LANDSCAPE" DEFAULT PRINT )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(CONFIGURATION. THE PRESENCE OF THIS DEFAULT WILL )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(AUTOMATICALLY "PRE-SELECT" YOUR DEFAULT PRINT )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(CONFIGURATION FOR DATASETS WHICH HAVE AN "LRECL" WHICH )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(IS > &DFLTPORT)
ISPEXEC TBADD PRNTCMDS
SET PTCMD = &STR(P)
SET PTCMDDES = +
&STR(INDICATE WHICH PRINT CONFIGURATION YOU WOULD LIKE TO )
ISPEXEC TBADD PRNTCMDS
SET PTCMD =
SET PTCMDDES = +
&STR(USE AS YOUR PERSONAL "PORTRAIT" DEFAULT PRINT )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(CONFIGURATION. THE PRESENCE OF THIS DEFAULT WILL )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(AUTOMATICALLY "PRE-SELECT" YOUR DEFAULT PRINT )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(CONFIGURATION FOR DATASETS WHICH HAVE AN "LRECL" WHICH )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(IS < OR = &DFLTPORT)
ISPEXEC TBADD PRNTCMDS
SET PTCMD = &STR(Q)
SET PTCMDDES = +
&STR(CHECK THE VPS QUEUE FOR ALL VPS-CONTROLLED PRINTERS )
ISPEXEC TBADD PRNTCMDS
SET PTCMD = &STR(S)
SET PTCMDDES = +
&STR("SELECT" A GIVEN PRINT CONFIGURATION&LP.S&RP AND )
ISPEXEC TBADD PRNTCMDS
SET PTCMD =
SET PTCMDDES = +
&STR(ACTUALLY CREATE THE JCL TO PRINT IT. A "Y" OR "N" IN )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(THE "REVIEW JCL ?" FIELD WILL CONTROL WHETHER THE JOB )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(IS ACTUALLY SUBMITTED AUTOMATICALLY. )
ISPEXEC TBADD PRNTCMDS
SET PTCMD = &STR(V)
SET PTCMDDES = +
&STR("VIEW" A GIVEN PRINT CONFIGURATION TO SEE WHAT ITS )
ISPEXEC TBADD PRNTCMDS
SET PTCMD =
SET PTCMDDES = +
&STR(ACTUAL JES SETTINGS ARE, AND TO SEE WHAT PRINTIT JCL )
ISPEXEC TBADD PRNTCMDS
SET PTCMDDES = +
&STR(IT IS COMPOSED OF. )
ISPEXEC TBADD PRNTCMDS
ISPEXEC TBTOP PRNTCMDS
SET ZWINTTL = &STR(VALID LINE COMMANDS...PF3 TO +
RETURN...PF7/8 TO SCROLL)
SET ZTDMARK = &STR(*** END OF VALID LINE COMMANDS ***)
ISPEXEC ADDPOP ROW(6) COLUMN(8)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
LINE_CMDLOOP: ISPEXEC TBDISPL PRNTCMDS PANEL(PRNTCMDS)
IF &LASTCC = 0 THEN GOTO LINE_CMDLOOP
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
END
END
NEXT_LINE: IF &ZTDSELS > &STR(0001) THEN +
DO
ISPEXEC CONTROL DISPLAY RESTORE
ISPEXEC TBDISPL PRINTIT
ISPEXEC CONTROL DISPLAY SAVE
END
ELSE +
DO
SET ZTDSELS = &STR(0000)
ISPEXEC CONTROL DISPLAY RESTORE
IF &STR(&ZCMD) > THEN GOTO SCROLL
END
END
END
/***************************************/
/* PROCESS USERS PENDING 'END' COMMAND */
/***************************************/
IF &PANELCC = 8 THEN GOTO FINISH
/**********************************************************************
/* PROCESS PRINT COMMANDS NOT ASSOCIATED WITH ZTDSELS *
/**********************************************************************
CONTINUE: +
ISPEXEC TBVCLEAR PRINTIT
SET PTSEL = S
ISPEXEC TBTOP PRINTIT
ISPEXEC TBSCAN PRINTIT ARGLIST(PTSEL) CONDLIST(EQ)
IF &LASTCC = 0 THEN +
DO
SET PTSEL =
ISPEXEC TBMOD PRINTIT
GOTO PRINT_SECTION
END
/*****************************/
/* MAINTAIN THE TOP OF TABLE */
/*****************************/
SCROLL: +
IF &STR(&ZCMD) = THEN +
DO
ISPEXEC TBTOP PRINTIT
ISPEXEC TBSKIP PRINTIT NUMBER(&ZTDTOP)
ISPEXEC VGET (ZVERB ZSCROLLN)
IF &ZVERB = &STR(UP) THEN +
ISPEXEC TBSKIP PRINTIT NUMBER(-&ZSCROLLN)
IF &ZVERB = &STR(DOWN) THEN +
ISPEXEC TBSKIP PRINTIT NUMBER(&ZSCROLLN)
END
GOTO REDISPLAY
/*************************************************/
/* CLOSE THE PRINTIT TABLE (SAVING THE CHANGES) */
/*************************************************/
FINISH: +
ISPEXEC TBEND PRINTIT
ISPEXEC LIBDEF ISPTABL
IF &BATCH = BATCH AND &OPENCC ¬= 0 THEN SET BATCHCC = 12
IF &MODE ¬= CLIST THEN ISREDIT CURSOR = &LN &CL
IF &BATCHCC = 0 THEN +
DO
SET ZEDSMSG = &STR(EXITED PRINT UTILITY)
ISPEXEC SETMSG MSG(UTLZ000)
END
EXIT CODE(&BATCHCC)
/**********************************************************************
/* PROCESS CHANGES AND ADDS TO THE PRINTIT PRINT CONFIGURATION TABLE. *
/**********************************************************************
CONFIG_LOOP: SET SKELOPT = N
ISPEXEC DISPLAY PANEL(PRINTIT2)
IF &LASTCC > 7 OR &STR(&PTCANCEL) = YES THEN GOTO &RETURN
IF &STR(&SKELOPT) = Y THEN +
DO
SET SKELOPT = N
SKEL_LOOP: ISPEXEC DISPLAY PANEL(PRINTIT1)
IF &LASTCC > 7 THEN GOTO CONFIG_LOOP
GOTO SKEL_LOOP
END
SET VALCLASS = &STR(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789*$)
SELECT_LOOP: SELECT
WHEN (&STR(&PTCONNAM) = &STR(?)) DO
ISPEXEC ADDPOP ROW(4) COLUMN(21)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTIT3)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTCONNAM =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTBURST) > &STR() AND +
&STR(&PTBURST) ¬= &STR(Y) AND +
&STR(&PTBURST) ¬= &STR(N) AND +
&STR(&PTBURST) ¬= &STR(YES) AND +
&STR(&PTBURST) ¬= &STR(NO)) DO
IF &STR(&PTBURST) = &STR(?) THEN +
SET ZWINTTL = &STR(BURST)
ELSE +
SET ZWINTTL = &STR(INVALID "BURST" VALUE)
ISPEXEC ADDPOP ROW(6) COLUMN(5)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTIT4)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTBURST =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTCHARS) = &STR(?)) DO
IF &STR(&PTCHARS) = &STR(?) THEN +
SET ZWINTTL = &STR(CHARS)
ELSE +
SET ZWINTTL = &STR(INVALID "CHARS" VALUE)
ISPEXEC ADDPOP ROW(7) COLUMN(5)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTIT5)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTCHARS =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTCKPTLN) > &STR() AND +
(&PTCKPTLN < 0 OR +
&PTCKPTLN > 32767)) DO
IF &STR(&PTCKPTLN) = &STR(?) THEN +
SET ZWINTTL = &STR(CKPTLINE)
ELSE +
SET ZWINTTL = &STR(INVALID "CKPTLINE" VALUE)
ISPEXEC ADDPOP ROW(8) COLUMN(8)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTIT6)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTCKPTLN =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTCKPTPA) > &STR() AND +
(&PTCKPTPA < 1 OR +
&PTCKPTPA > 32767)) DO
IF &STR(&PTCKPTPA) = &STR(?) THEN +
SET ZWINTTL = &STR(CKPTPAGE)
ELSE +
SET ZWINTTL = &STR(INVALID "CKPTPAGE" VALUE)
ISPEXEC ADDPOP ROW(9) COLUMN(8)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTIT7)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTCKPTPA =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTCKPTSE) > &STR() AND +
(&PTCKPTSE < 1 OR +
&PTCKPTSE > 32767)) DO
IF &STR(&PTCKPTSE) = &STR(?) THEN +
SET ZWINTTL = &STR(CKPTSEC)
ELSE +
SET ZWINTTL = &STR(INVALID "CKPTSEC" VALUE)
ISPEXEC ADDPOP ROW(10) COLUMN(7)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTIT8)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTCKPTSE =
GOTO SELECT_LOOP
END
WHEN (&SYSINDEX(&STR(&PTCLASS),&STR(&VALCLASS)) = 0) DO
IF &STR(&PTCLASS) = &STR(?) THEN +
SET ZWINTTL = &STR(CLASS)
ELSE +
IF &STR(&PTCLASS) = THEN +
SET ZWINTTL = &STR("CLASS" REQUIRED - DEFAULT SET)
ELSE +
SET ZWINTTL = &STR(INVALID "CLASS" VALUE)
ISPEXEC ADDPOP ROW(11) COLUMN(5)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTIT9)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTCLASS = &STR(&DFLTCLAS)
GOTO SELECT_LOOP
END
WHEN (&STR(&PTCOMPCT) = &STR(?)) DO
IF &STR(&PTCOMPCT) = &STR(?) THEN +
SET ZWINTTL = &STR(COMPACT)
ELSE +
SET ZWINTTL = &STR(INVALID "COMPACT" VALUE)
ISPEXEC ADDPOP ROW(12) COLUMN(7)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITA)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTCOMPCT =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTCONTRL) > &STR() AND +
(&STR(&PTCONTRL) ¬= &STR(PROGRAM) OR +
&STR(&PTCONTRL) ¬= &STR(SINGLE) OR +
&STR(&PTCONTRL) ¬= &STR(DOUBLE) OR +
&STR(&PTCONTRL) ¬= &STR(TRIBLE))) DO
IF &STR(&PTCONTRL) = &STR(?) THEN +
SET ZWINTTL = &STR(CONTROL)
ELSE +
SET ZWINTTL = &STR(INVALID "CONTROL" VALUE)
ISPEXEC ADDPOP ROW(2) COLUMN(7)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITB)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTCONTRL =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTCOPIES) = &STR(?) OR &STR(&PTCOPIES) = &STR( )) DO
IF &STR(&PTCOPIES) = &STR(?) THEN +
SET ZWINTTL = &STR(COPIES)
ELSE +
IF &STR(&PTCOPIES) = THEN +
SET ZWINTTL = &STR("COPIES" REQUIRED - DEFAULT SET)
ELSE +
SET ZWINTTL = &STR(INVALID "COPIES" VALUE)
ISPEXEC ADDPOP ROW(3) COLUMN(6)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITC)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTCOPIES = 1
GOTO SELECT_LOOP
END
WHEN (&STR(&PTDATACK) > &STR() AND +
(&STR(&PTDATACK) ¬= &STR(BLOCK) AND +
&STR(&PTDATACK) ¬= &STR(UNBLOCK) AND +
&STR(&PTDATACK) ¬= &STR(BLKCHAR) AND +
&STR(&PTDATACK) ¬= &STR(BLKPOS))) DO
IF &STR(&PTDATACK) = &STR(?) THEN +
SET ZWINTTL = &STR(DATACK)
ELSE +
SET ZWINTTL = &STR(INVALID "DATACK" VALUE)
ISPEXEC ADDPOP ROW(5) COLUMN(6)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITD)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTDATACK =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTDEFALT) > &STR() AND +
(&STR(&PTDEFALT) ¬= &STR(Y) AND +
&STR(&PTDEFALT) ¬= &STR(YES) AND +
&STR(&PTDEFALT) ¬= &STR(NO) AND +
&STR(&PTDEFALT) ¬= &STR(N))) DO
IF &STR(&PTDEFALT) = &STR(?) THEN +
SET ZWINTTL = &STR(DEFAULT)
ELSE +
SET ZWINTTL = &STR(INVALID "DEFAULT" VALUE)
ISPEXEC ADDPOP ROW(7) COLUMN(7)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITE)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTDEFALT =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTDEST) = &STR(?) OR &STR(&PTDEST) = &STR()) DO
IF &STR(&PTDEST) = &STR(?) THEN +
SET ZWINTTL = &STR(DEST)
ELSE +
IF &STR(&PTDEST) = THEN +
SET ZWINTTL = &STR("DEST" REQUIRED - DEFAULT SET)
ELSE +
SET ZWINTTL = &STR(INVALID "DEST" VALUE)
ISPEXEC ADDPOP COLUMN(4)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITF)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTDEST = &STR(&DFLTDEST)
GOTO SELECT_LOOP
END
WHEN (&STR(&PTDPAGLB) > &STR() AND +
(&STR(&PTDPAGLB) ¬= &STR(Y) AND +
&STR(&PTDPAGLB) ¬= &STR(YES) AND +
&STR(&PTDPAGLB) ¬= &STR(NO) AND +
&STR(&PTDPAGLB) ¬= &STR(N))) DO
IF &STR(&PTPAGLB) = &STR(?) THEN +
SET ZWINTTL = &STR(DPAGELBL)
ELSE +
SET ZWINTTL = &STR(INVALID "DPAGELBL" VALUE)
ISPEXEC ADDPOP ROW(9) COLUMN(8)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITG)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTDPAGLB =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTFCB) = &STR(?)) DO
IF &STR(&PTFCB) = &STR(?) THEN +
SET ZWINTTL = &STR(FCB)
ELSE +
SET ZWINTTL = &STR(INVALID "FCB" VALUE)
ISPEXEC ADDPOP ROW(11) COLUMN(3)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITH)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTFCB =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTFLASH) = &STR(?)) DO
IF &STR(&PTFLASH) = &STR(?) THEN +
SET ZWINTTL = &STR(FLASH)
ELSE +
SET ZWINTTL = &STR(INVALID "FLASH" VALUE)
ISPEXEC ADDPOP ROW(8) COLUMN(5)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITI)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTFLASH =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTFRMDEF) = &STR(?)) DO
IF &STR(&PTFRMDEF) = &STR(?) THEN +
SET ZWINTTL = &STR(FORMDEF)
ELSE +
SET ZWINTTL = &STR(INVALID "FORMDEF" VALUE)
ISPEXEC ADDPOP ROW(14) COLUMN(7)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITJ)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTFRMDEF =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTFORMS) = &STR(?)) DO
IF &STR(&PTFORMS) = &STR(?) THEN +
SET ZWINTTL = &STR(FORMS)
ELSE +
SET ZWINTTL = &STR(INVALID "FORMS" VALUE)
ISPEXEC ADDPOP ROW(6) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITK)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTFORMS =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTGRPID) = &STR(?)) DO
IF &STR(&PTGRPID) = &STR(?) THEN +
SET ZWINTTL = &STR(GROUPID)
ELSE +
SET ZWINTTL = &STR(INVALID "GROUPID" VALUE)
ISPEXEC ADDPOP ROW(7) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITL)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTGRPID =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTINDEX) > &STR() AND +
(&PTINDEX < 1 OR +
&PTINDEX > 31)) DO
IF &STR(&PTINDEX) = &STR(?) THEN +
SET ZWINTTL = &STR(INDEX)
ELSE +
SET ZWINTTL = &STR(INVALID "INDEX" VALUE)
ISPEXEC ADDPOP ROW(8) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITM)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTINDEX =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTJESDS) > &STR() AND +
(&STR(&PTJESDS) ¬= &STR(Y) AND +
&STR(&PTJESDS) ¬= &STR(YES) AND +
&STR(&PTJESDS) ¬= &STR(NO) AND +
&STR(&PTJESDS) ¬= &STR(N))) DO
IF &STR(&PTJESDS) = &STR(?) THEN +
SET ZWINTTL = &STR(JESDS)
ELSE +
SET ZWINTTL = &STR(INVALID "JESDS" VALUE)
ISPEXEC ADDPOP ROW(9) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITN)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTJESDS =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTLINDEX) > &STR() AND +
(&PTLINDEX < 1 OR +
&PTLINDEX > 31)) DO
IF &STR(&PTLINDEX) = &STR(?) THEN +
SET ZWINTTL = &STR(LINDEX)
ELSE +
SET ZWINTTL = &STR(INVALID "LINDEX" VALUE)
ISPEXEC ADDPOP ROW(10) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITO)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTLINDEX =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTLINECT) > &STR() AND +
(&PTLINECT < 0 OR +
&PTLINECT > 255)) DO
IF &STR(&PTLINECT) = &STR(?) THEN +
SET ZWINTTL = &STR(LINECT)
ELSE +
SET ZWINTTL = &STR(INVALID "LINECT" VALUE)
ISPEXEC ADDPOP ROW(11) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITP)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTLINECT =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTMODIFY) = &STR(?)) DO
IF &STR(&PTMODIFY) = &STR(?) THEN +
SET ZWINTTL = &STR(MODIFY)
ELSE +
SET ZWINTTL = &STR(INVALID "MODIFY" VALUE)
ISPEXEC ADDPOP ROW(12) COLUMN(15)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITQ)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTMODIFY =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTPAGEDF) = &STR(?)) DO
IF &STR(&PTPAGEDF) = &STR(?) THEN +
SET ZWINTTL = &STR(PAGEDEF)
ELSE +
SET ZWINTTL = &STR(INVALID "PAGEDEF" VALUE)
ISPEXEC ADDPOP ROW(13) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITR)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTPAGEDF =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTPIMSG) = &STR(?)) DO
IF &STR(&PTPIMSG) = &STR(?) THEN +
SET ZWINTTL = &STR(PIMSG)
ELSE +
SET ZWINTTL = &STR(INVALID "PIMSG" VALUE)
ISPEXEC ADDPOP ROW(-1) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITS)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTPIMSG =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTPRMODE) = &STR(?)) DO
IF &STR(&PTPRMODE) = &STR(?) THEN +
SET ZWINTTL = &STR(PRMODE)
ELSE +
SET ZWINTTL = &STR(INVALID "PRMODE" VALUE)
ISPEXEC ADDPOP ROW(2) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITT)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTPRMODE =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTPRTY) > &STR() AND +
(&PTPRTY < 0 OR +
&PTPRTY > 255)) DO
IF &STR(&PTPRTY) = &STR(?) THEN +
SET ZWINTTL = &STR(PRTY)
ELSE +
SET ZWINTTL = &STR(INVALID "PRTY" VALUE)
ISPEXEC ADDPOP ROW(7) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITU)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTPRTY =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTSYSARA) = &STR(?)) DO
IF &STR(&PTSYSARA) = &STR(?) THEN +
SET ZWINTTL = &STR(SYSAREA)
ELSE +
SET ZWINTTL = &STR(INVALID "SYSAREA" VALUE)
ISPEXEC ADDPOP ROW(6) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITV)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTSYSARA =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTTHRHLD) > &STR() AND +
(&PTTHRHLD < 0 OR +
&PTTHRHLD > 99999999)) DO
IF &STR(&PTTHRHLD) = &STR(?) THEN +
SET ZWINTTL = &STR(THRESHLD)
ELSE +
SET ZWINTTL = &STR(INVALID "THRESHLD" VALUE)
ISPEXEC ADDPOP ROW(9) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITW)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTTHRHLD =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTTRC) = &STR(?)) DO
IF &STR(&PTTRC) = &STR(?) THEN +
SET ZWINTTL = &STR(TRC)
ELSE +
SET ZWINTTL = &STR(INVALID "TRC" VALUE)
ISPEXEC ADDPOP ROW(7) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITX)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTTRC =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTUCS) = &STR(?)) DO
IF &STR(&PTUCS) = &STR(?) THEN +
SET ZWINTTL = &STR(UCS)
ELSE +
SET ZWINTTL = &STR(INVALID "UCS" VALUE)
ISPEXEC ADDPOP ROW(10) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITY)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTUCS =
GOTO SELECT_LOOP
END
WHEN (&STR(&PTWRITER) = &STR(?)) DO
IF &STR(&PTWRITER) = &STR(?) THEN +
SET ZWINTTL = &STR(WRITER)
ELSE +
SET ZWINTTL = &STR(INVALID "WRITER" VALUE)
ISPEXEC ADDPOP ROW(13) COLUMN(37)
/*PEXEC CONTROL DISPLAY SAVE /* FIXPOP */
ISPEXEC DISPLAY PANEL(PRINTITZ)
ISPEXEC REMPOP
/*PEXEC CONTROL DISPLAY RESTORE /* FIXPOP */
SET PTWRITER =
GOTO SELECT_LOOP
END
END
GOTO CONFIG_LOOP
/**********************************************************************
/* PERFORM THE DATASET VERIFICATION. 1ST, CHECK FOR RELATIVE GDG GENS.*
/**********************************************************************
VERIFY: +
SET GEN =
SET A = &SYSINDEX(&STR(&LP),&STR(&PDSN))
SET B = &SYSINDEX(&STR(&RP),&STR(&PDSN))
IF &A > 0 AND &B > 0 THEN SET GEN = &SUBSTR(&A+1:&B-1,&STR(&PDSN))
IF (&STR(&GEN) > AND +
(&SYSINDEX(&STR(+),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(-),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(0),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(1),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(2),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(3),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(4),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(5),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(6),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(7),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(8),&STR(&GEN)) = 1 OR +
&SYSINDEX(&STR(9),&STR(&GEN)) = 1)) THEN +
DO
SET ZEDLMSG = &STR(*** RESOLVING RELATIVE GDG GENERATION ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)
SET GDGDSN = &SUBSTR(1:&A-1,&STR(&PDSN))
IF &LENGTH(&STR(&GEN)) > 1 THEN +
IF &SUBSTR(1:1,&STR(&GEN)) = &STR(+) AND +
&SUBSTR(2:2,&STR(&GEN)) > 0 THEN +
IF &BATCH = BATCH THEN +
DO
SET BATCHCC = 16
GOTO FINISH
END
ELSE +
DO
SET ZEDLMSG = &STR("+1" AND HIGHER RELATIVE +
GDG GENERATIONS CANNOT BE +
USED)
ISPEXEC SETMSG MSG(UTLZ001W)
SET PTDSN =
SET PTRECFM =
SET PTLRECL =
SET PTBLKSIZ =
GOTO REDISPLAY
END
ELSE +
IF &SUBSTR(1:1,&STR(&GEN)) = &STR(+) OR +
&SUBSTR(1:1,&STR(&GEN)) = &STR(-) THEN +
SET GEN = &STR(MINUS&SUBSTR(2:&LENGTH(&STR(&GEN)),+
&STR(&GEN)))
ELSE SET GEN = MINUS&GEN
SET &&GEN =
%GDGGEN DSN(&GDGDSN)
IF &LASTCC = 0 THEN +
ISPEXEC VGET &GEN SHARED
SET GEN = &STR(&&)&STR(&GEN)
IF &STR(&GEN) > THEN +
SET PDSN = &STR(&GEN)
ELSE +
IF &BATCH = BATCH THEN +
DO
SET BATCHCC = 20
GOTO FINISH
END
ELSE +
DO
SET ZEDLMSG = &STR(COULD NOT RESOLVE THE +
RELATIVE GDG GENERATION)
ISPEXEC SETMSG MSG(UTLZ001W)
GOTO REDISPLAY
END
END
/**********************************************************************
/* GET THE NECESSARY DCB INFORMATION *
/**********************************************************************
IF &SYSINDEX(&STR(*),&STR(&PMBR)) = 0 AND +
&SYSINDEX(&STR(X'),&STR(&PMBR)) = 0 AND +
&SYSINDEX(&STR(,),&STR(&PMBR)) = 0 AND +
&SYSINDEX(&STR(:),&STR(&PMBR)) = 0 AND +
&SYSINDEX(&STR(/),&STR(&PMBR)) = 0 AND +
&STR(&PMBR) > THEN +
DO
SET SYSDVAL = &STR(&PMBR)
READDVAL X1 X2
IF &STR(&X2) = THEN +
DO
SET PDSN = &STR(&PDSN(&PMBR))
SET PMBR =
END
END
SET PTDSTYPE =
LISTDSI '&PDSN'
IF &LASTCC > 4 THEN +
DO
SET ZEDLMSG = &STR(PROBLEM WITH DATASET: &SYSDSN('&PDSN'))
ISPEXEC SETMSG MSG(UTLZ001W)
SET PTDSN =
SET PTRECFM =
SET PTLRECL =
SET PTBLKSIZ =
IF &BATCH = BATCH THEN +
DO
SET BATCHCC = 28
GOTO FINISH
END
GOTO REDISPLAY
END
ELSE +
DO
IF &SUBSTR(1:2,&STR(&SYSDSORG)) = PO THEN +
SET PTDSTYPE = PDS
SET PTDSN = &STR(&PDSN)
SET PTRECFM = &STR(&SYSRECFM)
SET PTLRECL = &STR(&SYSLRECL)
SET PTBLKSIZ = &STR(&SYSBLKSIZE)
IF &STR(&PCC) > THEN +
IF &SUBSTR(&LENGTH(&STR(&PTRECFM)),&STR(&PTRECFM)) ¬= A AND +
&SUBSTR(&LENGTH(&STR(&PTRECFM)),&STR(&PTRECFM)) ¬= M THEN +
SET PTRECFM = &STR(&PTRECFM&PCC)
ELSE +
SET PTRECFM = &SUBSTR(1:&LENGTH(&STR(&PTRECFM))-1,+
&STR(&PTRECFM))+
&STR(&PCC)
ELSE +
IF &SUBSTR(&LENGTH(&STR(&PTRECFM)),&STR(&PTRECFM)) = A OR +
&SUBSTR(&LENGTH(&STR(&PTRECFM)),&STR(&PTRECFM)) = M THEN +
IF &BATCH ¬= &BATCH THEN +
SET PTRECFM = &SUBSTR(1:&LENGTH(&STR(&PTRECFM))-1,+
&STR(&PTRECFM))
IF &BATCH = BATCH THEN +
DO
IF &STR(&CONFIG) = THEN +
DO
ISPEXEC TBVCLEAR PRINTIT
ISPEXEC VGET (PTITPORT PTITLAND) PROFILE
IF &STR(&PTITPORT) > AND +
&SYSLRECL <= &DFLTPORT THEN +
SET PTCONNAM = &STR(&PTITPORT)
IF &STR(&PTITLAND) > AND +
&SYSLRECL > &DFLTPORT THEN +
SET PTCONNAM = &STR(&PTITLAND)
IF &PTCONNAM = THEN SET PTCONNAM = DEFAULT
END
ELSE SET PTCONNAM = &STR(&CONFIG)
ISPEXEC TBGET PRINTIT
IF &LASTCC = 0 THEN +
DO
SET PTSEL = S
ISPEXEC TBMOD PRINTIT
END
END
END
IF &BATCH = BATCH THEN +
IF &STR(&PTDSN) > THEN +
DO
SET GOTOSEC = &STR(FINISH)
GOTO PRINT
END
ELSE +
DO
SET BATCHCC = 24
GOTO FINISH
END
ELSE +
GOTO &STR(&GOTOSEC)
/**********************************************************************
/* DISPLAY THE HELP TUTORIAL *
/**********************************************************************
HELPSEC: +
ISPEXEC SELECT PGM(ISPTUTOR) PARM(UTILH106)
SET ZEDLMSG = &STR(*** HELP DISPLAYED FOR PRINTIT UTILITY +
*** NO PROCESSING PERFORMED ***)
ISPEXEC SETMSG MSG(UTLZ000)
EXIT
|
|