SAP ABAP - Programação de relatórios

UMA reporté uma apresentação de dados em uma estrutura organizada. Muitos sistemas de gerenciamento de banco de dados incluem um gravador de relatórios que permite projetar e gerar relatórios. Os aplicativos SAP oferecem suporte à criação de relatórios.

Um relatório clássico é criado usando os dados de saída na instrução WRITE dentro de um loop. Eles não contêm nenhum sub-relatório. O SAP também fornece alguns relatórios padrão, como RSCLTCOP que é usado para copiar tabelas em clientes e RSPARAM que é usado para exibir parâmetros de instância.

Esses relatórios consistem em apenas uma tela como saída. Podemos usar vários eventos como INICIALIZAÇÃO e TOPO DA PÁGINA para criar um relatório clássico, e cada evento tem sua própria importância durante a criação de um relatório clássico. Cada um desses eventos está associado a uma ação específica do usuário e é disparado apenas quando o usuário executa essa ação.

A seguir está uma tabela que descreve os eventos e descrições -

S.No. Descrição do Evento
1

INITIALIZATON

Disparado antes de exibir a tela de seleção.

2

AT SELECTION-SCREEN

Disparado após o processamento da entrada do usuário na tela de seleção. Este evento verifica a entrada do usuário antes da execução de um programa. Após processar a entrada do usuário, a tela de seleção permanece no modo ativo.

3

START-OF-SELECTION

Disparado somente após o término do processamento da tela de seleção; ou seja, quando o usuário clica no ícone Executar na tela de seleção.

4

END-OF-SELECTION

Disparado após a última instrução no evento START-OF-SELECTON ser executada.

5

TOP-OF-PAGE

Disparado pela primeira instrução WRITE para exibir os dados em uma nova página.

6

END-OF-PAGE

Disparado para exibir o texto no final de uma página em um relatório. Observe que este evento é o último evento durante a criação de um relatório e deve ser combinado com a cláusula LINE-COUNT da instrução REPORT.

Exemplo

Vamos criar um relatório clássico. Exibiremos as informações armazenadas no banco de dados padrão MARA (contém dados gerais do material) usando uma sequência de declarações no editor ABAP.

REPORT ZREPORT2 
LINE-SIZE 75 
LINE-COUNT 30(3) 
NO STANDARD PAGE HEADING. 
Tables: MARA. 
TYPES: Begin of itab, 

MATNR TYPE MARA-MATNR, 
MBRSH TYPE MARA-MBRSH, 
MEINS TYPE MARA-MEINS, 
MTART TYPE MARA-MTART, 

End of itab. 

DATA: wa_ma TYPE itab,
      it_ma TYPE STANDARD TABLE OF itab.
		
SELECT-OPTIONS: MATS FOR MARA-MATNR OBLIGATORY. 
INITIALIZATION. 
MATS-LOW = '1'. 
MATS-HIGH = '500'. 

APPEND MATS. 
AT SELECTION-SCREEN. .
IF MATS-LOW = ' '. 
MESSAGE I000(ZKMESSAGE). 
ELSEIF MATS-HIGH = ' '. 
MESSAGE I001(ZKMESSAGE). 
ENDIF. 

TOP-OF-PAGE. 
WRITE:/ 'CLASSICAL REPORT CONTAINING GENERAL MATERIAL DATA  
FROM THE TABLE MARA' COLOR 7. 
ULINE. 
WRITE:/ 'MATERIAL' COLOR 1, 

24 'INDUSTRY' COLOR 2, 
38 'UNITS' COLOR 3, 
53 'MATERIAL TYPE' COLOR 4. 
ULINE. 
END-OF-PAGE. 

START-OF-SELECTION. 
SELECT MATNR MBRSH MEINS MTART FROM MARA  
INTO TABLE it_ma WHERE MATNR IN MATS. 
LOOP AT it_ma into wa_ma. 
WRITE:/  wa_ma-MATNR, 

25 wa_ma-MBRSH, 
40 wa_ma-MEINS, 
55 wa_ma-MTART. 
ENDLOOP. 
END-OF-SELECTION. 

ULINE. 
WRITE:/ 'CLASSICAL REPORT HAS BEEN CREATED' COLOR 7.
ULINE. 
SKIP.

O código acima produz a seguinte saída contendo os dados gerais do material da tabela padrão MARA -