Los subfiles en general causan miedo y desconocimiento entre
los principiantes (y entre más de un veterano) de Cobol/400, cuando en
realidad, una vez entendido el concepto, su programación se hace muy sencilla.
Literalmente, un subfile (o subfichero) no es más que una
lista para mostrar datos. Existen 2 tipos de subficheros:
- Carga total. En este tipo de subfichero, se cargan todos los datos a la vez, y se configura cuántos registros se van a mostrar por pantalla, encargándose el sistema de las paginaciones de forma automática. Es el más fácil de programar, pero tiene una limitación: sólo se pueden cargar 9998 registros. Si se cargan más obtendremos el File Status 9M.
- Carga parcial. Si tenemos que cargar más de 9998 registros, la única forma será mediante un subfichero de carga parcial. Como su nombre indica, se van cargando parcialmente los datos, teniendo que gestionar mediante el código las paginaciones hacia delante o hacia atrás. Es más complejo debido a los diferentes accesos al fichero.
Pero como veremos, rápidamente le perderemos el miedo a esta
forma de mostrar datos.
En las siguientes publicaciones iremos desarrollando paso a
paso un ejemplo sencillo. Una agenda donde guardamos nuestros contactos y sus
teléfonos. Realizaremos un programa que muestre por pantalla todos los
contactos ordenados por nombre, apellidos y número de teléfono.
Los pasos que deberemos seguir son:
- Crear las DDS, tanto de la base de datos como de la pantalla (DSPF)
- Crear el Cobol que gestione el subfichero para mostrar la información.
Inicialmente vamos a crear las DDS. Lo primero es la base de
datos. Será algo sencillo, es decir, almacenará información básica. Llamaremos
al fichero FAGENDAP. Le crearemos un lógico con claves el nombre, apellidos y
teléfono, que serán claves únicas.
Las DDS serán:
0001.00
A*****************************************************
0002.00 A*
ARCHIVO .........: FAGENDAP *
0003.00 A*
DESCRIPCIÓN......: FICHERO DE DATOS DE LA AGENDA *
0004.00 A* AUTOR............: © TODO-AS400.BLOGSPOT.COM © *
0005.00 A* FECHA............: ABRIL/2012 *
0006.00
A*****************************************************
0007.00 A
R RFAGENDA
0008.00 A NOMBRE 15A
0009.00 A APELLIDOS 30A
0010.00 A DIRECCION 30A
0011.00 A TELEFONO 9S 0
0012.00 A FILLER 50A
Para el lógico:
0001.00
A*****************************************************
0002.00 A*
ARCHIVO .........: FAGENDA1 *
0003.00 A* DESCRIPCIÓN......:
FICHERO DE DATOS DE LA AGENDA *
0004.00 A* AUTOR............: © TODO-AS400.BLOGSPOT.COM
© *
0005.00 A* FECHA............: ABRIL/2012 *
0006.00
A*****************************************************
0007.00 A
UNIQUE
0008.00 A
R RFAGENDA
PFILE(FAGENDAP)
0009.00 A K NOMBRE
0010.00 A K APELLIDOS
0011.00 A K TELEFONO
En la próxima entrega generaremos las DDS de la pantalla que contendrá el subfichero.
No hay comentarios:
Publicar un comentario