Вы находитесь на странице: 1из 11

IDENTIFICATION DIVISION.

PROGRAM-ID. MAEST007.
AUTHOR. NELLIUD D. TORRES.
DATE-WRITTEN. 13 DE MARZO DE 1992.
DATE-COMPILED.
*INSTALLATION. UPR.
SECURITY.
*
***************************************************************************
*     ESTE PROGRAMA HARA LOS SIGUIENTES PASOS:                            *
*                                                                         *
*     1. LEERA EL ARCHIVO RELATIVO Y CREARA OTRO CUYOS PUNTEROS INDIQUEN  *
*        SI HAY UN RECORD REPETIDO POR SU SEGUNDO KEY (NOMBRE EST.)  ADE- *
*        MAS DE TENER SU PUNTERO PARA LA COLISION DE RECORDS CON RESPECTO *
*        AL NUMERO DE ESTUDIANTE (HASH).                                  *
*                                                                         *
*     2. SORTEARA LOS RECORD LEIDOS POR NOMBRE PARA CREAR EL ARCHIVO IN-  *
*        DICE UN VEZ SE LES HAYA CREADO LOS PUNTEROS.                     *
*                                                                         *
*     3. CREARA UN INFORME DEL ARCHIVO RELATIVO CREADO Y DEL ARCHIVO DE   *
*        INDICES.                                                         *
***************************************************************************
*     POR:  NELLIUD D. TORRES                                             *
*   CLASE:  MIS-520                                                       *
*    PROF:  SEVERINO RAMOS                                                *
***************************************************************************
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. VAX-8530.
OBJECT-COMPUTER. VAX-8530.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
*
      SELECT STUDENT-FILE-REL  ASSIGN  TO  "ARCH_EST.REL"
          ORGANIZATION IS RELATIVE
          ACCESS MODE  IS RANDOM
          RELATIVE KEY IS REL-KEY.

      SELECT STUDENT-NEW-FILE-REL  ASSIGN  TO  "ARCH_EST_NEW.REL"


          ORGANIZATION IS RELATIVE
****          ACCESS MODE  IS RANDOM
          ACCESS MODE  IS DYNAMIC
          RELATIVE KEY IS REL-NEW-KEY.

      SELECT STUDENT-INDEX-FILE  ASSIGN  TO  "ARCH_EST.IND".

      SELECT PRINT-FILE        ASSIGN  TO  "MAEST007.PRT".

DATA DIVISION.
FILE SECTION.

FD  STUDENT-FILE-REL
    DATA RECORD IS STUDENT-RECORD-REL.
01  STUDENT-RECORD-REL.
    02  STD-NUMBER-REL                       PIC X(9).
    02  STD-NAME-REL                         PIC X(15).
    02  STD-FACULTY-REL                      PIC X(4).
    02  STD-PROMEDIO-REL                     PIC XXX.
    02  STD-ADDRESS1-REL                     PIC X(15).
    02  STD-ADDRESS2-REL                     PIC X(15).
    02  STD-PUEBLO-REL                       PIC X(12).
    02  STD-ZIP-CODE-REL                     PIC X(5).
    02  STD-DELETE-FLAG-REL                  PIC X.
    02  STD-LINK-REL                         PIC XXX.

FD  STUDENT-NEW-FILE-REL
    DATA RECORD IS STUDENT-NEW-RECORD-REL.

01  STUDENT-NEW-RECORD-REL.
    02  STD-NEW-NUMBER-REL                   PIC X(9).
    02  STD-NEW-NAME-REL                     PIC X(15).
    02  STD-NEW-FACULTY-REL                  PIC X(4).
    02  STD-NEW-PROMEDIO-REL                 PIC XXX.
    02  STD-NEW-ADDRESS1-REL                 PIC X(15).
    02  STD-NEW-ADDRESS2-REL                 PIC X(15).
    02  STD-NEW-PUEBLO-REL                   PIC X(12).
    02  STD-NEW-ZIP-CODE-REL                 PIC X(5).
    02  STD-NEW-DELETE-FLAG-REL              PIC X.
    02  STD-NEW-LINK-REL                     PIC 999.
    02  STD-NEW-LINK-SEC-KEY                 PIC 999.

FD  STUDENT-INDEX-FILE
    DATA RECORD IS STUDENT-INDEX-RECORD.

01  STUDENT-INDEX-RECORD.
    02  STD-INDEX-NAME                       PIC X(15).
    02  STD-INDEX-REL-POS                    PIC 999.
    02  STD-INDEX-LAST-REL-POS               PIC 999.

