LOS DATOS DEL LENGUAJE COBOL
DATA DIVISION
FUNCIÓN
•  Se
describen los datos que van a ser usados, creados, o 
 producidos
por el programa. 
•  Se
describe la estructura de los ficheros que se van a utilizar, así
 como las
variables utilizadas en el programa y que no son parte  de
los ficheros. 
FORMATO
 DATA
DIVISION. 
 [FILE
SECTION. 
 {
Entrada de descripción de ficheros....} 
 {
Entrada de descripción de registros...}] 
 [WORKING-STORAGE
SECTION. 
 [
Entrada de descripción de variables o registros ]] 
TIPOS
DE DATOS 
 • Una
de las características típicas de 
  los
datos que se usan en las 
  aplicaciones
de gestión es la variedad 
  de
formas y estructuras. 
 • Los
datos se clasifican en: 
  •
   Campos
Independientes
  •
   Campos
Compuestos
  •
   Tablas
CAMPOS INDEPENDIENTES
      • 
Es un
campo de trabajo que será definido en la sección de 
         
“working”.
No forman parte de la descripción de los ficheros. 
      • 
Formato
mínimo para su definición: 
  número-de-nivel
  nombre-de-dato 
  PICTURE
  especificación de formato. 
      • 
Donde: 
 •
Número-de-nivel. Se utiliza el nivel 77. 
 •
Nombre-de-datos. Un nombre de datos sirve para nombrar un   
  campo con el fin de poder referenciar en el programa, el contenido
           
  del mismo. 
 •
 PICTURE. Determina la información que puede almacenarse en el 
 
  campo, así como las operaciones que con él pueden realizarse. 
 
  Permite definir el tipo y el tamaño del campo
CLÁUSULA
PICTURE
 PICTURE/PIC
IS especificación de formato
 
  realizar a través de la cláusula VALUE, cuando se 
 
  están definiendo. 
 •
 Formato 
  •
VALUE IS
literal/constante
figurativa 
 WORKING-STORAGE
SECTION. 
 77
  VARIABLE      PIC   X(20)    VALUE “Listado Empleados”. 
 77
  VARIABLE      PIC   99         VALUE 10. 
 77
  VARIABLE      PIC   V99       VALUE 0.03. 
 77
  VARIABLE      PIC   9(8)       VALUE ZEROS. 
 77
  VARIABLE      PIC   X(10)     VALUE SPACES. 
 77
  VARIABLE      PIC   X(9)       VALUE ‘---------’ . 
 77
  VARIABLE      PIC   X(9)       VALUE ALL ‘-’. 
 77
  CERO             PIC   99999    VALUE ZEROS. 
 77
  CERO             PIC   99999    VALUE 0.
JUSTIFIED
RIGHT
 
  alfabético o alfanumérico y su efecto es 
 
  eliminar la convención de justificación a la 
 
  izquierda de los datos no numéricos. 
 77
  CAMPO     PIC X(4)     VALUE ‘AB’    JUST RIGHT.
 •
Son campos que pueden subdividirse. 
 •
Se le conoce también con el nombre de registros. 
 •
Pueden definirse en el área de trabajo 
 
 (WORKING-STORAGE SECTION) y es obligada su  utilización
al     describir
la estructura de los ficheros.
DE
NIVEL DE
DATO   DE
FORMATO
01
  VENDEDOR. 
 02
  NUMERO                          PIC
   999. 
 02
  DATOS-VENDEDOR. 
  03
  NOMBRE           PIC
  X(10).
  03
  APELLIDO1        PIC
  X(10).
  03
  APELLIDO2       PIC
  X(10).
 02
  DATOS-DIRECCION. 
  03
  PROVINCIA  PIC
  X(30).
  03
  CALLE   PIC  
X(15).
  03
  NCALLE   PIC  
99. 
 02
  FECHA-ALTA. 
  03
  DÍA    PIC  
99. 
  03
  MES    PIC  
99. 
  03
  ANIO    PIC  
99. 
• Los nombre de datos sirven para nombrar un campo
 
 con el fin de poder referenciar en el programa, el 
 
 contenido del mismo. 
 •
