Hola JCantero, modifique el primer programa para hacerlo en forma secuencial y funciono.
Tambien modifique un poco el segundo programa quedando asi.
Todo funciona perfectamente.
Salu2.
Código COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. MAIN.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPLEADOS-ARCHIVO
ASSIGN TO "emple.dat"
ORGANIZATION IS INDEXED
RECORD KEY IS EMPLEADOS-ID
ACCESS MODE IS DYNAMIC.
DATA DIVISION.
FILE SECTION.
FD EMPLEADOS-ARCHIVO.
01 EMPLEADOS-REGISTRO.
05 EMPLEADOS-ID PIC X(6).
05 EMPLEADOS-NOMBRE PIC X(25).
05 EMPLEADOS-APELLIDOS PIC X(35).
05 EMPLEADOS-EDAD PIC X(3).
05 EMPLEADOS-TELEFONO PIC X(9).
05 EMPLEADOS-DIRECCION PIC X(35).
WORKING-STORAGE SECTION.
77 LEE-TODO PIC X VALUE 'N'.
PROCEDURE DIVISION.
INICIO-PROGRAMA.
PERFORM PROCEDIMIENTO-APERTURA.
PERFORM LEE-SIGUIENTE-REGISTRO UNTIL LEE-TODO = 'S'.
PERFORM PROCEDIMIENTO-DE-CIERRE.
STOP RUN.
PROCEDIMIENTO-APERTURA.
OPEN I-O EMPLEADOS-ARCHIVO.
PROCEDIMIENTO-DE-CIERRE.
CLOSE EMPLEADOS-ARCHIVO.
MUESTRA-CAMPOS.
DISPLAY "ID: " EMPLEADOS-ID.
DISPLAY "Nombre: " EMPLEADOS-NOMBRE.
DISPLAY "Apellidos: " EMPLEADOS-APELLIDOS.
DISPLAY "Edad: " EMPLEADOS-EDAD.
DISPLAY "Telefono: " EMPLEADOS-TELEFONO.
DISPLAY "Direccion: " EMPLEADOS-DIRECCION.
LEE-SIGUIENTE-REGISTRO.
READ EMPLEADOS-ARCHIVO NEXT RECORD
AT END
MOVE 'S' TO LEE-TODO
NOT AT END
PERFORM MUESTRA-CAMPOS
END-READ.