ALV-Berichte im SAP Tutorial - ABAP List Viewer

Inhaltsverzeichnis:

Anonim

Die gemeinsamen gewünschten Merkmale eines Berichts sind "Spaltenausrichtung", Sortieren, Filtern, Zwischensummen, Summen usw. Um diese von Grund auf neu zu implementieren, ist ein großer Codierungsaufwand erforderlich. Um dies zu vermeiden, können wir ein Konzept namens ABAP List Viewer (ALV) verwenden.

In diesem Tutorial lernen Sie:

  • Einfacher Bericht
  • Bericht blockieren
  • Hierarchische Berichte
  • Varianten anzeigen

Jeder dieser Berichte enthält Funktionsbausteine, mit denen die gewünschte Ausgabe ohne großen Aufwand erstellt werden kann. Schauen wir sie uns genauer an -

Einfacher Bericht

Wichtige Funktionsbausteine ​​in diesem Bericht sind -

  • Reuse_alv_fieldcatalog_merge
  • Reuse_alv_list_display
  • Reuse_alv_events_get
  • Reuse_alv_grid_display
  • Reuse_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE Mit
diesem Funktionsbaustein wird ein Feldkatalog gefüllt, der für die Anzeige der Daten in ALV unerlässlich ist.
Wenn die Ausgabedaten aus einer einzelnen Wörterbuchtabelle stammen und alle Spalten ausgewählt sind, müssen wir den Feldkatalog nicht ausschließlich erstellen. Es reicht aus, den Tabellennamen als Parameter (I_structure_name) im REUSE_ALV_LIST_DISPLAY zu erwähnen. Aber in anderen Fällen müssen wir es schaffen.
Hinweis: Der Feldkatalog kann auch manuell ausgefüllt werden, indem alle erforderlichen Details in die interne Tabelle eingetragen werden.
Wichtige Parameter sind:
1. Exportieren:

  • I_Programmname: Berichts-ID
  • I_internal_tabname: Die interne Ausgabetabelle
  • I_inclname: include oder der Berichtsname, in dem alle dynamischen Formulare verarbeitet werden.

2. Ändern

  • ct_fieldcat: Eine interne Tabelle vom Typ SLIS_T_FIELDCAT_ALV, die im Typpool SLIS deklariert ist.

REUSE_ALV_LIST_DISPLAY
Dies ist der Funktionsbaustein, der die Daten druckt.
Die wichtigen Parameter sind:
1. Export:

  • I_callback_program: Berichts-ID
  • I_bypassing_buffer: 'X'
  • I_buffer_active: ''
  • I_callback_pf_status_set: Routine, bei der ein Benutzer seinen eigenen pf-Status festlegen oder die Funktionalität des vorhandenen pf-Status ändern kann.
  • I_callback_user_command: Routine, in der die Funktionscodes behandelt werden.
  • I_structure name: Name der Wörterbuchtabelle
  • Is_Layout: Struktur zum Festlegen des Layouts des Berichts
  • It_fieldcat: interne Tabelle mit der Liste aller zu druckenden Felder und ihrer Attribute (diese Tabelle kann von der Funktion automatisch ausgefüllt werden)
  • It_events: Interne Tabelle mit einer Liste aller möglichen Ereignisse von ALV und den entsprechenden Formularnamen.

2. Tabellen:

  • ein. t_outtab: interne Tabelle mit den auszugebenden Daten

REUSE_ALV_EVENTS_GET:
Gibt eine Tabelle möglicher Ereignisse für einen Listentyp
1 zurück. Import:
Et_Events: Die Ereignistabelle wird mit allen möglichen CALLBACK-Ereignissen für den angegebenen Listentyp zurückgegeben (Spalte 'NAME'). Damit Ereignisse vom Rückruf verarbeitet werden können, muss das Feld 'FORM' ausgefüllt werden. Wenn das Feld initialisiert wird, wird das Ereignis ignoriert. Der Eintrag kann aus der Ereignistabelle gelesen, das Feld 'FORM' ausgefüllt und der Eintrag mithilfe von Konstanten aus dem Typpool SLIS geändert werden.
2. Export:
I_list_type: 0 = einfache Liste REUSE_ALV_LIST_DISPLAY
1 = hierarchisch-sequentielle Liste REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = einfache Blockliste REUSE_ALV_BLOCK_LIST_APPEND
3 = hierarchisch-sequentielle Blockliste REUSE_ALV_BLOCK_LIST_HS
REUSE_ALV_GRID_DISPLAY
Eine neue Funktion aus der ABAP4.6-Version, mit der die Ergebnisse im Raster und nicht in einer Vorschau angezeigt werden.
Parameter: wie reuse_alv_list_display

