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