******************************************************************
IDENTIFICATION DIVISION.
******************************************************************
PROGRAM-ID. eREPORT.
AUTHOR. Clive Cummins.
INSTALLATION. www.tubularity.com
DATE-WRITTEN. Nov 23,2001.
*-****************************************************************
*- eREPORT
*-
*- SEND A GIVEN REPORT TO THE GIVEN RECIPIENTS E-MAIL ID.
*-****************************************************************
******************************************************************
* MODIFICATION LOG
* CCYYMMDD MODIFICATION
******************************************************************
******************************************************************
ENVIRONMENT DIVISION.
******************************************************************
******************************************************************
INPUT-OUTPUT SECTION.
******************************************************************
FILE-CONTROL.
SELECT PARM-FILE ASSIGN TO PARM-FILE-ID
FILE STATUS IS PARM-RETURN-CODE
ACCESS MODE IS SEQUENTIAL
ORGANIZATION IS LINE SEQUENTIAL.
SELECT HTML-FILE ASSIGN TO HTML-FILE-ID
FILE STATUS IS HTML-RETURN-CODE
ACCESS MODE IS SEQUENTIAL
ORGANIZATION IS LINE SEQUENTIAL.
SELECT DATA-FILE ASSIGN TO DATA-FILE-ID
FILE STATUS IS DATA-RETURN-CODE
ACCESS MODE IS SEQUENTIAL
ORGANIZATION IS LINE SEQUENTIAL.
******************************************************************
DATA DIVISION.
******************************************************************
******************************************************************
FILE SECTION.
******************************************************************
FD PARM-FILE.
01 PARM-RECORD PIC X(80).
FD HTML-FILE.
01 HTML-RECORD PIC X(80).
FD DATA-FILE.
01 DATA-RECORD PIC X(80).
******************************************************************
WORKING-STORAGE SECTION.
******************************************************************
01 PROGRAM-DETAILS.
05 PROGRAM-RELEASE.
10 PROGRAM-NAME PIC X(08) VALUE 'eREPORT'.
10 PROGRAM-REL PIC X(08) VALUE ' 1.0.00'.
05 PROGRAM-COPYRIGHT.
10 PROGRAM-COPY PIC X(16) VALUE 'COPYRIGHT: 2001'.
10 PROGRAM-AUTH PIC X(16) VALUE ' Clive Cummins.'.
******************************************************************
01 EREPORT.
******************************************************************
02 FILLER PIC X(36) VALUE "<html><head><title> ".
02 FILLER PIC X(36) VALUE "Tubularity - eREPORT ".
02 FILLER PIC X(36) VALUE "</title></head> ".
02 FILLER PIC X(36) VALUE "<body bgcolor=°yellow°><b>TO: ".
02 E-ID1 PIC X(36) VALUE " ".
02 FILLER PIC X(36) VALUE " SUBJECT: ".
02 E-SUB1 PIC X(36) VALUE " ".
02 FILLER PIC X(36) VALUE "</b><form method=°POST° ".
02 FILLER PIC X(36) VALUE "action=°mailto: ".
02 E-ID2 PIC X(36) VALUE " ".
02 FILLER PIC X(36) VALUE "?subject= ".
02 E-SUB2 PIC X(36) VALUE " ".
02 FILLER PIC X(36) VALUE "°enctype=°text/plain° target=_blank>".
02 FILLER PIC X(36) VALUE "<textarea name=°Data° rows=°20° ".
02 FILLER PIC X(36) VALUE "cols=°80° readonly> ".
02 FILLER PIC X(36) VALUE " ".
02 FILLER PIC X(36) VALUE "</textarea><br><br><b> ".
02 FILLER PIC X(36) VALUE "<input type=°submit° value=°Submit°>".
02 FILLER PIC X(36) VALUE " eREPORT by Tubularity: ".
02 FILLER PIC X(36) VALUE "<a href=°http://www.tubularity.com°>".
02 FILLER PIC X(36) VALUE "http://www.tubularity.com</a> ".
02 FILLER PIC X(36) VALUE "</b></form></body></html> ".
01 FILLER REDEFINES EREPORT.
02 EREPORT-ENTRY PIC X(36) OCCURS 022 INDEXED BY EREPORT-IDX.
* MUST INSPECT REPLACING hF8 WITH h22 AND hFB WITH h27
******************************************************************
01 FILE-DETAILS.
******************************************************************
05 PARM-FILE-ID PIC X(80) VALUE
"C:\eREPORT\eREPORT.prm".
05 PARM-RETURN-CODE PIC X(02).
05 HTML-FILE-ID PIC X(80).
05 HTML-RETURN-CODE PIC X(02).
05 DATA-FILE-ID PIC X(80).
05 DATA-RETURN-CODE PIC X(02).
******************************************************************
01 SYSTEM-COMMAND-LINE.
******************************************************************
05 MY-BROWSER PIC X(49) VALUE
'"C:\Program Files\Internet Explorer\iexplore.exe"'.
05 FILLER PIC X(01) VALUE SPACE.
05 MY-HTML-FILE PIC X(80).
******************************************************************
01 EREPORT-PARAMETERS.
******************************************************************
05 EREPORT-HTML-FILESPEC PIC X(80) VALUE
"C:\eREPORT\eREPORT.htm".
05 EREPORT-DATA-FILESPEC PIC X(80) VALUE
"C:\eREPORT\eREPORT.dat".
05 EREPORT-RECIPIENT-EMAIL PIC X(80) VALUE
"accounting@employer.com".
05 EREPORT-SUBJECT PIC X(80) VALUE
"Report".
01 FILLER REDEFINES EREPORT-PARAMETERS.
05 PARM-ENTRY PIC X(80) OCCURS 4 INDEXED BY PARM-IDX.
******************************************************************
01 CALL9135-PARAMETERS.
******************************************************************
05 CALL9135-CALL-FUNCTION PIC X(01) VALUE 35 COMP-X.
05 CALL9135-RETURN-CODE PIC X(01) VALUE 0 COMP-X.
05 CALL9135-COMMAND-LENGTH PIC X(01) VALUE 0 COMP-X.
******************************************************************
PROCEDURE DIVISION.
******************************************************************
PERFORM 1000-INITIALIZATION.
OPEN INPUT DATA-FILE
OUTPUT HTML-FILE.
IF DATA-RETURN-CODE EQUAL ZERO
PERFORM 2000-PROCESS-DATA.
CLOSE DATA-FILE.
GOBACK.
******************************************************************
1000-INITIALIZATION.
******************************************************************
OPEN INPUT PARM-FILE.
IF PARM-RETURN-CODE EQUAL ZERO
PERFORM VARYING PARM-IDX FROM 1 BY 1
UNTIL PARM-IDX GREATER THAN 4
READ PARM-FILE INTO PARM-ENTRY (PARM-IDX)
END-PERFORM
ELSE
DISPLAY "eREPORT.prm FILE NOT FOUND"
STOP RUN
END-IF.
CLOSE PARM-FILE.
MOVE EREPORT-HTML-FILESPEC TO HTML-FILE-ID.
MOVE EREPORT-HTML-FILESPEC TO MY-HTML-FILE.
MOVE EREPORT-DATA-FILESPEC TO DATA-FILE-ID.
MOVE EREPORT-RECIPIENT-EMAIL TO E-ID1 E-ID2.
MOVE EREPORT-SUBJECT TO E-SUB1 E-SUB2.
******************************************************************
2000-PROCESS-DATA.
******************************************************************
PERFORM 3000-OUTPUT-BEG-HTML.
PERFORM 4900-READ-DATA-FILE.
PERFORM 4000-OUTPUT-EREPORT
UNTIL DATA-RETURN-CODE NOT EQUAL ZERO.
PERFORM 5000-OUTPUT-END-HTML.
CLOSE HTML-FILE.
PERFORM 9000-SUBMIT-REPORT.
******************************************************************
3000-OUTPUT-BEG-HTML.
******************************************************************
PERFORM VARYING EREPORT-IDX FROM 1 BY 1
UNTIL EREPORT-IDX GREATER THAN 16
MOVE EREPORT-ENTRY (EREPORT-IDX)
TO HTML-RECORD
INSPECT HTML-RECORD REPLACING ALL X"F8" BY X"22"
INSPECT HTML-RECORD REPLACING ALL X"FB" BY X"27"
PERFORM 5900-WRITE-HTML-RECORD
END-PERFORM.
******************************************************************
4000-OUTPUT-EREPORT.
******************************************************************
MOVE DATA-RECORD TO HTML-RECORD.
PERFORM 5900-WRITE-HTML-RECORD.
PERFORM 4900-READ-DATA-FILE.
******************************************************************
4900-READ-DATA-FILE.
******************************************************************
READ DATA-FILE.
******************************************************************
5000-OUTPUT-END-HTML.
******************************************************************
PERFORM VARYING EREPORT-IDX FROM 17 BY 1
UNTIL EREPORT-IDX GREATER THAN 22
MOVE EREPORT-ENTRY (EREPORT-IDX)
TO HTML-RECORD
INSPECT HTML-RECORD REPLACING ALL X"F8" BY X"22"
INSPECT HTML-RECORD REPLACING ALL X"FB" BY X"27"
PERFORM 5900-WRITE-HTML-RECORD
END-PERFORM.
******************************************************************
5900-WRITE-HTML-RECORD.
******************************************************************
WRITE HTML-RECORD.
******************************************************************
9000-SUBMIT-REPORT.
******************************************************************
DISPLAY SYSTEM-COMMAND-LINE UPON COMMAND-LINE.
CALL x'91' USING CALL9135-RETURN-CODE
CALL9135-CALL-FUNCTION
CALL9135-COMMAND-LENGTH.