Desarrollando en Cobol y Natural sobre Plataforma Mainframe

jueves, 8 de mayo de 2014

Mostrar colores en los textos de un mapa Cobol (y 2)

Hace unos días publicamos un artículo en el que estuvimos hablando de la posibilidad de mostrar colores distintos del verde en los Mapset de Cobol (ver post Mostrar colores en los textos de un mapa Cobol - 1). De hecho, en la imagen que poníamos como ejemplo aparecían el amarillo, el rojo, el rosa, el azul y el turquesa.

Aunque en dicho post estuvimos hablando de la posibilidad de definir los colores en el propio mapa, nos quedó ver una segunda posibilidad, consistente en asignar los colores de los campos en el código del programa Cobol que invoca al Mapa. Esto último es lo que vamos a ver hoy.

Opción 2: Definir colores del mapa en el programa Cobol

Una alternativa para asociar colores a los textos de un mapa consiste en ir definiéndolos en el propio objeto Cobol. De esta forma, además, podremos ir cambiando el color de un determinado campo varias veces a lo largo del programa sin más que ir incluyendo una nueva sentencia de definición de color.

Por ejemplo, tendríamos la opción de mostrar un campo numérico en azul al comienzo del programa y, en un momento dado, si dicho campo supera un determinado valor, entonces podríamos decidir que pasara a mostrarse en rojo.

La definición de un color en el objeto Cobol es bastante sencilla. Simplemente tendremos que asignar el color deseado al parámetro Color que está asociado a la variable sobre la que deseamos actuar.



Imaginemos que, según el ejemplo que estamos analizando, queremos mostrar la variable "EQUIPO" con color amarillo en el mapa. Entonces, bastará con incluir esta sentencia antes de hacer la invocación al mapset.

MOVE DFHYELLO     TO EQUIPOC

En esta sentencia DFHYELLO es la constante que indica que queremos mostrar un dato en color amarillo (yellow), y "EQUIPOC" es el parámetro Color asociado a la variable "EQUIPO" en la copy del Mapset. Recordemos que, cuando compilamos un Mapset, se genera una Copy para el mismo (que es, en realidad, lo que se conoce como Mapa Simbólico) en la que aparecen todas las variables definidas en el mapa, junto con una serie de parámetros asociados a cada una de dichas variables.

De hecho, si nos vamos al Mapa Simbólico del ejemplo (que, en nuestro caso, se encuentra en la librería LIBPR.COPYS.JJ00) en su contenido veremos, entre otras cosas, la siguiente información.

01  JJ0005AO REDEFINES JJ0005AI.
    02  FILLER PIC X(12).       
    02  FILLER PICTURE X(3).    
    02  EQUIPOC    PICTURE X.   
    02  EQUIPOH    PICTURE X.   
    02  EQUIPOO PIC 999.     
   

Como se observa, para la variable EQUIPO se han generado varios parámetros con diferentes funciones. Cada parámetro se genera uniendo el nombre de la variable con una letra determinada: en particular, el parámetro Color resulta de la unión de la variable y la letra -C. En el caso del ejemplo, el parámetro creado es el denominado "EQUIPOC", con formato PIC X, que se usará para asociarle el color deseado a la información mostrada en la variable "EQUIPO".



Análogamente a lo que hemos hecho con este primer campo, si queremos mostrar los colores del ejemplo inicial en las variables correspondientes, tendremos que incluir las siguientes sentencias en el programa Cobol.

MOVE DFHRED       TO NOMBREC
MOVE DFHPINK      TO PUNTOSC
MOVE DFHBLUE      TO FAVORC 
MOVE DFHTURQ      TO CONTRAC


Como vemos, estaríamos asignando la constante del color requerido a cada uno de los parámetros Color (acabados en -C) de los campos afectados del Mapset (NOMBRE, PUNTOS, FAVOR y CONTRA). DFHRED es la constante para verde, DFHPINK para rosa, DFHBLUE para azul y DFHTURQ para turquesa (turquoise).









Finalmente, tras la asignación de colores, habría que realizar la invocación del Mapa, tal y como siempre se hace en los objetos Cobol. De esta forma ya se mostraría la información correspondiente con los colores definidos.

EXEC CICS                               
  SEND MAP ('JJ0005A') MAPSET ('JJ0005M')
  ERASE                                 
  FROM (JJ0005AO)                       
  NOHANDLE                              
END-EXEC.


Hay que tener en cuenta que las posibles constantes color que se podrán asignar a un Mapset en un programa Cobol serán las que se indican en la siguiente tabla.

CONSTANTE COLOR
DFHCOLOR 2 Color
DFHDFCOL 2 Default color
DFHBLUE Blue
DFHRED Red
DFHPINK Pink
DFHGREEN Green
DFHTURQ Turquoise
DFHYELLO Yellow
DFHNEUTR Neutral color

En líneas generales, eso es todo por lo que respecta a la asignación de colores en los mapas Cobol. Como vemos, se trata de un tema muy sencillo y que tampoco tiene mayor dificultad, una vez que se conoce la nomenclatura usada para cada uno de los colores disponibles.

De todas formas, si os queda alguna duda, no dudéis en preguntar y trataremos de resolverla (como siempre) en la medida de nuestras posibilidades.

Saludos.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...