Subcomando CONTINUADA (comando REPEATING DATA)
CONTINUED indica que los grupos de repetición están contenidos en más de un registro para cada caso de entrada.
- Cada grupo de repetición debe estar totalmente registrado en un único registro: un grupo de repetición no se puede dividir entre registros.
- Los grupos de repetición deben empezar en la misma columna en todos los registros de continuación.
- Si se especifica
CONTINUEDsin columnas de inicio y finalización, el programa presupone que los grupos de repetición empiezan en la columna 1 de registros de continuación y busca grupos de repetición explorando hasta el final del registro o hasta el valor especificado porOCCURS. Consulte el tema Operaciones (mandato REPEATING DATA) para obtener más información. - Si los grupos de repetición en los registros de continuación no empiezan en la columna 1,
CONTINUEDdebe especificar la columna en la que empiezan los grupos de repetición. - Si hay espacio en la longitud de registro lógico para más grupos de repetición que los contenidos en el primer registro de cada caso de entrada, el submandato
STARTSdebe indicar una columna final para los registros. La columna final enSTARTSsólo se aplica al primer registro de cada caso de entrada. - Si hay espacio en la longitud de registro lógico para más grupos de repetición que los contenidos en los registros de continuación de cada caso de entrada, el submandato
CONTINUEDdebe indicar una columna final. La columna final enCONTINUEDse aplica a todos los registros de continuación.
Ejemplo básico
* This example assumes the logical record length is 80.
INPUT PROGRAM.
DATA LIST / ORDERID 1-5 NITEMS 7-8.
REPEATING DATA STARTS=10 /OCCURS=NITEMS /CONTINUED=7
/DATA=ITEM 1-9 (A) QUANTITY 11-13 PRICE (DOLLAR7.2,1X).
END INPUT PROGRAM.
BEGIN DATA
10020 07 01-923-89 001 25.99 02-899-56 100 101.99 03-574-54 064 61.29
10020 04-780-32 025 13.95 05-756-90 005 56.75 06-323-47 003 23.74
10020 07-350-95 014 11.46
20030 04 01-781-43 010 10.97 02-236-54 075 105.95 03-655-83 054 22.99
20030 04-569-38 015 75.00
END DATA.
LIST.
- Los datos se extraen de un archivo de orden de correo. Cada caso de entrada representa un orden completo. Los datos muestran dos pedidos completos registrados en un total de cinco registros.
- El número de orden se registra en las columnas 1 a 5 de cada registro. Los tres primeros registros contienen información para el pedido 10020; los dos siguientes registros contienen información para el pedido 20030. El segundo campo de números en el primer registro de cada pedido indica el número total de artículos pedidos. Los grupos de repetición empiezan en la columna 10 del primer registro y en la columna 7 de los registros de continuación. Cada grupo de datos de repetición representa un artículo solicitado y contiene tres variables: el número de inventario del artículo, la cantidad solicitada y el precio.
DATA LISTdefine las variables ORDERID y NITEMS en el primer registro de cada caso de entrada.STARTSonREPEATING DATAindica que los grupos de repetición del primer registro de cada caso de entrada empiezan en la columna 10.OCCURSindica que el número total de grupos de repetición para cada caso de entrada es el valor de NITEMS.CONTINUEDdebe utilizarse porque los grupos de repetición continúan en más de un registro para cada caso de entrada.CONTINUEDespecifica una columna inicial porque los grupos de repetición empiezan en la columna 7 en lugar de en la columna 1 de los registros de continuación.DATAdefine las variables ITEM, QUANTITYy PRICE para cada grupo de datos de repetición. ITEM está en las posiciones 1-9, QUANTITY está en las posiciones 11-13 y PRICE está en las posiciones 14-20 y va seguido de una columna en blanco. Por lo tanto, la longitud de los grupos de repetición es de 21 columnas. La salida deLISTse muestra a continuación.
ORDERID NITEMS ITEM QUANTITY PRICE
10020 7 01-923-89 1 $25.99
10020 7 02-899-56 100 $101.99
10020 7 03-574-54 64 $61.29
10020 7 04-780-32 25 $13.95
10020 7 05-756-90 5 $56.75
10020 7 06-323-47 3 $23.74
10020 7 07-350-95 14 $11.46
20030 4 01-781-43 10 $10.97
20030 4 02-236-54 75 $105.95
20030 4 03-655-83 54 $22.99
20030 4 04-569-38 15 $75.00
NUMBER OF CASES READ = 11 NUMBER OF CASES LISTED = 11
Especificación de una columna final en el subcomando INICIA
* This example assumes the logical record length is 80.
INPUT PROGRAM.
DATA LIST / ORDERID 1-5 NITEMS 7-8.
REPEATING DATA STARTS=10-55 /OCCURS=NITEMS /CONTINUED=7
/DATA=ITEM 1-9 (A) QUANTITY 11-13 PRICE (DOLLAR7.2,1X).
END INPUT PROGRAM.
BEGIN DATA
10020 07 01-923-89 001 25.99 02-899-56 100 101.99
10020 03-574-54 064 61.29 04-780-32 025 13.95 05-756-90 005 56.75
10020 06-323-47 003 23.74 07-350-95 014 11.46
20030 04 01-781-43 010 10.97 02-236-54 075 105.95
20030 03-655-83 054 22.99 04-569-38 015 75.00
END DATA.
LIST.
- Los datos son los mismos que en el ejemplo anterior; sin embargo, los registros se introducen de forma diferente. El primer registro para cada caso de entrada sólo contiene dos grupos de repetición.
DATA LISTdefine las variables ORDERID y NITEMS en las columnas 1-8 en el primer registro de cada caso de entrada. La columna 9 está en blanco.DATAdefine las variables ITEM, QUANTITYy PRICE en las posiciones de la 1 a la 20 de cada grupo de repetición, seguidas de un espacio en blanco. Por lo tanto, cada grupo de repetición tiene 21 columnas de ancho. La longitud del primer registro de cada caso de entrada es, por lo tanto, 51 columnas: 21 columnas para cada uno de los dos grupos de repetición, más las ocho columnas definidas enDATA LIST, más la columna 9, que está en blanco. La longitud de registro lógico del sistema operativo es 80, lo que permite espacio para un grupo de repetición más en el primer registro de cada caso de entrada. Por lo tanto,STARTSdebe especificar una columna final que no proporcione suficientes columnas para otro grupo de repetición; de lo contrario, el programa crea un caso de salida con valores perdidos para las variables especificadas enDATA.STARTSespecifica que el programa debe explorar sólo las columnas 10-55 del primer registro de cada caso de entrada que busca grupos de datos repetitivos. Explorará los registros de continuación que empiezan en la columna 7 hasta que se alcance el valor especificado en el submandatoOCCURS.
Especificación de una columna final en el subcomando CONTINUACIÓN
* This example assumes the logical record length is 80.
INPUT PROGRAM.
DATA LIST / ORDERID 1-5 NITEMS 7-8.
REPEATING DATA STARTS=10-55 /OCCURS=NITEMS /CONTINUED=7-55
/DATA=ITEM 1-9 (A) QUANTITY 11-13 PRICE (DOLLAR7.2,1X).
END INPUT PROGRAM.
BEGIN DATA
10020 07 01-923-89 001 25.99 02-899-56 100 101.99
10020 03-574-54 064 61.29 04-780-32 025 13.95
10020 05-756-90 005 56.75 06-323-47 003 23.74
10020 07-350-95 014 11.46
20030 04 01-781-43 010 10.97 89-236-54 075 105.95
20030 03-655-83 054 22.99 04-569-38 015 75.00
END DATA.
LIST.
- Los datos son los mismos que en los dos ejemplos anteriores, pero los registros se introducen de forma diferente. El primer registro y los registros de continuación para cada caso de entrada sólo almacenan dos grupos de repetición cada uno.
- La longitud de registro lógico del sistema operativo es 80, lo que permite más grupos de repetición en todos los registros.
STARTSespecifica que el programa debe explorar sólo las columnas 10-55 del primer registro de cada caso de entrada que busca grupos de datos repetitivos.CONTINUEDespecifica que el programa debe explorar sólo las columnas 7-55 de todos los registros de continuación.