Iniciar Sesión

Ver la Versión Completa : [Duda] Limpiar linea


dariodr
30 de julio de 2026, 11:00
Buenas amigos coboleros, tengo este codigo y una consulta.
Como hago (en ADD-CUSTOMER) para que cada vez que quiera agregar otro registro se borre la informacion anterior, no se si entiende.

IDENTIFICATION DIVISION.
PROGRAM-ID. CUSTOMER-MANAGER.

ENVIRONMENT DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 MENU-CHOICE PIC 9.
01 EXIT-FLAG PIC X VALUE "N".
88 EXIT-PROGRAM VALUE "Y".
01 NOMBRE PIC X(10).
01 APELLIDO PIC X(30).
01 TELEFONO PIC X(7).
01 SEGUIR PIC X.
01 STATUS-MESSAGE PIC X(40).
01 ERROR-MESSAGE PIC X(40).

SCREEN SECTION.
01 MAIN-MENU-SCREEN.
05 BLANK SCREEN.
05 LINE 1 COLUMN 1 VALUE "============================".
05 LINE 2 COLUMN 15 VALUE "CUSTOMER MANAGEMENT SYSTEM"
HIGHLIGHT.
05 LINE 3 COLUMN 1 VALUE "============================".
05 LINE 5 COLUMN 20 VALUE "MAIN MENU".
05 LINE 6 COLUMN 20 VALUE "---------".
05 LINE 8 COLUMN 20 VALUE "1. Add Customer".
05 LINE 9 COLUMN 20 VALUE "2. View Customer".
05 LINE 10 COLUMN 20 VALUE "3. Update Customer".
05 LINE 11 COLUMN 20 VALUE "4. Delete Customer".
05 LINE 12 COLUMN 20 VALUE "5. Exit".
05 LINE 14 COLUMN 20 VALUE "Enter your choice (1-5): ".
05 LINE 14 COLUMN 45 PIC 9 TO MENU-CHOICE REQUIRED.

01 CUSTOMER-ENTRY-SCREEN.
05 BLANK SCREEN.
05 LINE 1 COLUMN 1 VALUE "============================".
05 LINE 2 COLUMN 15 VALUE "CUSTOMER ENTRY FORM"
HIGHLIGHT.
05 LINE 3 COLUMN 1 VALUE "============================".
05 LINE 5 COLUMN 10 VALUE "Nombre: ".
05 LINE 5 COLUMN 25 PIC X(10) TO NOMBRE
REQUIRED.
05 LINE 6 COLUMN 10 VALUE "Apellido: ".
05 LINE 6 COLUMN 25 PIC X(30) TO APELLIDO
REQUIRED.
05 LINE 7 COLUMN 10 VALUE "Telefono: ".
05 LINE 7 COLUMN 25 PIC X(7) TO TELEFONO.
05 LINE 9 COLUMN 25 VALUE 'OTRO REGISTRO S/N: '.
05 LINE 9 COLUMN 43 PIC X TO SEGUIR.

PROCEDURE DIVISION.
MAIN-PROCESS.
PERFORM UNTIL EXIT-PROGRAM
PERFORM DISPLAY-MAIN-MENU
PERFORM PROCESS-MENU-CHOICE
END-PERFORM
STOP RUN.

DISPLAY-MAIN-MENU.
DISPLAY MAIN-MENU-SCREEN.
ACCEPT MAIN-MENU-SCREEN.

PROCESS-MENU-CHOICE.
EVALUATE MENU-CHOICE
WHEN 1
PERFORM ADD-CUSTOMER UNTIL SEGUIR = 'N'
WHEN 5
MOVE "Y" TO EXIT-FLAG
WHEN OTHER
MOVE "Invalid choice - please try again"
TO ERROR-MESSAGE
DISPLAY ERROR-MESSAGE LINE 16 COLUMN 20
END-EVALUATE.

ADD-CUSTOMER.
DISPLAY CUSTOMER-ENTRY-SCREEN.
ACCEPT CUSTOMER-ENTRY-SCREEN.

Kuk
30 de julio de 2026, 22:45
@dariodr, tienes que hacer INITIALIZE CUSTOMER-ENTRY-SCREEN antes de hacerle DISPLAY

dariodr
1 de agosto de 2026, 04:36
No funciono, sigo viendo la informacion anterior. Uso gnucobol.
Salu2.

Josber
1 de agosto de 2026, 11:31
@dariodr

¿puedes pegar por aquí el código fuente que has programado?, porque es muy raro que un INITIALIZE no te funcione ...

