FOCUS program for student file :
-*
-* Description: To create the Student file information for use in the
-* Voice FX grade reporting process.
-*
JOIN CLEAR *
SET MORE=OFF, ALL=PASS, ASNAMES=ON, NODATA=' '
SET LINES=999999
SET PAGE=NOPAGE
FILEDEF AMFL010 DISK SI$DATA:AMFILE.DAT
-*
-* Get 'highest' grade (alpha) for a student; this will
-* determine if all grades are missing for a student.
-*
TABLE FILE RTFILE
PRINT TERM
BY STU_ID
BY HIGHEST OFFICIAL_GRADE
IF TERM EQ '&TERM'
IF CURR_ATTEMPTED_HRS GT 0
ON TABLE HOLD AS (FOCUS program for student file)H9
END
-*
DEFINE FILE (FOCUS program for student file)H9
THS_REC/A1=IF STU_ID NE LAST STU_ID THEN 'Y' ELSE 'N';
END
-*
TABLE FILE (FOCUS program for student file)H9
PRINT TERM
OFFICIAL_GRADE
BY STU_ID
IF THS_REC EQ 'Y'
ON TABLE HOLD AS (FOCUS program for student file)H8
END
-*
-* Select students registered for input term
-*
-* Create/retrieve the following data elements :
-* Semester Grade Point Average
-* Dean's List
-* Academic Warning
-* Academic Major
-* Academic Status
-*
JOIN TEMP_KEY WITH STU_ID IN (FOCUS program for student file)H8 TO KEY IN RTFILE AS J9
-*
DEFINE FILE (FOCUS program for student file)H8
TEMP_KEY/A13=('&TERM'|STU_ID);
SHORT_CUR_GPA/P05.3=IF CURR_GPA EQ 0.000 THEN 9.999 ELSE CURR_GPA;
FX_DEAN_LIST/A1=IF (DEANS_LIST EQ 'D' OR '1') AND
(EDIT(TERM, '$$9') NE 'M') THEN 'Y' ELSE 'N';
FX_ACAD_ACT/A1='N';
-*
FST_ACAD_ST/A4=DECODE ACAD_ACTION (A1 '0096'
A2 '0097'
A3 '0098'
AD '0099'
DG '0012'
SG '0099'
PB '0010'
CP '0011'
GR '0100'
ELSE ' ');
SND_ACAD_ST/A4=IF (ACAD_ACTION EQ '') AND (DEANS_LIST EQ '1') THEN '0102'
ELSE IF (ACAD_ACTION EQ '') AND (DEANS_LIST EQ 'D') THEN '0101'
ELSE IF (ACAD_ACTION EQ 'GR') AND (DEANS_LIST EQ '1') THEN '0102'
ELSE IF (ACAD_ACTION EQ 'GR') AND (DEANS_LIST EQ 'D') THEN '0101'
ELSE FST_ACAD_ST;
END
-*
TABLE FILE (FOCUS program for student file)H8
PRINT MAJOR_1
FX_DEAN_LIST
FX_ACAD_ACT
CAREER_LEVEL
SHORT_CUR_GPA
CLASS_LEVEL
OFFICIAL_GRADE
SND_ACAD_ST
BY STU_ID
ON TABLE HOLD AS (FOCUS program for student file)H0
END
-*
-* Create the following data elements :
-* Cumulative Grade Point Average
-* Class of Student
-*
JOIN STU_ID IN (FOCUS program for student file)H0 TO KEY IN RAFILE AS J1
-*
DEFINE FILE (FOCUS program for student file)H0
SHORT_GPA/P05.3=IF COLL_HIST_GPA EQ 0.000 THEN 9.999 ELSE COLL_HIST_GPA;
-*
-* Compute class level using our criteria.
-*
FIG_CLASS_LEVEL/A3 = IF CAREER_LEVEL EQ 'G' THEN CLASS_LEVEL ELSE
IF CLASS_LEVEL EQ 'US' THEN CLASS_LEVEL ELSE
IF CUM_EARNED_HRS LT 22 THEN 'FR' ELSE
IF CUM_EARNED_HRS GT 21 AND CUM_EARNED_HRS LT 54 THEN 'SO'
ELSE
IF CUM_EARNED_HRS GT 53 AND CUM_EARNED_HRS LT 87 THEN 'JR'
ELSE
IF CUM_EARNED_HRS GT 86 THEN 'SR' ELSE 'XX';
-*
NUM_CLASS/A1=DECODE FIG_CLASS_LEVEL (FR '1' SO '2' JR '3' SR '4' ELSE '5');
END
-*
TABLE FILE (FOCUS program for student file)H0
PRINT NUM_CLASS
SHORT_GPA
MAJOR_1
FX_DEAN_LIST
FX_ACAD_ACT
SHORT_CUR_GPA
SND_ACAD_ST
CAREER_LEVEL
OFFICIAL_GRADE
BY STU_ID
WHERE (CAREER_STU EQ CAREER_LEVEL);
ON TABLE HOLD AS (FOCUS program for student file)H1
END
-*
-* Create the following data elements :
-* Grade Status
-*
JOIN STU_ID IN (FOCUS program for student file)H1 TO STU_ID IN AMFL010 AS J2
-*
DEFINE FILE (FOCUS program for student file)H1
GRD_STATUS/A1=IF ((HOLD_COMMENT_KEY EQ 'M') OR
(HOLD_COMMENT_KEY EQ 'T')) AND
(HOLD_STATUS NE 'C') THEN 'O' ELSE 'C';
END
-*
TABLE FILE (FOCUS program for student file)H1
PRINT GRD_STATUS
NUM_CLASS
SHORT_GPA
MAJOR_1
FX_DEAN_LIST
FX_ACAD_ACT
SHORT_CUR_GPA
SND_ACAD_ST
CAREER_LEVEL
OFFICIAL_GRADE
BY STU_ID
ON TABLE HOLD AS (FOCUS program for student file)H2
END
-*
-* Create the following data elements :
-* PIN : Personal Identification Number
-* PAC : Personal Access Code
-*
JOIN STU_ID IN (FOCUS program for student file)H2 TO KEY IN AAFILE AS J3
-*
DEFINE FILE (FOCUS program for student file)H2
PIN_Y/A2=EDIT(BIRTH_DT,'$$99$$$$');
PIN_M/A2=EDIT(BIRTH_DT,'$$$$99$$');
PIN_D/A2=EDIT(BIRTH_DT,'$$$$$$99');
PIN_OUT/A6=PIN_M|PIN_D|PIN_Y;
PAC_OUT/A4='NNNN';
END
-*
TABLE FILE (FOCUS program for student file)H2
PRINT SEX
PIN_OUT
PAC_OUT
GRD_STATUS
NUM_CLASS
SHORT_GPA
MAJOR_1
FX_DEAN_LIST
FX_ACAD_ACT
SHORT_CUR_GPA
SND_ACAD_ST
CAREER_LEVEL
OFFICIAL_GRADE
BY STU_ID
ON TABLE HOLD AS (FOCUS program for student file)H3
END
-*
-* Write out the Student File in the format designated by Voice FX.
-*
-* Do not send any GPA if student has a hold or if a student has
-* no grades submitted.
-*
DEFINE FILE (FOCUS program for student file)H3
DUM_CREDIT/A9=('000.000.0');
DUM_GPD/A4=('00.0');
OUT_GRD_STATUS/A1=IF OFFICIAL_GRADE EQ '' THEN 'O' ELSE GRD_STATUS;
OUT_SHORT_GPA/P05.3=IF (OUT_GRD_STATUS EQ 'O') OR
(OFFICIAL_GRADE EQ '') THEN 9.999 ELSE SHORT_GPA;
OUT_SHORT_CUR_GPA/P05.3=IF (OUT_GRD_STATUS EQ 'O') OR
(OFFICIAL_GRADE EQ '') THEN 9.999
ELSE SHORT_CUR_GPA;
OUT_SND_ACAD_ST/A4=IF GRD_STATUS EQ 'O' THEN '0120' ELSE SND_ACAD_ST;
END
-*
TABLE FILE (FOCUS program for student file)H3
PRINT PIN_OUT AS '' IN 10
OUT_SHORT_GPA AS '' IN 16
SEX AS '' IN 20
PAC_OUT AS '' IN 21
OUT_SHORT_CUR_GPA AS '' IN 25
DUM_CREDIT AS '' IN 29
FX_DEAN_LIST AS '' IN 38
FX_ACAD_ACT AS '' IN 39
DUM_GPD AS '' IN 40
OUT_GRD_STATUS AS '' IN 44
NUM_CLASS AS '' IN 45
MAJOR_1 AS '' IN 46
OUT_SND_ACAD_ST AS '' IN 81
BY STU_ID AS '' IN 1
ON TABLE SAVE AS (FOCUS program for student file)H4 FORMAT WP
END
-RUN
-*
-* Format output file so that leading spaces are eliminated.
-*
FILEDEF (FOCUS program for student file)FM DISK (FOCUS program for student file)H4.WP
-*
TABLE FILE (FOCUS program for student file)FM
PRINT D2 IN 1
ON TABLE SAVE AS (FOCUS program for student file)X1
END
JOIN CLEAR *
FOCUS program for grade file :
-* *
-* Description: To create the Grades file information for use in the *
-* Voice FX grade reporting process. *
-* *
JOIN CLEAR *
SET MORE=OFF, ALL=PASS, ASNAMES=ON, NODATA=' '
SET LINES=999999
SET PAGE=NOPAGE
FILEDEF AMFL010 DISK SI$DATA:AMFILE.DAT
-*
-* Select students registered for input term
-*
TABLE FILE RTFILE
PRINT SECTION_ID
OFFICIAL_GRADE
BY STU_ID
IF TERM EQ '&TERM'
IF CURR_ATTEMPTED_HRS GT 0
ON TABLE HOLD AS (FOCUS program for grade file)H0
END
-*
-* Create grade file only for students who are not on hold.
-*
JOIN STU_ID IN (FOCUS program for grade file)H0 TO STU_ID IN AMFL010 AS J1
-*
DEFINE FILE (FOCUS program for grade file)H0
GRD_STATUS/A1=IF ((HOLD_COMMENT_KEY EQ 'M') OR
(HOLD_COMMENT_KEY EQ 'T')) AND
(HOLD_STATUS NE 'C') THEN 'O' ELSE 'C';
-*
-* Create/retrieve the following data elements :
-* Department or Area-of-Study for the course
-* Course Number or Designation
-* Course Grade
-* Course Credit Value
-*
OUT_DEPT/A10=EDIT(SECTION_ID,'9999$$$$$$$')|' ';
OUT_COUR_NUM/A10=EDIT(SECTION_ID,'$$$$9999$$$')|' ';
FAKE_SORT/A10=('1'|STU_ID);
OUT_HRS/A4=' ';
OUT_GRADE/A3=IF OFFICIAL_GRADE EQ ' ' THEN 'NO'
ELSE IF EDIT(OFFICIAL_GRADE,'9$$') EQ ' ' THEN
EDIT(OFFICIAL_GRADE,'$99') ELSE OFFICIAL_GRADE;
END
-*
TABLE FILE (FOCUS program for grade file)H0
PRINT STU_ID AS '' IN 1
OUT_DEPT AS '' IN 10
OUT_COUR_NUM AS '' IN 20
OUT_GRADE AS '' IN 30
OUT_HRS AS '' IN 35
BY FAKE_SORT NOPRINT
IF GRD_STATUS EQ 'C'
ON TABLE SAVE AS (FOCUS program for grade file)H1 FORMAT WP
END
-RUN
-*
-* Format output file so that leading spaces are eliminated.
-*
FILEDEF (FOCUS program for grade file)FM DISK (FOCUS program for grade file)H1.WP
-*
TABLE FILE (FOCUS program for grade file)FM
PRINT D2 IN 1
ON TABLE SAVE AS (FOCUS program for grade file)X1
END
JOIN CLEAR *
FOCUS program for address file :
-* *
-* Description: To create the Address file information for use in the *
-* Voice FX grade reporting process. *
-* *
JOIN CLEAR *
SET MORE=OFF, ALL=PASS, ASNAMES=ON, NODATA=' '
SET LINES=999999
SET PAGE=NOPAGE
-*
-* Select students registered for input term
-*
-* Create the following data element :
-* On or Off Campus
-*
DEFINE FILE RTFILE
ON_CAMPUS/A1=IF DORM_CODE NE '' AND DORM_ROOM NE '' THEN 'N' ELSE 'F';
END
-*
TABLE FILE RTFILE
PRINT ON_CAMPUS
BY STU_ID
IF TERM EQ '&TERM'
IF CURR_ATTEMPTED_HRS GT 0
ON TABLE HOLD AS (FOCUS program for address file)H0
END
-*
-* Create/retrieve the following data elements :
-* Address 1
-* Address 2
-* City
-* State
-* Zip
-* Country Code
-*
JOIN STU_ID IN (FOCUS program for address file)H0 TO KEY IN ADFILE AS J1
-*
DEFINE FILE (FOCUS program for address file)H0
COUN_CODE/A2=IF COUNTRY EQ 'US' THEN COUNTRY ELSE ' ';
ADDR_TAG/A1=IF (ADDR_TYPE_1 EQ 'P') OR
(ADDR_TYPE_2 EQ 'P') OR
(ADDR_TYPE_3 EQ 'P') OR
(ADDR_TYPE_4 EQ 'P') OR
(ADDR_TYPE_5 EQ 'P')
THEN 'H'
ELSE IF (ADDR_TYPE_1 EQ 'L' OR 'C') OR
(ADDR_TYPE_2 EQ 'L' OR 'C') OR
(ADDR_TYPE_3 EQ 'L' OR 'C') OR
(ADDR_TYPE_4 EQ 'L' OR 'C') OR
(ADDR_TYPE_5 EQ 'L' OR 'C')
THEN 'L' ELSE 'H';
-*
ADDR_CNT/I2=IF (ADDR_TYPE_1 EQ 'P') OR
(ADDR_TYPE_2 EQ 'P') OR
(ADDR_TYPE_3 EQ 'P') OR
(ADDR_TYPE_4 EQ 'P') OR
(ADDR_TYPE_5 EQ 'P')
THEN 0
ELSE IF (ADDR_TYPE_1 EQ 'L' OR 'C') OR
(ADDR_TYPE_2 EQ 'L' OR 'C') OR
(ADDR_TYPE_3 EQ 'L' OR 'C') OR
(ADDR_TYPE_4 EQ 'L' OR 'C') OR
(ADDR_TYPE_5 EQ 'L' OR 'C')
THEN 1 ELSE 0;
END
-*
TABLE FILE (FOCUS program for address file)H0
PRINT ON_CAMPUS
ADDR_TAG
ADDR_CNT
STREET_1
STREET_2
CITY
STATE
ZIP_CODE_DPBC
COUN_CODE
BY STU_ID
ON TABLE HOLD AS (FOCUS program for address file)H1
END
-*
TABLE FILE (FOCUS program for address file)H1
PRINT ON_CAMPUS
ADDR_CNT
STREET_1
STREET_2
CITY
STATE
ZIP_CODE_DPBC
COUN_CODE
BY STU_ID
BY ADDR_TAG
ON TABLE HOLD AS (FOCUS program for address file)H2
END
-*
DEFINE FILE (FOCUS program for address file)H2
CNT_ADDR/I2=IF (STU_ID EQ LAST STU_ID) AND (ADDR_TAG EQ LAST ADDR_TAG)
THEN CNT_ADDR + 1 ELSE ADDR_CNT;
END
-*
TABLE FILE (FOCUS program for address file)H2
PRINT ON_CAMPUS
ADDR_TAG
CNT_ADDR
STREET_1
STREET_2
CITY
STATE
ZIP_CODE_DPBC
COUN_CODE
BY STU_ID
ON TABLE HOLD AS (FOCUS program for address file)H3
END
-*
TABLE FILE (FOCUS program for address file)H3
PRINT ON_CAMPUS
ADDR_TAG
STREET_1
STREET_2
CITY
STATE
ZIP_CODE_DPBC
COUN_CODE
BY STU_ID
WHERE (ADDR_TAG EQ 'H' AND CNT_ADDR EQ 0) OR
(ADDR_TAG EQ 'L' AND CNT_ADDR EQ 1);
ON TABLE HOLD AS (FOCUS program for address file)H4
END
-*
DEFINE FILE (FOCUS program for address file)H4
NUM_OF_ADDR/I2=IF STU_ID NE LAST STU_ID THEN 1 ELSE NUM_OF_ADDR + 1;
END
-*
TABLE FILE (FOCUS program for address file)H4
PRINT ON_CAMPUS
NUM_OF_ADDR
ADDR_TAG
STREET_1
STREET_2
CITY
STATE
ZIP_CODE_DPBC
COUN_CODE
BY STU_ID
ON TABLE HOLD AS (FOCUS program for address file)H5
END
-*
TABLE FILE (FOCUS program for address file)H5
PRINT ON_CAMPUS
ADDR_TAG
STREET_1
STREET_2
CITY
STATE
ZIP_CODE_DPBC
COUN_CODE
BY STU_ID
BY HIGHEST NUM_OF_ADDR
ON TABLE HOLD AS (FOCUS program for address file)H6
END
-*
-* Create the following data element :
-* Home or Local Address
-*
DEFINE FILE (FOCUS program for address file)H6
ADDR_TYPE_OUT/A1=IF ((ADDR_TAG EQ 'H' AND NUM_OF_ADDR EQ 1) AND
(STU_ID EQ LAST STU_ID)) OR
(ADDR_TAG EQ 'L' AND NUM_OF_ADDR EQ 2)
THEN ADDR_TAG ELSE 'B';
END
-*
TABLE FILE (FOCUS program for address file)H6
PRINT ON_CAMPUS
ADDR_TYPE_OUT
STREET_1
STREET_2
CITY
STATE
ZIP_CODE_DPBC
COUN_CODE
BY STU_ID
ON TABLE HOLD AS (FOCUS program for address file)H7
END
-*
-* Get the flags to determine if address information is to be
-* printed.
-*
JOIN STU_ID IN (FOCUS program for address file)H7 TO KEY IN AAFILE AS J2
-*
TABLE FILE (FOCUS program for address file)H7
PRINT ON_CAMPUS
ADDR_TYPE_OUT
STREET_1
STREET_2
CITY
STATE
ZIP_CODE_DPBC
COUN_CODE
INFO_FLAGS_IND
INFO_FLAG_2
INFO_FLAG_3
INFO_FLAG_4
INFO_FLAG_25
INFO_FLAG_20
INFO_FLAG_29
INFO_RLSE_FLAG
STU_NAME
BY STU_ID
ON TABLE HOLD AS (FOCUS program for address file)H8
END
-*
-* Create the following data element :
-* Student First Name
-* Student Middle Name
-* Student Last Name
-*
DEFINE FILE (FOCUS program for address file)H8
FST_NAME/A32 = GETTOK(STU_NAME,32,2,' ',32,FST_NAME);
FST_NAME_EXT/A15=EDIT(FST_NAME,'999999999999999$$$$$$$$$$$$$$$$$');
MDL_NAME/A32 = GETTOK(STU_NAME,32,3,' ',32,MDL_NAME);
MDL_NAME_INT/A1=EDIT(MDL_NAME,'9$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$');
LST_NAME/A32 = GETTOK(STU_NAME,32,1,',',32,LST_NAME);
LST_NAME_EXT/A20=EDIT(LST_NAME,'99999999999999999999$$$$$$$$$$$$');
-*
ZIP_PART_1/A5=EDIT(ZIP_CODE_DPBC,'99999$$$$$$$');
ZIP_PART_2/A4=EDIT(ZIP_CODE_DPBC,'$$$$$9999$$$');
ZIP_OUT/A10=IF ZIP_PART_2 EQ '0000' OR ' '
THEN ZIP_PART_1|' '
ELSE ZIP_PART_1|'-'|ZIP_PART_2;
-*
OUT_LINE_1/A45=IF (INFO_FLAGS_IND EQ 'Y') OR
(INFO_FLAG_2 EQ 'Y') OR
(INFO_FLAG_3 EQ 'Y') OR
(INFO_FLAG_4 EQ 'Y') OR
(INFO_FLAG_25 EQ 'Y') OR
(INFO_FLAG_20 EQ 'Y') OR
(INFO_FLAG_29 EQ 'Y') OR
(INFO_RLSE_FLAG EQ 'Y')
THEN (STU_ID|'CONFIDENTIAL')
ELSE (STU_ID|FST_NAME_EXT|MDL_NAME_INT|LST_NAME_EXT);
-*
STREET1_OUT/A40=IF (INFO_FLAGS_IND EQ 'Y') OR
(INFO_FLAG_2 EQ 'Y') OR
(INFO_FLAG_3 EQ 'Y') OR
(INFO_FLAG_4 EQ 'Y') OR
(INFO_FLAG_25 EQ 'Y') OR
(INFO_FLAG_20 EQ 'Y') OR
(INFO_FLAG_29 EQ 'Y') OR
(INFO_RLSE_FLAG EQ 'Y')
THEN (' ')
ELSE STREET_1;
-*
STREET2_OUT/A40=IF (INFO_FLAGS_IND EQ 'Y') OR
(INFO_FLAG_2 EQ 'Y') OR
(INFO_FLAG_3 EQ 'Y') OR
(INFO_FLAG_4 EQ 'Y') OR
(INFO_FLAG_25 EQ 'Y') OR
(INFO_FLAG_20 EQ 'Y') OR
(INFO_FLAG_29 EQ 'Y') OR
(INFO_RLSE_FLAG EQ 'Y')
THEN (' ')
ELSE STREET_2;
-*
CITY_OUT/A20=IF (INFO_FLAGS_IND EQ 'Y') OR
(INFO_FLAG_2 EQ 'Y') OR
(INFO_FLAG_3 EQ 'Y') OR
(INFO_FLAG_4 EQ 'Y') OR
(INFO_FLAG_25 EQ 'Y') OR
(INFO_FLAG_20 EQ 'Y') OR
(INFO_FLAG_29 EQ 'Y') OR
(INFO_RLSE_FLAG EQ 'Y')
THEN (' ')
ELSE CITY;
-*
STATE_OUT/A2=IF STATE EQ 'XX' THEN ' ' ELSE STATE;
OUT_LINE_2/A19=IF (INFO_FLAGS_IND EQ 'Y') OR
(INFO_FLAG_2 EQ 'Y') OR
(INFO_FLAG_3 EQ 'Y') OR
(INFO_FLAG_4 EQ 'Y') OR
(INFO_FLAG_25 EQ 'Y') OR
(INFO_FLAG_20 EQ 'Y') OR
(INFO_FLAG_29 EQ 'Y') OR
(INFO_RLSE_FLAG EQ 'Y')
THEN (' ')
ELSE
(STATE_OUT|ZIP_OUT|COUN_CODE|' '|ADDR_TYPE_OUT|ON_CAMPUS);
END
-*
TABLE FILE (FOCUS program for address file)H8
PRINT OUT_LINE_1 AS '' IN 1 OVER
STREET1_OUT AS '' IN 1 OVER
STREET2_OUT AS '' IN 1 OVER
CITY_OUT AS '' IN 1 OVER
OUT_LINE_2 AS '' IN 1
BY STU_ID NOPRINT
ON TABLE SAVE AS (FOCUS program for address file)H9 FORMAT WP
END
-RUN
-*
-* Format output file so that leading spaces are eliminated.
-*
FILEDEF (FOCUS program for address file)FM DISK (FOCUS program for address file)H9.WP
TABLE FILE (FOCUS program for address file)FM
PRINT D2
ON TABLE SAVE AS (FOCUS program for address file)X1
END
JOIN CLEAR *
Master File Description (MFD) for FOCUS program that creates student file :
FILE=PLAY5,SUFFIX=FIX SEGNAME=ROOT FIELDNAME=D1,E01,A02,A02,$ FIELDNAME=D2,E02,A84,A84,$
Master File Description (MFD) for FOCUS program that creates the grade file :
FILE=PLAY5,SUFFIX=FIX SEGNAME=ROOT FIELDNAME=D1,E01,A02,A02,$ FIELDNAME=D2,E02,A38,A38,$
Master File Description (MFD) for FOCUS program that creates the address file :
FILE=PLAY5,SUFFIX=FIX SEGNAME=ROOT FIELDNAME=D1,E01,A04,A04,$ FIELDNAME=D2,E02,A76,A76,$
VMS DCL command procedure for formatting the extract files :
$!
$! Command procedure to correctly name the STUDENT, GRADES, and ADDRESS
$! files and to create the CONTROL file. These files are used for the
$! Voice FX grade reporting transmission.
$!
$! Determine date to use in file name.
$!
$ file_month = f$extract(5,2,f$cvtime(f$time()))
$ file_day = f$extract(8,2,f$cvtime(f$time()))
$!
$! Open CONTROL file.
$!
$ control_file = "ctr1" + file_month + file_day + ".fil"
$ OPEN/WRITE out_control_file 'control_file'
$!
$! Process STUDENT file.
$!
$! Check to see if STUDENT file exists, if not bypass processing.
$!
$ IF F$SEARCH ("(FOCUS program for student file)X1.FTM") .EQS. "" THEN GOTO Process_GRADES
$ stu_output_file = "stu1" + file_month + file_day + ".dat"
$ OPEN/READ input_file (FOCUS program for student file)X1.FTM
$ OPEN/WRITE output_file 'stu_output_file'
$ cnt_rec = 0
$!
$! Skip blank line that appears at the top of the data file
$!
$ READ/END_OF_FILE=Exit_Read_Stu input_file input_record
$!
$Loop_Read_Stu:
$!
$ READ/END_OF_FILE=Exit_Read_Stu input_file input_record
$!
$ cnt_rec = cnt_rec + 1
$ WRITE output_file input_record
$ GOTO Loop_Read_Stu
$!
$Exit_Read_Stu:
$!
$! Include PHANTOM students
$!
$ input_record = "9999990011234569.99F 9.99 O1BADM"
$ WRITE output_file input_record
$ input_record = "999999002123456 F C1BADM 0096"
$ WRITE output_file input_record
$ input_record = "9999990031234569.99M 9.99 O1BADM"
$ WRITE output_file input_record
$ input_record = "9999990041234569.99M 9.99 O1BADM 0120"
$ WRITE output_file input_record
$ cnt_rec = cnt_rec + 4
$!
$ CLOSE input_file
$ CLOSE output_file
$!
$! Update CONTROL file with STUDENT file information
$!
$ output_record = stu_output_file + "''cnt_rec'" + " "
$ output_record[19,1] := "R"
$ WRITE out_control_file output_record
$!
$Process_GRADES:
$!
$! Process GRADES file.
$!
$! Check to see if GRADES file exists, if not bypass processing.
$!
$ IF F$SEARCH ("(FOCUS program for grade file)X1.FTM") .EQS. "" THEN GOTO Process_ADDR
$ grd_output_file = "grd1" + file_month + file_day + ".dat"
$ OPEN/READ input_file (FOCUS program for grade file)X1.FTM
$ OPEN/WRITE output_file 'grd_output_file'
$ cnt_rec = 0
$!
$! Skip blank line that appears at the top of the data file
$!
$ READ/END_OF_FILE=Exit_Read_Grd input_file input_record
$!
$Loop_Read_Grd:
$!
$ READ/END_OF_FILE=Exit_Read_Grd input_file input_record
$!
$ cnt_rec = cnt_rec + 1
$ WRITE output_file input_record
$ GOTO Loop_Read_Grd
$!
$Exit_Read_Grd:
$!
$! Include PHANTOM students
$!
$ input_record = "999999001INAS 425 NO"
$ WRITE output_file input_record
$ input_record = "999999001INAS 426 NO"
$ WRITE output_file input_record
$ input_record = "999999002WRIT 101 F"
$ WRITE output_file input_record
$ input_record = "999999003PLSC 201 F"
$ WRITE output_file input_record
$ input_record = "999999004MGMT 341 N"
$ WRITE output_file input_record
$ cnt_rec = cnt_rec + 4
$!
$ CLOSE input_file
$ CLOSE output_file
$!
$! Update CONTROL file with GRADES file information
$!
$ output_record = grd_output_file + "''cnt_rec'" + " "
$ output_record[19,1] := "R"
$ WRITE out_control_file output_record
$!
$Process_ADDR:
$!
$! Process ADDRESS file.
$!
$! Check to see if ADDRESS file exists, if not bypass processing.
$!
$ IF F$SEARCH ("(FOCUS program for address file)X1.FTM") .EQS. "" THEN GOTO Exit_Pgm
$ addr_output_file = "add1" + file_month + file_day + ".dat"
$ OPEN/READ input_file (FOCUS program for address file)X1.FTM
$ OPEN/WRITE output_file 'addr_output_file'
$ cnt_rec = 0
$!
$! Skip blank line that appears at the top of the data file
$!
$ READ/END_OF_FILE=Exit_Read_Addr input_file input_record
$!
$Loop_Read_Addr:
$!
$ READ/END_OF_FILE=Exit_Read_Addr input_file input_record
$!
$ cnt_rec = cnt_rec + 1
$ WRITE output_file input_record
$ GOTO Loop_Read_Addr
$!
$Exit_Read_Addr:
$!
$ CLOSE input_file
$ CLOSE output_file
$!
$! Update CONTROL file with ADDRESS file information
$!
$ output_record = addr_output_file + "''cnt_rec'" + " "
$ output_record[19,1] := "R"
$ WRITE out_control_file output_record
$!
$Exit_Pgm:
$!
$ CLOSE out_control_file
$ EXIT
This page hosted by
Get your own Free Homepage