Mirá, probé utilizando tablas, ya a estas alturas estoy experimentando y estoy incluso mas perdido el output me sale asi:
No me suma la cantidad de unidades vendidas (ws-u-vendidas) no importa cuantas veces repita y por algun motivo me muestra el nombre en espacios...estoy perdiendo la cordura

jaja
y encima estoy lidiendo con el error "not numeric" constantemente por los espacios que pasan con el MOVE.
Código COBOL:
REGISTRAR-VENTA.
PERFORM varying I from 1 by 1 until WS-CONTINUAR
equals "n" or
I > 100
INITIALIZE REG-PRODUCTOS LLAVE WS-VENTA
DISPLAY "INGRESE ID DEL PRODUCTO: " WITH NO ADVANCING
ACCEPT LLAVE-NUMERO-PRODUCTO
MOVE LLAVE-NUMERO-PRODUCTO TO WS-ID-AUX
READ STOCK-MAESTRO
INVALID KEY MOVE "F" TO WS-REG-EXISTE
END-READ
IF WS-REG-EXISTE = "F" THEN
DISPLAY " "
DISPLAY "PRODUCTO FUERA DE STOCK."
ELSE
DISPLAY "INGRESE EL MES ACTUAL: " WITH NO ADVANCING
ACCEPT WS-MES(I)
MOVE LLAVE-NUMERO-PRODUCTO TO WS-ID-PRODUCTO(I)
MOVE NOMBRE-PRO TO WS-NOMBRE(I)
COMPUTE VALOR-VENTA = FUNCTION NUMVAL(VALOR-VENTA)
MOVE VALOR-VENTA TO WS-PRECIO-BASE(I)
SEARCH ALL WS-TABLA
AT END MOVE "T" TO WS-REG-EXISTE
WHEN WS-ID-PRODUCTO(I) = WS-AUX-INDICE
COMPUTE WS-U-VENDIDAS(I) = WS-U-VENDIDAS(I)+ 1
DISPLAY "SE ACTUALIZÓ EL REGISTRO."
DISPLAY WS-TABLA(I)
END-SEARCH
END-PERFORM.
- - - Updated - - -
Cita de mi comentario: Uso las tablas porque borre la descripcion de FD como me habias aconsejado por lo tanto paso los datos por una tabla y luego habrian de ser escritas en el reporte-ventas.