dariodr
1 de agosto de 2026, 12:56
IDENTIFICATION DIVISION.
PROGRAM-ID. CUSTOMER-MANAGER.

ENVIRONMENT DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 MENU-CHOICE PIC 9.
01 EXIT-FLAG PIC X VALUE "N".
88 EXIT-PROGRAM VALUE "Y".
01 NOMBRE PIC X(10).
01 APELLIDO PIC X(30).
01 TELEFONO PIC X(7).
01 SEGUIR PIC X.
01 STATUS-MESSAGE PIC X(40).
01 ERROR-MESSAGE PIC X(40).

SCREEN SECTION.
01 MAIN-MENU-SCREEN.
05 BLANK SCREEN.
05 LINE 1 COLUMN 1 VALUE "============================".
05 LINE 2 COLUMN 15 VALUE "CUSTOMER MANAGEMENT SYSTEM"
HIGHLIGHT.
05 LINE 3 COLUMN 1 VALUE "============================".
05 LINE 5 COLUMN 20 VALUE "MAIN MENU".
05 LINE 6 COLUMN 20 VALUE "---------".
05 LINE 8 COLUMN 20 VALUE "1. Add Customer".
05 LINE 9 COLUMN 20 VALUE "2. View Customer".
05 LINE 10 COLUMN 20 VALUE "3. Update Customer".
05 LINE 11 COLUMN 20 VALUE "4. Delete Customer".
05 LINE 12 COLUMN 20 VALUE "5. Exit".
05 LINE 14 COLUMN 20 VALUE "Enter your choice (1-5): ".
05 LINE 14 COLUMN 45 PIC 9 TO MENU-CHOICE REQUIRED.

01 CUSTOMER-ENTRY-SCREEN.
05 BLANK SCREEN.
05 LINE 1 COLUMN 1 VALUE "============================".
05 LINE 2 COLUMN 15 VALUE "CUSTOMER ENTRY FORM"
HIGHLIGHT.
05 LINE 3 COLUMN 1 VALUE "============================".
05 LINE 5 COLUMN 10 VALUE "Nombre: ".
05 LINE 5 COLUMN 25 PIC X(10) TO NOMBRE
REQUIRED.
05 LINE 6 COLUMN 10 VALUE "Apellido: ".
05 LINE 6 COLUMN 25 PIC X(30) TO APELLIDO
REQUIRED.
05 LINE 7 COLUMN 10 VALUE "Telefono: ".
05 LINE 7 COLUMN 25 PIC X(7) TO TELEFONO.
05 LINE 9 COLUMN 25 VALUE 'OTRO REGISTRO S/N: '.
05 LINE 9 COLUMN 43 PIC X TO SEGUIR.

PROCEDURE DIVISION.
MAIN-PROCESS.
PERFORM UNTIL EXIT-PROGRAM
PERFORM DISPLAY-MAIN-MENU
PERFORM PROCESS-MENU-CHOICE
END-PERFORM
STOP RUN.

DISPLAY-MAIN-MENU.
DISPLAY MAIN-MENU-SCREEN.
ACCEPT MAIN-MENU-SCREEN.

PROCESS-MENU-CHOICE.
EVALUATE MENU-CHOICE
WHEN 1
PERFORM ADD-CUSTOMER UNTIL SEGUIR = 'N'
WHEN 5
MOVE "Y" TO EXIT-FLAG
WHEN OTHER
MOVE "Invalid choice - please try again"
TO ERROR-MESSAGE
DISPLAY ERROR-MESSAGE LINE 16 COLUMN 20
END-EVALUATE.

ADD-CUSTOMER.
INITIALIZE CUSTOMER-ENTRY-SCREEN.
DISPLAY CUSTOMER-ENTRY-SCREEN.
ACCEPT CUSTOMER-ENTRY-SCREEN.

Josber
2 de agosto de 2026, 13:48
@dariodr

He hecho unas cuantas pruebas en RM-Cobol copiando tu código y sin modificarlo, (no tengo el compilador GNU, pero RM-Cobol, es muy similar) y a mí me funciona perfectamente, cuando entras en la pantalla, se borran los datos y, después de introducirlos, al pedirle otro nuevo, también se borran sin problemas, igual es un fallo que tiene el compilador de GNU, a ver si alguien más versado en temas LINUX, te puede ayudar.

P.D. tenía unas imágenes capturadas pero, no las puedo subir porque no funciona el tema de los "botones" de edición del foro, para ser exactos, no funciona ninguno, ni el de imágenes, negrita, resaltes, mencionar usuario ...
A ver si @Kuk puede darle un vistazo y ver que se ha trastocado del foro

Un salu2.-