Click the globe to download the accompanying MS Word files (in ZIP format) ->
Typical DCL Command Procedure to run the program : $! $! This command procedure will create the mail merge file so that $! continuing education can produce certificates. $! $ SET NOVERIFY $ SET NOCONTROL_Y $ ASK := READ/PROMPT= $ SAY := WRITE SYS$OUTPUT $! $ MONTH_01 = "JANUARY" $ MONTH_02 = "FEBRUARY" $ MONTH_03 = "MARCH" $ MONTH_04 = "APRIL" $ MONTH_05 = "MAY" $ MONTH_06 = "JUNE" $ MONTH_07 = "JULY" $ MONTH_08 = "AUGUST" $ MONTH_09 = "SEPTEMBER" $ MONTH_10 = "OCTOBER" $ MONTH_11 = "NOVEMBER" $ MONTH_12 = "DECEMBER" $! $! Delete any hold files that may have been left over from previous runs. $! $ DELETE/LOG SYS$LOGIN:*.FTM;* $! $ COPY/LOG SI$FEX_USER:WORDFMT.MFD SYS$LOGIN:*.MAS; $ CL $! $! Create course section list file. $! $ OPEN/WRITE crs_file SYS$LOGIN:CRSFILE.DOC $ CLOSE crs_file $! $! Create certificate hold file. $! $ OPEN/WRITE cert_file SYS$LOGIN:CERTHOLD.DOC $ CLOSE cert_file $! $! Prompt for term. $! $ENTER_PARM_TERM: $ READ SYS$COMMAND/TIME=60/END=EXIT_LOOP/ERROR=EXIT_LOOP/PROMPT= - "Enter the five digit term to run the certificates for (CCYYX) >>> " TERMIN $ LEN_TERMIN = F$LENGTH(TERMIN) $ IF LEN_TERMIN .NE. 5 THEN GOTO ENTER_PARM_TERM $ TYP_TERMIN = F$TYPE(TERMIN) $ IF TYP_TERMIN .NES. "INTEGER" THEN GOTO ENTER_PARM_TERM $! $! Prompt for course section. $! $ENTER_PARM_CRS: $ SAY "" $ SAY "Enter the course section to run the certificates " $ READ SYS$COMMAND/TIME=60/END=EXIT_LOOP/ERROR=EXIT_LOOP/PROMPT= - "for (ex : YOD 626 40) >>> " CRSIN $ LEN_CRSIN = F$LENGTH(CRSIN) $ IF LEN_CRSIN .NE. 10 THEN GOTO ENTER_PARM_CRS $ TYP_CRSIN = F$TYPE(CRSIN) $ IF TYP_CRSIN .NES. "STRING" THEN GOTO ENTER_PARM_CRS $! $! Add course section to list. $! $ OPEN/APPEND crs_file SYS$LOGIN:CRSFILE.DOC $ WRITE crs_file CRSIN $ CLOSE crs_file $! $! Prompt user for more course sections. $! $ CL $ SAY "" $ ASK "Enter in more courses [Y]? " SYS$COMMAND YN $ IF YN .EQS. "" THEN YN = "Y" $ IF YN .EQS. "Y" THEN GOTO ENTER_PARM_CRS $! $! Create/run FOCUS program for all course sections in list. $! $ CL $ SAY "" $ SAY "Please wait while program executes..." $ SAY "" $ OPEN/READ crs_file SYS$LOGIN:CRSFILE.DOC $! $READ_LOOP_FST: $! $ DELETE/LOG SYS$LOGIN:*.FTM;* $ READ/END_OF_FILE=EXIT_LOOP_LST crs_file crs_record $ COM_FILE = "SYS$LOGIN:FOCTEMP.COM" $! $ OPEN/WRITE output_file 'COM_FILE' $! $ WRITE output_file "$ DEFINE FOC$DIR1 SI$DATA" $ WRITE output_file "$ DEFINE FOC$DIR2 SI$FEX,SI$MFD" $ WRITE output_file "$ SET DEFAULT SYS$LOGIN" $ WRITE output_file "$ FOCUS" $ WRITE output_file "EXEC (FOCUS Program)" $ WRITE output_file TERMIN $ WRITE output_file F$EXTRACT(0,10,crs_record) $ WRITE output_file "FIN" $ WRITE output_file "$ EXIT" $! $ CLOSE output_file $ SUBMIT/NOPRINT/NOTIFY 'COM_FILE' $ SYNCHRONIZE FOCTEMP $! $! Check to see if hold files were created. $! $ IF (F$SEARCH("SYS$LOGIN:RTTEMP1.FTM;") .EQS. "") $ THEN $ CL $ SAY " " $ SAY "No course enrollment found for the following : " $ SAY F$EXTRACT(0,10,crs_record) $ SAY " " $ WAIT 00:00:05 $ GOTO READ_LOOP_FST $ ENDIF $! $ CONVERT/APPEND SYS$LOGIN:CERTOUT.FTM SYS$LOGIN:CERTHOLD.DOC $ GOTO READ_LOOP_FST $! $EXIT_LOOP_LST: $! $ CLOSE crs_file $! $! $ OPEN/READ input_file SYS$LOGIN:CERTHOLD.DOC $ OPEN/WRITE output_file SYS$LOGIN:CERTMAIL.DOC $! $! Extract "header" records. $! $ READ/END_OF_FILE=EXIT_LOOP_HOLD input_file in_record $ WRITE output_file "START|NAME|TITLE|BEGINDT|ENDDT|CEU|END*" $! $READ_LOOP_HOLD: $! $! Read in "static" fields. $! $ READ/END_OF_FILE=EXIT_LOOP_HOLD input_file in_record $ IF F$EXTRACT(0,5,in_record) .NES. "*****" $ THEN $ WRITE output_file in_record $ READ/END_OF_FILE=EXIT_LOOP_HOLD input_file in_record $! $ MON1 = F$EXTRACT(5,2,in_record) $ MON2 = F$EXTRACT(14,2,in_record) $ WRITE output_file "|" + MONTH_'MON1' + " " + F$EXTRACT(7,2,in_record) + - ", " + F$EXTRACT(1,4,in_record) + "|" + - MONTH_'MON2' + " " + F$EXTRACT(16,2,in_record) + - ", " + F$EXTRACT(10,4,in_record) $! $ READ/END_OF_FILE=EXIT_LOOP_HOLD input_file in_record $ READ/END_OF_FILE=EXIT_LOOP_HOLD input_file in_record $ WRITE output_file in_record $ ENDIF $! $ GOTO READ_LOOP_HOLD $! $EXIT_LOOP_HOLD: $! $ CLOSE input_file $ CLOSE output_file $! $ USER = F$EDIT(F$GETJPI("","USERNAME"),"UPCASE,COLLAPSE") $ MAIL/SUBJECT="Certificate File" SYS$LOGIN:CERTMAIL.DOC 'USER' $! $ CL $ SAY " " $ SAY " " $ WAIT 00:00:05 $! $EXIT_LOOP: $! $ SAY " " $ SAY "All done..." $ SAY " " $! $! CLEAN UP. $! $ DELETE/LOG SYS$LOGIN:CERTMAIL.DOC;* $ DELETE/LOG SYS$LOGIN:CERTHOLD.DOC;* $ DELETE/LOG SYS$LOGIN:CERTIN.DOC;* $ DELETE/LOG SYS$LOGIN:CRSFILE.DOC;* $ DELETE/LOG SYS$LOGIN:FOCTEMP.COM;* $ DELETE/LOG SYS$LOGIN:FOCTEMP.LOG;* $ DELETE/LOG SYS$LOGIN:*.MAS;* $ DELETE/LOG SYS$LOGIN:*.FTM;* $! $ EXIT FOCUS program : SET PAGE = NOPAGE SET LINES = 999999 JOIN CLEAR * -PROMPT &TERM/A5.ENTER THE FIVE DIGIT TERM OF INPUT COURSE SECTION (CCYYX) : -PROMPT &CRS/A9.ENTER THE NAME OF INPUT COURSE SECTION (EX : YOD 626 40) : -* -* Select students enrolled in input courses for the specified term. -* TABLE FILE RTFILE PRINT STU_ID BY TERM BY SECTION_ID WHERE SPE_STATUS NE 'D'; WHERE SECTION_ID EQ '&CRS'; WHERE RT020_ORDER LE STU_PGM_ENTRY_CNTR; WHERE TERM EQ '&TERM'; ON TABLE HOLD AS RTTEMP1 END -* -* Retrieve course information. -* JOIN TEMP_KEY WITH SECTION_ID IN RTTEMP1 TO KEY IN RCFILE AS J1 -* DEFINE FILE RTTEMP1 TEMP_KEY/A16=TERM|SECTION_ID; END TABLE FILE RTTEMP1 PRINT SECT_START_DT SECT_END_DT RC_CRS_TITLE GROUP_CNTCT1 BY STU_ID WHERE SECTION_ID EQ '&CRS'; WHERE TERM EQ '&TERM'; ON TABLE HOLD AS RCTEMP1 END -* -* Retrieve student information. -* JOIN STU_ID IN RCTEMP1 TO KEY IN AAFILE AS J2 DEFINE FILE RCTEMP1 -* TMP_NAME/A32=GETTOK(STU_NAME,32,2,',',32,TMP_NAME); SFX_NAME/A5=GETTOK(STU_NAME,32,3,',',5,SFX_NAME); FMN_NAME/A32=LJUST(32,TMP_NAME,FMN_NAME); FST_NAME/A32=GETTOK(FMN_NAME,32,1,' ',32,FST_NAME); MDL_NAME/A32=GETTOK(FMN_NAME,32,2,' ',32,MDL_NAME); LST_NAME/A32=GETTOK(STU_NAME,32,1,',',32,LST_NAME); EXPNDNME/A72=FMN_NAME || (' ' | LST_NAME | ' ') || SFX_NAME || '*'; CMPRSNME/A32=GETTOK(EXPNDNME,66,1,'*',32,CMPRSNME); FUL_NAME/A32=LJUST(32,CMPRSNME,FUL_NAME); -* SECT_START_ALP/A8=EDIT(SECT_START_DT); SECT_END_ALP/A8=EDIT(SECT_END_DT); -* NEW_GROUP_CNTCT1/P05.2=GROUP_CNTCT1*100; ALP_GROUP_CNTCT1/A5=EDIT(NEW_GROUP_CNTCT1); FMT_GROUP_CNTCT1/A5=IF EDIT(ALP_GROUP_CNTCT1,'$9') NE '0' THEN EDIT(ALP_GROUP_CNTCT1,'$99') || '.' || EDIT(ALP_GROUP_CNTCT1,'$$$99') ELSE IF EDIT(ALP_GROUP_CNTCT1,'$$9') NE '0' THEN EDIT(ALP_GROUP_CNTCT1,'$$9') || '.' || EDIT(ALP_GROUP_CNTCT1,'$$$99') ELSE '.' || EDIT(ALP_GROUP_CNTCT1,'$$$99'); -* L1/A75 = 'START' || '|' || FUL_NAME || '|' || RC_CRS_TITLE ; L2/A75 = '|' || SECT_START_ALP || '|' || SECT_END_ALP ; EOR/A15 = '|' || FMT_GROUP_CNTCT1 || '|END*'; END TABLE FILE RCTEMP1 "*****" -* PRINT SEX AS '' BY STU_ID NOPRINT ON STU_ID SUBHEAD "<1
This page hosted by
Get your own
Free Homepage