FD  PRINT-FILE
    LABEL RECORDS ARE OMITTED
    RECORD CONTAINS 133 CHARACTERS
    DATA RECORD IS PRINT-RECORD.

01  PRINT-RECORD                             PIC X(133).

*
WORKING-STORAGE SECTION.

01  ARRAY-TO-BE-SORTED.
    03 TABLA-ESTUDIANTES OCCURS 121 TIMES.
       05 TAB-NAME                             PIC X(15).
       05 TAB-REL-RECORD-NUM                   PIC 9(3).
       05 TAB-REL-LAST-RECORD-NUM              PIC 9(3).
01  NUMB-OF-ELEMENTS                           PIC S9(3)   COMP.

***************************                       ****************************

01  WORK-AREAS.

    02 FILE-OVER                             PIC 999    VALUE 24.


    02 FILE-W-OVER                           PIC 999    VALUE 121.
    02 FILE-SIZE                             PIC 999    VALUE 97.
    02 FILE-START-OVER                       PIC 999    VALUE 98.
    02 REL-KEY                               PIC 999    VALUE ZEROES.
    02 REL-NEW-KEY                           PIC 999    VALUE ZEROES.
    02 TEMP-KEY                              PIC 999    VALUE ZEROES.
    02 HOLD-KEY                              PIC 999    VALUE ZEROES.
    02 TOTAL-READ                            PIC 9999   COMP VALUE ZEROES.
    02 TOTAL-PRINTED                         PIC 9999   COMP VALUE ZEROES.
    02 NO-MORE                               PIC XX     VALUE "NO".
    02 INDICE                                PIC S999   COMP.
    02 NDX                                   PIC S999   COMP.
    02 PRINT-FLAG                            PIC XXX    VALUE SPACES.
    02 FIN-TABLA                             PIC XX     VALUE "NO".

***************************                       ****************************

01  LINE-CTR                                 PIC 999    COMP VALUE ZEROES.


01  PAGE-CONTADOR                            PIC 999    COMP VALUE ZEROES.

***************************                       ****************************

01  STD-PROMEDIO-NUMERICO.
    02 STD-PROM-SEQ                          PIC XXX.
    02 STD-REDEFINE  REDEFINES STD-PROM-SEQ.
       03 STD-PROM-NUM-SEQ                   PIC 9V99.

***************************                       ****************************

01  HEADING-1.
    02 FILLER                                PIC X(68)  VALUE SPACES.
    02 FILLER                                PIC X(15)  VALUE
       "UNIVERSIDAD ABC".

***************************                       ****************************

01  HEADING-2.
    02 FILLER                                PIC X(66)  VALUE SPACES.
    02 FILLER                                PIC X(19)  VALUE
       "SISTEMA ESTUDIANTIL".

***************************                       ****************************

01  HEADING-3A.
    02 FILLER                                PIC X(64)  VALUE SPACES.
    02 FILLER                                PIC X(24)  VALUE
       "LISTADO ARCHIVO RELATIVO".
***************************                       ****************************

01  HEADING-3B.
    02 FILLER                                PIC X(63)  VALUE SPACES.
    02 FILLER                                PIC X(26)  VALUE
       "LISTADO ARCHIVO DE INDICES".

***************************                       ****************************

01  HEADING-4.
    02 FILLER                                PIC X(62)  VALUE SPACES.
    02 FECHA-OUT                             PIC X(8).
    02 FILLER                                PIC X(55)  VALUE SPACES.
    02 PAGE-CTR-OUT                          PIC ZZ9.

***************************                       ****************************

01  TITULO-1-A.

    02  FILLER                               PIC X(5)   VALUE SPACES.


    02  FILLER                               PIC X(11)  VALUE
        "NUMERO EST.".
    02  FILLER                               PIC X(9)   VALUE SPACES.
    02  FILLER                               PIC X(6)   VALUE
        "NOMBRE".
    02  FILLER                               PIC X(8)   VALUE SPACES.
    02  FILLER                               PIC X(8)   VALUE
        "FACULTAD".
    02  FILLER                               PIC X(5)   VALUE SPACES.
    02  FILLER                               PIC X(8)   VALUE
        "PROMEDIO".
    02  FILLER                               PIC X(5)   VALUE SPACES.
    02  FILLER                               PIC X(13)  VALUE
        "DIR. -  CALLE".
    02  FILLER                               PIC X(8)   VALUE SPACES.
    02  FILLER                               PIC X(11)  VALUE
        "DIR. - URB.".
    02  FILLER                               PIC X(12)  VALUE SPACES.
    02  FILLER                               PIC X(6)   VALUE
        "PUEBLO".
    02  FILLER                               PIC X(9)   VALUE SPACES.
    02  FILLER                               PIC X(8)   VALUE
        "ZIP CODE".
    02  FILLER                               PIC X(4)   VALUE SPACES.

