home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 8 Other
/
08-Other.zip
/
HPTDEM.ZIP
/
HSTAT.RXC
< prev
next >
Wrap
Text File
|
1992-03-17
|
6KB
|
155 lines
/* HSTAT.CMD (c) Copyright HeteroGenius Systems Ltd 1991 */
CALL RXFUNCADD "DISPLAY","HRXDLL","HRXDSPL"
CALL RXFUNCADD "TBDISPL","HRXDLL","HRXDSPT"
CALL RXFUNCADD "HRXPAUSE","HRXDLL","HRXPAUSE"
CALL RXFUNCADD "HRXVGET","HRXDLL","HRXVPRF"
CALL RXFUNCADD "HRXVPUT","HRXDLL","HRXVPRF"
CALL RXFUNCADD "HAPOLST","HAPPC","HAPOLST"
CALL RXFUNCADD "HAPOREQ","HAPPC","HAPOREQ"
/* Obtain the profile variables */
profvars = "jbrowse brwscmd lptsetup lptreset hostlu",
"outname lptname zscfl"
CALL HRXVGET "HPTSO",profvars
/* Get the LU name override */
ARG lu .
IF lu <> '' THEN hostlu = lu
DO m=1 BY 0
/* Prompt user for host system LU name */
msg = ''
cursor = "HOSTLU"
DO UNTIL msg = ''
CALL DISPLAY "HBPSETH1", cursor, msg
IF result = "END" THEN LEAVE m
IF result <> "ENTER" THEN EXIT 12
msg = ''
IF hostlu = '' THEN DO
msg = 'ENTER HOST NAME'
cursor = "HOSTLU"; ITERATE; END
END /* DO */
DO r=1 BY 0
/* Obtain a list of jobs from the host system */
DO UNTIL STREAM(tempfile,'C','QUERY EXISTS') = ''
tempfile = 'ZZZ' || TIME('S') || '.L' || SUBSTR(TIME('L'),10,2)
END
CALL HAPOLST hostlu,tempfile
IF result <> 0 THEN DO
ADDRESS CMD '@DEL' tempfile
CALL HRXPAUSE "***"; ITERATE m; END
/* Read the list of jobs into a table and close the file */
DO k = 1 WHILE LINES(tempfile) > 0
PARSE VALUE LINEIN(tempfile) WITH jobid.k x
jdata.k = STRIP(x)
END
count = k - 1
CALL LINEOUT tempfile
ADDRESS CMD '@DEL' tempfile
IF rc <> 0 THEN DO; SAY 'Cannot delete' tempfile; EXIT rc; END
/* Display the table of job identifiers */
tbselect. = ''
next = 1; msg = ''; pause = 'N'
DO FOREVER
IF pause = 'Y' THEN DO; CALL HRXPAUSE "***"; pause = 'N'; END
CALL TBDISPL "HBPJOBT1",count,next,,msg,hostlu; msg = ''
IF result = "END" THEN LEAVE
IF result <> "ENTER" THEN EXIT 12
prompt = 'Y'
firstsel = 0;
/* Search the array for selected jobs */
DO k = 1 TO count
IF tbselect.k = 'S' THEN DO
IF firstsel = 0 THEN firstsel = k
next = k
PARSE VAR jdata.k jobname jobnmbr .
IF prompt = 'Y' & pause='Y' THEN DO
CALL HRXPAUSE "***"; pause = 'N'; END
cursor = "OUTNAME"
/* Prompt the user for the output file name */
IF prompt = 'Y' THEN DO UNTIL msg = ''
CALL DISPLAY "HBPOUTP1",cursor,msg; msg = ''
IF result = "END" THEN DO
tbselect.k = ''; LEAVE k; END
IF result <> "ENTER" THEN EXIT 12
IF prompt <> 'Y' & prompt <> 'N' THEN DO
msg = 'INVALID PROMPT VALUE. SPECIFY Y OR N'
cursor = "PROMPT"; ITERATE; END
IF jbrowse <> 'Y' & jbrowse <> 'N' THEN DO
msg = 'INVALID BROWSE VALUE. SPECIFY Y OR N'
cursor = "JBROWSE"; ITERATE; END
outfile = replace(outname,"&JOBNAME",jobname)
outfile = replace(outfile,"&JOBNO",jobnmbr)
SELECT
WHEN lptname <> '' & outfile <> ''
THEN DO
msg = 'ENTER FILE NAME OR PRINTER NAME BUT NOT BOTH'
cursor = "OUTNAME"
END
WHEN lptname <> ''
THEN DO
setup = prstring(lptsetup)
IF msg <> '' THEN DO
cursor = "LPTSETUP"; ITERATE; END
reset = prstring(lptreset)
IF msg <> '' THEN DO
cursor = "LPTRESET"; ITERATE; END
outdest = lptname
END
WHEN outfile <> ''
THEN DO
IF VERIFY(outfile,'<>|&"','M') <> 0 THEN DO
msg = 'INVALID CHARACTERS IN FILE NAME'
cursor = "OUTNAME"; ITERATE; END
setup = ''; reset = ''
outdest = outfile
END
OTHERWISE
msg = 'ENTER FILE NAME OR PRINTER NAME'
cursor = "OUTNAME"
END /* SELECT */
END /* IF */
pause = 'Y'
/* Retrieve the output from the host */
tbselect.k = '*'
CALL HAPOREQ hostlu,outdest,jobid.k,setup,reset
IF result <> 0 THEN DO
msg = "NO OUTPUT FOR JOB"; LEAVE k; END
IF lptname = '' & jbrowse = 'Y' & brwscmd <> '' THEN DO
ADDRESS CMD '@'brwscmd outdest
IF rc <> 0 THEN DO
msg = brwscmd 'command failed, rc='rc
LEAVE k; END
pause = 'N'
END
END /* IF */
END k
IF k > count THEN next = firstsel
IF next = 0 THEN ITERATE r
END /* DO FOREVER */
LEAVE r
END r
END m
/* Save the profile variables */
CALL HRXVPUT "HPTSO",profvars
EXIT 0
/* Procedure to replace one substring by another */
replace: PROCEDURE
PARSE ARG source,string1,string2
PARSE UPPER ARG usource,ustring1
i = POS(ustring1,usource)
IF i = 0 THEN RETURN source
RETURN INSERT(string2,DELSTR(source,i,LENGTH(string1)),i-1)
/* Procedure to parse printer setup/reset strings */
prstring: PROCEDURE EXPOSE msg
PARSE ARG lptstring
msg1 = 'INVALID PRINTER STRING'
string = ''
DO WHILE lptstring <> ''
PARSE VAR lptstring part '\' +1 decval +3 lptstring
string = string || part
IF decval = '' THEN LEAVE
IF LENGTH(decval) <> 3 THEN DO; msg = msg1; RETURN ''; END
IF DATATYPE(decval,'W') = 0 THEN DO; msg = msg1; RETURN ''; END
IF decval < 0 | decval > 255 THEN DO; msg = msg1; RETURN '';END
string = string || D2C(decval)
END
RETURN string