Ver Mensaje Individual
  #1
Antiguo 7 de febrero de 2023, 17:18
Marengo97
Forero Junior
Última Actividad 22.11.2023 00:42
Posts Posts: 26
Likes enviados Enviados: 5
Likes recibidos Recibidos: 0
Predeterminado COBOL problema con READ, status = 46
0 Inactivo Inactivo

Hola comunidad, necesito ayuda.
Recibo un error que luce así en consola:
[ATTACH=CONFIG]880[/ATTACH]
Mi pregunta es por que sucede esto y como solucionarlo, claramente hay un error que estoy cometiendo pero no puedo verlo , y cada que vez que ejecuto el programa no importa que haga siempre me repite una linea con valor de " " (espacios) en RECAUDACION DE EMPLEADO..., capaz esta relacionado al error que estoy teniendo.
Y el IMPLICIT CLOSE tambien me tiene atascado.
Ojala puedan ayudarme

Codigo:
Código COBOL:
  1. IDENTIFICATION DIVISION.
  2.        PROGRAM-ID.                PROG-PAGOS-F.
  3.        AUTHOR.                    LUCAS GALEANO.
  4.        DATE-WRITTEN.              1/2/2023.
  5.  
  6.        ENVIRONMENT DIVISION.
  7.        INPUT-OUTPUT SECTION.
  8.        FILE-CONTROL.
  9.            SELECT REG-VENDEDORES ASSIGN TO "REG-MAESTRO.DAT"
  10.                ORGANIZATION IS LINE SEQUENTIAL.
  11.  
  12.            SELECT REG-VENTAS     ASSIGN TO "REG-VENTAS-MAESTRO.DAT"
  13.                ORGANIZATION IS LINE SEQUENTIAL.
  14.  
  15.        DATA DIVISION.
  16.        FILE SECTION.
  17.        FD REG-VENDEDORES.
  18.        01 VENDEDORES.
  19.            88 FIN-DEL-ARCHIVO        VALUE HIGH-VALUE.
  20.            05 EMPLEADO               PIC 9(2).
  21.            05 SUELDO-BASE            PIC 9(5).
  22.            05 CANTIDAD-VENTAS        PIC 9.
  23.            05 TOTAL-RECAUDACION      PIC 9(5) VALUE ZEROS.
  24.            
  25.  
  26.        FD REG-VENTAS.
  27.        01 COBRO-VENTAS.
  28.            05 VENDEDOR              PIC 9(2) OCCURS 100 TIMES.
  29.  
  30.        WORKING-STORAGE SECTION.
  31.        01 WS-VENDEDORES.
  32.            05 WS-EMPLEADO            PIC 9(2).
  33.            05 WS-SUELDO-BASE         PIC 9(5).
  34.            05 WS-CANTIDAD-VENTAS     PIC 9.
  35.            05 WS-TOTAL-RECAUDACION   PIC 9(5).
  36.  
  37.  
  38.        77 WS-PRECIO-PRODUCTO         PIC 9(5).
  39.        77 WS-TOTAL-EMPLEADOS         PIC 99.
  40.        77 WS-CONTADOR                PIC 99 VALUE ZEROS.
  41.        77 WS-INDICE                  PIC 99.
  42.  
  43.  
  44.  
  45.        PROCEDURE DIVISION.
  46.        GO TO BEGIN-INPUT.
  47.        BEGIN-OUTPUT.
  48.            OPEN OUTPUT REG-VENDEDORES.
  49.            OPEN OUTPUT REG-VENTAS.
  50.            DISPLAY "INGRESE DATOS SOLICITADOS".
  51.            DISPLAY " ".
  52.            DISPLAY "INGRESE TOTAL DE EMPLEADOS DE LA COMPANIA".
  53.            ACCEPT WS-TOTAL-EMPLEADOS.
  54.            PERFORM VARYING WS-CONTADOR FROM 01 BY 1
  55.                                  UNTIL WS-CONTADOR > WS-TOTAL-EMPLEADOS
  56.                PERFORM INGRESO-DATOS
  57.                WRITE VENDEDORES FROM WS-VENDEDORES
  58.                WRITE COBRO-VENTAS
  59.                END-WRITE
  60.                MOVE ZEROS TO WS-TOTAL-RECAUDACION
  61.            END-PERFORM.
  62.            DISPLAY COBRO-VENTAS
  63.            DISPLAY VENDEDORES
  64.            CLOSE REG-VENDEDORES.
  65.            CLOSE REG-VENTAS.
  66.          
  67.            
  68.        BEGIN-INPUT.
  69.            OPEN INPUT REG-VENDEDORES.
  70.            OPEN INPUT REG-VENTAS.
  71.            READ REG-VENDEDORES AT END SET FIN-DEL-ARCHIVO TO TRUE
  72.            END-READ
  73.            PERFORM VARYING WS-INDICE FROM 01 BY 1
  74.                              UNTIL VENDEDOR(WS-INDICE) > EMPLEADO
  75.                            
  76.            DISPLAY "RECAUDACION DE LA SEMANA DE EMPLEADO ",EMPLEADO
  77.                                   "ES: ",TOTAL-RECAUDACION
  78.            READ REG-VENDEDORES AT END SET FIN-DEL-ARCHIVO TO TRUE
  79.            END-READ
  80.            END-PERFORM.
  81.            CLOSE REG-VENDEDORES REG-VENTAS.
  82.            STOP RUN.
  83.  
  84.        INGRESO-DATOS.
  85.            DISPLAY "INGRESE NUMERO DE EMPLEADO:".
  86.            ACCEPT WS-EMPLEADO.
  87.            DISPLAY "INGRESE SUELDO BASE:".
  88.            ACCEPT WS-SUELDO-BASE.
  89.            DISPLAY "INGRESE CANTIDAD DE VENTAS REALIZADAS:".
  90.            ACCEPT WS-CANTIDAD-VENTAS.
  91.            INITIALIZE COBRO-VENTAS
  92.               PERFORM VARYING WS-INDICE FROM 01 BY 1 UNTIL
  93.                            WS-INDICE > WS-CANTIDAD-VENTAS
  94.            DISPLAY "PRECIO DEL PRODUCTO:"
  95.            ACCEPT WS-PRECIO-PRODUCTO
  96.            ADD WS-PRECIO-PRODUCTO    TO WS-TOTAL-RECAUDACION
  97.            END-PERFORM.
  98.            MOVE WS-EMPLEADO          TO VENDEDOR(WS-INDICE).
  99.  
  100.  
  101.  
  102.       *Una compañía de seguros tiene contratados a n vendedores. Cada vendedor realiza
  103.      *múltiples ventas a la semana. La política de pagos de la compañía es que cada vendedor
  104.      *recibe un sueldo base más un 10% extra por comisiones de sus ventas. El gerente de la
  105.      *compañía desea saber, por un lado, cuánto dinero deberá pagar en la semana a cada
  106.      *vendedor por concepto de comisiones de las ventas realizadas, y por otro lado, cuánto
  107.      *deberá pagar a cada vendedor como sueldo total (sueldo base + comisiones). Para cada
  108.      *vendedor ingresar cuanto es su sueldo base, cuantas ventas realizó y cuanto cobró por
  109.      *cada venta.
Imágenes Adjuntas
 
Marengo97 is offline   Responder Con Cita