Curso de Cobol y PowerCobol

Creando un programa de incremento

Capítulo 51: Cómo crear un incrementador de números - Parte lógica

Continuamos con el programa del capítulo anterior. Le vamos a añadir al campo "Edit" el evento "RETURN" para crear un campo numérico que se vaya incrementando de 100 en 100 cada vez que se active con la tecla ENTER. Además, que cuando llegue a 1000, que borre el incremento y que vuelva a empezar. No solo eso, le añadiremos al botón el evento "CLICK" para que sea capaz de hacer lo mismo pulsándolo con el clic. Así verás como aplicar un mismo código de COBOL a varios eventos.

Programa de incremento con PowerCOBOL

Incremento con la tecla ENTER

Empecemos con el código que hará que se incremente el contador al pulsar la tecla ENTER. Recuerda, que para que funcione, debes tener activada la opción Event > [Enter] Key.

Edita el evento "RETURN" del campo de texto.

 ENVIRONMENT DIVISION.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 77 Contador PIC 9(4) VALUE ZEROS.
 77 Incremento PIC 9(4) VALUE ZEROS.
 
 PROCEDURE DIVISION.
 IncrementaContador.
*Se asigna el valor del CAMPO-TEXTO a la variable Contador.
 MOVE POW-TEXT OF CAMPO-TEXTO TO Contador.
 
*Se realiza el incremento.
 ADD 100 TO Incremento.

*Se cambia el valor anterior de CAMPO-TEXTO.
 MOVE Incremento TO POW-TEXT OF CAMPO-TEXTO.

Primero de todo, podríamos utilizar una variable ambivalente para no utilizar dos variables, pero aún no hemos llegado a ese tema. Ya lo veremos en otra ocasión.

Contamos con dos variables. Contador sirve para almacenar el valor inicial del CAMPO-TEXTO. Este valor lo obtenemos con un una instrucción de PowerCOBOL, POW-TEXT, es ahí donde se guarda el valor de texto del campo de texto.

Primero, asignamos el valor del campo de texto a la variable Contador. Aquí ya hemos conseguido utilizar datos de la interfaz gráfica en el código COBOL.

Lo siguiente, es el incremento, el cual es de 100 en 100.

Puesto que las variables llevan un PICTURE de 4, el contador solo podrá llegar a 9900. Después pasará a 0 de nuevo.

Finalmente, el valor de ese incremento, es asignado con POW-TEXT la suma de 100.

Necesitamos dos variables, para que cuando se haga la asignación, no se borre el valor anterior, lo que nos dejaría un contador que se incrementaría una sola vez a 100.

El editor de código de PowerCOBOL


Editor PowerCOBOL

Por cierto, el editor de PowerCOBOL cuenta con una indicación de las líneas y las columnas donde está el cursor. Esto es muy importante, ya que hay que saber la posición de los comentarios y el límite de línea.

Vamos a ejecutar nuestro programa. El incremento se hace correctamente y al ser un evento, no necesitamos hacer bucles con PERFORM.

Programa de incremento con PowerCOBOL

Ahora, corta y pega todo el código del evento en el evento click del botón. Si dejas los dos eventos, los valores del incremento con el botón, van a ser diferentes de los de la tecla "ENTER". Recuerda que estamos con dos archivos de COBOL distintos.

Comprueba que te funciona.

Para terminar, lo que quiero es que el incremento solo sea capaz de llegar a 1000. Luego, que quede a 0. Para ello, haremos uso de un condicional IF.

Lo que hace este IF, es que cuando el valor de Incremento está en 1000, que se asignen ZEROS al POW-TEXT de CAMPO-TEXTO y a la variable de Incremento. De esta forma restablecemos lo que se ve en la pantalla y el valor del incremento.

*Limitación del contador en 1000.
 IF Incremento > 1000
 MOVE ZEROS TO POW-TEXT OF CAMPO-TEXTO
 MOVE ZEROS TO Incremento
 END-IF

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.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.