Typical DCL Command Procedure to run the program :
$ DEFINE FOC$DIR1 SI$DATA
$ DELETE SI$FOCUS:*.FTM;*/LOG
$ DELETE SI$FOCUS:*.MAS;*/LOG
$ SET DEFAULT SI$FOCUS
$ FOCUS
EXEC (FOCEXEC name) INTERM=(Enrollment term)
FIN
$ CONVERT/APPEND/PAD=%D32 SI$FOCUS:PLAY.FTM SI$DATA:AIBBFL.DAT
$ DELETE SI$FOCUS:*.FTM;*/LOG
$ DELETE SI$FOCUS:*.MAS;*/LOG
$ EXIT
FOCUS program :
-*  THIS FOCEXEC WILL CORRECT THE GRADE TYPE ON THOSE STUDENTS WHO HAVE
-*  REPEATED COURSES.  EX) GRADE TYPE OF RI ON THE HIGHER GRADE & RX ON 
-*  ALL OF THE LOWER GRADES.
-*    VARIABLES USED :
-*      INTERM : THE ENDING RANGE OF TERMS TO CHECK WHEN LOOKING AT 
-*               REPEATED COURSES.
-*
-SET &HDRKEY = '$$$MSC105      SR RPT GRD     YRE';
-INCLUDE (SIS Batch Header).SEG
JOIN CLEAR *
DEFINE FILE RTFILE
JN_KEY/A11=('XX'|SID_RT);
END
TABLE FILE RTFILE
PRINT CAREER_RT SID_RT BY JN_KEY
ON TABLE HOLD AS CURTEMP1
-*
-*  CODE FOR A SPECIFIC TERM
-*
-*IF TERM_RT EQ '&INTERM'
IF CAREER_RT EQ 'CR'
END
DEFINE FILE CURTEMP1
THS_REC/A1=IF JN_KEY NE LAST JN_KEY THEN 'Y' ELSE 'N';
END
TABLE FILE CURTEMP1
PRINT CAREER_RT SID_RT BY JN_KEY
ON TABLE HOLD AS CURTEMP3
IF THS_REC EQ 'Y'
END
JOIN JN_KEY IN CURTEMP3 TO KEY IN RPFILE AS J1
DEFINE FILE CURTEMP3
SUPER_JN_KEY/A14=(ACTV_TERM_RP|'XX'|SID_RT);
END
TABLE FILE CURTEMP3
PRINT SID_RT BY SUPER_JN_KEY
ON TABLE HOLD AS CURTEMP2
WHERE (ACTV_TERM_RP NE '   ') AND (ACTV_TERM_RP GE '920') AND
      (ACTV_TERM_RP LE '&INTERM'); 
END
JOIN SUPER_JN_KEY IN CURTEMP2 TO KEY IN RTFILE AS J2
DEFINE FILE CURTEMP2
COURSE_ID/A7=EDIT(SPE_SECT_RT, '9999999$$$$');
END
TABLE FILE CURTEMP2
PRINT GRADE_TYP_RT CAREER_RT TERM_RT SPE_SECT_RT
    BY COURSE_ID 
    BY SID_RT
    BY HIGHEST OFCL_GRD_RT 
ON TABLE HOLD AS RTTEMP1
IF SPE_STAT_RT EQ 'E'
IF CRS_LVL_RT EQ 'CR'
IF OFCL_GRD_RT NE 'W' OR 'S' OR 'U' OR 'I' OR 'AU' OR 'CF'
WHERE (TERM_RT GE '920') AND (TERM_RT LE '&INTERM');
WHERE RT_020_ORDER LE SPE_CTR_RT;
END
DEFINE FILE RTTEMP1
RETAG/I1=IF (COURSE_ID EQ LAST COURSE_ID) AND (SID_RT EQ LAST SID_RT)
            THEN RETAG + 1 ELSE 1;
END
TABLE FILE RTTEMP1
PRINT GRADE_TYP_RT RETAG CAREER_RT TERM_RT SPE_SECT_RT 
    BY COURSE_ID 
    BY SID_RT
    BY HIGHEST OFCL_GRD_RT 
ON TABLE HOLD AS RTTEMP2
END
TABLE FILE RTTEMP2
PRINT OFCL_GRD_RT GRADE_TYP_RT CAREER_RT TERM_RT SPE_SECT_RT 
    BY COURSE_ID 
    BY SID_RT
    BY HIGHEST RETAG 
ON TABLE HOLD AS RTTEMP3
END
DEFINE FILE RTTEMP3
THS_REC/A1=IF (RETAG LT LAST RETAG) OR (RETAG GE 2) THEN 'Y' ELSE 'N';
END
TABLE FILE RTTEMP3
PRINT OFCL_GRD_RT GRADE_TYP_RT CAREER_RT TERM_RT SPE_SECT_RT 
    BY COURSE_ID 
    BY SID_RT
    BY HIGHEST RETAG 
ON TABLE HOLD AS RTTEMP4
IF THS_REC EQ 'Y'
END
DEFINE FILE RTTEMP4
NEW_GRD_TYPE/A2=IF (COURSE_ID EQ LAST COURSE_ID) AND (SID_RT EQ LAST SID_RT)
                   AND (RETAG LT LAST RETAG) THEN 'RX' ELSE 'RI';
DONE_REC/A1=IF (GRADE_TYP_RT NE NEW_GRD_TYP) THEN 'Y' ELSE 'N';
END
TABLE FILE RTTEMP4
PRINT OFCL_GRD_RT GRADE_TYP_RT CAREER_RT NEW_GRD_TYPE TERM_RT SPE_SECT_RT 
    BY COURSE_ID 
    BY SID_RT
    BY HIGHEST RETAG 
ON TABLE HOLD AS RTTEMP5
IF DONE_REC EQ 'Y'
END
FILEDEF PLAY DISK PLAY.FTM APPEND
DEFINE FILE RTTEMP5
OUT_RECORD/A40=('45B'|SID_RT|'  MNT'|TERM_RT|SPE_SECT_RT|'       '|
NEW_GRD_TYPE);
END
TABLE FILE RTTEMP5
PRINT OUT_RECORD AS '' IN 1
ON TABLE SAVE AS PLAY
END
JOIN CLEAR *

 

This page hosted by Get your own Free Homepage

Hosted by www.Geocities.ws

1