/* REXX -- @PRINTNX, Print the NX (displayed) lines */ /* created by F.David McRitchie, 1992/10/09, */ /* */ /* SYSTECH as the only parameter will equate to DEST(P100E) */ /* DOWN8 as the only parameter will equate to ... */ /* CHARS(GT15) PAGEDEF(DOWN8) LINECT(77) CLASS(A) */ /* no parameters -- defaults to CLASS(A) */ /* ECHO -- prints to screen, useful for debugging */ /* */ /* Otherwise all parameters are OUTDES parameters */ /* refer to help information for OUTDES */ /* ===> TSO HELP OUTDES */ /* ===> TSO CLIST OUTDES HELP */ /*--------------------------------------------------------------*/ /* Related clists: PU00L, TECHPS, @PRINTNX, SCRIPTPS, @SCRIPT */ /****************************************************************/ Address "ISREDIT";"MACRO (OUTXXX)" "(MEMBERX) = MEMBER " "(DSNX) = DATASET" ORIG = outxxx OUTXXX = TRANSLATE(OUTXXX) SYSOUT="" i = index(OUTXXX,'CLASS(') if i /= 0 then do sysout = substr(OUTXXX,I+6,1) OUTXXX = left(OUTXXX,(i-1)) substr(OUTXXX,I+8) end /* outxxx with a value of "ECHO" is for debugging */ if outxxx = "SYSTECH" then OUTXXX = "DEST(P100E)" if outxxx = "DOWN8" then DO; OUTXXX = , "CHARS(GT15) PAGEDEF(DOWN8) LINECT(77)" IF sysout='' then sysout="A" end if sysout="" then sysout="A" rec = 0;"(MAXREC) = LINENUM .ZLAST" q. = q.0 = 0;qcnt=0 unshown = 0 "(changed) = data_changed" chg=changed if changed = "NO" then changed = "-- DATA NOT CHANGED" Else changed = "-- DATA UNCHANGED" call givemore qcnt=qcnt+1; q.qcnt = " EDIT ---- "DSNX"("MEMBERX") contains", maxrec" lines" if OUTXXX /= '' then do status = msg('off') Address "TSO" "FREE OUTDES(NAME1) FI(SYSUT2)" status = msg('on') address "TSO" "OUTDES NAME1" OUTXXX Address "TSO" "ALLOC FI(SYSUT2) SYSOUT("SYSOUT")", "OUTDES(NAME1)", "RECFM(V B A) LRECL(255) BLKSIZE(8920)" lastrc = RC if lastrc /= 0 then do ZEDSMSG = "OUTDES RC="lastrc ZEDLMSG = "rc="lastrc "for OUTDES "OUTXXX "LINE_BEFORE .ZCSR = NOTELINE (ZEDLMSG)" ADDRESS "ISPEXEC" "SETMSG MSG(ISRZ000)" RETURN 1 end end else Address "TSO" "ALLOC FI(SYSUT2) SYSOUT("SYSOUT") ", "RECFM(V B) LRECL(255) BLKSIZE(8920) REUSE" do rec = 1 to maxrec "(XSTATUS) = XSTATUS" REC if XSTATUS = "X" then do if unshown = 0 then qfrom = rec + 0 unshown = unshown + 1 end else do if unshown /= 0 then do recm1 = rec - 1 qcnt=qcnt+1; q.qcnt = " - - - - - - - - -" unshown "LINE(S)," , "lines" right(QFROM,6,'0')"-"right(recm1,6,'0'), "Not Displayed" unshown = 0 end "(LINE) = LINE" rec "(LABEL,NEST) = LABEL" rec qcnt=qcnt+1;q.qcnt = " "left(label,6) right(rec,6,'0') line end end if unshown /= 0 then do recm1 = maxrec qcnt=qcnt+1; q.qcnt = " - - - - - - - - -" unshown "LINE(S)," , "lines" right(QFROM,6,'0')"-"right(recm1,6,'0'), "Not Displayed" unshown = 0 end if OUTXXX /= 'ECHO' then do Address "TSO" "EXECIO * DISKW SYSUT2 (STEM Q. FINIS" lrc=rc; if lrc /=0 then call exorcist; IF OUTXXX /= "" then Address "TSO" "FREE FI(SYSUT2) OUTDES(NAME1) " end else do Address "TSO" "ALLOC DDNAME(SYSPRINT) DS(*) REUSE" Address "TSO" "EXECIO * DISKW SYSPRINT (STEM Q. FINIS" lrc=rc; if lrc /=0 then call exorcist; end return 0 givemore: " (VAR018) = DATAID" " (VAR018A) = DATASET" " (VAR043) = MEMBER" " (DSNX) = DATASET" " (NUMX) = NUMBER" IF VAR043 = "" THEN DO qcnt=qcnt+1;q.qcnt= " STATISTICS NOT AVAILABLE FOR", "A SEQUENTIAL FILE, ONLY AVAILABLE FOR PDS FILES""" return END Address "ISPEXEC" "LMINIT DATAID(VAR018) DATASET('"VAR018A"')" Address "ISPEXEC" "LMOPEN DATAID(&VAR018)" Address "ISPEXEC" "LMMFIND DATAID(&VAR018) MEMBER(&VAR043)", "STATS(YES)" LRC = RC IF LRC = 8 THEN NOTFOUND = 1 x = LISTDSI("'"DSNX"'") "DIRECTORY" LMSG = "DCB=(LRECL="SYSLRECL",BLKSIZE="SYSBLKSIZE",", ||"RECFM="SYSRECFM",DSORG="SYSDSORG") NUMBER "NUMX ZEDLMSG = lmsg; Address "ISPEXEC" "SETMSG MSG(ISRZ000)" VAR043 = SUBSTR(VAR043,1,8) /************************************************************/ XYZ = VAR043 ZLVERS"."ZLMOD ZLCDATE ZLMDATE XYZ = XYZ ZLMTIME ZLCNORC ZLINORC ZLMNORC XYZ = XYZ LEFT(ZLUSER,8) " (VAR037) = LINENUM .ZLAST" IF ZLCNORC ="" THEN XYZ = VAR043, " "VAR037" *NO ", "STATISTICS* " IF NOTFOUND = "" THEN XYZ = VAR043 , "<<--------------- no prior statistics exist ---------->>" "(VAR014A) = DATA_CHANGED" if VAR014A = "NO" then do changed = "-- Data Unchanged" end else do changed = "-- Data Changed" end IF VAR014A = "YES" THEN " LINE_AFTER 0 = NOTELINE ""=== @PRINTNX issued "||, "("date('j')")" date('o') time('n') "Data has been changed "||, "===========""" ELSE " LINE_AFTER 0 = NOTELINE ""=== @PRINTNX issued "||, "("date('j')")" date('o') time('n') "======================"||, "===========""" " LINE_AFTER 0 = NOTELINE ""=== "XYZ" ==""" " LINE_AFTER 0 = NOTELINE ""=== MEMBER-- VV.MM CREATED- ", "---MODIFIED--- CURR INIT MOD LASTUSER ==""" /* ------------------------------*/ if q.qcnt = 0 then do qcnt=qcnt+1;q.qcnt= "1" qcnt=qcnt+1;q.qcnt= " " qcnt=qcnt+1;q.qcnt= " MEMBER-- VV.MM "||, "CREATED- ---MODIFIED--- CURR INIT MOD LASTUSER" qcnt=qcnt+1;q.qcnt= " "XYZ end qcnt=qcnt+1;q.qcnt= " "||substr('=',1,72,'=') qcnt=qcnt+1;q.qcnt= " -- @PRINTNX issued by" , LEFT(SYSVAR(SYSUID),8) date('o') time('n') date('j') changed if orig /= "" then do; qcnt=qcnt+1;q.qcnt = " @PRINTNX" ORIG "-- command as issued" end; qcnt=qcnt+1;q.qcnt= " "||substr('=',1,72,'=') qcnt=qcnt+1;q.qcnt= " DSN="||left(SYSDSNAME,44), "Created" SYSCREATE qcnt=qcnt+1;q.qcnt= " "LMSG qcnt=qcnt+1;q.qcnt= " "||substr('=',1,72,'=') qcnt=qcnt+1;q.qcnt= " " /* ------------------------------*/ IF ZLCNORC /="" THEN do Address "ISPEXEC" "LMCLOSE DATAID(&VAR018)" Address "ISPEXEC" "LMFREE DATAID(&VAR018)" end return exorcist: Select; when lrc = 1 then zedlmsg = "EXECIO RC=1 Data was truncated during DISKW operation" when lrc = 2 then zedlmsg = "EXECIO RC=1 Data was truncated during DISKW operation" when lrc = 20 then zedlmsg = "EXECIO RC=20 Severe ERROR" otherwise zedlmsg = "EXECIO unknown error RC="lrc ADDRESS "ISPEXEC" "SETMSG MSG(ISRZ000)" end return