A REPORT SECTION
, pertencente à DATA DIVISION
, é usada para definir relatórios estruturados a serem gerados pelo programa. Embora pouco usada nos ambientes modernos, foi durante muito tempo a forma padrão de criar relatórios impressos em COBOL, principalmente em sistemas batch de mainframe.
📋 Função da REPORT SECTION
-
Permite gerar relatórios impressos com formatação pré-definida
-
Organiza o conteúdo em grupos lógicos de impressão
-
Se integra com a
FILE SECTION
via cláusulaREPORT IS nome-do-relatorio
-
Útil em programas legados que ainda geram saída tabular formatada
🧱 Estrutura geral
A estrutura da REPORT SECTION
envolve três partes principais:
-
Cabeçalho da seção:
REPORT SECTION.
- Entrada
RD
(Report Description):
Define o nome do relatório e suas características.RD RELATORIO-VENDAS PAGE LIMIT IS 66 LINES.
- Grupos de relatório (nível 01):
Definem as linhas e campos que compõem o relatório.01 CABECALHO TYPE IS PAGE HEADING. 03 TITULO PIC X(40) VALUE "RELATÓRIO DE VENDAS".
📌 Exemplo completo
REPORT SECTION.
RD RELATORIO-VENDAS
PAGE LIMIT IS 66 LINES
HEADING 3 FIRST DETAIL 5 LAST DETAIL 60 FOOTING 63.
01 CABECALHO TYPE IS PAGE HEADING.
03 TITULO PIC X(40) VALUE "RELATÓRIO DE VENDAS".
01 DETALHE TYPE IS DETAIL.
03 PRODUTO PIC X(20).
03 VALOR PIC 9(05)V99.
01 RODAPE TYPE IS PAGE FOOTING.
03 ASSINATURA PIC X(40) VALUE "Responsável pela apuração".
🔄 Integração com a FILE SECTION
A REPORT SECTION
não está ligada diretamente a um arquivo, mas é associada por meio de uma entrada na FILE SECTION
que usa a cláusula REPORT IS
.
FD SAIDA-RELATORIO
REPORT IS RELATORIO-VENDAS.
Assim, ao abrir o arquivo com OPEN OUTPUT SAIDA-RELATORIO
, o relatório será ativado.
🧭 Cláusulas comuns na RD
Cláusula | Função |
---|---|
PAGE LIMIT |
Quantidade de linhas por página |
HEADING |
Linha onde o cabeçalho será impresso |
FIRST DETAIL |
Primeira linha onde os dados podem ser impressos |
LAST DETAIL |
Última linha válida para dados |
FOOTING |
Linha onde o rodapé será impresso |
CODE |
Identifica relatórios diferentes no mesmo arquivo de saída |
🧾 Tipos de grupos (nível 01)
Tipo de grupo | Descrição |
---|---|
PAGE HEADING |
Cabeçalho de página |
DETAIL |
Linha de dados (detalhes) |
CONTROL HEADING |
Impressão quando há mudança de controle (ex: mudança de cliente) |
CONTROL FOOTING |
Rodapé após mudança de controle |
PAGE FOOTING |
Rodapé da página |
FINAL FOOTING |
Rodapé final do relatório |
⚠️ Observações técnicas
-
Um grupo de relatório nunca é dividido entre páginas
-
A cláusula
CODE
é usada para diferenciar relatórios quando há mais de um associado ao mesmo arquivo -
Muito usada em sistemas legados, especialmente quando impressoras matriciais ou arquivos texto estruturados eram padrão
✅ Conclusão
A REPORT SECTION
é um recurso clássico do COBOL voltado para a geração estruturada de relatórios impressos. Embora raramente usada em sistemas modernos, ainda aparece em programas legados, sendo útil compreender sua estrutura e funcionamento para manutenção ou migração de sistemas.