Subido por Rubén Martínez

PROG0010

Anuncio
 IDENTIFICATION DIVISION.
PROGRAM-ID. PROG0010.
* AUTHOR. FERNANDO TOLEDO.
* INSTALLATION. CENTRO DE CAPACITACION.
* DATE-WRITTEN. 17/11/16.
* DATE-COMPILED.
* SECURITY. NO ES CONFIDENCIAL.
*> ------------------------------------------------------
*> PROGRAMA QUE EMITE UN REPORTE SIN ESTAR ESTRUCTURADO
*> ------------------------------------------------------
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-3083.
OBJECT-COMPUTER. IBM-3083.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPLEADOS ASSIGN TO "C:\Cobol\Archivos\EMPLEADO.txt".
SELECT REPORTE ASSIGN TO "C:\Cobol\Archivos\REPORTE.txt".
DATA DIVISION.
FILE SECTION.
FD EMPLEADOS
* LABEL RECORDS ARE STANDARD
RECORD CONTAINS 50 CHARACTERS
BLOCK CONTAINS 0 RECORDS.
* DATA RECORD IS REG-EMPLEADOS.
01 REG-EMPLEADOS PIC X(50).
FD REPORTE
* LABEL RECORDS ARE STANDARD
RECORD CONTAINS 80 CHARACTERS
BLOCK CONTAINS 0 RECORDS.
* DATA RECORD IS REG-REPORTE.
01 REG-REPORTE PIC X(80).
WORKING-STORAGE SECTION.
01 WS-AREAS-A-USAR.
05 WS-REG-EMPLEADOS.
10 WS-NUMERO-EMP PIC 9(05).
10 WS-NOMBRE-EMP PIC X(30).
10 WS-STATUS-EMP PIC 9(01).
10 WS-DEPTO-EMP PIC 9(03).
10 WS-PUESTO-EMP PIC 9(02).
10 WS-SALARIO-EMP PIC 9(07)V99.
05 WS-LEIDOS-EMP PIC 9(05) VALUE ZEROS.
05 WS-IMPRESOS PIC 9(05) VALUE ZEROS.
05 WS-TOT-SALARIOS PIC 9(09)V99 VALUE ZEROS.
01 WS-TITULO-1.
05 FILLER PIC X(27) VALUE SPACES.
05 WS-TIT-1 PIC X(22)
VALUE "CENTRO DE CAPACITACION".
05 FILLER PIC X(31) VALUE SPACES.
01 WS-TITULO-2.
05 FILLER PIC X(08) VALUE " FECHA: ".
05 WS-TIT-2-DIA PIC 9(02).
05 FILLER PIC X(01) VALUE "/".
05 WS-TIT-2-MES PIC 9(02).
05 FILLER PIC X(01) VALUE "/".
05 WS-TIT-2-ANIO PIC 9(04).
05 FILLER PIC X(09) VALUE SPACES.
05 WS-TIT-2 PIC X(23)
VALUE "EMPLEADOS DE LA EMPRESA".
05 FILLER PIC X(17) VALUE SPACES.
05 FILLER PIC X(08) VALUE "PAGINA: ".
05 WS-TIT-2-PAGINA PIC ZZ9.
05 FILLER PIC X(02) VALUE SPACES.
01 WS-GUIONES.
05 FILLER PIC X(01).
05 FILLER PIC X(78) VALUE ALL "-".
05 FILLER PIC X(01) VALUE SPACES.
01 WS-SUB-TITULO-1.
05 FILLER PIC X(04) VALUE SPACES.
05 FILLER PIC X(06) VALUE "NUMERO".
05 FILLER PIC X(12) VALUE SPACES.
05 FILLER PIC X(06) VALUE "NOMBRE".
05 FILLER PIC X(15) VALUE SPACES.
05 FILLER PIC X(06) VALUE "STATUS".
05 FILLER PIC X(02) VALUE SPACES.
05 FILLER PIC X(05) VALUE "DEPTO".
05 FILLER PIC X(01) VALUE SPACES.
05 FILLER PIC X(06) VALUE "PUESTO".
05 FILLER PIC X(04) VALUE SPACES.
05 FILLER PIC X(07) VALUE "SALARIO".
05 FILLER PIC X(06) VALUE SPACES.
01 WS-DETALLE.
05 FILLER PIC X(04) VALUE SPACES.
05 WS-DET-NUMERO PIC ZZZZ9.
05 FILLER PIC X(04) VALUE SPACES.
05 WS-DET-NOMBRE PIC X(30).
05 FILLER PIC X(04) VALUE SPACES.
05 WS-DET-STATUS PIC 9(01).
05 FILLER PIC X(04) VALUE SPACES.
05 WS-DET-DEPTO PIC 9(03).
05 FILLER PIC X(04) VALUE SPACES.
05 WS-DET-PUESTO PIC 9(02).
05 FILLER PIC X(03) VALUE SPACES.
05 WS-DET-SALARIO PIC Z,ZZZ,ZZ9.99.
05 FILLER PIC X(04) VALUE SPACES.
01 WS-DETALLE-LEIDOS.
05 FILLER PIC X(01).
05 FILLER PIC X(29)
VALUE "TOTAL DE EMPLEADOS LEIDOS : ".
05 WS-TOT-LEIDOS PIC ZZ,ZZ9.
05 FILLER PIC X(44) VALUE SPACES.
01 WS-DETALLE-IMPRESOS.
05 FILLER PIC X(01).
05 FILLER PIC X(29)
VALUE "TOTAL DE EMPLEADOS IMPRESOS: ".
05 WS-TOT-IMPRESOS PIC ZZ,ZZ9.
05 FILLER PIC X(44) VALUE SPACES.
01 WS-DETALLE-SALARIOS.
05 FILLER PIC X(01).
05 FILLER PIC X(29)
VALUE "SUMA TOTAL DE SALARIOS : ".
05 WS-DET-SALARIO2 PIC $$$,$$$,$$9.99.
05 FILLER PIC X(36) VALUE SPACES.
* LINKAGE SECTION.
01 LK-FECHA.
05 FILLER PIC X(02).
05 LK-DIA PIC 9(02) VALUE 22.
05 LK-MES PIC 9(02) VALUE 10.
05 LK-ANIO PIC 9(04) VALUE 2017.
PROCEDURE DIVISION.
010-INICIO.
OPEN INPUT EMPLEADOS
OUTPUT REPORTE
WRITE REG-REPORTE FROM WS-TITULO-1 AFTER ADVANCING PAGE
MOVE LK-DIA TO WS-TIT-2-DIA
MOVE LK-MES TO WS-TIT-2-MES
MOVE LK-ANIO TO WS-TIT-2-ANIO
MOVE 1 TO WS-TIT-2-PAGINA
WRITE REG-REPORTE FROM WS-TITULO-2 AFTER ADVANCING 1
WRITE REG-REPORTE FROM WS-GUIONES AFTER ADVANCING 1
WRITE REG-REPORTE FROM WS-SUB-TITULO-1 AFTER ADVANCING 1
WRITE REG-REPORTE FROM WS-GUIONES AFTER ADVANCING 1.
020-LEE.
READ EMPLEADOS INTO WS-REG-EMPLEADOS AT END
GO TO 100-FIN.
ADD 1 TO WS-LEIDOS-EMP
ADD WS-SALARIO-EMP TO WS-TOT-SALARIOS
MOVE WS-NUMERO-EMP TO WS-DET-NUMERO
MOVE WS-NOMBRE-EMP TO WS-DET-NOMBRE
MOVE WS-STATUS-EMP TO WS-DET-STATUS
MOVE WS-DEPTO-EMP TO WS-DET-DEPTO
MOVE WS-PUESTO-EMP TO WS-DET-PUESTO
MOVE WS-SALARIO-EMP TO WS-DET-SALARIO
WRITE REG-REPORTE FROM WS-DETALLE AFTER ADVANCING 1
ADD 1 TO WS-IMPRESOS
GO TO 020-LEE.
100-FIN.
MOVE WS-LEIDOS-EMP TO WS-TOT-LEIDOS
WRITE REG-REPORTE FROM WS-DETALLE-LEIDOS AFTER ADVANCING 2
MOVE WS-IMPRESOS TO WS-TOT-IMPRESOS
WRITE REG-REPORTE FROM WS-DETALLE-IMPRESOS AFTER ADVANCING 1
MOVE WS-TOT-SALARIOS TO WS-DET-SALARIO2
WRITE REG-REPORTE FROM WS-DETALLE-SALARIOS AFTER ADVANCING 1
CLOSE EMPLEADOS
REPORTE
GOBACK.
Descargar