Typical DCL Command Procedure to set up the program :
$ SET NOVERIFY
$ SAY :== "WRITE SYS$OUTPUT"
$!
$ SAY "This FOCEXEC lists the students who are set to graduate,"
$ SAY "but have a business office hold flag on their record."
$ SAY " "
$!
$ENTER_PARM:
$ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= -
  "Enter the term to run this list for >>> " TERMIN 
$ LEN_TERMIN = F$LENGTH(TERMIN)
$ IF LEN_TERMIN .NE. 3 THEN GOTO ENTER_PARM
$ TYP_TERMIN = F$TYPE(TERMIN)
$ IF TYP_TERMIN .NES. "INTEGER" THEN GOTO ENTER_PARM
$!
$!   Build parameter for (FOCEXEC name)
$!
$ EXEC1_REC = "EXEC (FOCEXEC name) INTERM=" + TERMIN
$ OPEN/READ INPUT_FILE SI$FOCUS_USER:(FOCEXEC name).COM
$ OPEN/WRITE OUTPUT_FILE SI$FOCUS_USER:(FOCEXEC name).TMP
$READ_MORE_001:
$ READ/END_OF_FILE=BEGIN_001 INPUT_FILE IN_RECORD
$ IF F$EXTRACT(0,4,IN_RECORD) .EQS. "EXEC" 
$ THEN 
$    WRITE OUTPUT_FILE EXEC1_REC
$ ELSE
$    OUTFILE_REC = IN_RECORD
$    WRITE OUTPUT_FILE OUTFILE_REC
$ ENDIF
$ GOTO READ_MORE_001
$BEGIN_001:
$ CLOSE OUTPUT_FILE
$ CLOSE INPUT_FILE
$ RENAME SI$FOCUS_USER:(FOCEXEC name).TMP SI$FOCUS_USER:(FOCEXEC name).COM;/LOG
$ SUBMIT/QUE=SYS$FOCUS SI$FOCUS_USER:(FOCEXEC name).COM
$!
$EXIT:
$ EXIT
Typical DCL Command Procedure to actually run the program :
$ DEFINE FOC$DIR1 SI$DATA
$ DEL SI$FOCUS_USER:*.FTM;*/LOG
$ DEL SI$FOCUS_USER:*.MAS;*/LOG
$ SET DEFAULT SI$FOCUS_USER
$ FOCUS
EXEC (FOCEXEC name) INTERM=(Graduation Term)
FIN
$ SET DEFAULT Z$PRT
$ RENAME TEMPFILE.DOC (FOCEXEC name).PRT /LOG
$ NAME = F$GETJPI("","USERNAME")
$ MAIL/SUBJECT="DIPLOMA HOLD LIST/(FOCEXEC name)" (FOCEXEC name).PRT 'NAME'
$ SET DEFAULT SYS$LOGIN
$ EXIT
FOCUS program :
-*  THIS FOCEXEC WILL GENERATE A LISTING OF ALL STUDENTS WHO ARE
-*  SET TO GRADUATE, BUT HAVE A BUSINESS OFFICE HOLD FLAG ON THEIR ACCOUNT. 
-*    VARIABLES USED :
-*      INTERM : THE GRADUATION TERM TO LOOK AT.
-*
OFFLINE CLOSE
FILEDEF OFFLINE DISK Z$PRT:TEMPFILE.DOC
SET PAGE=NOPAGE
JOIN CLEAR *
TABLE FILE RPFILE
PRINT TRM_DEG_EXPC BY SID_RP
ON TABLE HOLD AS RPTEMP1
IF TRM_DEG_EXPC EQ '&INTERM'
END
JOIN TEMP_KEY WITH SID_RP IN RPTEMP1 TO KEY IN AAFILE AS J1
JOIN TEMP_KEY WITH SID_RP IN RPTEMP1 TO KEY IN BRFILE AS J2
DEFINE FILE RPTEMP1
TEMP_KEY/A11=('XX'|SID_RP);
SID_ID/A11=EDIT(SID_RP,'999-99-9999');
NAME_AND_SSN/A45=(STU_NAME_AA || (' '|SID_ID));
END
TABLE FILE RPTEMP1
HEADING
"(Form Feed Character)"
"<20 BUSINESS OFFICE HOLD DIPLOMA REPORT </1"
PRINT ACCT_BAL_STU AS 'Acct. Bal' IN 15 HOLD_FLG2 AS 'HF2' 
      HOLD_FLG5 AS 'HF5' HOLD_FLG6 AS 'HF6' HOLD_FLG7 AS 'HF7' 
      HOLD_FLG8 AS 'HF8' HOLD_FLG14 AS 'HF14' HOLD_FLG20 AS 'HF20' 
      HOLD_FLG1 AS 'HF1' HOLD_FLG21 AS 'HF21' 
      BY NAME_AND_SSN AS 'Name/SSN'
      ON NAME_AND_SSN FOLD-LINE
WHERE (HOLD_FLG2 EQ '02') OR (HOLD_FLG5 EQ '05') OR (HOLD_FLG6 EQ '06') OR 
      (HOLD_FLG7 EQ '07') OR (HOLD_FLG8 EQ '08') OR (HOLD_FLG14 EQ '14') OR 
      (HOLD_FLG20 EQ '20') OR (HOLD_FLG1 EQ '01') OR (HOLD_FLG21 EQ '21');
END
JOIN CLEAR *

 

This page hosted by Get your own Free Homepage

Hosted by www.Geocities.ws

1