Hinweis: Grid kann keine großen Volumes verarbeiten. Funktionen wie Sortieren und Scrollen nach unten verbrauchen viel Ressourcen / Zeit, wenn das anzuzeigende Datenvolumen hoch ist. Es gibt keine eindeutige Definition, sodass der Entwickler bei einer Datenmenge von X eine Liste oder ein Raster wählen muss, aber aufgrund seiner Erfahrung einen Anruf entgegennehmen muss. Wenn Sie sich nicht sicher sind, ist die Liste die bessere Option

REUSE_ALV_COMMENTARY_WRITE
Dies wird im Top-of-Page-Ereignis verwendet, um die Überschriften und andere Kommentare für die Liste zu drucken.
Wichtige Parameter

  • It_list_commentary: Interne Tabelle mit den Überschriften vom Typ slis_t_listheader.

Diese interne Tabelle enthält drei Felder:

  1. Typ: 'H' - Header, 'S' - Auswahl, 'A' - Aktion
  2. Schlüssel: nur wenn typ 'S' ist.
  3. Info: Der zu druckende Text

Bericht blockieren

Dies sieht aus wie ein einfacher Bericht, bietet jedoch nur die Funktionen zum Sortieren und Filtern. Dieser Bericht wird verwendet, wenn Sie mehr als einen Bericht in der Ausgabe anzeigen müssen. Technisch gesehen, wenn Sie mehrere interne Tabellen mit Daten haben, die als separate Blöcke angezeigt werden sollen, gehen wir zum Blockbericht von ALV.
Die wichtigsten Funktionen zum Erstellen dieses Berichts sind:

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT Mit
diesem Funktionsbaustein wird der Standard-GUI-Status usw. festgelegt. Die Parameter ähneln denen, die in reuse_alv_list_display oder reuse_alv_grid_display verwendet werden.
REUSE_ALV_BLOCK_LIST_APPEND
Dieser Funktionsbaustein fügt die Daten dem Block hinzu.
Wichtige Parameter
1.Export:

  • is_layout: Layouteinstellungen für Block
  • it_fieldcat: Feldkatalog
  • I_tabname: Interner Tabellenname mit allen möglichen Ereignissen

2.Tabellen:

  • t_outtab: interne Tabelle mit Ausgabedaten.

REUSE_ALV_BLOCK_LIST_DISPLAY
Dieser Funktionsbaustein zeigt die Liste mit den von der obigen Funktion angehängten Daten an.
Parameter: Alle Parameter sind optional.

Hierarchische Berichte

Die hierarchische Anzeige wird zum Anzeigen verwandter Daten verwendet. Wie Kundenauftrag und Artikeldetails. Hier können Kundenauftragsdetails die Kopfdaten sein, während die Artikel im Kundenauftrag die Artikeldaten sein können.
Der dafür verwendete Funktionsbaustein ist
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Export:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_LAYOUT
  • It_fieldcat
  • It_events
  • I_tabname_header: Name der internen Tabelle im Programm, die die Ausgabedaten der höchsten Hierarchieebene enthält.
  • I_tabname_item: Name der internen Tabelle im Programm, die die Ausgabedaten der niedrigsten Hierarchieebene enthält.
  • Is_keyinfo: Diese Struktur enthält die Feldnamen der Header- und Elementtabelle, die die beiden Tabellen verbinden (gemeinsamer Schlüssel).

Tabellen

  • t_outtab_header: Headertabelle mit auszugebenden Daten
  • t_outtab_item: Name der internen Tabelle im Programm, die die Ausgabedaten der niedrigsten Hierarchieebene enthält.

Alle Definitionen interner Tabellen, Strukturen und Konstanten werden in einem Typpool namens SLIS deklariert. Diese interne Tabelle kann mithilfe von REUSE_ALV_FIELDCATALOG_MERGE 'automatisch ausgefüllt werden.

Varianten anzeigen

  • Anzeigevarianten werden verwendet, um die Standardeigenschaften einer alv-Ausgabe wie Sortierkriterien, Filterkriterien, Summierung und Zwischensumme usw. Festzulegen
  • Anzeigevarianten können benutzerspezifisch und Standard sein (Standardvarianten können von jedem Benutzer verwendet werden)
  • Die Art der Anzeigevarianten, die gespeichert werden können, wird durch den Parameter i_save gesteuert, der in den Funktionsbausteinen reuse_alv_list_display / reuse_alv_grid_display übergeben wird
  • Sie können auf dem Auswahlbildschirm eine Option bereitstellen, um auszuwählen, welche Anzeigevariante verwendet werden soll

Die gängigen Funktionsbausteine ​​zur Auswahl / Validierung von Anzeigevarianten sind

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existence

Das ist alles zur ABAPALV-Programmierung!