Typical DCL Command Procedure to set up the program :
$ SET NOVERIFY
$ SAY :== "WRITE SYS$OUTPUT"
$!
$ SAY "This FOCEXEC displays the financial aid students" 
$ SAY "based on the award year specified."
$ SAY " "
$!
$ENTER_PARM:
$ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= -
  "Enter the award year to run this list for >>> " YEARIN 
$ LEN_YEARIN = F$LENGTH(YEARIN)
$ IF LEN_YEARIN .NE. 2 THEN GOTO ENTER_PARM
$ TYP_YEARIN = F$TYPE(YEARIN)
$ IF TYP_YEARIN .NES. "INTEGER" THEN GOTO ENTER_PARM
$ SAY " "
$!
$ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= -
  "Enter the subcode to run this list for >>> " CODEIN 
$ LEN_CODEIN = F$LENGTH(CODEIN)
$ IF LEN_CODEIN .NE. 5 THEN GOTO ENTER_PARM
$ TYP_CODEIN = F$TYPE(CODEIN)
$ IF TYP_CODEIN .NES. "INTEGER" THEN GOTO ENTER_PARM
$!
$!   Build parameter for (FOCEXEC name)
$!
$ EXEC1_REC = "EXEC (FOCEXEC name) IAWDYR=" + YEARIN + ", INFUND=" + CODEIN
$ 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 :
$ DELETE/LOG SI$FOCUS_USER:*.FTM;*
$ DELETE/LOG SI$FOCUS_USER:*.MAS;*
$ DEFINE FOC$DIR1 SI$DATA
$ SET DEFAULT SI$FOCUS_USER
$ FOCUS
EXEC (FOCEXEC name) IAWDYR=(Financial Aid Award Year), INFUND=(Financial Aid Related Subcode To Check For)
FIN
$ SET DEFAULT Z$PRT
$ RENAME TEMPFILE.DOC (FOCEXEC name).PRT /LOG
$ EXIT
FOCUS program :
-*  THIS FOCEXEC LISTS THE FINANCIAL AID STUDENTS FOR A
-*  SPECIFIED AWARD YEAR.
-*  VARIABLES USED :
-*    IAWDYR : AWARD YEAR TO SELECT STUDENTS FROM
-*    ITERM : TERM TO SELECT STUDENTS FROM
-*    INFUND : FUND NUMBER TO SELECT STUDENTS FROM
-*
OFFLINE CLOSE
FILEDEF OFFLINE DISK Z$PRT:TEMPFILE.DOC
JOIN CLEAR *
TABLE FILE SWFILE
PRINT FUND_NUM_SW AWD_YR_SW BY SID_SW
ON TABLE HOLD AS SWTEMP1
IF AWD_YR_SW EQ '&IAWDYR'
IF FUND_NUM_SW EQ '&INFUND'
IF AWPD_OFF GT 00.00
END
DEFINE FILE SWTEMP1
THS_REC/A1=IF SID_SW NE LAST SID_SW THEN 'Y' ELSE 'N';
END
TABLE FILE SWTEMP1
PRINT FUND_NUM_SW AWD_YR_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 AAFILE AS J1
JOIN TEMP_KEY WITH SID_SW IN SWTEMP2 TO KEY IN BRFILE AS J2
DEFINE FILE SWTEMP2
TEMP_KEY/A11=('XX'|SID_SW);
SID_HD_MASK/A11 = EDIT(SID_SW, '999-99-9999');
END
TABLE FILE SWTEMP2
HEADING
"<50 FINANCIAL AID STUDENTS REPORT </1"
PRINT SID_HD_MASK IN 62 AS 'Student ID' 
      ACCT_BAL_STU AS 'Account Bal.' IN 92  
      BY STU_NAME_AA AS 'Student Name' IN 20
END

 

This page hosted by Get your own Free Homepage

Hosted by www.Geocities.ws

1