***************************                       ****************************

01  DETAIL-LINE-A.

    02  FILLER                               PIC X(6).


    02  STD-NUMBER-OUT                       PIC X(9).
    02  FILLER                               PIC X(5).
    02  STD-NAME-OUT                         PIC X(15).
    02  FILLER                               PIC X(6).
    02  STD-FACULTY-OUT                      PIC X(4).
    02  FILLER                               PIC X(9).
    02  STD-PROMEDIO-OUT                     PIC 9.99.
    02  FILLER                               PIC X(6).
    02  STD-DIRECCION1-OUT                   PIC X(15).
    02  FILLER                               PIC X(6).
    02  STD-DIRECCION2-OUT                   PIC X(15).
    02  FILLER                               PIC X(6).
    02  STD-PUEBLO-OUT                       PIC X(14).
    02  FILLER                               PIC X(6).
    02  STD-ZIP-CODE-OUT                     PIC X(5).
    02  FILLER                               PIC X(2).

***************************                       ****************************

01  TITULO-1-B.

    02  FILLER                               PIC X(5)   VALUE SPACES.


    02  FILLER                               PIC X(21)  VALUE
        "NOMBRE DEL ESTUDIANTE".
    02  FILLER                               PIC X(9)   VALUE SPACES.
    02  FILLER                               PIC X(13)  VALUE
        "POS. RELATIVA".

    02  FILLER                               PIC X(9)   VALUE SPACES.


    02  FILLER                               PIC X(16)  VALUE
        "ULTIMA POS. REL.".

***************************                       ****************************

01  DETAIL-LINE-B.

    02  FILLER                               PIC X(6).


    02  STD-NAME-B-OUT                       PIC X(15).
    02  FILLER                               PIC X(19).
    02  STD-REL-POS-OUT                      PIC X(5).
    02  FILLER                               PIC X(19).
    02  STD-LAST-REL-OUT                     PIC X(5).

***************************                       ****************************

01  TOTAL-LINE.
    02 FILLER                                PIC X(5)  VALUE SPACES.
    02 FILLER                                PIC X(23) VALUE
       "TOTAL RECORDS LEIDOS = ".
    02 TOTAL-READ-OUT                        PIC Z,ZZ9.
    02 FILLER                                PIC X(27)  VALUE
       "  TOTAL RECORDS IMPRESOS = ".
    02 TOTAL-PRINTED-OUT                     PIC Z,ZZ9.

***************************                       ****************************

PROCEDURE DIVISION.
*
***************************************************************************
**                       MODULO PRINCIPAL DEL PROGRAMA.                   *
***************************************************************************
*
0100-BEGIN.

    DISPLAY "COMENZO A CORRER EL PROGRAMA".

    MOVE   1          TO  INDICE, NDX.


    MOVE   ZEROES     TO  NUMB-OF-ELEMENTS.
    MOVE   "REC"      TO  PRINT-FLAG.

    PERFORM 0150-INITIALIZA-TABLE  121 TIMES.

    PERFORM 0200-OPEN-FILES.

    PERFORM 0250-HEADING-RTN.

    MOVE    1  TO TEMP-KEY, REL-NEW-KEY.

    DISPLAY "COMENZO A ESCRIBIR EL ARCHIVO RELATIVO".

    PERFORM 0300-READ-WRITE-RELATIVE   FILE-W-OVER    TIMES.

    DISPLAY "COMENZO A SORTEAR LA MULTILISTA".

    PERFORM 0500-SORT-MULTILIST.

    MOVE   "LIS"      TO  PRINT-FLAG.


    MOVE   1          TO  NDX.

    DISPLAY "COMENZO A CREAR E IMPRIMIR LA MULTILISTA".

    PERFORM 1100-CREATE-PRINT-MULTILIST  UNTIL FIN-TABLA = "SI".

    PERFORM 0900-TOTAL-RTN.

    PERFORM 0800-CLOSE-FILES.

    DISPLAY "TERMINO DE CORRER EL PROGRAMA".

    STOP RUN.


