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:

  1. Tipo: 'H' – intestazione, 'S' – selezione, 'A' – azione
  2. Tasto: solo quando il tipo è 'S'.
  3. 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

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existence

Questo è tutto ABAP – Programmazione ALV!