A SCREEN SECTION, parte da DATA DIVISION, é usada para definir interfaces de entrada e saída diretamente no terminal, permitindo ao programa COBOL exibir informações formatadas e receber dados do usuário.

É uma forma de criar telas interativas no modo texto, muito comum em ambientes como mainframe, sistemas legados Unix/Linux ou aplicativos COBOL standalone.

🎯 Função da SCREEN SECTION

  • Criar interfaces de usuário no terminal

  • Exibir mensagens ou valores com DISPLAY

  • Coletar entradas com ACCEPT

  • Definir a posição, tamanho, formato e comportamento dos campos

  • Estruturar telas de forma hierárquica e reutilizável

🧱 Estrutura geral

A SCREEN SECTION funciona de forma parecida com a WORKING-STORAGE, mas voltada à exibição:

SCREEN SECTION.

01 TELA-CLIENTE.
   05 CLI-NOME  PIC X(30).
   05 CLI-IDADE PIC 99.

🧭 Regras e características

Item Comportamento
Início obrigatório SCREEN SECTION. (com ponto final)
Níveis suportados 01 a 49 e 77 (⚠️ níveis 66 e 88 são proibidos)
Nomes de tela Precisam ser únicos somente se forem referenciados no programa
Redesenho da tela Pode ser refeito a qualquer momento pelo programa
Uso em comandos Referenciável apenas via DISPLAY ou ACCEPT
Dimensões padrão 80 colunas x 25 linhas (pode variar conforme o terminal)

🧪 Exemplo simples

SCREEN SECTION.

01 TELA-INICIAL.
   05 WS-NOME        PIC X(30).
   05 WS-IDADE       PIC 99.

PROCEDURE DIVISION.
   DISPLAY TELA-INICIAL.
   ACCEPT TELA-INICIAL.

Este exemplo:

  • Mostra dois campos (nome e idade)

  • Permite entrada de dados diretamente pelo terminal

  • Os valores são preenchidos nas variáveis WS-NOME e WS-IDADE

🎨 Personalização de campos

Você pode adicionar posições fixas, realce de cor, proteções de edição e outras características:

01 FORM-CLIENTE.
   05 CLI-CODIGO   PIC 9(05) LINE 5 COLUMN 10 BOLD.
   05 CLI-NOME     PIC X(30) LINE 6 COLUMN 10 HIGHLIGHT.

Cláusulas úteis:

  • LINE e COLUMN: define posição na tela

  • BOLD, REVERSE, HIGHLIGHT: formatações

  • USING, FROM, TO: especifica variáveis ligadas ao campo

  • REQUIRED, AUTO, SECURE: comportamentos adicionais

✅ Cuidados e limitações

  • A SCREEN SECTION não cria variáveis de dados; ela apenas define a interface visual

  • Para manipular os dados, é necessário associar variáveis da WORKING-STORAGE

  • Programas com interface gráfica moderna (ex: web, Windows) não usam SCREEN SECTION

  • Pode não ser suportada por compiladores como GnuCOBOL, dependendo da configuração

✅ Conclusão

A SCREEN SECTION é uma poderosa funcionalidade para criar telas interativas em COBOL, ideal para aplicações legadas que rodam em terminais. Embora limitada para aplicações modernas, continua relevante para quem mantém ou estuda sistemas emulando o ambiente de mainframe ou batch com interação direta com o usuário.