COBOL - Comando DISPLAY - www.cadcobol.com.br


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF.

DISPLAY
A instrução DISPLAY transfere o conteúdo de cada operando para o dispositivo de saída.
O conteúdo é exibido no dispositivo de saída na ordem da esquerda para a direita na qual os operandos estão listados.


Formato geral:

identifier-1
O identifier-1 faz referência aos dados que devem ser exibidos.
O identifier-1 pode fazer referência a qualquer item de dados, exceto um item de uso PROCEDURE-POINTER, FUNCTION-POINTER, OBJECT REFERENCE ou INDEX.
O identifier-1 não pode ser um nome de índice.

Se o identifier-1 for um item de dados binário, decimal interno ou ponto flutuante interno , o identifier-1 será convertido automaticamente para o formato externo da seguinte maneira:
  • Itens decimais binários e internos são convertidos em decimal zonado.
    Valores negativos assinados causam um excesso de sinal de ordem baixa.
  • Os números internos de ponto flutuante são convertidos em números externos de ponto flutuante para exibição, de modo que:
    • Um item COMP-1 será exibido como se tivesse uma cláusula PICTURE de ponto flutuante externo de -.9 (8) E-99.
    • Um item COMP-2 será exibido como se tivesse uma cláusula PICTURE de ponto flutuante externo de -.9 (17) E-99.
Os itens de dados definidos com USAGE POINTER são convertidos em um número decimal zonado que possui uma cláusula PICTURE implícita do PIC 9 (10).

Se a saída for direcionada para CONSOLE, os itens de dados descritos com o uso NATIONAL serão convertidos da representação de caractere nacional para EBCDIC.
A conversão usa a página de código EBCDIC especificada na opção do compilador CODEPAGE quando o código-fonte foi compilado.
Caracteres nacionais sem equivalentes EBCDIC são convertidos em caracteres de substituição padrão; nenhuma condição de exceção é indicada ou aumentada.

Se a saída não for direcionada para CONSOLE, os itens de dados descritos com o uso NATIONAL serão gravados sem conversão e sem validação de dados.

Nenhuma outra categoria de dados requer conversão.

Os itens de dados DBCS, definidos explícita ou implicitamente como USAGE DISPLAY-1, são transferidos para o campo de envio do dispositivo de saída.
Para resultados adequados, o dispositivo de saída deve ter a capacidade de reconhecer caracteres de controle de troca e troca de DBCS.

Os operandos DBCS e não DBCS podem ser especificados em uma única instrução DISPLAY.

literal-1
Pode ser qualquer constante literal ou figurativa, conforme especificado em Constantes figurativas (figurative constants)
Quando uma constante figurativa é especificada, apenas uma única ocorrência dessa constante figurativa é exibida.

UPON
o environment-name-1 ou o nome do ambiente associado ao mnemônico-nome-1 deve estar associado a um dispositivo de saída.
Consulte o parágrafo SPECIAL-NAMES.

Um tamanho de registro lógico padrão é assumido para cada dispositivo, da seguinte maneira:
O dispositivo de saída lógica do sistema
120 caracteres
O dispositivo de perfuração do sistema
80 caracteres
O console
100 caracteres
Um tamanho máximo de registro lógico é permitido para cada dispositivo, da seguinte maneira:
O dispositivo de saída lógica do sistema
255 caracteres
O dispositivo de perfuração do sistema
255 caracteres
O console
100 caracteres
No dispositivo de perfuração do sistema, os últimos oito caracteres são usados ??para o nome do ID do PROGRAMA.
Quando a frase UPON é omitida, o dispositivo de saída lógica do sistema é assumido.

WITH NO ADVANCING
Quando especificado, o posicionamento do dispositivo de saída não será alterado de forma alguma após a exibição do último operando.

Se a frase WITH NO ADVANCING não for especificada, após o último operando ter sido transferido para o dispositivo de saída, o posicionamento do dispositivo de saída será redefinido para a posição mais à esquerda da próxima linha do dispositivo.

O Enterprise COBOL não suporta dispositivos de saída capazes de se posicionar em uma posição de caractere específica.

A instrução DISPLAY transfere os dados no campo de envio para o dispositivo de saída.
O tamanho do campo de envio é a contagem total de bytes de todos os operandos listados.
Se o dispositivo de saída for capaz de receber dados do mesmo tamanho que o item de dados que está sendo transferido, o item de dados será transferido.
Se o dispositivo de saída não for capaz de receber dados do mesmo tamanho que o item de dados que está sendo transferido, aplica-se um dos seguintes:

  • Se a contagem total for menor que o máximo do dispositivo, as posições restantes à direita serão preenchidas com espaços.
  • Se a contagem total exceder o máximo, serão gravados quantos registros forem necessários para exibir todos os operandos. Qualquer operando sendo impresso ou exibido quando o final de um registro é alcançado continua no próximo registro.<.li>

Se um operando DBCS precisar ser dividido em vários registros, ele será dividido apenas em um limite de byte duplo.

A inserção do código de turno é necessária para dividir os itens DBCS.
Ou seja, quando um operando DBCS é dividido em vários registros, o caractere de troca é inserido no final do registro atual e o caractere de troca é inserido no início do próximo registro.
Um espaço é preenchido após o caractere de troca, se necessário.
Esses códigos e espaços de turno inseridos estão incluídos na contagem total de bytes dos itens de dados de envio.

Após o último operando ter sido transferido para o dispositivo de saída, o dispositivo é redefinido para a posição mais à esquerda da próxima linha do dispositivo.

Se um item de dados ou literal do DBCS for especificado em uma instrução DISPLAY, o tamanho do campo de envio será a contagem total de bytes de todos os operandos listados, com cada caractere do DBCS contado como dois bytes, além dos códigos de deslocamento e espaços necessários para o DBCS.



Primeiro exemplo: Solicitar um dado via teclado
  DISPLAY 'Digite o código do usuário'
  ACCEPT COD-USUARIO

Segundo exemplo: Exibir uma mensagem
 READ CADASTRO
             AT END DISPLAY 'FIM DO ARQUIVO'
 END-READ

Terceiro exemplo: Exibir um resultado
 DISPLAY TOTAL-DE-VENDAS.

Quarto exemplo: Exibir um literal juntamente com uma mensagem
 DISPLAY 'Total geral das vendas - ' TOTAL-DE-VENDAS.