Typical DCL Command Procedure to set up the program :
$ OPEN/READ INPUT_FILE SI$FOCUS:(FOCEXEC name)PRM.DAT $ READ INPUT_FILE BEG_DATE $ CLOSE INPUT_FILE $ EXEC_REC = "EXEC (FOCEXEC name) COMP_DATE=" + BEG_DATE $ OPEN/READ INPUT_FILE SI$FOCUS:(FOCEXEC name).COM $ OPEN/WRITE OUTPUT_FILE SI$FOCUS:(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 EXEC_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$FOCUS:(FOCEXEC name).TMP SI$FOCUS:(FOCEXEC name).COM;/LOG $! $! Compute and write date to use next time $! $ NEW_DAY = F$CVTIME(,,"DAY") $ NEW_MONTH = F$CVTIME(,,"MONTH") $ NEW_YEAR = F$EXTRACT(2,2,F$CVTIME(,,"YEAR")) $ NEW_DATE = NEW_YEAR + NEW_MONTH + NEW_DAY $ OPEN/WRITE OUTPUT_FILE SI$FOCUS:(FOCEXEC name)PRM.DAT $ OUTFILE_REC = NEW_DATE $ WRITE OUTPUT_FILE OUTFILE_REC $ CLOSE OUTPUT_FILE $! $ @SI$FOCUS:(FOCEXEC name).COM $ EXIT
Typical DCL Command Procedure to actually run the program :
$ DELETE/LOG SI$FOCUS:*.FTM;*/LOG $ DELETE/LOG SI$FOCUS:*.MAS;*/LOG $ DEFINE FOC$DIR1 SI$DATA $ SET DEFAULT SI$FOCUS $ FOCUS EXEC (FOCEXEC name) COMP_DATE=(Date to check in YYMMDD format) FIN $ SET DEFAULT Z$PRT $ MAIL/SUBJ="CASHIER CHECKOUT REPORT" TEMPFILE.DOC (Specified e-mail address) $ RENAME TEMPFILE.DOC (FOCEXEC name).PRT /LOG $ EXIT
FOCUS program :
-* THIS FOCEXEC WILL GENERATE THE CASHIER CHECKOUT REPORT FOR THE -* PREVIOUS WEEK. -* VARIABLES USED: -* COMP_DATE : THE BEGINNING DATE TO LOOK AT CASHIER ACTIVITY. -* JOIN CLEAR * OFFLINE CLOSE FILEDEF OFFLINE DISK Z$PRT:TEMPFILE.DOC DEFINE FILE BMFILE YEAR_BM/A2=EDIT(CASH_DT, '99$$$$'); MONTH_BM/A2=EDIT(CASH_DT, '$$99$$'); DAY_BM/A2=EDIT(CASH_DT, '$$$$99'); NEW_DATE_BM/A8=(MONTH_BM|'/'|DAY_BM|'/'|YEAR_BM); MINUS_AMT_REC/P11.2C=-(AMT_RCVD_BM); END TABLE FILE BMFILE SUM CHG_RETD AS 'Debit' MINUS_AMT_REC AS 'Credit' CASH_AMT AS 'Balance' BY NEW_DATE_BM AS 'Date' BY CASH_SBCD BY CASH_ID BY CASH_OPER_ID IF CASH_DT GE '&COMP_DATE' IF CASH_SBCD EQ '(Cash subcodes)' END JOIN CLEAR *
This page hosted by
Get your own Free Homepage