Si la información no se va a referenciar, el nombre de 
 
 datos puede sustituirse por la palabra reservada 
 
 FILLER. 
 •
Los números de Nivel sirven para indicar la relación 
 
 existente entre un campo y el resto de los campos. 
 •
Los números de nivel que pueden utilizarse son: del 01 al 49. 
  •
[01] Sólo precede al nombre del registro. 
  •
[02 a 49] Preceden a cualquier campo grupo o elemental.
• Un campo grupo tiene un nivel superior que cualquiera de sus
 
 campos elementales. 
 •
Los números de nivel utilizados no tiene porque ser correlativos. 
 •
Cualquier nombre de datos debe ir precedido por su número de nivel. 
 •
El número de nivel 01 deberá escribirse en el margen A, mientras
que su
nombre
asociado lo será en el margen B. 
 •
Cualquiera de los restantes números de nivel dentro del campo 
 
 compuesto pueden situarse en cualquier columna. 
 •
Se aconseja un escalonado progresivo de los niveles para una 
 
 mejor interpretación 
 •
El tipo del campo determina la información que puede almacenarse en
el 
campo, así
como las operaciones que con él pueden realizarse. 
 
  Se hace a través de la cláusula PICTURE. 
 •
 La longitud del campo viene dada por el número de caracteres 
 
  empleados en la especificación del formato para declarar el campo.
Calificación de los nombres de datos.
 •
En la declaración de campos compuestos, dos campos elementales     
    pueden tener
el mismo nombre de datos. 
01
  DATOS. 
 
  02  TOTALES-SEMANALES.
  03
 HORAS    PIC
99V99. 
  03
 DEPTO-NO   PIC
9(5).
 
  02  TOTALES-MENSUALES.
  03
 HORAS    PIC
99V99. 
  03
 MAS-INFORMACION  PIC
9(5). 
HORAS
OF/IN TOTALES-SEMANALES 
HORAS
OF/IN TOTALES-MENSUALES 
01 REG-VIEJO.
 
      02   A-LA-FECHA. 
  
03  MES.... 
  
03  ANUAL.... 
 
      02   ULTIMO-PERIODO. 
  
03  MES....            MES OF ULTIMO-PERIODO OF REG-VIEJO 
  
03 ANUAL.... 
  
03 TOTAL....    
    TOTAL OF REG-NUEVO 
01
 REG-NUEVO. 
 
     02  A-LA-FECHA. 
  03
 MES.... 
  03
 ANUAL.... 
 
     02  ULTIMO-PERIODO. 
  03
 MES.... 
  03
 ANUAL.... 
  03
 TOTAL.... 
NOMBRES DE CONDICIÓN
 •
 Permite al programador definir constantes figurativas 
 
  adicionales para usarlas en el programa COBOL 
 88
     nombre-de-dato VALUE IS/VALUES ARE constante-1 
   [THRU
constante-2] 
 77
   FINAL-FICHERO   PIC
XX. 
 
       88  FIN-FICHERO
   VALUE `SI`. 
 Si
se desea preguntar SI ES FINAL DE FICHERO bastará con decir: 
  IF
FIN-FICHERO
 en
lugar de preguntar IF FINAL-FICHERO = `SI`. 
01 DATOS-PERSONALES.
 
      02  NUMERO-ID  ... 
 
      02  NOMBRE...... 
 
      02  DIRECCION.... 
 
      02  EDUCACION   
 PICTURE 99. 
  
88 NO-BACHILLER   VALUES
 ARE   0  THRU 11. 
  
88 BACHILLER   VALUE
       IS 12. 
  
88 ALGO-UNIVERSIDAD  VALUES
 ARE 13  THRU 15. 
  
88 PROFESIONAL   VALUE
       IS 16. 
  
88 POSTGRADO   VALUES
 ARE 17  THRU 20. 
  
88 CODIGO-ERROR   VALUES
 ARE 21  THRU 99. 
 IF
BACHILLER
.... 
 IF
ALGO-UNIVERSIDAD
OR PROFESIONAL
 IF
EDUCACION <
16 
RENAMES
 •
La cláusula RENAMES provee al programador la capacidad de reagrupar
 
  los items de datos elementales.
