home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / HPTDEM.ZIP / HSTAT.RXC < prev    next >
Text File  |  1992-03-17  |  6KB  |  155 lines

  1. /* HSTAT.CMD    (c) Copyright HeteroGenius Systems Ltd 1991     */
  2. CALL RXFUNCADD "DISPLAY","HRXDLL","HRXDSPL"
  3. CALL RXFUNCADD "TBDISPL","HRXDLL","HRXDSPT"
  4. CALL RXFUNCADD "HRXPAUSE","HRXDLL","HRXPAUSE"
  5. CALL RXFUNCADD "HRXVGET","HRXDLL","HRXVPRF"
  6. CALL RXFUNCADD "HRXVPUT","HRXDLL","HRXVPRF"
  7. CALL RXFUNCADD "HAPOLST","HAPPC","HAPOLST"
  8. CALL RXFUNCADD "HAPOREQ","HAPPC","HAPOREQ"
  9. /* Obtain the profile variables */
  10. profvars = "jbrowse brwscmd lptsetup lptreset hostlu",
  11.            "outname lptname zscfl"
  12. CALL HRXVGET "HPTSO",profvars
  13. /* Get the LU name override */
  14. ARG lu .
  15. IF lu <> '' THEN hostlu = lu
  16. DO m=1 BY 0
  17.    /* Prompt user for host system LU name */
  18.    msg = ''
  19.    cursor = "HOSTLU"
  20.    DO UNTIL msg = ''
  21.       CALL DISPLAY "HBPSETH1", cursor, msg
  22.       IF result = "END" THEN LEAVE m
  23.       IF result <> "ENTER" THEN EXIT 12
  24.       msg = ''
  25.       IF hostlu = ''  THEN DO
  26.          msg = 'ENTER HOST NAME'
  27.          cursor = "HOSTLU"; ITERATE; END
  28.    END /* DO */
  29.    DO r=1 BY 0
  30.       /* Obtain a list of jobs from the host system */
  31.       DO UNTIL STREAM(tempfile,'C','QUERY EXISTS') = ''
  32.          tempfile = 'ZZZ' || TIME('S') || '.L' || SUBSTR(TIME('L'),10,2)
  33.       END
  34.       CALL HAPOLST hostlu,tempfile
  35.       IF result <> 0 THEN DO
  36.          ADDRESS CMD '@DEL' tempfile
  37.          CALL HRXPAUSE "***"; ITERATE m; END
  38.       /* Read the list of jobs into a table and close the file */
  39.       DO k = 1 WHILE LINES(tempfile) > 0
  40.          PARSE VALUE LINEIN(tempfile) WITH jobid.k x
  41.          jdata.k = STRIP(x)
  42.       END
  43.       count = k - 1
  44.       CALL LINEOUT tempfile
  45.       ADDRESS CMD '@DEL' tempfile
  46.       IF rc <> 0 THEN DO; SAY 'Cannot delete' tempfile; EXIT rc; END
  47.       /* Display the table of job identifiers */
  48.       tbselect. = ''
  49.       next = 1; msg = ''; pause = 'N'
  50.       DO FOREVER
  51.          IF pause = 'Y' THEN DO; CALL HRXPAUSE "***"; pause = 'N'; END
  52.          CALL TBDISPL "HBPJOBT1",count,next,,msg,hostlu; msg = ''
  53.          IF result = "END" THEN LEAVE
  54.          IF result <> "ENTER" THEN EXIT 12
  55.          prompt = 'Y'
  56.          firstsel = 0;
  57.          /* Search the array for selected jobs */
  58.          DO k = 1 TO count
  59.             IF tbselect.k = 'S' THEN DO
  60.                IF firstsel = 0 THEN firstsel = k
  61.                next = k
  62.                PARSE VAR jdata.k jobname jobnmbr .
  63.                IF prompt = 'Y' & pause='Y' THEN DO
  64.                   CALL HRXPAUSE "***"; pause = 'N'; END
  65.                cursor = "OUTNAME"
  66.                /* Prompt the user for the output file name */
  67.                IF prompt = 'Y' THEN DO UNTIL msg = ''
  68.                   CALL DISPLAY "HBPOUTP1",cursor,msg; msg = ''
  69.                   IF result = "END" THEN DO
  70.                      tbselect.k = ''; LEAVE k; END
  71.                   IF result <> "ENTER" THEN EXIT 12
  72.                   IF prompt <> 'Y' & prompt <> 'N' THEN DO
  73.                      msg = 'INVALID PROMPT VALUE. SPECIFY Y OR N'
  74.                      cursor = "PROMPT"; ITERATE; END
  75.                   IF jbrowse <> 'Y' & jbrowse <> 'N' THEN DO
  76.                      msg = 'INVALID BROWSE VALUE. SPECIFY Y OR N'
  77.                      cursor = "JBROWSE"; ITERATE; END
  78.                   outfile = replace(outname,"&JOBNAME",jobname)
  79.                   outfile = replace(outfile,"&JOBNO",jobnmbr)
  80.                   SELECT
  81.                   WHEN lptname <> '' & outfile <> ''
  82.                      THEN DO
  83.                         msg = 'ENTER FILE NAME OR PRINTER NAME BUT NOT BOTH'
  84.                         cursor = "OUTNAME"
  85.                      END
  86.                   WHEN lptname <> ''
  87.                      THEN DO
  88.                         setup = prstring(lptsetup)
  89.                         IF msg <> '' THEN DO
  90.                            cursor = "LPTSETUP"; ITERATE; END
  91.                         reset = prstring(lptreset)
  92.                         IF msg <> '' THEN DO
  93.                            cursor = "LPTRESET"; ITERATE; END
  94.                         outdest = lptname
  95.                      END
  96.                   WHEN outfile <> ''
  97.                      THEN DO
  98.                         IF VERIFY(outfile,'<>|&"','M') <> 0 THEN DO
  99.                            msg = 'INVALID CHARACTERS IN FILE NAME'
  100.                            cursor = "OUTNAME"; ITERATE; END
  101.                         setup = ''; reset = ''
  102.                         outdest = outfile
  103.                      END
  104.                   OTHERWISE
  105.                      msg = 'ENTER FILE NAME OR PRINTER NAME'
  106.                      cursor = "OUTNAME"
  107.                   END /* SELECT */
  108.                END /* IF */
  109.                pause = 'Y'
  110.                /* Retrieve the output from the host */
  111.                tbselect.k = '*'
  112.                CALL HAPOREQ hostlu,outdest,jobid.k,setup,reset
  113.                IF result <> 0 THEN DO
  114.                   msg = "NO OUTPUT FOR JOB"; LEAVE k; END
  115.                IF lptname = '' & jbrowse = 'Y' & brwscmd <> '' THEN DO
  116.                   ADDRESS CMD '@'brwscmd outdest
  117.                   IF rc <> 0 THEN DO
  118.                      msg = brwscmd 'command failed, rc='rc
  119.                      LEAVE k; END
  120.                   pause = 'N'
  121.                END
  122.             END /* IF */
  123.          END k
  124.          IF k > count THEN next = firstsel
  125.          IF next = 0 THEN ITERATE r
  126.       END /* DO FOREVER */
  127.       LEAVE r
  128.    END r
  129. END m
  130. /* Save the profile variables */
  131. CALL HRXVPUT "HPTSO",profvars
  132. EXIT 0
  133. /* Procedure to replace one substring by another */
  134. replace: PROCEDURE
  135.    PARSE ARG source,string1,string2
  136.    PARSE UPPER ARG usource,ustring1
  137.    i = POS(ustring1,usource)
  138.    IF i = 0 THEN RETURN source
  139.    RETURN INSERT(string2,DELSTR(source,i,LENGTH(string1)),i-1)
  140. /* Procedure to parse printer setup/reset strings */
  141. prstring: PROCEDURE EXPOSE msg
  142.    PARSE ARG lptstring
  143.    msg1 = 'INVALID PRINTER STRING'
  144.    string = ''
  145.    DO WHILE lptstring <> ''
  146.       PARSE VAR lptstring part '\' +1 decval +3 lptstring
  147.       string = string || part
  148.       IF decval = '' THEN LEAVE
  149.       IF LENGTH(decval) <> 3 THEN DO; msg = msg1; RETURN ''; END
  150.       IF DATATYPE(decval,'W') = 0 THEN DO; msg = msg1; RETURN ''; END
  151.       IF decval < 0 | decval > 255 THEN DO; msg = msg1; RETURN '';END
  152.       string = string || D2C(decval)
  153.    END
  154.    RETURN string
  155.