COBOL - DATA DIVISION - DDE - PICTURE - Data categories and PICTURE rules



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

COBOL - DATA DIVISION - data description entry - PICTURE - Data categories and PICTURE rules
Enterprise COBOL for z/OS, V4.2, Language Reference

As combinações permitidas de símbolos PICTURE determinam a categoria de dados do item:

  • Alphabetic
  • Numeric
  • Numeric-edited
  • Alphanumeric
  • Alphanumeric-edited
  • DBCS
  • External floating-point
  • National
  • National-edited

Nota: O ponto flutuante interno da categoria é definido por uma cláusula USAGE que especifica a frase COMP-1 ou COMP-2.

Itens alfabéticos

A cadeia de caracteres (character-string) PICTURE pode conter apenas o símbolo A.

O conteúdo do item deve consistir apenas em letras do alfabeto latino e no caractere de espaço.

Outras cláusulas

O USAGE DISPLAY deve ser especificado ou implícito.

Qualquer cláusula VALUE associada deve especificar um literal alfanumérico contendo apenas caracteres alfabéticos, SPACE ou um caractere simbólico como o valor de uma constante figurativa.

Não inclua um caractere de byte único em um item de dados DBCS.

Quando o preenchimento é necessário para um item de dados DBCS, as seguintes regras se aplicam:

  • O preenchimento é feito usando caracteres de espaço de byte duplo até que a área de dados seja preenchida (com base no número de posições de caracteres de byte duplo alocadas para o item de dados).

  • O preenchimento é feito usando caracteres de espaço de byte único quando o preenchimento necessário não é um número par de bytes (por exemplo, quando um item de grupo alfanumérico é movido para um item de dados DBCS).

Itens numéricos

Os tipos de itens numéricos são:

  • Binary
  • Packed decimal (internal decimal)
  • Zoned decimal (external decimal)
  • National decimal (external decimal)

O tipo de um item numérico é definido pela cláusula de uso, como mostrado na tabela abaixo.

Tabela 1. Tipos Numéricos

Tipo Cláusula USAGE
Binary BINARY, COMP, COMP-4, or COMP-5
Internal decimal PACKED-DECIMAL, COMP-3
Zoned decimal (external decimal) DISPLAY
National decimal (external decimal) NATIONAL

Para campos de data numéricos, a cadeia de caracteres PICTURE pode conter apenas os símbolos 9 e S.
Para todos os outros campos numéricos, a cadeia de caracteres PICTURE pode conter apenas os símbolos 9, P, S e V.

O símbolo S pode ser escrito apenas como o caractere mais à esquerda na cadeia de caracteres PICTURE.

O símbolo V pode ser escrito apenas uma vez em uma determinada cadeia de caracteres PICTURE.

Para itens binários, o número de posições de dígitos deve variar de 1 a 18, inclusive.
Para itens decimais compactados e decimais zoneados, o número de posições de dígitos deve variar de 1 a 18, inclusive, quando a opção do compilador ARITH (COMPAT) estiver em vigor, ou de 1 a 31, inclusive, quando a opção do compilador ARITH (EXTEND) for em vigor.

Para campos de data numérica, o número de posições de dígitos deve corresponder ao número de caracteres especificado pela cláusula DATE FORMAT.

Se não estiver assinado, o conteúdo do item no formato de dados padrão deve conter uma combinação dos algarismos arábicos 0-9.
Se assinado, também pode conter +, - ou outra representação do sinal operacional.

Exemplos de intervalos válidos

   PICTURE   Faixa válida de valores

      9999     0 through 9999
       S99    -99 through +99
    S999V9    -999.9 through +999.9
    PPP999     0 through .000999
   S999PPP    -1000 through -999000 and
              +1000 through +999000 or zero

Outras cláusulas

O USAGE do item pode ser DISPLAY, NATIONAL, BINARY, COMPUTATIONAL, PACKED-DECIMAL, COMPUTATIONAL-3, COMPUTATIONAL-4, or COMPUTATIONAL-5.

Para itens numéricos assinados descritos com o uso NATIONAL, a cláusula SIGN IS SEPARATE deve ser especificada ou implícita.

As opções do compilador NUMPROC e TRUNC podem afetar o uso de itens de dados numéricos.
Para obter detalhes, consulte NUMPROC no Enterprise COBOL Programming Guide e TRUNC no Enterprise COBOL Programming Guide.

Numeric-edited items - Itens editados numéricos

A cadeia de caracteres PICTURE pode conter os seguintes símbolos:

   B  P  V  Z  9  0  /  ,  .  +  -  CR  DB  *  cs