66
   nombre-de-datos-1 RENAMES nombre-de -datos-2
   
          [THRU nombre-de-datos-3] 
 01
  REG-IMPUESTO. 
 
      02  NO-SEG-SOCIAL   PIC
X(9). 
 
      02  NOMBRE-COMPLETO. 
  
03 NOMBRE    PIC
X(10). 
  
03 INICIAL    PIC
XX. 
  
03 APELLIDO    PIC
X(15). 
 
      02  TOTAL-A-LA-FECHA. 
  
03  PAGO-BRUTO   PIC
9(8)V99. 
  
03  PAGO-NETO   PIC
9(8)V99. 
  
03  IMPUESTO-TRIBUTADO  PIC
9(6)V99. 
  
03  IMPUESTO-ESTADO  PIC
9(4)V99. 
 
     66   ULTIMO-PAGO   RENAMES   APELLIDO THRU PAGO-NETO. 
 Una
tabla es un conjunto de valores almacenados en 
 posiciones
consecutivas de memoria y con un nombre 
 de
datos asignado. 
 La
referencia a entradas específicas de la tabla se 
 hace
mediante un sólo nombre junto con un subíndice 
 que
indica la posición de entrada particular. 
WORKING-STORAGE
SECTION. 
01
  Nombre-de-tabla. 
02
Nombre-de-elemento OCCURS número-de-elementos TIMES 
    
     PICTURE tipo-de-elemento. 
Una tabla es un conjunto de valores almacenados en
 01
  TABLA-INGRESOS-ESTADO. 
 
      02  INGRESOS-PROMEDIOS 
   OCCURS
50 TIMES   PIC
9(6)V99.
 ..INGRESOS-PROMEDIOS
(Índice) donde Índice es 
 mayor
o igual que 1 y menor o igual que 50.
 
        02  INGRESOS-PROMEDIOS OCCURS 50 TIMES   PIC 9(6)V99. 
 
        02  PROMEDIO-NACIONAL                                      
PIC 9(7)V99.
 ..INGRESOS-PROMEDIOS
(Índice) donde Índice es 
 mayor
o igual que 1 y menor o igual que 50.
  02
 NOMBRE-INGRESO    OCCURS
50 TIMES. 
  
     03  NOMBRE   PIC
X(4). 
  
     03  INGRESO   PIC
9(6)V99. 
 •
La cláusula OCCURS no puede aplicarse a nivel 77. 
 •
La dimensión de una tabla debe ser menor o igual que 7, aunque
 
  depende del compilador. 
 •
La cláusula PICTURE se aplica sólo a campos elementales. 
 •
Los subíndices pueden ser constantes o variables de tipo entero. Sus
 
 valores deben ser positivos. 
 •
El subíndice o subíndices se encierran en un conjunto de paréntesis
 
  y se separan del nombre de la tabla por un espacio. Los subíndices
 
  múltiples se separan uno de otros por comas y espacios. 
• Inicialización de una tabla en tiempo de compilación.
 nombre-de-dato-1
REDEFINES nombre-de-dato-2 
 01
  FECHA. 
 
      02  DÍA   PIC
99. 
 
      02  MES   PIC
99. 
 
      02  AÑO   PIC
99. 
 01
FECHA-ACTUAL REDEFINES FECHA  PIC
X(6). 
01 TABLA-S.
 
      02 FILLER  PIC
X(10)  VALUE
"LUNES". 
 
      02 FILLER  PIC
X(10)  VALUE
"MARTES". 
 
      02 FILLER  PIC
X(10)  VALUE
"MIÉRCOLES". 
 
      02 FILLER  PIC
X(10)  VALUE
"JUEVES". 
 
      02 FILLER  PIC
X(10)  VALUE
"VIERNES". 
 
      02 FILLER  PIC
X(10)  VALUE
"SÁBADO". 
 
      02 FILLER  PIC
X(10)  VALUE
"DOMINGO". 
 01
  TABLA-DIA-S   REDEFINES  TABLA-S. 
 
      02  DIA-SEMANA  OCCURS
7 TIMES  PIC
X(10). 




















 
No hay comentarios:
Publicar un comentario