jueves, 10 de mayo de 2012

Creación de un Subfile - DDS - Parte 1


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:

  1. Crear las DDS, tanto de la base de datos como de la pantalla (DSPF) 
  2. 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.

Hasta otra.

No hay comentarios:

Publicar un comentario