As combinações de símbolos permitidas são determinadas a partir da ordem dos símbolos da cláusula PICTURE permitida (veja a figura em Symbols used in the PICTURE clause - Símbolos usados na cláusula PICTURE ) e as regras de edição (consulte a PICTURE clause editing - edição da cláusula PICTURE ).

As seguintes regras se aplicam:

  • A cláusula BLANK WHEN ZERO deve ser especificada para o item ou a sequência deve conter pelo menos um dos seguintes símbolos:
       B  /  Z  0  ,  .  *  +  -  CR  DB  cs
  • Somente um dos seguintes símbolos pode ser gravado em uma determinada cadeia de caracteres (character-string) PICTURE:
       +  -  CR  DB
  • Se a opção do compilador ARITH (COMPAT) estiver em vigor, o número de posições de dígitos representadas na cadeia de caracteres deve estar no intervalo de 1 a 18, inclusive.
    Se a opção do compilador ARITH (EXTEND) estiver em vigor, o número de posições de dígitos representadas na cadeia de caracteres deve estar no intervalo de 1 a 31, inclusive.

  • O número total de posições de caracteres na sequência (incluindo as posições de edição de caracteres) não deve exceder 249.

  • O conteúdo dessas posições de caracteres que representam dígitos no formato de dados padrão deve ser um dos 10 algarismos arábicos.

Outras cláusulas

O USAGE DISPLAY ou NATIONAL deve ser especificado ou implícito.Se o uso do item for DISPLAY, qualquer cláusula VALUE associada deverá especificar um literal alfanumérico ou uma constante figurativa.
O valor é atribuído sem edição.

Se o uso do item for NATIONAL, qualquer cláusula VALUE associada deverá especificar um literal alfanumérico, um literal nacional ou uma constante figurativa.
O valor é atribuído sem edição.

Itens alfanuméricos

A cadeia de caracteres PICTURE deve consistir em um dos seguintes:

  • Uma ou mais ocorrências do símbolo X.
  • Combinações dos símbolos A, X e 9.
    (Uma cadeia de caracteres contendo todos os As ou todos os 9s não define um item alfanumérico.)

O item é tratado como se a cadeia de caracteres contivesse apenas o símbolo X.

O conteúdo do item no formato de dados padrão pode ser qualquer caractere permitido do conjunto de caracteres do computador.

Outras cláusulas

O USAGE DISPLAY deve ser especificado ou implícito.

Qualquer cláusula VALUE associada deve especificar um literal alfanumérico ou uma das seguintes constantes figurativas:

  • ZERO
  • SPACE
  • QUOTE
  • HIGH-VALUE
  • LOW-VALUE
  • symbolic-character
  • ALL alphanumeric-literal

Itens editados alfanuméricos

A cadeia de caracteres PICTURE pode conter os seguintes símbolos:

   A X 9 B 0 /

A sequência deve conter pelo menos um A ou X e pelo menos um B ou 0 (zero) ou /.

O conteúdo do item no formato de dados padrão deve ter dois ou mais caracteres do conjunto de caracteres do computador.

Outras cláusulas

O USAGE DISPLAY deve ser especificado ou implícito.

Qualquer cláusula VALUE associada deve especificar um literal alfanumérico ou ou uma das seguintes constantes figurativas:

  • ZERO
  • SPACE
  • QUOTE
  • HIGH-VALUE
  • LOW-VALUE
  • symbolic-character
  • ALL alphanumeric-literal

O literal é tratado exatamente como especificado; nenhuma edição é feita.

Itens DBCS

A cadeia de caracteres PICTURE pode conter os símbolos G, G e B ou N. Cada G, B ou N representa uma única posição de caractere DBCS.

Qualquer cláusula VALUE associada deve conter um literal DBCS, a constante figurativa SPACE ou a constante figurativa ALL DBCS-literal.

Outras cláusulas

Quando o símbolo PICTURE G é usado, USAGE DISPLAY-1 deve ser especificado.
Quando o símbolo PICTURE N é usado e a opção do compilador NSYMBOL (DBCS) está em vigor, USAGE DISPLAY-1 é implícito se a cláusula USAGE for omitida.

Itens nationais

A cadeia de caracteres PICTURE pode conter uma ou mais ocorrências do símbolo de figura N.

Essas regras se aplicam quando a opção do compilador NSYMBOL (NATIONAL) está em vigor ou a cláusula USAGE NATIONAL é especificada.
Na ausência de uma cláusula USAGE NATIONAL, se a opção do compilador NSYMBOL (DBCS) estiver em vigor, o símbolo de figura N representa um caractere DBCS e as regras da cláusula PICTURE para um item DBCS se aplicam.

