Rapporti ALV in SAP Tutorial – Visualizzatore elenco ABAP
Le caratteristiche comuni desiderate per qualsiasi report sono "allineamento delle colonne", ordinamento, filtraggio, totali parziali, totali, ecc. Per implementarli da zero, è necessario un grande sforzo di codifica. Per evitare ciò possiamo utilizzare un concetto chiamato ABAP List Viewer (ALV).
Ciascuno di questi rapporti fornisce moduli funzionali che aiutano a produrre l'output desiderato senza troppi sforzi. Vediamoli nel dettaglio –
Rapporto semplice
Moduli funzionali importanti in questi rapporto siamo -
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Reuse_alv_grid_display
- Reuse_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Questo modulo funzionale viene utilizzato per popolare un catalogo di campi essenziale per visualizzare i dati in ALV.
Se i dati di output provengono da una singola tabella del dizionario e tutte le colonne sono selezionate, non è necessario creare esclusivamente il catalogo dei campi. È sufficiente menzionare il nome della tabella come parametro (I_structure_name) in REUSE_ALV_LIST_DISPLAY. Ma in altri casi dobbiamo crearlo.
Nota: Fieldcatalog può essere compilato anche manualmente inserendo tutti i dettagli richiesti nella tabella interna
I parametri importanti sono:
1. Esportazione:
- I_nome_programma: ID rapporto
- I_internal_tabname: la tabella di output interna
- I_inclname: include o il nome del report in cui vengono gestiti tutti i moduli dinamici.
2. Modifica
- ct_fieldcat: un tavolo interno con il tipo SLIS_T_FIELDCAT_ALV dichiarato nel pool di tipi SLIS.
REUSE_ALV_LIST_DISPLAY
Questo è il modulo funzione che stampa i dati.
I parametri importanti sono:
1. Esportazione:
- I_callback_program: ID rapporto
- I_bypassing_buffer : 'X'
- I_buffer_attivo : ' '
- I_callback_pf_status_set: routine in cui un utente può impostare il proprio stato pf o modificare la funzionalità dello stato pf esistente.
- I_callback_user_command: routine in cui vengono gestiti i codici funzione.
- Nome_struttura I: nome della tabella del dizionario
- Is_Layout: struttura per impostare il layout del report
- It_fieldcat: tabella interna con l'elenco di tutti i campi e i relativi attributi da stampare (questa tabella può essere popolata automaticamente dalla funzione)
- It_events: tabella interna con un elenco di tutti i possibili eventi di ALV e i nomi dei moduli corrispondenti.
2. Tabelle:
- UN. t_outtab: tabella interna con i dati da emettere
REUSE_ALV_EVENTS_GET:
Restituisce la tabella dei possibili eventi per il tipo elenco
1. Importa:
Et_Eventi:La tabella degli eventi viene restituita con tutti i possibili eventi CALLBACK per il tipo di elenco specificato (colonna 'NAME'). Affinché gli eventi possano essere elaborati dalla Callback, il relativo campo "FORM" deve essere compilato. Se il campo è inizializzato, l'evento viene ignorato. La voce può essere letta dalla tabella degli eventi, il campo 'FORM' compilato e la voce modificata utilizzando costanti del tipo pool SLIS.
2. Esportazione:
I_list_type: 0 = elenco semplice REUSE_ALV_LIST_DISPLAY
1 = elenco gerarchico-sequenziale REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = elenco blocchi semplice REUSE_ALV_BLOCK_LIST_APPEND
3 = elenco blocchi gerarchico-sequenziale REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
Una nuova funzione dalla versione ABAP4.6, per visualizzare i risultati in una griglia anziché in un'anteprima.
Parametri: uguali a reuse_alv_list_display
Nota: la griglia non può gestire volumi elevati. Funzioni come l'ordinamento e lo scorrimento verso il basso consumano molte risorse/tempo se il volume di dati da visualizzare è elevato. Non esiste una definizione chiara in modo tale che se la quantità di dati è X, scegliere un elenco o una griglia, ma lo sviluppatore deve rispondere a una chiamata in base alla sua esperienza. Se non sei sicuro, l'elenco è l'opzione migliore
REUSE_ALV_COMMENTARY_WRITE
Viene utilizzato nell'evento Inizio pagina per stampare le intestazioni e altri commenti per l'elenco.
Parametri importanti
- It_list_commentary: tabella interna con le intestazioni del tipo slis_t_listheader.
Questa tabella interna ha tre campi:
- Tipo: 'H' – intestazione, 'S' – selezione, 'A' – azione
- Tasto: solo quando il tipo è 'S'.
- Info: il testo da stampare
Blocca rapporto
Sembra un report semplice ma ha solo le funzionalità di ordinamento e filtraggio. Questo report viene utilizzato se è necessario visualizzare più di un report nell'output. Tecnicamente parlando, se disponi di più tabelle interne con dati da visualizzare come blocchi separati, allora optiamo per il report a blocchi di ALV.
Le funzioni importanti utilizzate per creare questo report sono:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Questo modulo funzionale viene utilizzato per impostare lo stato predefinito della GUI, ecc. I parametri sono simili a quelli utilizzati in reuse_alv_list_display o reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Questo modulo funzionale aggiunge i dati al blocco.
Parametri importanti
1.Esporta:
- is_layout: impostazioni di layout per il blocco
- it_fieldcat: catalogo dei campi
- I_tabname: nome della tabella interna con tutti gli eventi possibili
2.Tabelle:
- t_outtab: tabella interna con dati di output.
REUSE_ALV_BLOCK_LIST_DISPLAY
Questo modulo funzione visualizza l'elenco con i dati aggiunti dalla funzione precedente.
Parametri: tutti i parametri sono facoltativi.
Rapporti gerarchici
La visualizzazione gerarchica è utilizzata per visualizzare dati correlati. Come i dettagli dell'ordine di vendita e dell'articolo. Qui i dettagli dell'ordine di vendita possono essere i dati dell'intestazione mentre gli articoli nell'ordine di vendita possono essere i dati dell'articolo
Il modulo funzione utilizzato a questo scopo è
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Esportare:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- It_events
- I_tabname_header: nome della tabella interna al programma contenente i dati di output del livello gerarchico più alto.
- I_tabname_item: nome della tabella interna al programma contenente i dati di output del livello gerarchico più basso.
- Is_keyinfo: questa struttura contiene i nomi dei campi dell'intestazione e della tabella degli elementi che collegano le due tabelle (chiave condivisa).
tavoli
- t_outtab_header: tabella di intestazione con i dati da emettere
- t_outtab_item: nome della tabella interna al programma contenente i dati di output del livello gerarchico più basso.
Tutte le definizioni di tabelle interne, strutture e costanti sono dichiarate in un pool di tipi chiamato SLIS. Questa tabella interna può essere popolata automaticamente utilizzando REUSE_ALV_FIELDCATALOG_MERGE'.
Visualizza varianti
- Le varianti di visualizzazione vengono utilizzate per impostare le proprietà predefinite di un output alv come criteri di ordinamento, criteri di filtro, totale e subtotale ecc.
- Le varianti di visualizzazione possono essere specifiche dell'utente e standard (le varianti standard possono essere utilizzate da qualsiasi utente)
- Il tipo di varianti di visualizzazione che possono essere salvate è controllato dal parametro i_save che viene passato nei moduli funzione reuse_alv_list_display / reuse_alv_grid_display
- È possibile fornire un'opzione nella schermata di selezione per selezionare quale variante di visualizzazione utilizzare
I moduli funzionali comuni relativi alla selezione/convalida delle varianti di visualizzazione sono
- Reuse_alv_variant_default_get
- Reuse_alv_variant_f4
- Reuse_alv_variant_existence
Questo è tutto ABAP – Programmazione ALV!