
¿Cómo funciona la consola de PowerCOBOL?
Capítulo 49: la consola de desarrollo de PowerCOBOL
Para realizar ciertas pruebas o para indicarle algún mensaje de texto al usuario (más para lo primero que lo segundo), podemos hacer uso de la consola de PowerCobol mediante los DISPLAY
de COBOL.
El evento CHANGE
Probemos el evento "CHANGE" con un campo "Edit".
Primero, hagámosle una modificación. Le vamos a cambiar el texto interno que dice "EDIT".
Edita su estilo y cambia el valor de "Text". Puedes cambiar el estilo de las letras tal y como mostré anteriormente.

Ahora, haz click derecho sobre el elemento y haz click en "Procedure...". Te saldrá una ventana de eventos. Deja seleccionado el elemento "Edit" (EDIT1 en la imagen) y elige el evento "CHANGE". Esto va a hacer que salte todo el código que escribamos en la hoja COBOL cuando se escriba o borre algo del elemento.
En la división de procedimientos, vamos a escribir un párrafo con un DISPLAY
. Este párrafo ni siquiera sería necesario, ya que funciona igual sin él. No obstante, vamos a mantener las buenas prácticas que llevamos hasta ahora.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
MuestraTexto.
DISPLAY "Se ha modificado el texto.".

Le vas a dar a run, para que compile el programa y lo ejecute. Si pruebas con la opción "Test" para no tener que compilar, no te va a salir la consola.
Cada carácter que voy escribiendo o borrando, ejecuta el código. Esta vez es un DISPLAY
, pero podría ser lo que quisieras de código.
Lo bueno es que admite acentos y caracteres de todo tipo.
El evento EDIT
Probemos ahora el evento "EDIT". Este, se activará en cuanto se obtenga el foco en el elemento. Por si no sabes que es el foco, haz una cosa. En tu PC (Al menos en Windows), pulsa la tecla de Windows para abrir el menú inicio. Ves desplazándote por los elementos con la tecla tabulador. Ves que se seleccionan los elementos. Pues esa selección es el foco, es la atención sobre dicho elemento por el sistema operativo.
Para que el elemento sea capaz de obtener el foco para este evento, tenemos que editar el "Style" e ir al botón "Event".

Ahora, vamos a añadir un botón con el elemento "Push button". No haremos nada con él. De momento, solo servirá para tener un elemento donde cambiar el foco.
Ahora, edita la hoja del evento "EDIT". Podemos incluir código para todos los eventos a la vez. Funciona por separado. Pon un simple DISPLAY
que te diga que el foco está activo, o algo por el estilo.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
MuestraTexto.
DISPLAY "El foco está activado.".
Nada más ejecutar el programa, el foco ya está activo sobre el elemento "Edit". Ves alternando entre el botón y el campo de edición con la tecla tabulador. Verás como va saltando el evento cada vez que el foco vuelve a estar sobre el campo.

El evento RETURN
Para trabajar con el evento "RETURN", vas a tener que ir de nuevo a "Style" del campo editable y pulsar sobre el botón "Event". Aquí, debes tener la opción "[Enter] Key" marcada. Eso te va a permitir que al pulsar la tecla ENTER, salte el evento.
¿Por qué la tecla ENTER? Bien, normalmente, los inputs (entradas) de texto, se envían a los programas mediante un botón si utilizamos el mouse o mediante la tecla ENTER si estamos con el teclado.
Si dejas también marcada la opción "Kill focus", lo que va a pasar es que cuando quitemos el foco del elemento, se va a activar el evento RETURN. Por ejemplo, pulsamos el tabulador, y salta el evento. Seleccionamos otra cosa con el mouse y salta de nuevo, siempre después de haber estado previamente con el foco en el elemento.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
MuestraTexto.
DISPLAY "Se ha pulsado la tecla ENTER.".
Ves practicando con esto hasta que veas que comprendes a la perfección estos eventos. Te ayudará a aprender más rápido los siguientes eventos sobre otros elementos.
Comentarios
Si te quedan dudas sobre el temario, sobre Cobol, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.