Oii, Rogerio.
Que legal que você teve esse contato com o mundo bancário e os formulários contínuos! Essa vivência ajuda muito a entender por que o COBOL foi estruturado dessa forma. A resposta curta é: sim, é possível, mas a forma como isso acontece mudou um pouco com a evolução dos sistemas operacionais.
No COBOL, raramente escrevemos o caminho físico de uma impressora (como uma porta USB ou um endereço IP) dentro do código-fonte. O programa é escrito para gravar em um "nome lógico" (como o seu RELSAIDA).
A mágica de direcionar isso para uma impressora física acontece fora do programa:
- No mainframe (ambiente de banco): Utiliza-se o JCL (Job Control Language). No JCL, você associa o nome
RELSAIDA a uma classe de impressão (geralmente chamada de SYSOUT). O sistema operacional recebe os dados e os envia para a fila de impressão (SPOOL), que gerencia a saída para as impressoras de formulário contínuo. - No Windows/Linux: Você pode configurar o ambiente para que o arquivo de saída seja direcionado para uma porta de impressora (como
LPT1 ou PRN).
O uso do "ADVANCING" e caracteres de controle:
Lembra que no seu código você usou o AFTER PAGE? Isso é exatamente o que as impressoras de impacto usam para saber quando saltar para a próxima folha do formulário contínuo.
Quando o COBOL gera o arquivo com essas instruções, ele insere caracteres de controle (como o código ASA ou Machine Codes) na primeira coluna de cada linha.
| Comando COBOL | O que a impressora faz |
|---|
AFTER 1 | Gira o rolo da impressora uma linha (espaço simples). |
AFTER 2 | Gira o rolo duas linhas (espaço duplo). |
AFTER PAGE | Executa o "Form Feed", fazendo o papel correr até o início da próxima folha. |
Por que gerar um arquivo antes?
Mesmo quando o objetivo final é a impressão física, o sistema quase sempre gera um arquivo temporário no SPOOL. Isso acontece por alguns motivos:
Velocidade: O programa processa milhares de registros em segundos, mas a impressora é lenta. O arquivo serve como um "balde" que armazena os dados enquanto a impressora trabalha no ritmo dela.
Segurança: Se o papel travar ou a fita acabar, o relatório já está salvo no arquivo e pode ser reenviado para a impressora sem precisar processar todos os cálculos do programa novamente.
Então, o que você tá fazendo no curso é exatamente o passo que precede a saída naquelas impressoras barulhentas de formulário contínuo que você via no banco. O arquivo RELSAIDA é, na prática, a "imagem" do que será impresso.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!