3.- Las variables
Las distintas variables que vayamos a utilizar, se irán comentando durante todo el proceso, pero por ejemplo, para empezar, tendremos que definir algunas fijas, como, la que guarde el estado del fichero, una para aceptar campos de preguntas, contador de líneas para los listados, definiciones de ventanas, etc...

La estructura de cada una de las variables, dependerá de su uso. Como los requisitos de memoria no son un problema hoy en día, no utilizaremos la cláusula COMP en ninguna de ellas, es decir todas ocuparán su tamaño, sin ningún tipo de compresión.

Además voy a incluir todas las variables necesarias para utilizar ventanas en RM, dentro de la Working, si no sabéis como se tratan las ventanas en Cobol, podéis ir a la sección Ventanas dentro de Temáticos.

También se incluirán diversas tablas con informaciones como los días de la semana, los meses del año, etc...

Las frases en éste color son comentarios.

»» VARIABLES Veamos como se definen esas variables en nuestro programa.
WORKING-STORAGE SECTION.
diversas variables que utilizaremos durante el programa.
77  STAAGE        PIC XX.
77  ELE              PIC 99.
77  OP               PIC X.
77  LI                PIC 99.
77  DIA              PIC 99.
77  ESCA           PIC 9 COMP-1.
77  MODI           PIC 9.
01  C4               PIC 9(4).
01  DC4             PIC ZZZ9.
01  MOTIVO       PIC X(20).


tablas para utilizar en el menu, con las opciones y unas frases explicativas de la función de cada opción.
01  TABLAOPCIONES.
      02   FILLER    PIC X(24) VALUE " CONTACTOS LISTADO ".
      02   FILLER    PIC X(12) VALUE " SALIR ".
01  OPCIONESTABLA REDEFINES TABLAOPCIONES.
      02   ELEOPC  PIC X(12) OCCURS 3 TIMES.

01  TABLAMENSAJES1.
      02  FILLER    PIC X(26) VALUE "Altas, bajas, modificacion".
      02  FILLER    PIC X(26) VALUE "Listado por impresora de ".
      02  FILLER    PIC X(26) VALUE SPACES.
01  MENSAJESTABLA1 REDEFINES TABLAMENSAJES1.
      02  ELEME1  PIC X(26) OCCURS 3 TIMES.

01  TABLAMENSAJES2.
      02   FILLER   PIC X(26) VALUE "y consultas de la agenda. ".
      02   FILLER   PIC X(26) VALUE "los datos de la agenda. ".
      02   FILLER   PIC X(26) VALUE "Abandonar la aplicacion.".
01  MENSAJESTABLA2 REDEFINES TABLAMENSAJES2.
      02   ELEME2  PIC X(26) OCCURS 3 TIMES.


variables para el uso de ventanas en RM/Cobol.
01  WCB.
      03  WINCAB              PIC 999 BINARY VALUE 0.
      03  WINLIN               PIC 999 BINARY.
      03  WINCOL              PIC 999 BINARY.
      03  WINLOC              PIC X VALUE "S".
      03  WINBORST          PIC X VALUE "Y".
      03  WINBORTI           PIC 9 VALUE 2.
      03  WINBORCH         PIC X.
      03  WINLLE               PIC X.
      03  WINLLECH           PIC X.
      03  WINTITSI            PIC X VALUE "T".
      03  WINTITPO           PIC X VALUE "C".
      03  WINTITLO           PIC 999 BINARY.
      03  WINTIT               PIC X(64).


en ésta tabla guardaremos todas las ventanas que vayamos creando
01  VENTANAS.
       02  WIN                   PIC X(80) OCCURS 10 TIMES.

linea con la fecha del dia.
01  LIFEDI.
      02  LFDDIA   PIC X(9).
      02  FILLER    PIC XX VALUE ", ".
      02  LFDNUM  PIC ZZ.
      02  FILLER    PIC X(4) VALUE " DE ".   
      02  LFDMES  PIC X(10).
      02  FILLER    PIC X(7) VALUE " DE 2.0".
      02  LFDANO  PIC 99B.


para trabajar con la fecha, lo haremos a 6 digitos, para evitar problemas con compiladores que no tengan disponible el efecto 2000.
01  FECA             PIC 9(6).
01  FECAL  REDEFINES FECA.
     02  FI            PIC 99.
     02  FM           PIC 99.
     02  FA           PIC 99.
01  FF                PIC 99.


variables necesarias para generar los cuadros y rayas.
01  CUADRO.
      02 U1           PIC 99.
      02 U2           PIC 99.
      02 U3           PIC 99.
      02 U4           PIC 99.
01  U0                PIC 99 VALUE 0.
01  U9                PIC 99 VALUE 0.
01  RAYA.
     02   FILLER    PIC X(80) VALUE ALL "-".  
(Alt+196)

tablas con los meses y los dias.

01  TABLAMES.
      02  FILLER PIC X(30) VALUE "ENERO      FEBRERO      MARZO ".
      02  FILLER PIC X(30) VALUE "ABRIL       MAYO            JUNIO ".
      02  FILLER PIC X(30) VALUE "JULIO       AGOSTO        SEPTIEMBRE".
      02  FILLER PIC X(30) VALUE "OCTUBRE NOVIEMBRE DICIEMBRE".
01  TABLIMES REDEFINES TABLAMES.
      02  TMES   PIC X(10) OCCURS 12 TIMES.

01  TABLASEM.
      02  FILLER PIC X(27) VALUE "LUNES       MARTES    MIERCOLES".
      02  FILLER PIC X(27) VALUE "JUEVES     VIERNES   SABADO ".
      02  FILLER PIC X(9)   VALUE "DOMINGO".
01  TABLISEM REDEFINES TABLASEM.
      02  TSEM PIC X(9) OCCURS 7 TIMES.

Hasta aquí todo lo correspondiente a las variables que vamos a utilizar en nuestro programa.



Este artículo proviene de Cobol en español
http://www.escobol.com

La dirección de esta noticia es:
http://www.escobol.com/modules.php?name=Sections&op=viewarticle&artid=72