*
******************************************************************************
*
** ESTA RUTINA INICIALIZA EN BLANCO LA TABLA A UTILIZARSE PARA LA MULTILISTA.
*
******************************************************************************
*
*
0150-INITIALIZA-TABLE.

    MOVE SPACES TO TAB-NAME(INDICE).


    MOVE ZEROES TO TAB-REL-RECORD-NUM(INDICE).
    MOVE ZEROES TO TAB-REL-LAST-RECORD-NUM(INDICE).
    ADD  1  TO INDICE.
*
******************************************************************************
*
**     ESTA RUTINA VA A ABRIR LOS ARCHIVOS CON QUE SE VAN A TRABAJAR.......  
*
** SE TIENE QUE ABRIR Y CERRAR EL NUEVO ARCHIVO RELATIVO PARA QUE A NIVEL DE 
*
** VMS SE CREE EL ARCHIVO EN BLANCO Y LUEGO SE PUEDA ABRIR COMO I-O SIN
NINGUN*
** PROBLEMA DE ACESSO. EN VMS TUVE QUE HACERLO ASI....                       
*
******************************************************************************
*
*
0200-OPEN-FILES.

    OPEN OUTPUT STUDENT-NEW-FILE-REL.


    CLOSE STUDENT-NEW-FILE-REL.

    OPEN INPUT STUDENT-FILE-REL, I-O STUDENT-NEW-FILE-REL,


        OUTPUT PRINT-FILE,       STUDENT-INDEX-FILE.
*
***************************************************************************
** ESTA RUTINA SE UTILIZA PARA GENERAR LOS TITULOS EN EL REPORTE......    *
***************************************************************************
*
0250-HEADING-RTN.

    ADD   1                TO  PAGE-CONTADOR.


    MOVE  PAGE-CONTADOR    TO  PAGE-CTR-OUT.
    WRITE PRINT-RECORD FROM HEADING-1  AFTER ADVANCING PAGE.
    WRITE PRINT-RECORD FROM HEADING-2  AFTER ADVANCING 1 LINE.

    IF PRINT-FLAG = "REC"


        WRITE PRINT-RECORD FROM HEADING-3A AFTER ADVANCING 1 LINE
    ELSE
        WRITE PRINT-RECORD FROM HEADING-3B AFTER ADVANCING 1 LINE.

    WRITE PRINT-RECORD FROM HEADING-4  AFTER ADVANCING 1 LINE.

    IF PRINT-FLAG = "REC"


        WRITE PRINT-RECORD FROM TITULO-1-A AFTER ADVANCING 3 LINES
    ELSE
        WRITE PRINT-RECORD FROM TITULO-1-B AFTER ADVANCING 3 LINES.

    MOVE  7   TO LINE-CTR.


*
*****************************************************************************
**    ESTA RUTINA LEE LOS RECORDS DEL ARCHIVO RELATIVO, LOS PASA AL NUEVO   *
**  ARCHIVO RELATIVO CON PUNTERO Y FINALMENTE CREA LA MULTILISTA, TAMBIEN   *
**  IMPRIMIRA EN UN INFORME LOS RECORDS QUE SE VAN CREANDO DEL ARCHIVO REL. *
*****************************************************************************
*
0300-READ-WRITE-RELATIVE.
    MOVE TEMP-KEY  TO REL-KEY.

    INITIALIZE STUDENT-RECORD-REL.

    READ  STUDENT-FILE-REL INVALID KEY


         PERFORM 1000-READ-WRITE-ERROR-ROUTINE.

    ADD   1                     TO  TOTAL-READ.

    MOVE   "NO"                 TO  NO-MORE.


    MOVE   1                    TO  NDX.

    PERFORM 0400-MANTAIN-MULTILIST  UNTIL NO-MORE = "SI".

    MOVE  STD-NUMBER-REL        TO  STD-NEW-NUMBER-REL.


    MOVE  STD-NAME-REL          TO  STD-NEW-NAME-REL.
    MOVE  STD-FACULTY-REL       TO  STD-NEW-FACULTY-REL.
    MOVE  STD-PROMEDIO-REL      TO  STD-NEW-PROMEDIO-REL.
    MOVE  STD-ADDRESS1-REL      TO  STD-NEW-ADDRESS1-REL.
    MOVE  STD-ADDRESS2-REL      TO  STD-NEW-ADDRESS2-REL.
    MOVE  STD-PUEBLO-REL        TO  STD-NEW-PUEBLO-REL.
    MOVE  STD-ZIP-CODE-REL      TO  STD-NEW-ZIP-CODE-REL.
    MOVE  STD-DELETE-FLAG-REL   TO  STD-NEW-DELETE-FLAG-REL.
    MOVE  STD-LINK-REL          TO  STD-NEW-LINK-REL.
    MOVE  ZEROES                TO  STD-NEW-LINK-SEC-KEY.

    WRITE STUDENT-NEW-RECORD-REL INVALID KEY


         PERFORM 1000-READ-WRITE-ERROR-ROUTINE.

    IF STD-NAME-REL NOT = ""


        PERFORM 0600-PRINT-RECORD.

    ADD    1                TO  TEMP-KEY, REL-NEW-KEY.


