COBOL - DATA DIVISION - DDE - VALUE clause - Format 1



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

COBOL - DATA DIVISION - DDE - VALUE clause - Format 1
Enterprise COBOL for z/OS, V4.2, Language Reference

Formato 1 especifica o valor inicial de um item de dados.
A inicialização é independente de qualquer cláusula BLANK WHEN ZERO ou JUSTIFIED especificada.

Uma cláusula format-1 VALUE especificada em uma entrada de descrição de dados que contém ou está subordinada a uma cláusula OCCURS faz com que cada ocorrência do item de dados associado seja atribuída ao valor especificado.
É assumido que cada estrutura que contém a frase DEPENDING ON da cláusula OCCURS contém o número máximo de ocorrências para fins de inicialização de VALUE.

A cláusula VALUE não deve ser especificada para uma entrada de descrição de dados que contenha ou esteja subordinada a uma entrada que contenha uma cláusula EXTERNAL ou REDEFINES.
Esta regra não se aplica às entradas de nome da condição.

Uma cláusula VALUE no format-1 pode ser especificada para um item de dados elementar ou para um item de grupo.
Quando a cláusula VALUE é especificada no nível do grupo, a área do grupo é inicializada sem considerar as entradas subordinadas no grupo.
Além disso, uma cláusula VALUE não deve ser especificada para entradas subordinadas dentro do grupo.

Para itens de grupo, a cláusula VALUE não deve ser especificada se alguma entrada subordinada contiver uma cláusula JUSTIFIED ou SYNCHRONIZED.

Se a cláusula VALUE for especificada para um grupo alfanumérico, todos os itens subordinados deverão ser descritos explícita ou implicitamente com USAGE DISPLAY.

A cláusula VALUE não deve entrar em conflito com outras cláusulas na entrada de descrição de dados ou na descrição de dados da hierarquia dessa entrada.

As funções dos caracteres de edição em uma cláusula PICTURE são ignoradas na determinação do valor inicial do item descrito.
No entanto, os caracteres de edição estão incluídos na determinação do tamanho do item.
Portanto, qualquer caractere de edição deve ser incluído no literal.
Por exemplo, se o item for definido como PICTURE +999.99 e o valor for +12.34, a cláusula VALUE deverá ser especificada como VALUE "+012.34".

Uma cláusula VALUE não pode ser especificada para itens de ponto flutuante externos.

Um item de dados não pode conter uma cláusula VALUE se o item de dados anterior contiver uma cláusula OCCURS com a frase DEPENDING ON.

Regras para valores literais

  • Onde quer que um literal seja especificado, uma constante figurativa pode ser substituída, de acordo com as regras especificadas nas Figurative constants.

  • If the item is class numeric, the VALUE clause literal must be numeric.
    If the literal defines the value of a working-storage item or local-storage item, the literal is aligned according to the rules for numeric moves, with one additional restriction: The literal must not have a value that requires truncation of nonzero digits.
    If the literal is signed, the associated PICTURE character-string must contain a sign symbol.

  • Se o item for de classe numérica, a literal da cláusula VALUE deverá ser numérica.
    Se o literal definir o valor de um item de armazenamento de trabalho ou item de armazenamento local, o literal será alinhado de acordo com as regras para movimentações numéricas, com uma restrição adicional:
    O literal não deve ter um valor que exija o truncamento de dígitos diferentes de zero.
    Se o literal estiver assinado, a cadeia de caracteres PICTURE associada deverá conter um símbolo de sinal.
  • As exceções são as seguintes:

    • Itens de dados descritos com o uso do COMP-5 que não possuem um símbolo de figura P na cláusula PICTURE

    • Quando a opção do compilador TRUNC (BIN) está em vigor, os itens de dados descritos com o uso BINARY, COMP ou COMP-4 que não possuem um símbolo de figura P na cláusula PICTURE

      Uma cláusula VALUE para esses itens pode ter um valor até a capacidade da representação binária nativa.

  • Se a cláusula VALUE for especificada para um item alfabético, alfanumérico, editado alfanumérico ou editado numérico descrito com o uso DISPLAY, o literal da cláusula VALUE deverá ser um literal alfanumérico ou uma constante figurativa.
    O literal é alinhado de acordo com as regras de alinhamento alfanumérico, com uma restrição adicional: o número de caracteres no literal não deve exceder o tamanho do item.

  • Se a cláusula VALUE for especificada para um item nacional elementar, editado nacional ou editado numérico descrito com o uso NATIONAL, o literal da cláusula VALUE deverá ser um literal nacional ou alfanumérico ou uma constante figurativa, conforme especificado em Figurative constants.
    O valor de um literal alfanumérico é convertido de sua representação de código-fonte em representação UTF-16.
    O literal é alinhado de acordo com as regras nacionais de alinhamento, com uma restrição adicional: o número de caracteres no literal não deve exceder o tamanho, em posições de caracteres, do item.
  • Se a cláusula VALUE for especificada no nível do grupo para um grupo alfanumérico, o literal deverá ser um literal alfanumérico ou uma constante figurativa, conforme especificado em Figurative constants, além de ALL literal nacional. O tamanho do literal não deve exceder o tamanho do item do grupo.

  • Se a cláusula VALUE for especificada no nível do grupo para um grupo nacional, o literal poderá ser um literal alfanumérico, um literal nacional ou uma das constantes figurativas ZERO, SPACE, QUOTES, HIGH VALUE, LOW VALUE, caractere simbólico, ALL nacional-literal ou ALL-literal.
    O valor de um literal alfanumérico é convertido de sua representação de código-fonte em representação UTF-16.
    Cada constante figurativa representa um valor de caractere nacional.
    O tamanho do literal não deve exceder o tamanho do item do grupo.

  • Uma cláusula VALUE associada a um item DBCS deve conter um literal DBCS, a constante figurativa SPACE ou a constante figurativa ALL DBCS-literal.
    O comprimento do literal não deve exceder o tamanho indicado pela cláusula PICTURE do item de dados.

  • Uma cláusula VALUE que especifica um literal nacional pode ser associada apenas a um item de dados da classe nacional.

  • Uma cláusula VALUE que especifica um literal DBCS pode ser associada apenas a um item de dados da classe DBCS.

  • Uma cláusula VALUE associada a um item COMPUTATIONAL-1 ou COMPUTATIONAL-2 (ponto flutuante interno) deve especificar um literal de ponto flutuante.
    Além disso, a constante figurativa ZERO e as formas inteiro e decimal do literal zero podem ser especificadas em uma cláusula VALUE de ponto flutuante.


© Copyright IBM Corp.