* Name - DISPLAY.PRINT.JOB (DPJ) * Called By - TCL * Description - Utilities - Display selected print job to screen * Version - 10 Nov 2000 - INTERNET * Written - Nine Elms Solutions Ltd * *<----------------------------------- COPYRIGHT NOTICE -----------------------------------> * Copyright 2000 - code@nineelms.com * * THIS HEADER MUST REMAIN INTACT IN THIS AND ANY CHANGED VERSION OF THIS ROUTINE * * DPJ may be used and modified free of charge by anyone so long as this * copyright notice and comments above remain intact. By using this code you * agree to indemnify Nine Elms Solutions Ltd from any liability that may arise from its use. * * Selling the code for this program without prior written consent is * expressly forbidden. In other words, please ask first before you try and * make money off my program. * * Obtain permission before redistributing this software over the Internet or * in any other medium. In all cases copyright and the header must remain intact * *<------------------------------------------------------------------------------------------> *<----------------------------------- PROGRAMMER NOTES -----------------------------------> * This routine will display a held print job to the screen as long as it was created * on the Account from which the report was derived. * * It has been written to work with Mvbase and HOSTACCESS but can be tailored to work with * other Multivalue platforms. Check out and replace the relevant SYSTEM commands on your * platform and amend accordingly. * There are 2 additional programs required they are 80 & 132 (they switch thedisplay mode * to 80 or 132 columns), they also have been written with Mvbase and HOSTACCESS in mind * and will need amending to function on other Multivalue platforms. *<------------------------------------------------------------------------------------------> * PROMPT "" EQU TILDE TO CHAR(126) EQU BUZ TO CHAR(7), SVM TO CHAR(252), VM TO CHAR(253), AM TO CHAR(254) COMMAND = SENTENCE() SPOOLER.NO = FIELD(COMMAND,' ',2)[1,99] DETS = SYSTEM(22) ; * CHECK WITH YOUR OS CUR.ASSIGN = DETS<2> REVON = '' ;* Set to your own Preference REVOFF = '' ;* Set to your own Preference EOL = @(-4) EOS = @(-3) ESC = CHAR(27) TODAY = OCONV(DATE(),'D4') BUF = '' WHO = OCONV('','U50BB') PORT = FIELD(WHO,' ',1) ACCOUNT = FIELD(WHO,' ',2) PROGNAME = "DPJ" FINISHED = "0" HDRS = STR('*',79) HDRP = STR('*',119) CLEAR = CHAR(12) USERNAME = 'Enter your User name here' USER = USERNAME SCREENTITLE = "Utilities - Display selected print job to Screen" OPEN 'MD' TO MD ELSE STOP OPEN '%%SPOOLINFO' TO SPOOLER ELSE STMNT = "CREATE-FILE %%SPOOLINFO 1 3" EXECUTE STMNT END MVTERM = 1 ;* 19.10.2000 IF OCONV(USYSTEM(26),'MCU') NE "MVTERM" THEN * MESS = 'Only available with MvTERM' * CALL ERROR.MESSAGE(MESS,23) * STOP MVTERM = 0 ;* 19.10.2000 END DIM COL(50),ROW(50),MAX(50),IVAL(50),HMESS(50),SC(50),SPC(50) MAT SC = '' ;MAT COL = '' ;MAT ROW = '';MAT MAX = '';MAT IVAL = '' ;MAT HMESS = '';MAT SPC = '0' * ICOMS = '*<' FOR J = 1 TO 4 COL(J) = '32' ;ROW(J) = 3+J ;SPC(J) = '31' ;IVAL(J) = 'X ' NEXT J MAX(1) = 1 ;MAX(2) = 1 ;MAX(3) = 35 ;MAX(4) = 3 ;MAX(5) = 3 ;IVAL(3) = 'X.-? ' EXECUTE "CAP-HUSH-ON" GOSUB GET.JOBLIST IF SPOOLER.NO = '' THEN PASSED = 0 GOSUB DISPLAY.SCREEN END ELSE PASSED = 1 OK = 0 LOOP UNTIL OK DO IF SPOOLER.NO = '' THEN OK1 = '' MESS = 'Enter Spooler Number to be Displayed, "#" to Quit ' LOOP UNTIL OK1 DO CRT @(0,10):EOL:@(10,10):MESS :;INPUT R,3 BEGIN CASE CASE R GE "1" AND R LE "999" ;OK1 = 1 CASE R = "#" ;OK1 = 1 CASE 1 END CASE REPEAT SPOOLER.NO = R IF SPOOLER.NO = '#' THEN SPOOLER.NO = '';OK = 1 END IF SPOOLER.NO NE '' AND NOT(OK) THEN LOCATE SPOOLER.NO IN JOBLIST<1> SETTING POS THEN OK = 1 END ELSE IF PASSED THEN GOSUB DISPLAY.SCREEN PASSED = 0 END LOCATE SPOOLER.NO IN JOBLIST2<1> SETTING POS THEN MESS = "Job number entered is not available for Displaying on this Account" END ELSE MESS = "Job number entered is not available for Displaying" END CRT @(0,23):EOL:MESS:' - Press RTN':;INPUT TX CRT@(0,23):EOL: SPOOLER.NO = '' END END REPEAT * IF SPOOLER.NO = '' THEN GOTO END.OF.JOB GOTO PROCESSIT * * Displays skeleton screen * DISPLAY.SCREEN: * -------------- CRT CHAR(12):@(0,0):TODAY : @(20,0):SCREENTITLE:@(65):PROGNAME 'R#15' G = LEN(USERNAME) SP = INT((79-G)/2) CRT @(0,1):SPACE(SP):USERNAME * * Redisplay data area of screen * REDISPLAY.SCREEN: * ---------------- RETURN GET.JOBLIST: * ----------- * * Capture Print jobs created on this Account * OUTPUT = '' STMNT = "LISTPEQS (AN" EXECUTE STMNT CAPTURING OUTPUT RETURNING ERRORS CONVERT "*" TO "" IN OUTPUT OUTPUT = CHANGE(OUTPUT,"[H[J","") NO.OF.LINES = DCOUNT(OUTPUT,AM) JOBLIST = '' FOR XX = NO.OF.LINES TO 1 STEP -1 DEL.DETAILS = 1 IF OUTPUT NE '' THEN IF OUTPUT[6,7] NE 'PRINTER' THEN STATUSES = OUTPUT[21,15] CONVERT ' ' TO '' IN STATUSES IF STATUSES[1,4] NE 'STAT' THEN ASTERISK = '' BEGIN CASE CASE COUNT(OUTPUT,'QUEUE') CASE COUNT(STATUSES,'N') CASE COUNT(STATUSES,'S') CASE COUNT(STATUSES,'L') CASE COUNT(STATUSES,'O') CASE 1 JOBLIST<1,-1> = TRIM(OUTPUT[1,4]) END CASE END END END NEXT XX * * Capture ALL Print jobs * OUTPUT = '' STMNT = "LISTPEQS (N" EXECUTE STMNT CAPTURING OUTPUT RETURNING ERRORS CONVERT "*" TO "" IN OUTPUT OUTPUT = CHANGE(OUTPUT,"[H[J","") NO.OF.LINES = DCOUNT(OUTPUT,AM) JOBLIST2 = '' FOR XX = NO.OF.LINES TO 1 STEP -1 DEL.DETAILS = 1 IF OUTPUT NE '' THEN IF OUTPUT[6,7] NE 'PRINTER' THEN STATUSES = OUTPUT[21,15] CONVERT ' ' TO '' IN STATUSES IF STATUSES[1,4] NE 'STAT' THEN ASTERISK = '' BEGIN CASE CASE COUNT(OUTPUT,'QUEUE') CASE COUNT(STATUSES,'N') CASE COUNT(STATUSES,'S') CASE COUNT(STATUSES,'L') CASE COUNT(STATUSES,'O') CASE 1 JOBLIST2<1,-1> = TRIM(OUTPUT[1,4]) END CASE END END END NEXT XX RETURN * * End of Run Procedures * PROCESSIT: * --------- DETS = SYSTEM(22) IF DETS<1> = 'H' THEN DETS<1> = 'HS' ;* Suppress option Lost somewhere OPTION = DETS<1> XX = "PQ" XX<-1> = "C" XX<-1> = "C Developed by Nine Elms Solutions Ltd" XX<-1> = "C PROC written by WEBPROGS DPJ" XX<-1> = "C On ":OCONV(DATE(),'D4'):" at ":OCONV(TIME(),'MT') XX<-1> = "C" XX<-1> = "C" XX<-1> = "HSP-ASSIGN" XX<-1> = "P" XX<-1> = "HSP-EDIT ":SPOOLER.NO XX<-1> = "STON" XX<-1> = "HS" ;* SPOOL XX<-1> = "H<" XX<-1> = "HF" ;* To FILE XX<-1> = "H<" XX<-1> = "H%%SPOOLINFO" ;* Filename XX<-1> = "H<" XX<-1> = "HNNNN" ;* Spool File Id XX<-1> = "H<" XX<-1> = "HN" XX<-1> = "H<" XX<-1> = "P" IF MVTERM THEN XX<-1> = 'T "Set your window to font size of 7 Press RTN when done",+' XX<-1> = "IP" END XX<-1> = 'C Set screensize to 132 Cols' XX<-1> = "H132" XX<-1> = "P" XX<-1> = "HRUNOFF %%SPOOLINFO NNNN" XX<-1> = "P" XX<-1> = "O" XX<-1> = "O" XX<-1> = "O" XX<-1> = "O" IF MVTERM THEN XX<-1> = 'T "Set your window back to font size of 11 Press RTN when done"+' END ELSE XX<-1> = 'T "Press RTN when done",+' END XX<-1> = 'C Set screensize back to 80 Cols' XX<-1> = 'H80' XX<-1> = "P" IF OPTION NE "" THEN XX<-1> = "HSP-ASSIGN ":OPTION XX<-1> = "P" END WRITE XX ON MD,"SP132" STMNT = "SP132" EXECUTE STMNT END.OF.JOB: * ---------- * STOP * * Fatal Error Routines * 9000 MESS = "This Program Must be Run from a Proc";GOTO 9999 9001 MESS = "No ":X:" file";GOTO 9999 9002 MESS = "You are not privileged to use this option";GOTO 9999 9101 MESS = X ;GOTO 9999 * 9999 CRT @(0,23):EOL:MESS:' - Press RTN':;INPUT TX END