*
******************************************************************************
*
** ESTA RUTINA COTEJARA LOS RECORDS QUE ESTEN DUPLICADOS POR SU SECONDARY
KEY.*
** IRA ANOTANDO EN QUE POSICION SE ENCUENTRA EL RECORD CON EL NOMBRE Y CUAL
ES*
** EL RECORD FINAL QUE TIENE ESE MISMO NOMBRE EN CASO DE DUPLICIDAD.         
*
******************************************************************************
*
*
0400-MANTAIN-MULTILIST.

    IF (STD-NAME-REL = SPACES OR "") OR STD-DELETE-FLAG-REL = "D"


        MOVE "SI"              TO  NO-MORE
    ELSE
      IF TAB-NAME(NDX) = SPACES OR ""
        MOVE STD-NAME-REL      TO  TAB-NAME(NDX)
        MOVE TEMP-KEY          TO  TAB-REL-RECORD-NUM(NDX)
        MOVE TEMP-KEY          TO  TAB-REL-LAST-RECORD-NUM(NDX)
        MOVE ZEROES            TO  STD-NEW-LINK-SEC-KEY
        ADD   1                TO  NUMB-OF-ELEMENTS
        MOVE "SI"              TO  NO-MORE
      ELSE
        IF TAB-NAME(NDX) = STD-NAME-REL
          PERFORM 0700-REORGANIZE-POINTERS
          MOVE "SI"              TO  NO-MORE
        END-IF
      END-IF.

     ADD  1  TO NDX.

*
******************************************************************************
*
**   ESTA RUTINA SORTEA LA TABLA INDICE LA CUAL UTILIZA EL NOMBRE COMO EL SEC-
*
**  ONDARY KEY.                                                              
*
******************************************************************************
*
*
0500-SORT-MULTILIST.

    CALL "BUBLESRT"  USING  ARRAY-TO-BE-SORTED, NUMB-OF-ELEMENTS.


*
******************************************************************************
*
**  ESTA RUTINA IMPRIMIRA AQUELLOS RECORDS DEL ARCHIVO RELATIVO QUE NO ESTEN 
*
** EN BLANCO OSEA QUE CONTENGAN ALGUNA INFORMACION.                          
*
******************************************************************************
*
*
0600-PRINT-RECORD.

    IF PRINT-FLAG = "REC"


        MOVE STD-NUMBER-REL         TO   STD-NUMBER-OUT
        MOVE STD-NAME-REL           TO   STD-NAME-OUT
        MOVE STD-FACULTY-REL        TO   STD-FACULTY-OUT
        MOVE STD-PROMEDIO-REL       TO   STD-PROM-SEQ
        MOVE STD-PROM-NUM-SEQ       TO   STD-PROMEDIO-OUT
        MOVE STD-ADDRESS1-REL       TO   STD-DIRECCION1-OUT
        MOVE STD-ADDRESS2-REL       TO   STD-DIRECCION2-OUT
        MOVE STD-PUEBLO-REL         TO   STD-PUEBLO-OUT
        MOVE STD-ZIP-CODE-REL       TO   STD-ZIP-CODE-OUT
        WRITE PRINT-RECORD FROM DETAIL-LINE-A AFTER ADVANCING 2 LINES
        ADD  1                      TO   TOTAL-PRINTED
    ELSE
        MOVE TAB-NAME(NDX)                TO   STD-NAME-B-OUT
        MOVE TAB-REL-RECORD-NUM(NDX)      TO   STD-REL-POS-OUT
        MOVE TAB-REL-LAST-RECORD-NUM(NDX) TO   STD-LAST-REL-OUT
        WRITE PRINT-RECORD FROM DETAIL-LINE-B AFTER ADVANCING 2 LINES.

    IF LINE-CTR > 35


        PERFORM 0250-HEADING-RTN.

    ADD  2  TO  LINE-CTR.


