Typical DCL Command Procedure to run the program :
$!
$! THIS COMMAND PROCEDURE RUNS THE PROCESS THAT CREATES
$! THE SPECIAL EVENTS LIST.
$!
$ DELETE/LOG SI$FEX:*.FTM;*
$ DELETE/LOG SI$FEX:*.MAS;*
$ DELETE/LOG SI$FEX:PLAY.WP;*
$!
$ DEFINE FOC$DIR1 SI$DATA
$ DEFINE FOC$DIR2 SI$FEX,SI$MFD
$!
$! CHANGE FOCUS PROGRAM ACCORDING TO THE ABOVE PARAMETERS
$!
$ PGM_DATE = F$EXTRACT(0,4,F$CVTIME("TODAY",,"YEAR")) + -
F$CVTIME("TODAY",,"MONTH") + F$CVTIME("TODAY",,"DAY")
$!
$ OPEN/READ input_file SI$FEX:(file name).FEX
$ OPEN/WRITE output_file SI$FEX:(file name).TMP
$!
$BEGIN_READ:
$!
$ READ/END=END_READ input_file out_record
$!
$ IF (F$EXTRACT(0,18,out_record) .EQS. "WHERE (BEGIN_DT EQ")
$ THEN
$ WRITE output_file "WHERE (BEGIN_DT EQ " + PGM_DATE + ") OR (END_DT EQ " + -
PGM_DATE + ") OR"
$ READ/END=END_READ input_file out_record
$ WRITE output_file " ((BEGIN_DT LE " + PGM_DATE + ") AND (END_DT GE " + -
PGM_DATE + "));"
$ ELSE
$ WRITE output_file out_record
$ ENDIF
$!
$ GOTO BEGIN_READ
$!
$END_READ:
$!
$ CLOSE input_file
$ CLOSE output_file
$ RENAME SI$FEX:(file name).TMP SI$FEX:(file name).FEX;
$!
$ SET DEFAULT SI$FEX
$ ASSIGN SI$DATA:XFOC01.DAT XFOC01
$ FOCUS
EXEC (file name)
FIN
$!
$ MAIL/SUBJECT="(file name) - Special Events List" SI$FEX:PLAY.WP (VMS mail id)
$!
$ EXIT
FOCUS program :
SET PAGE = NOPAGE
SET LINES = 999999
JOIN CLEAR *
DEFINE FILE APFILE
BLD_DESC/A45=XSFOCT(45,'AP005',BUILDING,'',BLD_DESC);
BLD_COMBO/A55=BUILDING|' - '|BLD_DESC;
-*
CHK_DESC1/A3=EDIT(EVENT_DESCRIPTION,'999');
CHK_DESC2/A1=EDIT(EVENT_DESCRIPTION,'$$$$$9');
CHK_DESC3/A3=EDIT(EVENT_DESCRIPTION,'$$$$$$$$$$$$$$$$$$$999');
-*
ALP_BGNDT/A8=EDIT(BEGIN_DT);
FMT_BGNDT/A10=EDIT(ALP_BGNDT,'$$$$99$$')|'/'|
EDIT(ALP_BGNDT,'$$$$$$99')|'/'|EDIT(ALP_BGNDT,'9999$$$$');
-*
ALP_ENDDT/A8=EDIT(END_DT);
FMT_ENDDT/A10=EDIT(ALP_ENDDT,'$$$$99$$')|'/'|
EDIT(ALP_ENDDT,'$$$$$$99')|'/'|EDIT(ALP_ENDDT,'9999$$$$');
-*
REV_BLD/A5=REVERSE(5,BUILDING,REV_BLD);
CAMPUS_CD/A1=EDIT(REV_BLD,'9');
-*
MX_USER_CONTACT/A15=MXCASE(15,USER_CONTACT,MX_USER_CONTACT);
OUT_USER_CONTACT/A25='Contact: '|MX_USER_CONTACT;
-*
NUM_START_TIME/P4=IF AP_START_TIME GE 1300 THEN AP_START_TIME-1200
ELSE AP_START_TIME;
NUM_STOP_TIME/P4=IF AP_STOP_TIME GE 1300 THEN AP_STOP_TIME-1200
ELSE AP_STOP_TIME;
-*
ALP_START_TIME/A6=IF AP_START_TIME GE 1200 THEN EDIT(NUM_START_TIME)|'PM'
ELSE EDIT(NUM_START_TIME)|'AM';
ALP_STOP_TIME/A6=IF AP_STOP_TIME GE 1200 THEN EDIT(NUM_STOP_TIME)|'PM'
ELSE EDIT(NUM_STOP_TIME)|'AM';
END
TABLE FILE APFILE
HEADING
" Start Stop"
"Room Begin Date End Date Time Time Description"
"---- ---------- -------- ----- ---- -----------"
PRINT FMT_BGNDT AS '' IN 5 FMT_ENDDT AS '' IN 17
ALP_START_TIME AS '' IN 29 ALP_STOP_TIME AS '' IN 37
EVENT_DESCRIPTION AS '' IN 45 OVER OUT_USER_CONTACT AS ''
BY CAMPUS_CD NOPRINT
BY BLD_COMBO AS ''
BY ROOM AS '' IN 1
BY FMT_BGNDT NOPRINT
WHERE (BEGIN_DT EQ 20010430) OR (END_DT EQ 20010430) OR
((BEGIN_DT LE 20010430) AND (END_DT GE 20010430));
WHERE EVENT_DESCRIPTION NE '';
-*
-* Eliminate regular term courses.
-*
WHERE ((CHK_DESC1 NE '{career-1}20') AND (CHK_DESC1 NE '{career-2}20')) OR
((CHK_DESC2 NE '1') AND (CHK_DESC2 NE '2') AND (CHK_DESC2 NE '3')) OR
((CHK_DESC3 NE 'LEC') AND (CHK_DESC3 NE 'LAB'));
ON TABLE SAVE AS PLAY FORMAT WP
ON BLD_COMBO FOLD-LINE
ON BLD_COMBO SKIP-LINE
END
JOIN CLEAR *
This page hosted by
Get your own Free Homepage