PROGRAM-ID. MAEST002.
AUTHOR. NELLIUD D. TORRES.
DATE-WRITTEN. 4 DE FEBRERO DE 1992.
DATE-COMPILED.
*INSTALLATION. UPR.
SECURITY.
*
***************************************************************************
*
ESTE PROGRAMA TOMA UN ARCHIVO DE ESTUDIANTES ORGANIZADO EN FORMA
*
*
INDICE SECUENCIAL Y PRODUCE UN INFORME HACIENDO ACCESO SECUENCIAL. *
*
*
*
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-IDX ASSIGN TO "ARCH_EST.IDX"
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS STD-NUMBER-IDX.
*
SELECT PRINT-FILE
ASSIGN TO "PRINTER-FILE2.PRT".
*
DATA DIVISION.
FILE SECTION.
FD
STUDENT-FILE-IDX
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 80 CHARACTERS
DATA RECORD IS STUDENT-RECORD-IDX.
01
STUDENT-RECORD-IDX.
02 STD-NUMBER-IDX
02 STD-NAME-IDX
02 STD-FACULTY-IDX
02 STD-PROMEDIO-IDX
02 STD-DIRECCION1-IDX
02 STD-DIRECCION2-IDX
02 STD-PUEBLO-IDX
02 STD-ZIP-CODE-IDX
FD
PRINT-FILE
LABEL RECORDS ARE OMITTED
RECORD CONTAINS 133 CHARACTERS
DATA RECORD IS PRINT-RECORD.
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X(9).
X(15).
X(4).
9V99.
X(15).
X(15).
X(14).
X(5).
01 PRINT-RECORD
*
WORKING-STORAGE SECTION.
*
01 WORK-AREAS.
02 EOF
02 TOTAL-READ
02 TOTAL-PRINTED
02 LINE-CTR
02 PAGE-CTR
PIC X(133).
PIC
PIC
PIC
PIC
PIC
***************************
01
HEADING-1.
02 FILLER
02 FILLER
"UNIVERSIDAD ABC".
HEADING-2.
02 FILLER
02 FILLER
"SISTEMA ESTUDIANTIL".
PIC X(68)
PIC X(15)
HEADING-3.
02 FILLER
02 FILLER
"LISTADO DE ESTUDIANTES".
PIC X(66)
PIC X(19)
HEADING-4.
02 FILLER
02 FECHA-OUT
02 FILLER
02 PAGE-CTR-OUT
***************************
01
VALUE SPACES.
VALUE
VALUE SPACES.
VALUE
****************************
PIC X(65)
PIC X(22)
***************************
01
ZERO.
ZEROES.
ZEROES.
99.
ZEROES.
****************************
***************************
01
VALUE
VALUE
VALUE
VALUE
VALUE
****************************
***************************
01
9
9999
9999
99
99
VALUE SPACES.
VALUE
****************************
PIC
PIC
PIC
PIC
X(62)
X(8).
X(55)
ZZ9.
VALUE SPACES.
VALUE SPACES.
****************************
TITULO-1.
02
02
02
02
02
02
02
FILLER
FILLER
"NUMERO EST.".
FILLER
FILLER
"NOMBRE".
FILLER
FILLER
"FACULTAD".
FILLER
PIC X(5)
PIC X(11)
VALUE SPACES.
VALUE
PIC X(9)
PIC X(6)
VALUE SPACES.
VALUE
PIC X(8)
PIC X(8)
VALUE SPACES.
VALUE
PIC X(5)
VALUE SPACES.
02
02
02
02
02
02
02
02
02
02
FILLER
"PROMEDIO".
FILLER
FILLER
"DIR. - CALLE".
FILLER
FILLER
"DIR. - URB.".
FILLER
FILLER
"PUEBLO".
FILLER
FILLER
"ZIP CODE".
FILLER
PIC X(8)
VALUE
PIC X(5)
PIC X(13)
VALUE SPACES.
VALUE
PIC X(8)
PIC X(11)
VALUE SPACES.
VALUE
PIC X(12)
PIC X(6)
VALUE SPACES.
VALUE
PIC X(9)
PIC X(8)
VALUE SPACES.
VALUE
PIC X(4)
VALUE SPACES.
***************************
01
DETAIL-LINE.
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
FILLER
STD-NUMBER-OUT
FILLER
STD-NAME-OUT
FILLER
STD-FACULTY-OUT
FILLER
STD-PROMEDIO-OUT
FILLER
STD-DIRECCION1-OUT
FILLER
STD-DIRECCION2-OUT
FILLER
STD-PUEBLO-OUT
FILLER
STD-ZIP-CODE-OUT
FILLER
***************************
01
****************************
TOTAL-LINE.
02 FILLER
02 FILLER
"TOTAL RECORDS LEIDOS = ".
02 TOTAL-READ-OUT
02 FILLER
" TOTAL RECORDS IMPRESOS = ".
02 TOTAL-PRINTED-OUT
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X(6).
X(9).
X(5).
X(15).
X(6).
X(4).
X(9).
9.99.
X(6).
X(15).
X(6).
X(15).
X(6).
X(14).
X(6).
X(5).
X(2).
****************************
PIC Z,ZZ9.
*
PROCEDURE DIVISION.
*
***************************************************************************
**
MODULO PRINCIPAL DEL PROGRAMA.
*
***************************************************************************
*
0100-BEGIN.
OPEN INPUT STUDENT-FILE-IDX, OUTPUT PRINT-FILE.
READ STUDENT-FILE-IDX NEXT AT END MOVE 1 TO EOF.
PERFORM 0200-CALC-RTN UNTIL EOF = 1.
PERFORM 0400-TOTAL-RTN.
CLOSE STUDENT-FILE-IDX, PRINT-FILE.
STOP RUN.
*
***************************************************************************
** ESTA RUTINA MUEVE LOS CAMPOS NECESAREOS PARA CREAR EL RECORD EN EL
*
** REPORTE. ADEMAS CALCULA LA CANTIDAD DE RECORDS LEIDOS E IMPRESOS.
*
***************************************************************************
*
0200-CALC-RTN.
ADD 1 TO TOTAL-READ.
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
STD-NUMBER-IDX
STD-NAME-IDX
STD-FACULTY-IDX
STD-PROMEDIO-IDX
STD-DIRECCION1-IDX
STD-DIRECCION2-IDX
STD-PUEBLO-IDX
STD-ZIP-CODE-IDX
TO
TO
TO
TO
TO
TO
TO
TO
STD-NUMBER-OUT.
STD-NAME-OUT.
STD-FACULTY-OUT.
STD-PROMEDIO-OUT.
STD-DIRECCION1-OUT.
STD-DIRECCION2-OUT.
STD-PUEBLO-OUT.
STD-ZIP-CODE-OUT.
IF LINE-CTR > 35
PERFORM 0300-HEADING-RTN.
WRITE PRINT-RECORD FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
ADD
ADD
2
1
TO
TO
LINE-CTR.
TOTAL-PRINTED.
TO PAGE-CTR.
PAGE-CTR
TO PAGE-CTR-OUT.
PRINT-RECORD FROM HEADING-1 AFTER
PRINT-RECORD FROM HEADING-2 AFTER
PRINT-RECORD FROM HEADING-3 AFTER
PRINT-RECORD FROM HEADING-4 AFTER
PRINT-RECORD FROM TITULO-1
AFTER
7
TO LINE-CTR.
ADVANCING
ADVANCING
ADVANCING
ADVANCING
ADVANCING
PAGE.
1 LINE.
1 LINE.
1 LINE.
3 LINES.
*
***************************************************************************