COBOL - DATA DIVISION - file description entries - LINAGE clause



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - DATA DIVISION - file description entries - LINAGE clause
Enterprise COBOL for z/OS, V4.2, Language Reference

A cláusula LINAGE especifica a profundidade de uma página lógica no número de linhas.
Opcionalmente, também especifica o número da linha na qual a área de rodapé começa e as margens superior e inferior da página lógica.
(A página lógica e a página física não podem ter o mesmo tamanho.)

A cláusula LINAGE é eficaz para arquivos seqüenciais abertos como OUTPUT ou EXTEND.

Todos os números inteiros devem estar sem sinal.
Todos os nomes de dados devem ser descritos como itens de dados inteiros não assinados.

data-name-5 , integer-8
O número de linhas que podem ser gravadas ou espaçadas nesta página lógica.
A área da página que essas linhas representam é chamada de corpo da página.
O valor deve ser maior que zero.

WITH FOOTING AT
número integer-9 ou o valor do item de dados em data-name-6 especifica o número da primeira linha da área de rodapé no corpo da página. O número da linha de rodapé deve ser maior que zero e não maior que a última linha do corpo da página. A área de rodapé se estende entre essas duas linhas.

LINES AT TOP
integer-10 ou o valor do item de dados em data-name-7 especifica o número de linhas na margem superior da página lógica.
O valor pode ser zero.

LINES AT BOTTOM
integer-11 ou o valor do item de dados em data-name-8 especifica o número de linhas na margem inferior da página lógica.
O valor pode ser zero.

A figura a seguir ilustra o uso de cada frase da cláusula LINAGE.

O tamanho da página lógica especificado na cláusula LINAGE é a soma de todos os valores especificados em cada frase, exceto a frase FOOTING.
Se a frase LINES AT TOP for omitida, o valor assumido para a margem superior será zero.
Da mesma forma, se a frase LINES AT BOTTOM for omitida, o valor assumido para a margem inferior será zero.
Cada página lógica segue imediatamente a página lógica anterior, sem espaçamento adicional fornecido.

Se a frase FOOTING for omitida, seu valor assumido será igual ao do corpo da página (integer-8 ou data-name-5).

No momento em que uma instrução OPEN OUTPUT é executada, os valores de número integer-8, integer-9, integer-10 e integer-11, se especificados, são usados para determinar o corpo da página, a primeira linha de rodapé, a margem superior e a inferior margem da página lógica para este arquivo.
(Veja a figura acima.)
Esses valores são usados para todas as páginas lógicas impressas para esse arquivo durante uma determinada execução do programa.

No momento em que uma instrução OPEN com a frase OUTPUT é executada para o arquivo, data-name-5, data-name-6, data-name-7 e data-name-8 determinam o corpo da página, primeira linha de rodapé, parte superior margem e margem inferior apenas para a primeira página lógica.

No momento em que uma instrução WRITE com a frase ADVANCING PAGE é executada ou ocorre uma condição de estouro de página, os valores de data-name-5, data-name-6, data-name-7 e data-name-8, se especificado, são usados para determinar o corpo da página, a primeira linha de rodapé, a margem superior e a margem inferior da próxima página lógica.

Se um conector de arquivo externo estiver associado a esta entrada de descrição de arquivo, todas as entradas de descrição de arquivo na unidade de execução associadas a este conector de arquivo deverão ter:

  • Uma cláusula LINAGE, se alguma entrada de descrição de arquivo tiver uma cláusula LINAGE
  • Os mesmos valores correspondentes para número integer-8, integer-9, integer-10 e integer-11, se especificados
  • Os mesmos itens de dados externos correspondentes mencionados por data-name-5, data-name-6, data-name-7 e data-name-8

Uma cláusula LINAGE em um SD é verificada na sintaxe, mas não afeta a execução do programa.



© Copyright IBM Corp.