SAP ABAP - Programmazione report

UN reportè una presentazione di dati in una struttura organizzata. Molti sistemi di gestione del database includono un autore di report che consente di progettare e generare report. Le applicazioni SAP supportano la creazione di report.

Un report classico viene creato utilizzando i dati di output nell'istruzione WRITE all'interno di un ciclo. Non contengono alcun sottoreport. SAP fornisce anche alcuni report standard come RSCLTCOP utilizzato per copiare tabelle tra i client e RSPARAM utilizzato per visualizzare i parametri dell'istanza.

Questi rapporti sono costituiti da una sola schermata come output. Possiamo utilizzare vari eventi come INITIALIZATON e TOP-OF-PAGE per creare un report classico e ogni evento ha la sua importanza durante la creazione di un report classico. Ciascuno di questi eventi è associato a una specifica azione dell'utente e viene attivato solo quando l'utente esegue tale azione.

Di seguito è riportata una tabella che descrive gli eventi e le descrizioni:

S.No. Descrizione dell'evento
1

INITIALIZATON

Attivato prima di visualizzare la schermata di selezione.

2

AT SELECTION-SCREEN

Attivato dopo l'elaborazione dell'input dell'utente nella schermata di selezione. Questo evento verifica l'input dell'utente prima dell'esecuzione di un programma. Dopo aver elaborato l'input dell'utente, la schermata di selezione rimane in modalità attiva.

3

START-OF-SELECTION

Attivato solo dopo che l'elaborazione della schermata di selezione è terminata; ovvero quando l'utente fa clic sull'icona Esegui nella schermata di selezione.

4

END-OF-SELECTION

Attivato dopo l'esecuzione dell'ultima istruzione nell'evento START-OF-SELECTON.

5

TOP-OF-PAGE

Attivato dalla prima istruzione WRITE per visualizzare i dati su una nuova pagina.

6

END-OF-PAGE

Attivato per visualizzare il testo alla fine di una pagina in un report. Si noti che questo evento è l'ultimo evento durante la creazione di un report e deve essere combinato con la clausola LINE-COUNT dell'istruzione REPORT.

Esempio

Creiamo un report classico. Visualizzeremo le informazioni memorizzate nel database standard MARA (contiene dati generali sui materiali) utilizzando una sequenza di istruzioni nell'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.

Il codice sopra produce il seguente output contenente i dati generali del materiale dalla tabella standard MARA -