ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT LEXCEL
ASSIGN TO "D:\EXCEL1\LPACIENTES.XLS"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD LEXCEL
LABEL RECORD IS STANDARD.
01 REC-LEXCEL PIC X(700).
WORKING-STORAGE SECTION.
01 EXCEL OBJECT REFERENCE COM IS GLOBAL.
01 WORKBOOK OBJECT REFERENCE COM IS GLOBAL.
01 COM-TRUE PIC 1(1) BIT VALUE B"1" IS GLOBAL.
01 APPLICATION PIC X(20) VALUE "EXCEL.APPLICATION" IS GLOBAL.
01 EXCEL_FILE PIC X(35) VALUE "D:\EXCEL1\LPACIENTES.XLS".
01 FECHA.
02 DIA PIC 99.
02 FILLER PIC X VALUE "/".
02 MES PIC 99.
02 FILLER PIC X VALUE "/".
02 ANO PIC 9999.
01 FECHAD.
02 ANOD PIC 99.
02 MESD PIC 99.
02 DIAD PIC 99.
01 ANODD PIC 9999 VALUE ZEROS.
01 ERRORA PIC 9.
01 FALLO PIC 9.
* 01 FECHA.
* 02 DIA PIC 99.
* 02 FILLER PIC X VALUE "/".
* 02 MES PIC 99.
* 02 FILLER PIC X VALUE "/".
* 02 FILLER PIC XX VALUE "20".
* 02 ANO PIC 99.
01 FIN-A PIC 9.
01 FIN-AA PIC 9.
01 FEC.
02 AA PIC 99.
02 MM PIC 99.
02 DD PIC 99.
01 L0.
02 PIC X(85) VALUE
"<HTLM><HEAD><TITLE>ABONOS DEL MES DE SEP.2018</TITLE></HEAD>".
01 L-1.
02 PIC X(6) VALUE "<BODY>".
02 PIC X(15) VALUE "<TR><TH><B> ".
02 L1-CIA PIC X(60) VALUE
"CONSULTORIO ODONTOLOGICO ".
02 PIC X(6) VALUE "<\B>".
01 L-11.
02 PIC X(15) VALUE "<TR><TH>".
02 PIC X(55) VALUE
"LISTA DE PACIENTES :".
02 FECHA-II PIC X(10).
01 L-30.
02 PIC X(7) VALUE "<TABLE>".
01 L-2.
02 PIC X(4) VALUE "<BR>".
02 L2-CIA PIC X(112) VALUE SPACES.
02 L3-MES PIC X(10).
02 L3-RMES REDEFINES L3-MES.
03 L3-DMES PIC BXXX.
03 L3-LET PIC XXX.
03 L3-HMES PIC XXX.
02 L3-ANO PIC Z9999.
01 GRUPO.
02 G1 PIC 999.
02 G2 PIC X(17).
01 L-3.
02 PIC X(4) VALUE "<BR>".
02 L3-CIA PIC X(32).
02 PIC X(7) VALUE " ".
02 L2-RFC PIC X(15) VALUE SPACES.
01 LLL.
02 PIC X(7) VALUE "<BR><U>".
02 L-0 PIC X(163) VALUE SPACES.
01 L-4.
02 PIC X(30) VALUE "<TR><TH><U> PACIENTE ".
02 PIC X(30) VALUE "<TH><U> TELEFONO ".
02 PIC X(30) VALUE "<TH><U> C.C o T.I ".
01 L-5.
02 PIC X(15) VALUE "<TR><TH> ".
02 PACIENTE-I PIC X(30) VALUE " ".
02 PIC X(4) VALUE "<TD>".
02 TELEFONO-I PIC X(14).
02 PIC X(4) VALUE "<TD>".
02 IDENTIDAD-I PIC X(14).
* 01 CAMINO.
* ** 02 CAM1 PIC X(40) VALUE "D:\EXCEL.EXE BALANZA.XLS".
01 ANO-X.
02 AA-N PIC 99.
02 BB-N PIC 99.
01 X-ANO REDEFINES ANO-X PIC 9(4).
01 TIPO PIC X.
01 CIA PIC X(15).
01 A1 PIC 99 VALUE 0.
01 K PIC 99 VALUE 0.
*
01 SW PIC 9.
01 CADENA PIC X(8).
01 RUTA PIC X(256).
01 REDD GLOBAL EXTERNAL.
02 RED PIC X(256).
PROCEDURE DIVISION.
INICIO.
OPEN OUTPUT LEXCEL CLOSE LEXCEL.
OPEN EXTEND LEXCEL.
RECIBE-FEC-ACTUAL.
MOVE ZEROS TO DIA MES ANO DIAD MESD ANOD ANODD
ACCEPT FECHAD
FROM DATE
MOVE DIAD TO DIA
MOVE MESD TO MES
IF
ANOD > 90
COMPUTE ANODD = 1900 + ANOD
MOVE ANODD TO ANO
ELSE
COMPUTE ANODD = 2000 + ANOD
MOVE ANODD TO ANO.
** * MOVE AA TO ANO.
* MOVE MM TO MES.
MOVE FECHA TO FECHA-II.
INSPECT L-0 REPLACING CHARACTERS BY " ".
INSPECT L0 REPLACING ALL " " BY " ".
INSPECT L-1 REPLACING ALL " " BY " ".
INSPECT L-11 REPLACING ALL " " BY " ".
INSPECT L-2 REPLACING ALL " " BY " ".
INSPECT L-3 REPLACING ALL " " BY " ".
* INSPECT L-30 REPLACING ALL " " BY " ".
INSPECT L-4 REPLACING ALL " " BY " ".
WRITE REC-LEXCEL FROM L0.
WRITE REC-LEXCEL FROM L-1.
WRITE REC-LEXCEL FROM L-3.
WRITE REC-LEXCEL FROM L-11.
* WRITE REC-LEXCEL FROM L-2.
WRITE REC-LEXCEL FROM L-3.
INSPECT L-0 REPLACING CHARACTERS BY " ".
WRITE REC-LEXCEL FROM LLL.
WRITE REC-LEXCEL FROM L-30.
* MOVE ANO TO ANO-A
* MOVE MES TO MES-A
* MOVE 0 TO DIA-A.
* WRITE REC-LEXCEL FROM L-4.
* WRITE REC-LEXCEL FROM L55.
* INICIO.
* MOVE SPACES TO RUTA.
* STRING RED DELIMITED BY SPACES
* "Artic.DAT" DELIMITED BY SIZE
* INTO RUTA.
* MOVE RUTA TO WF-ARTIC.
* PUSE DESDE ACA
ABRIR-A.
* OPEN INPUT ABONO.
OPEN INPUT PACIENTE-A.
PRINCIPAL.
MOVE 0 TO FIN-A FIN-AA SW
MOVE "A" TO NOMBRE-P
MOVE ALL ZEROS TO CODIGOP-KEY
PERFORM START-P
IF FALLO = 1
STOP RUN
ELSE
WRITE REC-LEXCEL FROM L-4
MOVE COD-P TO COD-A.
* PERFORM PROCESAR UNTIL FIN-A = 1.
* GO TO FIN.
*
PROCESAR.
PERFORM LEER-P
IF FIN-A = 1
GO FIN
ELSE
MOVE NOMBRE-P TO PACIENTE-I
MOVE TEL1-P TO TELEFONO-I
MOVE COD-P TO IDENTIDAD-I
WRITE REC-LEXCEL FROM L-5
GO PROCESAR.
LEER-P.
MOVE 0 TO FIN-A
READ PACIENTE-A
NEXT RECORD AT END
MOVE 1 TO FIN-A.
START-P.
MOVE 0 TO FALLO
START PACIENTE-A KEY NOT LESS NOMBRE-P
INVALID KEY
MOVE 1 TO FALLO.
*
FIN.
* CLOSE ABONO.
CLOSE PACIENTE-A.
CLOSE LEXCEL.
INVOKE COM "CREATE-OBJECT" USING APPLICATION RETURNING EXCEL.
INVOKE EXCEL "SET-VISIBLE" USING COM-TRUE.
INVOKE EXCEL "GET-WORKBOOKS" RETURNING WORKBOOK.
INVOKE WORKBOOK "Open" using EXCEL_FILE.
EXIT PROGRAM.