Program Code
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

Hosted by www.Geocities.ws

1