Typical DCL Command Procedure to set up the program :
$ SET NOVERIFY $ SAY :== "WRITE SYS$OUTPUT" $! $ SAY "This FOCEXEC lists the students who were on financial aid" $ SAY "for the input award year, but have totally withdrawn" $ SAY "for the input enrollment term. Also, each student is" $ SAY "indicated whether or not they are first time." $ 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 $ SAY " " $! $ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= - "Enter the award year to run this list for >>> " AWDIN $ LEN_AWDIN = F$LENGTH(AWDIN) $ IF LEN_AWDIN .NE. 2 THEN GOTO ENTER_PARM $ TYP_AWDIN = F$TYPE(AWDIN) $ IF TYP_AWDIN .NES. "INTEGER" THEN GOTO ENTER_PARM $ SAY " " $! $ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= - "Enter the award period to run this list for >>> " AWDPD $ LEN_AWDIN = F$LENGTH(AWDPD) $ IF LEN_AWDIN .NE. 3 THEN GOTO ENTER_PARM $! $! Build parameter for (FOCEXEC name) $! $ EXEC1_REC = "EXEC (FOCEXEC name) INTERM=" + TERMIN + " ,AWDYR=" + AWDIN - + " ,AWDPD=" + AWDPD $ 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=(Enrollment Term),AWDYR=(Award Year),AWDPD=(Award Period FIN $ SET DEFAULT Z$PRT $ RENAME TEMPFILE.DOC (FOCEXEC name).PRT /LOG $ SET DEFAULT SYS$LOGIN $ EXIT
FOCUS program :
-* THIS FOCEXEC WILL GENERATE A LISTING OF STUDENTS WHO HAVE BEEN ON
-* FINANCIAL AID AND WHO HAVE TOTALLY WITHDRAWN FOR THE INPUT TERM.
-* ALSO, STUDENTS ARE INDICATED IF THEY ARE A FIRST TIME STUDENT HERE
-* OR NOT.
-* VARIABLES USED :
-* INTERM : THE ENROLLMENT TERM TO LOOK AT
-* AWDYR : THE AWARD YEAR TO LOOK AT
-* AWDPD : THE AWARD PERIOD TO LOOK AT
-*
JOIN CLEAR *
OFFLINE CLOSE
FILEDEF OFFLINE DISK Z$PRT:TEMPFILE.DOC
TABLE FILE SWFILE
PRINT AWPD_OFF FUND_NUM_SW BY SID_SW
ON TABLE HOLD AS SWTEMP1
IF AWD_YR_SW EQ '&AWDYR'
IF AWPD_OFF GT 00.00
IF AWPD_ID EQ '&AWDPD'
END
DEFINE FILE SWTEMP1
THS_REC/A1=IF SID_SW NE LAST SID_SW THEN 'Y' ELSE 'N';
END
TABLE FILE SWTEMP1
PRINT AWPD_OFF FUND_NUM_SW BY SID_SW
ON TABLE HOLD AS SWTEMP2
IF THS_REC EQ 'Y'
END
JOIN TEMP_KEY WITH SID_SW IN SWTEMP2 TO KEY IN RTFILE AS J1
DEFINE FILE SWTEMP2
TEMP_KEY/A14=('&INTERM'|'XX'|SID_SW);
END
TABLE FILE SWTEMP2
PRINT AWPD_OFF FUND_NUM_SW BY SID_SW
ON TABLE HOLD AS SWTEMP3
IF FAM_ATT_HRS EQ 00.00
IF TERM_RT EQ '&INTERM'
END
JOIN TEMP_KEY WITH SID_SW IN SWTEMP3 TO KEY IN RPFILE AS J2
DEFINE FILE SWTEMP3
TEMP_KEY/A11=('XX'|SID_SW);
SUPER_JN_KEY/A14=(ACTV_TERM_RP|'XX'|SID_SW);
END
TABLE FILE SWTEMP3
PRINT SID_SW BY SUPER_JN_KEY
ON TABLE HOLD AS SWTEMP4
WHERE (STU_LVL_1_RP EQ 'CR') OR (STU_LVL_2_RP EQ 'CR') OR
(STU_LVL_3_RP EQ 'CR');
WHERE (ACTV_TERM_RP LE '&INTERM');
END
JOIN SUPER_JN_KEY IN SWTEMP4 TO KEY IN RTFILE AS J3
TABLE FILE SWTEMP4
PRINT CURR_AHRS_RT BY SID_SW BY TERM_RT
ON TABLE HOLD AS SWTEMP5
IF CAREER_RT EQ 'CR'
IF SPE_CTR_RT GT 0
IF CRS_LVL_RT NE 'CE'
END
DEFINE FILE SWTEMP5
THS_REC/A1=IF SID_SW NE LAST SID_SW THEN 'Y' ELSE 'N';
TERM_HOLD/A3=TERM_RT;
END
TABLE FILE SWTEMP5
PRINT CURR_AHRS_RT TERM_HOLD BY SID_SW
ON TABLE HOLD AS SWTEMP6
IF THS_REC EQ 'Y'
END
JOIN CLEAR *
JOIN TEMP_KEY WITH SID_SW IN SWTEMP6 TO KEY IN RTFILE AS J1
DEFINE FILE SWTEMP6
TEMP_KEY/A14=('&INTERM'|'XX'|SID_SW);
END
TABLE FILE SWTEMP6
PRINT CURR_AHRS_RT TERM_HOLD BY SID_SW BY HIGHEST LST_D_ATT_RT
ON TABLE HOLD AS SWTEMP7
IF TERM_RT EQ '&INTERM'
WHERE RT_020_ORDER LE SPE_CTR_RT;
END
DEFINE FILE SWTEMP7
THS_REC/A1=IF SID_SW NE LAST SID_SW THEN 'Y' ELSE 'N';
END
TABLE FILE SWTEMP7
PRINT LST_D_ATT_RT CURR_AHRS_RT TERM_HOLD BY SID_SW
ON TABLE HOLD AS SWTEMP8
IF THS_REC EQ 'Y'
END
JOIN CLEAR *
JOIN TEMP_KEY WITH SID_SW IN SWTEMP8 TO KEY IN AAFILE AS J1
DEFINE FILE SWTEMP8
TEMP_KEY/A11=('XX'|SID_SW);
SID_OUT/A11=EDIT(SID_SW, '999-99-9999');
FST_TIME/A1=IF TERM_HOLD EQ '&INTERM' THEN 'Y' ELSE 'N';
YEAR_HOLD/A2=EDIT(LST_D_ATT_RT, '99$$$$');
MON_HOLD/A2=EDIT(LST_D_ATT_RT, '$$99$$');
DAY_HOLD/A2=EDIT(LST_D_ATT_RT, '$$$$99');
NEW_DATE_HOLD/A8=(MON_HOLD|'/'|DAY_HOLD|'/'|YEAR_HOLD);
END
TABLE FILE SWTEMP8
HEADING CENTER
"<36 BUSINESS OFFICE TOTALLY WITHDRAWN FINANCIAL AID STUDENT REPORT </1"
PRINT SID_OUT AS 'Student ID' IN 60 FST_TIME AS 'First Time Stu' IN 80
NEW_DATE_HOLD AS 'Last Date Att.' IN 100
BY STU_NAME_AA IN 10
END
JOIN CLEAR *
This page hosted by
Get your own Free Homepage