Typical DCL Command Procedure to set up the program : $ SET NOVERIFY $ CLEAR $ SAY :== "WRITE SYS$OUTPUT" $! $ SAY " " $ SAY "This report produces the list of students whose residency code on" $ SAY "their matriculation record is different from the residency code on" $ SAY "their term record." $ SAY " " $! $ENTER_PARM: $! $ READ SYS$COMMAND/TIME=60/END=EXIT/ERROR=EXIT/PROMPT= - "Enter the term to run this report for >>> " FSTTRMIN $ LEN_FSTTRMIN = F$LENGTH(FSTTRMIN) $ IF LEN_FSTTRMIN .NE. 5 THEN GOTO ENTER_PARM $ TYP_FSTTRMIN = F$TYPE(FSTTRMIN) $ IF TYP_FSTTRMIN .NES. "INTEGER" THEN GOTO ENTER_PARM $! $! Build parameter for (FOCEXEC name) $! $ EXEC1_REC = "EXEC (FOCEXEC name) FSTTRM=" + FSTTRMIN $ OPEN/READ INPUT_FILE SI$FEX_USER:(FOCEXEC name).COM $ OPEN/WRITE OUTPUT_FILE SI$FEX_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$FEX_USER:(FOCEXEC name).TMP SI$FEX_USER:(FOCEXEC name).COM;/LOG $ SUBMIT/QUE=SYS$FOCUS SI$FEX_USER:(FOCEXEC name).COM $! $EXIT: $! $ EXIT Typical DCL Command Procedure to actually run the program : $! $! THIS COMMAND PROCEDURE RUNS THE FOCEXEC THAT CREATES THE $! ADMISSIONS RESIDENCY CHECK REPORT. $! $ DELETE SI$FEX_USER:*.FTM;*/LOG $ DELETE SI$FEX_USER:*.MAS;*/LOG $ DELETE SI$FEX_USER:*.WP;*/LOG $ DEFINE FOC$DIR2 SI$DATA, SI$MFD $ SET DEFAULT SI$FEX_USER $ FOCUS EXEC (FOCEXEC name) FSTTRM=(Enrollment Term) FIN $ NAME = F$GETJPI("","USERNAME") $ MAIL/SUBJECT="ADMISSIONS RESIDENCY CHECK-(FOCEXEC name)" PLAY.WP 'NAME' $ EXIT FOCUS program : -* JOIN CLEAR * SET PAGE=NOPAGE SET LINES=999999 -* -* SELECT ALL CURRICULUM STUDENTS THAT HAVE AN OPEN MATRICULATION FOR -* THE INPUT TERM; GET RESIDENCY STATUS OF MATRICULATION RECORD -* TABLE FILE AAFILE PRINT AA_RES_STAT BY STU_ID ON TABLE HOLD AS AATEMP1 WHERE (ENTRY_TERM LE '&FSTTRM') AND (EXIT_TERM GE '&FSTTRM'); WHERE EXIT_DT EQ 00000000; WHERE COLLEGE NE 'CE'; WHERE AA060_ORDER LE AP_CNTR; END -* -* REMOVE DUPLICATES -* DEFINE FILE AATEMP1 THS_REC/A1 = IF STU_ID NE LAST STU_ID THEN 'Y' ELSE 'N'; END TABLE FILE AATEMP1 PRINT AA_RES_STAT BY STU_ID ON TABLE HOLD AS AATEMP2 WHERE THS_REC EQ 'Y'; END -* -* SELECT STUDENTS WHO ARE ENROLLED FOR THE INPUT TERM; -* GET RESIDENCY STATUS OF TERM RECORD -* MATCH FILE AATEMP2 PRINT AA_RES_STAT BY STU_ID RUN FILE RTFILE PRINT TERM_RESIDENCY BY STU_ID WHERE CURR_ATTEMPTED_HRS GT 0; WHERE TERM EQ '&FSTTRM'; WHERE TERM_RESIDENCY NE 'S'; AFTER MATCH HOLD OLD-AND-NEW END -RUN -* -* PRODUCE REPORT; GET RESIDENCY EXCLUSION DATE -* JOIN STU_ID IN HOLD TO STU_ID IN AAFILE AS J1 TABLE FILE HOLD PRINT AA_RES_STAT AS 'Matriculation,Residency,Status' TERM_RESIDENCY AS 'Term,Residency,Status' RESID_QUEST_DT AS 'Residency,Exclusion,Date' BY STU_ID AS 'Student ID' ON TABLE SAVE AS PLAY FORMAT WP WHERE AA_RES_STAT NE TERM_RESIDENCY; END -* JOIN CLEAR *

 

 

This page hosted by Get your own Free Homepage

1
Hosted by www.Geocities.ws