Report ALV nel tutorial SAP - Visualizzatore elenco ABAP

Sommario:

Anonim

Le caratteristiche desiderate comuni di qualsiasi report sono "l'allineamento delle colonne", l'ordinamento, il filtraggio, i totali parziali, i totali ecc. Per implementarli da zero, è necessario impegnarsi molto nella codifica. Per evitare ciò possiamo utilizzare un concetto chiamato ABAP List Viewer (ALV).

In questo tutorial imparerai:

  • Rapporto semplice
  • Rapporto di blocco
  • Report gerarchici
  • Varianti di visualizzazione

Ciascuno di questi report fornisce moduli funzionali che aiutano a produrre l'output desiderato senza troppi sforzi. Vediamoli in dettaglio -

Rapporto semplice

I moduli funzione importanti in questi rapporti sono:

  • 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 funzione viene utilizzato per popolare un catalogo di campi che è 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 manualmente anche inserendo tutti i dettagli richiesti nella tabella
interna.I parametri importanti in sono:
1. Esporta:

  • I_program_name: 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: una tabella interna con il tipo SLIS_T_FIELDCAT_ALV che è dichiarato nel pool di tipi SLIS.

REUSE_ALV_LIST_DISPLAY
Questo è il modulo funzione che stampa i dati.
I parametri importanti sono:
1. Esporta:

  • I_callback_program: ID report
  • I_bypassing_buffer: "X"
  • I_buffer_active: ""
  • 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 dei loro attributi che devono essere stampati (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 un tipo di elenco
1. Import:
Et_Events: la tabella degli eventi viene restituita con tutti i possibili eventi CALLBACK per il tipo di elenco specificato (colonna "NAME"). Affinché gli eventi vengano elaborati dalla richiamata, è necessario compilare il campo "FORM". Se il campo è inizializzato, l'evento viene ignorato. La voce può essere letta dalla tabella degli eventi, il campo "FORM" riempito e la voce modificata utilizzando le costanti del tipo pool SLIS.
2. Esporta:
I_list_type: 0 = elenco semplice REUSE_ALV_LIST_DISPLAY
1 = elenco sequenziale gerarchico REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = elenco blocco semplice REUSE_ALV_BLOCK_LIST_APPEND
3 = elenco blocchi sequenziale gerarchico REUSE_ALV_BLOCK_PEND_HS
REUSE_ALV_GRID_DISPLAY
Una nuova funzione dalla versione ABAP4.6, per visualizzare i risultati in griglia invece che in anteprima.
Parametri: come reuse_alv_list_display

Nota: Grid non può gestire volumi elevati. Funziona come l'ordinamento, lo scorrimento verso il basso consuma 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 va per elenco o griglia, ma lo sviluppatore deve rispondere a una chiamata in base alla sua esperienza. In caso di dubbi, l'elenco è l'opzione migliore

REUSE_ALV_COMMENTARY_WRITE
Viene utilizzato nell'evento di 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. Chiave: solo quando typ è 'S'.
  3. Info: il testo da stampare

Rapporto di blocco

Sembra un report semplice, ma ha solo le funzioni di ordinamento e filtraggio. Questo report viene utilizzato se è necessario visualizzare più di un report sull'output. Tecnicamente parlando, se hai più tabelle interne con dati da visualizzare come blocchi separati, allora andiamo per il report dei blocchi di ALV.
Le funzioni importanti utilizzate per la creazione di questo rapporto sono:

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT
Questo modulo funzione viene utilizzato per impostare lo stato gui predefinito 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 funzione aggiunge i dati al blocco.
Parametri importanti
1.Export:

  • is_layout: impostazioni di layout per il blocco
  • it_fieldcat: catalogo del campo
  • I_tabname: nome della tabella interna con tutti gli eventi possibili

2.Tavoli:

  • 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 opzionali.

Report gerarchici

La visualizzazione gerarchica viene utilizzata per visualizzare i dati correlati. Come l'ordine di vendita e i dettagli dell'articolo. Qui i dettagli dell'ordine cliente possono essere i dati dell'intestazione mentre gli articoli nell'ordine cliente possono essere i dati dell'articolo
Il modulo funzione utilizzato per questo è
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Esporta:

  • 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 nel programma contenente i dati di output del livello gerarchico più alto.
  • I_tabname_item: nome della tabella interna nel 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).

Tabelle

  • t_outtab_header: tabella di intestazione con i dati da produrre
  • t_outtab_item: nome della tabella interna nel 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 '.

Varianti di visualizzazione

  • Le varianti di visualizzazione vengono utilizzate per impostare le proprietà predefinite di un output alv come criteri di ordinamento, criteri di filtro, totale e totale parziale ecc.
  • Le varianti del display 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 la variante di visualizzazione da 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 per la programmazione ABAP-ALV!