*----------------------------------------------------------------* * SISTEMA : * * OBJETIVO: CORTE DE CONTROL, CUENTAS ACTIVAS POR SUC Y TOTAL BCO * AUTHOR. MARCELO AUGUSTO GARASSINO * DATE-WRITTEN. *----------------------------------------------------------------* IDENTIFICATION DIVISION. PROGRAM-ID. CLA10. *----------------------------------------------------------------* * LOG DE MODIFICACIONES * * ---------------------- * *----------------------------------------------------------------* * REFEREN | FECHA | DESCRIPCION DE LA MODIFICACION * *----------+----------+------------------------------------------* * | | * *----------+----------+------------------------------------------* *----------------------------------------------------------------* * A R C H I V O S D E E N T R A D A / S A L I D A * *----------------------------------------------------------------* * * *----------------------------------------------------------------* *----------------------------------------------------------------* * E N V I R O N M E N T D I V I S I O N * *----------------------------------------------------------------* ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT ENTRADA ASSIGN ENTRA * ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS WS-FS-ENTR. SELECT SALIDA ASSIGN SALID * ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS WS-FS-SALI. *----------------------------------------------------------------* * D A T A D I V I S I O N * *----------------------------------------------------------------* DATA DIVISION. FILE SECTION. * ARCHIVO ENTRADA * FD ENTRADA. 01 REG-ENTRADA PIC X(30). * ARCHIVO SALIDA * FD SALIDA. 01 REG-SALIDA PIC X(80). *----------------------------------------------------------------* * W O R K I N G - S T O R A G E S E C T I O N * *----------------------------------------------------------------* WORKING-STORAGE SECTION. 77 filler pic x(20) value "working-storage". 77 WS-FS-ENTR PIC XX VALUE SPACES. 77 WS-FS-SALI PIC XX VALUE SPACES. 77 WS-TOT-SUC PIC 9(5) VALUE ZEROS. 77 WS-TOT-BCO PIC 9(7) VALUE ZEROS. 01 WS-REG-ANTERIOR. 03 WS-NRO-SUCURSAL-ANT PIC 9(02) VALUE ZEROS. 03 WS-NOMBRE-SUC-ANT PIC X(14) VALUE SPACES. 01 WS-REG-ENTRADA. 03 WS-NRO-SUCURSAL PIC 9(02) VALUE ZEROS. 03 WS-NOMBRE-SUC PIC X(14) VALUE SPACES. 03 WS-TIPO-CUENTA PIC 9(01) VALUE ZEROS. 03 WS-ESTADO-CUENTA PIC 9 VALUE ZEROS. 88 WS-ACTIVA VALUE 0. 88 WS-BAJA VALUE 1. 88 WS-EMBARGO VALUE 2. 03 WS-NRO-CUENTA PIC 9(08) VALUE ZEROS. 03 FILLER PIC X(03) VALUE SPACES. 01 WS-REG-SALIDA. 03 WS-SAL-SUCURSAL PIC 99 VALUE ZEROS. 03 FILLER PIC X VALUE SPACE. 03 WS-SAL-NOMBRE-SUC PIC X(30) VALUE SPACES. 03 WS-SAL-CANT-CUENTAS PIC ZZZ9 VALUE ZEROS. 03 FILLER PIC X(43) VALUE SPACES. * LINEA DEL TOTAL DEL BANCO 01 WS-REG-SAL-TOT-BCO. 03 FILLER PIC X(14) VALUE "TOTAL GENERAL ". 03 WS-REG-SAL-TOT-NUM PIC ZZZZ9 VALUE ZEROS. 03 FILLER PIC X(8) VALUE " CUENTAS". 03 FILLER PIC X(53) VALUE SPACES. *----------------------------------------------------------------* * V A R I A B L E S * *----------------------------------------------------------------* *----------------------------------------------------------------* * P R O C E D U R E D I V I S I O N * *----------------------------------------------------------------* PROCEDURE DIVISION. *----------------------------------------------------------------* * 0000-CONTROL * * FLUJO DE CONTROL DEL PROGRAMA PRINCIPAL * *----------------------------------------------------------------* 0000-CONTROL. PERFORM 1000-INICIO THRU 1000-F-INICIO. PERFORM 2000-PROCESO THRU 2000-F-PROCESO. PERFORM 3000-FINAL THRU 3000-F-FINAL. GOBACK. *----------------------------------------------------------------* * 1000-INICIO * *----------------------------------------------------------------* 1000-INICIO. OPEN INPUT ENTRADA. IF WS-FS-ENTR IS NOT EQUAL '00' DISPLAY '* ERROR EN OPEN ENTRADA = ' WS-FS-ENTR GOBACK END-IF. OPEN OUTPUT SALIDA. IF WS-FS-SALI IS NOT EQUAL '00' DISPLAY '* ERROR EN OPEN PRECIO = ' WS-FS-SALI GOBACK END-IF. 1000-F-INICIO. EXIT. *----------------------------------------------------------------* 2000-PROCESO. PERFORM UNTIL WS-FS-ENTR EQUAL '10' READ ENTRADA INTO WS-REG-ENTRADA EVALUATE WS-FS-ENTR WHEN "00" CONTINUE WHEN "10" PERFORM 2200-MOSTRAR WHEN OTHER DISPLAY "ERROR EN LECTURA DE ARCHIVO DE ENTRADA" GOBACK END-EVALUATE IF WS-FS-ENTR EQUAL "00" IF WS-TOT-SUC = 0 MOVE WS-NRO-SUCURSAL TO WS-NRO-SUCURSAL-ANT MOVE WS-NOMBRE-SUC TO WS-NOMBRE-SUC-ANT END-IF IF WS-NRO-SUCURSAL EQUAL WS-NRO-SUCURSAL-ANT PERFORM 2100-CONTAR ELSE PERFORM 2200-MOSTRAR MOVE ZEROS TO WS-TOT-SUC PERFORM 2100-CONTAR MOVE WS-NRO-SUCURSAL TO WS-NRO-SUCURSAL-ANT MOVE WS-NOMBRE-SUC TO WS-NOMBRE-SUC-ANT END-IF END-IF END-PERFORM. 2000-F-PROCESO. EXIT. *----------------------------------------------------------------* 2100-CONTAR. IF WS-ACTIVA ADD 1 TO WS-TOT-SUC ADD 1 TO WS-TOT-BCO * DISPLAY REG-ENTRADA END-IF. 2100-F-CONTAR. EXIT. *----------------------------------------------------------------* 2200-MOSTRAR. MOVE WS-TOT-SUC TO WS-SAL-CANT-CUENTAS DISPLAY "SUCURSAL " WS-NRO-SUCURSAL-ANT " " WS-NOMBRE-SUC-ANT " " WS-SAL-CANT-CUENTAS " CUENTAS". MOVE WS-NRO-SUCURSAL-ANT TO WS-SAL-SUCURSAL. MOVE WS-NOMBRE-SUC-ANT TO WS-SAL-NOMBRE-SUC. MOVE WS-TOT-SUC TO WS-SAL-CANT-CUENTAS. WRITE REG-SALIDA FROM WS-REG-SALIDA. 2200-F-MOSTRAR. EXIT. *----------------------------------------------------------------* * 3000-FINAL. * *----------------------------------------------------------------* 3000-FINAL. MOVE WS-TOT-BCO TO WS-SAL-CANT-CUENTAS. DISPLAY "TOTAL GENERAL " WS-SAL-CANT-CUENTAS " CUENTAS". MOVE WS-TOT-BCO TO WS-REG-SAL-TOT-NUM. WRITE REG-SALIDA FROM WS-REG-SAL-TOT-BCO. CLOSE ENTRADA SALIDA. 3000-F-FINAL. EXIT.