Spooler Programmer's Guide
Sample Perusal Process
Spooler Programmer’s Guide—522287-002
B-11
BEGIN
IF j <> 0 AND (i = 4 OR i = 8 OR i = 12) THEN
BEGIN
line[j] := ".";
j := j + 1;
END;
line [j] := dev^stat.name[i].<0:7>;
j := j +1;
END;
IF dev^stat.name[i].<8:15> <> " " THEN
BEGIN
line [j] := dev^stat.name[i].<8:15>;
j := j+1;
END;
END;
CASE dev^stat.state OF
BEGIN
!0! call err(dev^stat.state);
!1! line[36] ':=' "WAITING";
!2! line[36] ':=' "PRINTING";
!3! line[36] ':=' "SUSPENDED";
!4! line[36] ':=' "DEVERROR";
!5! line[36] ':=' "OFFLINE";
!6! line[36] ':=' "PROCERROR";
OTHERWISE CALL err (dev^stat.state);
END;
IF dev^stat.flags.<10> THEN line[51] :="T";
IF dev^stat.flags.<12> THEN line[52] :="D";
IF dev^stat.flags.<13> THEN line[53] :="H";
IF dev^stat.flags.<14> THEN line[54] :="E";
IF dev^stat.flags.<15> THEN line[51] :="F";
line[58] ':=' dev^stat.print^process FOR 6;
line[66] ':=' dev^stat.form^name FOR 16;
CALL WRITE (termnum, iline, 80);
error^code := SPOOLERSTATUS(supernum, 1, 1, dev^stat);
END;
IF error^code <> %14006 THEN CALL err(error^code) ;
END;
?page
! jobstat displays the status of all jobs owned by the current user.
PROC jobstat;
BEGIN
INT error^code,
temp;
! Prepare the header line of the display
line[0] := " ";
line[1] ':=' line[0] FOR 79;
line[2] ':=' "JOB";
line[8] ':=' "STATE";
line[15] ':=' "PAGES";
line[22] ':=' "COPIES";
line[30] ':=' "PRI";
line[35] ':=' "HOLD";
line[41] ':=' "LOCATION";
line[57] ':=' "REPORT";
CALL WRITE( termnum, iline, 0);
CALL WRITE( termnum, iline, 79);
job.number := 0;
job.number.<0> := 1;
job.owner^id := CREATORACCESSID;
! Get the status of each job and display it
error^code := SPOOLERSTATUS(supernum, 2, 1, job);
WHILE error^code = 0 DO
BEGIN