Typical DCL Command Procedure to set up the program :
$ SET NOVERIFY $ SAY :== "WRITE SYS$OUTPUT" $! $ SAY "This FOCEXEC lists the students who have B/R hold flags" $ SAY "activated on them and who are registered for the" $ SAY "specified term." $ 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 parameters $! $ EXEC1_REC = "EXEC (FOCEXEC name) OUTFIL=Z$PRT:TEMPFILE.DOC, ENRTRM=" + 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 $ DELETE/LOG SI$FOCUS_USER:*.FTM;*/LOG $ DELETE/LOG SI$FOCUS_USER:*.MAS;*/LOG $ SET DEFAULT SI$FOCUS_USER $ FOCUS EXEC (FOCEXEC name) OUTFIL=Z$PRT:TEMPFILE.DOC, ENRTRM=(enrollment term) FIN $ SET DEFAULT Z$PRT $ RENAME TEMPFILE.DOC (FOCEXEC name).PRT /LOG $ SET DEFAULT SYS$LOGIN $ EXIT
FOCUS program :
-* THIS FOCEXEC WILL LIST THE STUDENTS WITH B/R HOLD FLAGS SET WHO ARE
-* REGISTERED FOR THE SPECIFIED TERM.
-* VARIABLES USED :
-* &ENRTRM : THE ENROLLMENT TERM TO SELECT STUDENTS FROM
-*
JOIN CLEAR *
OFFLINE CLOSE
FILEDEF OFFLINE DISK Z$PRT:TEMPFILE.DOC
TABLE FILE RTFILE
PRINT SID_RT BY SUBKEY_RT
ON TABLE HOLD AS RTTEMP1
IF TERM_RT EQ '&ENRTRM'
IF CURR_AHRS_RT GT 0.0
END
JOIN SUBKEY_RT IN RTTEMP1 TO KEY IN AAFILE AS J1
JOIN SUBKEY_RT IN RTTEMP1 TO KEY IN BRFILE AS J2
DEFINE FILE RTTEMP1
SID_HD_MASK/A11 = EDIT(SID_RT, '999-99-9999');
END
TABLE FILE RTTEMP1
HEADING
"<56 B/R HOLD FLAG REPORT </1"
PRINT SID_HD_MASK ACCT_BAL_STU HOLD_FLG1 IN 73 HOLD_FLG2 IN 78
HOLD_FLG5 IN 83 HOLD_FLG6 IN 88 HOLD_FLG7 IN 93
HOLD_FLG8 IN 98 HOLD_FLG14 IN 103
HOLD_FLG20 IN 108 HOLD_FLG21 IN 113
HOLD_FLG29 IN 118 HOLD_FLG30 IN 123 BY STU_NAME_AA
WHERE ((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_FLG1 EQ '01')
OR (HOLD_FLG2 EQ '02') OR (HOLD_FLG20 EQ '20') OR (HOLD_FLG21 EQ '21')
OR (HOLD_FLG29 EQ '29') OR (HOLD_FLG30 EQ '30'));
END
JOIN CLEAR *
This page hosted by
Get your own Free Homepage