*----------------------------------------------------------------* * SISTEMA : * * OBJETIVO: CORTE DE CONTROL DOBLE, TIPO DE DOCUMENTO y SEXO * AUTHOR. MARCELO AUGUSTO GARASSINO * DATE-WRITTEN. *----------------------------------------------------------------* IDENTIFICATION DIVISION. PROGRAM-ID. CLA12C. *----------------------------------------------------------------* * 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. *----------------------------------------------------------------* * 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(80). * 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-EDIT PIC ZZZZ9 VALUE ZEROS. 77 WS-TOT-SEX PIC 9(5) VALUE ZEROS. 77 WS-TOT-TIPDOC PIC 9(5) VALUE ZEROS. 01 WS-REG-ANTERIOR. 03 WS-TIPDOC-ANT PIC XX VALUE SPACES. 03 WS-SEX-ANT PIC X VALUE SPACE. 01 WS-REG-CLICOB. *TIPO DOCUMENTO VALIDOS: 'DU'; 'PA'; 'PE' 03 WS-SUC-TIP-DOC PIC XX VALUE SPACES. 03 WS-SUC-NRO-DOC PIC 9(11) VALUE ZEROS. 03 WS-SUC-NOMAPE PIC X(30) VALUE SPACES. *ESTADO CIVIL VALIDOS: SOLTERO; VIUDO DIVORCIADO; CASADO 03 WS-SUC-EST-CIV PIC X(10) VALUE SPACES. *SEXO VALIDOS: 'F'; 'M'; 'O' 03 WS-SUC-SEXO PIC X VALUE SPACES. 03 FILLER PIC X(26) 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 UNTIL WS-FS-ENTR EQUAL '10'. 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. READ ENTRADA INTO WS-REG-CLICOB. EVALUATE WS-FS-ENTR WHEN "00" MOVE WS-SUC-TIP-DOC TO WS-TIPDOC-ANT MOVE WS-SUC-SEXO TO WS-SEX-ANT PERFORM 2100-TITULO WHEN "10" DISPLAY "ARCHIVO VACIO" WHEN OTHER DISPLAY "ERROR EN LECTURA DE ARCHIVO DE ENTRADA" GOBACK END-EVALUATE. * DISPLAY WS-SUC-TIP-DOC " " WS-SUC-SEXO. 1000-F-INICIO. EXIT. *----------------------------------------------------------------* 2000-PROCESO. IF WS-SUC-TIP-DOC EQUAL WS-TIPDOC-ANT IF WS-SUC-SEXO EQUAL WS-SEX-ANT ADD 1 TO WS-TOT-SEX ELSE PERFORM 2050-CORTE-SEX END-IF * DISPLAY WS-SUC-TIP-DOC " " WS-SUC-SEXO " 0 - " * WS-TOT-SEX PERFORM 2005-LEER ELSE PERFORM 2055-CORTE-TIPDOC * DISPLAY WS-SUC-TIP-DOC " " WS-SUC-SEXO " 1 - " * WS-TOT-SEX PERFORM 2005-LEER PERFORM 2100-TITULO END-IF. 2000-F-PROCESO. EXIT. *----------------------------------------------------------------* 2005-LEER. READ ENTRADA INTO WS-REG-CLICOB EVALUATE WS-FS-ENTR WHEN '00' CONTINUE WHEN '10' PERFORM 2055-CORTE-TIPDOC WHEN OTHER DISPLAY 'ERROR EN LECTURA DE ENTRADA ' WS-FS-ENTR GOBACK END-EVALUATE. 2005-F-LEER. EXIT. *----------------------------------------------------------------* 2050-CORTE-SEX. ADD WS-TOT-SEX TO WS-TOT-TIPDOC. MOVE WS-TOT-SEX TO WS-EDIT. DISPLAY "SEXO: " WS-SEX-ANT " - CANTIDAD: " WS-EDIT MOVE 1 TO WS-TOT-SEX. MOVE WS-SUC-SEXO TO WS-SEX-ANT. 2050-F-CORTE-SEX. EXIT. *----------------------------------------------------------------* 2055-CORTE-TIPDOC. ADD WS-TOT-SEX TO WS-TOT-TIPDOC. MOVE WS-TOT-SEX TO WS-EDIT. DISPLAY "SEXO: " WS-SEX-ANT " - CANTIDAD: " WS-EDIT. MOVE WS-TOT-TIPDOC TO WS-EDIT. DISPLAY "TOTAL TIPO DE DOC " WS-TIPDOC-ANT ": " WS-EDIT. DISPLAY "---------------------------------------" DISPLAY " " MOVE 0 TO WS-TOT-TIPDOC. MOVE 1 TO WS-TOT-SEX. MOVE WS-SUC-SEXO TO WS-SEX-ANT. MOVE WS-SUC-TIP-DOC TO WS-TIPDOC-ANT. 2055-F-CORTE-TIPDOC. EXIT. *----------------------------------------------------------------* 2100-TITULO. IF WS-TIPDOC-ANT = "DU" DISPLAY "DOCUMENTO UNICO". IF WS-TIPDOC-ANT = "PA" DISPLAY "PASAPORTE ARGENTINO". IF WS-TIPDOC-ANT = "PE" DISPLAY "PASAPORTE EXTRANJERO". 2100-F-TITULO. EXIT. *----------------------------------------------------------------* * 3000-FINAL. * *----------------------------------------------------------------* 3000-FINAL. IF WS-FS-ENTR = "10" CLOSE ENTRADA EVALUATE WS-FS-ENTR WHEN "00" CONTINUE WHEN "10" CONTINUE WHEN OTHER DISPLAY "ERROR " WS-FS-ENTR " EN CIERRE DE ARCHIVO" END-EVALUATE END-IF. 3000-F-FINAL. EXIT.