April 25, 2024

ABAPZombie Guide to ABAP – Parte 16 – BACK

O comando BACK é um comando utilizado em listas.

Toda lista feita em WRITE é escrita conforme os comandos WRITE vão sendo executados, e o ABAP internamente salva um cursor indicando onde a próxima instrução deverá ser escrita.

O BACK faz com que esse cursor volte à posição inicial(início da lista).

Veja um exemplo simples:

REPORT zombie_back.

* Linhas escritas
WRITE:   'Linha 1'.
WRITE: / 'Linha 2'.
WRITE: / 'Linha 3'.

* Volta o Cursor para a linha inicial
BACK.

* Sobre-escreve as informações
WRITE: 'Apaguei a Linha 1'.
SKIP 1.
WRITE: 'Apaguei a Linha 3'.

Se voce usar um BACK num TOP-OF-PAGE e outro BACK no corpo da lista, o SAP não vai misturar os cursores. Veja:

REPORT zombie_back.

* Este BACK irá fazer o cursor voltar ao início do TOP-OF-PAGE
* Apesar de ter outro BACK dentro do START-OF-SELECTIOn, ele não irá
* alterar o TOP-OF-PAGE, somente o que foi escrito no corpo
TOP-OF-PAGE.
  WRITE 'HEADER'.
  BACK.
  WRITE 'Apaguei o Header!'.
  ULINE.

START-OF-SELECTION.

* Linhas escritas
WRITE:   'Linha 1'.
WRITE: / 'Linha 2'.
WRITE: / 'Linha 3'.

* Volta o Cursor para a linha inicial do corpo, sem alterar o
* que foi escrito no header (TOP-OF-PAGE)
BACK.

* Sobre-escreve as informações
WRITE: 'Apaguei a Linha 1'.
SKIP 1.
WRITE: 'Apaguei a Linha 3'.

Existe ainda o BACK utilizano junto ao RESERVE… Mas isso é história para um outro post 🙂

Abraços!

Mauricio Cruz

Pasteleiro há 15+ anos e criou o ABAPZombie junto com o Mauro em 2010. Gosta de filosofar sobre fundamentos básicos da programação e assuntos polêmicos. Não trabalha mais com SAP, mas ainda escreve sobre programação e faz vídeos de vez em quando.

View all posts by Mauricio Cruz →

Leave a Reply

Your email address will not be published. Required fields are marked *