*
******************************************************************************
**
**  ESTA RUTINA BUSCARA EL ULTIMO POINTER DE LA CADENA DE UN RECORD CON EL KEY
*
**SECUNDARIO DUPLICADO Y LE INCLUIRA EL REL-KEY DEL PROXIMO RECORD EN LA
CADENA*
******************************************************************************
**
*
0700-REORGANIZE-POINTERS.

    MOVE REL-NEW-KEY                  TO  HOLD-KEY.


    MOVE TAB-REL-LAST-RECORD-NUM(NDX) TO  REL-NEW-KEY.

    READ STUDENT-NEW-FILE-REL  INVALID KEY


        PERFORM 1000-READ-WRITE-ERROR-ROUTINE.

    MOVE TEMP-KEY          TO  STD-NEW-LINK-SEC-KEY.

    REWRITE STUDENT-NEW-RECORD-REL INVALID KEY


         PERFORM 1000-READ-WRITE-ERROR-ROUTINE.

    MOVE TEMP-KEY          TO  TAB-REL-LAST-RECORD-NUM(NDX).


    MOVE HOLD-KEY          TO  REL-NEW-KEY.
*
******************************************************************************
*
**  ESTA RUTINA CIERRA LOS ARCHIVOS CON QUE SE VAN A TRABAJAR INICIALEMENTE  
*
******************************************************************************
*
*
0800-CLOSE-FILES.

    CLOSE STUDENT-FILE-REL, STUDENT-NEW-FILE-REL,


          PRINT-FILE,       STUDENT-INDEX-FILE.

*
***************************************************************************
** AQUI SE ESCRIBE EN EL REPORTE LOS TOTALES QUE SE CALCULARON EN EL PRO- *
** GRAMA.                                                                 *
***************************************************************************
*
0900-TOTAL-RTN.

    PERFORM 0250-HEADING-RTN.


    MOVE TOTAL-READ      TO TOTAL-READ-OUT.
    MOVE TOTAL-PRINTED   TO TOTAL-PRINTED-OUT.
    WRITE PRINT-RECORD FROM TOTAL-LINE AFTER ADVANCING 2 LINES.
*
******************************************************************************
**ESTA RUTINA SE EJECUTA UNICAMENTE SI HAY ERROR AL LEER O ESCRIBIR UN RECORD*
******************************************************************************
*
1000-READ-WRITE-ERROR-ROUTINE.
*
*:------------------------------------------------------------------------:
*!     AQUI SE BORRA LA PANTALLA COMPLETA                                 !
*:________________________________________________________________________:
*
    CALL 'SCR$ERASE_PAGE' USING BY VALUE 1 1.

    DISPLAY " ".


    DISPLAY " ".
    DISPLAY " ".
    DISPLAY "        ERROR AL INTENTAR LEER O ESCRIBIR  UN RECORD          "
        BOLD
        WITH BLINKING
        REVERSED.
    DISPLAY " ".
    DISPLAY "                 EL PROGRAMA SE DETENDRA".
    DISPLAY " ".

    DISPLAY "REL-KEY       = " REL-KEY.


    DISPLAY "REL-NEW-KEY   = " REL-NEW-KEY.

    DISPLAY "FILE-SIZE     = " FILE-SIZE.


    DISPLAY "FILE-W-OVER   = " FILE-W-OVER.

    STOP RUN.


*
******************************************************************************
**ESTA RUTINA CREARA EL ARCHIVO SECUENCIAL CON LOS INDICES Y ENVIARA A IMPRI-*
**MIR ESOS INDICES EN EL INFORME.                                            *
******************************************************************************
*
1100-CREATE-PRINT-MULTILIST.

    IF TAB-NAME(NDX) = "" OR SPACES


        MOVE "SI"  TO FIN-TABLA
    ELSE
        MOVE TAB-NAME(NDX)                TO   STD-INDEX-NAME
        MOVE TAB-REL-RECORD-NUM(NDX)      TO   STD-INDEX-REL-POS
        MOVE TAB-REL-LAST-RECORD-NUM(NDX) TO   STD-INDEX-LAST-REL-POS
        WRITE STUDENT-INDEX-RECORD
        PERFORM 0600-PRINT-RECORD
        ADD  1                            TO   NDX.

Вам также может понравиться