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