Cada N representa uma única posição de caracter national.

Qualquer cláusula VALUE associada deve especificar um literal alfanumérico, um literal national ou uma das seguintes constantes figurativas:

  • ZERO
  • SPACE
  • QUOTE
  • HIGH-VALUE
  • LOW-VALUE
  • symbolic-character
  • ALL alphanumeric-literal
  • ALL national-literal

Outras cláusulas

Somente a frase NACIONAL pode ser especificada na cláusula USAGE.
Quando o símbolo PICTURE N é usado e a opção do compilador NSYMBOL (NATIONAL) está em vigor, USAGE NATIONAL é implícito se a cláusula de uso for omitida.

As seguintes cláusulas podem ser usadas:

  • JUSTIFIED
  • EXTERNAL
  • GLOBAL
  • OCCURS
  • REDEFINES
  • RENAMES
  • SYNCHRONIZED

As seguintes cláusulas não podem ser usadas:

  • BLANK WHEN ZERO
  • SIGN
  • DATE FORMAT

Itens editados nacionalmente - National-edited items

A cadeia de caracteres PICTURE deve conter o seguinte:

  • Pelo menos um símbolo N e
  • Pelo menos um dos símbolos B 0 (zero) ou / (barra)

Cada símbolo representa uma única posição de caracter national.

Qualquer cláusula VALUE associada deve especificar um literal alfanumérico, um literal nacional ou uma das seguintes constantes figurativas:

  • ZERO
  • SPACE
  • QUOTE
  • HIGH-VALUE
  • LOW-VALUE
  • symbolic-character
  • ALL alphanumeric-literal
  • ALL national-literal

O literal é tratado exatamente como especificado; nenhuma edição é feita.

A opção do compilador NSYMBOL (NATIONAL) não tem efeito na definição de um item de dados da categoria editada nacionalmente.

Outras cláusulas

O USAGE NATIONAL deve ser especificado ou implícito.

As seguintes cláusulas podem ser usadas:

  • JUSTIFIED
  • EXTERNAL
  • GLOBAL
  • OCCURS
  • REDEFINES
  • RENAMES
  • SYNCHRONIZED

As seguintes cláusulas não podem ser usadas:

  • BLANK WHEN ZERO
  • SIGN
  • DATE FORMAT

Itens de ponto flutuante externos - External floating-point items

+ ou -
Um caractere de sinal deve preceder imediatamente a mantissa e o expoente.

Um sinal + indica que um sinal positivo será usado na saída para representar valores positivos e que um sinal negativo representará valores negativos.

Um sinal A indica que um espaço em branco será usado na saída para representar valores positivos e que um sinal negativo representará valores negativos.

Cada posição de sinal ocupa um byte de armazenamento.

mantissa
A mantissa pode conter os símbolos:
   9 . (ponto) V

Um ponto decimal real pode ser representado com um ponto (.) Enquanto um ponto decimal assumido é representado por um V.

Um ponto decimal real ou assumido deve estar presente na mantissa; o ponto decimal pode ser inicial, incorporado ou final.

A mantissa pode conter de 1 a 16 caracteres numéricos.

E
Indica o expoente.

exponent
O expoente deve consistir no símbolo 99.

Exemplo: Pic -9v9(9)E-99

A frase DISPLAY da cláusula USAGE e uma cadeia de caracteres de imagem de ponto flutuante definem o item como um item de dados de ponto flutuante de exibição.

A frase NATIONAL da cláusula USAGE e uma cadeia de caracteres de imagem de ponto flutuante definem o item como um item de dados nacional de ponto flutuante.

Para itens definidos com o uso DISPLAY, cada símbolo de figura, exceto V, define uma posição de caracteres alfanuméricos no item.

Para itens definidos com o uso NATIONAL, cada símbolo de figura, exceto V, define uma posição de caractere nacional no item.

Outras cláusulas

A frase DISPLAY ou a frase NATIONAL da cláusula USAGE deve ser especificada ou implícita.

As cláusulas OCCURS, REDEFINES e RENAMES podem ser associadas a itens de ponto flutuante externos.

A cláusula SIGN é aceita como documentação e não tem efeito na representação do sinal.

A cláusula SYNCHRONIZED é tratada como documentação.

As seguintes cláusulas são inválidas com itens de ponto flutuante externos:

  • BLANK WHEN ZERO
  • JUSTIFIED
  • VALUE


© Copyright IBM Corp.