SAP Programmazione dei rapporti ABAP
⚡ Riepilogo intelligente
La programmazione di report ABAP crea programmi eseguibili che selezionano, elaborano e visualizzano grandi volumi di dati. SAP dati. Questa pagina illustra le aggiunte all'intestazione del report, la schermata di selezione, la sequenza degli eventi, i comandi di formattazione, gli elenchi interattivi e i database logici.
Che cos'è la programmazione di report ABAP?
SAPABAP supporta due tipi di programmi: programmi di report e programmi di dialogo. I programmi di report vengono utilizzati quando è necessario visualizzare grandi quantità di dati.
Scopo/Utilizzo dei programmi di report
- Vengono utilizzati quando i dati provenienti da diverse tabelle devono essere selezionati ed elaborati prima della presentazione
- Utilizzato quando i report richiedono un formato speciale
- Utilizzato quando è necessario scaricare il report da SAP in un foglio Excel da distribuire.
- Utilizzato quando il rapporto deve essere inviato per posta a una persona specifica.
Punti importanti da notare sul programma Report
- I programmi di report sono sempre programmi eseguibili. Il tipo di programma è sempre 1.
- Ogni programma di report corrisponde a un particolare tipo di applicazione, ovvero con vendite e distribuzione, FI – CO ecc. Può anche essere applicazione incrociata, ovvero di tipo '*'.
- La programmazione dei report è una programmazione guidata dagli eventi.
- La prima riga di un programma di report è sempre Report .
- Per sopprimere l'intestazione dell'elenco o il nome del programma l'aggiunta Nessuna intestazione di pagina standard viene utilizzato.
- La dimensione della riga per un particolare report può essere impostata utilizzando l'addizione dimensione della linea .
- Il conteggio delle righe per una pagina particolare può essere impostato utilizzando l'addizione conteggio righe n(n1). N è il numero di righe per la pagina e N1 è il numero di righe riservate al piè di pagina.
- Per visualizzare qualsiasi informazione o messaggio di errore aggiungiamo una classe messaggio al programma utilizzando l'aggiunta: ID messaggio . Le classi di messaggi vengono mantenute in SE91.
Pertanto un programma di report ideale dovrebbe iniziare con:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
Programma di report vs Programma di dialogo
Entrambi i tipi di programma vengono eseguiti nello stesso sistema, ma risolvono problemi opposti. Un report legge e visualizza i dati, mentre un programma di dialogo consente all'utente di gestirli tramite schermate.
| Criteri | Programma di reportistica | Programma di dialogo |
|---|---|---|
| Tipo di programma | Tipo 1, eseguibile | Tipo M, pool di moduli |
| Iniziato da | Nome del programma o codice di transazione | Solo un codice di transazione |
| Controllo del flusso | Eventi come INIZIALIZZAZIONE e INIZIO SELEZIONE | Logica di flusso dello schermo con moduli PBO e PAI |
| Input dell'utente | Una schermata di selezione generata | Schermi progettati nello schermo Painter |
| Utilizzo tipico | Visualizzazione e download di grandi volumi di dati | Creazione e modifica dei dati aziendali |
La schermata di selezione è la sezione in cui un report raccoglie i dati di input, pertanto verrà descritta di seguito.
Schermata di selezione
La "schermata di selezione" è la schermata in cui si specificano i valori di input per i quali il programma deve essere eseguito.
La schermata di selezione viene normalmente generata dal file
- Scheda Sintetica
- Seleziona-Opzioni
Sintassi
Selection-screen begin of screen <screen #> selection-screen begin of block <#> with frame title <text> ......... ......... selection-screen end of block <#> selection-screen end of screen <screen #>
Scheda Sintetica
I parametri aiutano a fare una selezione dinamica. Possono ospitare un solo valore per un ciclo di esecuzione del programma.
Sintassi
Definizione dei parametri come tipo di dati
Parameters p_id(30) type c.
Definizione di parametri come un campo di tabella.
Parameter p_id like <table name>-<field name>.
I parametri possono essere sia caselle di controllo che pulsanti di scelta.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
I parametri possono essere elenchi a discesa.
Parameter p_id like <table name>-<field name> as listbox
selezionare Opzioni
Un'opzione di selezione viene utilizzata per inserire un intervallo di valori o un insieme di valori in un programma
Sintassi
select-options s_vbeln for vbak-vbeln.
Lo screenshot mostra i campi di input minimo e massimo generati da un'opzione di selezione, insieme al pulsante per la selezione multipla.
Puoi anche definire un'opzione di selezione come una variabile
select-options s_vbeln for vbak-vbeln no intervals no-extension
Una volta raccolti i dati in ingresso, il programma reagisce a una sequenza predefinita di eventi.
Eventi in un programma di report ABAP
I programmi di report ABAP lo sono programmi guidati da eventi. I diversi eventi in un programma di report sono:
Caricamento del programma
- Attiva l'evento associato in una sessione interna dopo aver caricato un programma di tipo 1, M, F o S.
- Esegue inoltre il blocco di elaborazione associato una volta e una sola volta per ciascun programma e sessione interna.
- Il blocco di elaborazione LOAD-OF-PROGRAM ha più o meno la stessa funzione per an Programma ABAP di tipo 1, M, F o S come costruttore ha per le classi negli oggetti ABAP
Inizializzazione.
- Questo evento viene eseguito prima che venga visualizzata la schermata di selezione.
- Inizializzazione di tutti i valori.
- È possibile assegnare valori diversi rispetto a quelli predefiniti nella schermata di selezione.
- È possibile riempire la schermata di selezione con alcuni valori in fase di esecuzione.
Nella schermata di selezione.
- L'evento viene elaborato quando la schermata di selezione è stata elaborata (al termine del PAI).
- La convalida e i controlli dei valori immessi avvengono qui
Inizio selezione.
- Qui il programma inizia a selezionare i valori dalle tabelle.
Fine della selezione.
- Dopo che tutti i dati sono stati selezionati, questo evento scrive i dati sullo schermo.
Eventi interattivi
- Utilizzato per la reportistica interattiva. Viene utilizzato per creare un elenco dettagliato da un elenco di base.
Suggerimento: Le istruzioni scritte senza alcuna parola chiave relativa all'evento appartengono per impostazione predefinita a START-OF-SELECTION, motivo per cui un report viene comunque eseguito anche in assenza dell'evento.
Esempio: un semplice programma di reportistica ABAP
Il programma seguente unisce le aggiunte, la schermata di selezione e gli eventi in un unico report di lavoro. Legge le intestazioni degli ordini di vendita da VBAK per i numeri inseriti nella schermata di selezione e li scrive in un elenco.
REPORT z_sales_order_list NO STANDARD PAGE HEADING LINE-SIZE 80 LINE-COUNT 65(3) MESSAGE-ID zsd. TABLES: vbak. DATA: lt_vbak TYPE STANDARD TABLE OF vbak, ls_vbak TYPE vbak. * Selection screen SELECT-OPTIONS: s_vbeln FOR vbak-vbeln. PARAMETERS: p_erdat LIKE vbak-erdat. INITIALIZATION. p_erdat = sy-datum. AT SELECTION-SCREEN. IF p_erdat > sy-datum. MESSAGE e001(zsd). " Date must not lie in the future ENDIF. START-OF-SELECTION. SELECT * FROM vbak INTO TABLE lt_vbak WHERE vbeln IN s_vbeln AND erdat LE p_erdat. END-OF-SELECTION. LOOP AT lt_vbak INTO ls_vbak. WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr. HIDE ls_vbak-vbeln. ENDLOOP.
Tre dettagli meritano di essere sottolineati. INITIALIZATION riempie il parametro data prima che appaia la schermata di selezione. AT SELECTION-SCREEN convalida l'inserimento e genera un messaggio dalla classe ZSD. HIDE memorizza il numero d'ordine di ogni riga scritta, in modo che un doppio clic possa creare un elenco secondario a partire da esso, argomento della sezione successiva.
Formattazione del rapporto
ABAP consente di formattare i report nel modo desiderato dall'utente. Ad esempio, le "Linee alternative" devono apparire in colori diversi e la linea "Totali" deve apparire in giallo.
Sintassi
Format Color n Format Color n Intensified On
n possono corrispondere a vari numeri
Tieni presente che ci sono anche altre aggiunte insieme al formato
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
Programmazione di report interattivi
- Utilizzando la programmazione interattiva, gli utenti possono controllare attivamente il recupero e la visualizzazione dei dati.
- Utilizzato per creare un elenco dettagliato a partire da un elenco molto semplice
- I dati dettagliati sono scritti in un elenco secondario.
- L'elenco secondario può sovrapporsi completamente alla prima schermata oppure visualizzarlo in una nuova schermata
- Gli elenchi secondari possono essere essi stessi interattivi.
- Il primo elenco può anche richiamare una transazione.
- Esistono diversi eventi associati alla programmazione interattiva.
Alcuni comandi utilizzati per la programmazione interattiva
hotspot
Se si trascina il mouse sui dati visualizzati nel report, il cursore si trasforma in una mano con l'indice teso. È possibile ottenere un hotspot utilizzando l'istruzione FORMAT.
Syntax: Format Hotspot On (Off).
Nascondi
Questo comando ti aiuta a memorizzare i nomi dei campi in base ai quali verranno eseguiti ulteriori elaborazioni per ottenere un elenco dettagliato. Viene scritto direttamente dopo l'istruzione WRITE per un campo. Quando viene selezionata una riga, i valori vengono automaticamente inseriti nelle variabili per un ulteriore utilizzo.
Syntax: Hide <field-name>.
I report che leggono numerose tabelle possono sostituire le istruzioni SELECT con un database logico, come descritto di seguito.
Database logici
- Invece di utilizzare le query "Seleziona" è possibile utilizzare il database logico per recuperare i dati per un programma.
- I database logici vengono creati tramite transazione SE36
- Il nome di un database logico può contenere fino a 20 caratteri. Può iniziare con un prefisso dello spazio dei nomi.
- I dati vengono selezionati da un altro programma e si può accedere ai dati utilizzando GET comando che inserisce i dati nell'area di lavoro .
Vantaggi di un database logico rispetto alle normali query di selezione.
- Offre condizioni di controllo per vedere se l'input è corretto, completo e plausibile
- Contiene controlli di autorizzazione centralizzati per l'accesso al database
- Miglioramenti come il miglioramento delle prestazioni si applicano immediatamente a tutti i report che utilizzano il database logico.
Nota: a causa delle complessità coinvolte, i database logici non vengono utilizzati nella maggior parte dei casi

