ALV-Berichte in SAP Tutorial – ABAP List Viewer

Die allgemein gewünschten Funktionen eines jeden Berichts sind „Spaltenausrichtung“, Sortierung, Filterung, Zwischensummen, Summen usw. Um diese von Grund auf zu implementieren, ist ein hoher Programmieraufwand erforderlich. Um dies zu vermeiden, können wir ein Konzept namens ABAP List Viewer (ALV) verwenden.

Jeder dieser Berichte bietet Funktionsbausteine die dazu beitragen, ohne großen Aufwand die gewünschte Ausgabe zu erzielen. Schauen wir sie uns im Detail an –

Einfacher Bericht

Wichtige Funktionsbausteine ​​darin berichten 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 nicht ausschließlich den Feldkatalog erstellen. Es reicht aus, den Tabellennamen als Parameter (I_structure_name) im REUSE_ALV_LIST_DISPLAY anzugeben. Aber in anderen Fällen müssen wir es erstellen.

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: ein interne Tabelle mit dem Typ SLIS_T_FIELDCAT_ALV, der im Typpool SLIS deklariert ist.

REUSE_ALV_LIST_DISPLAY

Dies ist der Funktionsbaustein, der die Daten druckt.

Die wichtigen Parameter sind:

1. Exportieren:

  • I_callback_program: Berichts-ID
  • I_Bypassing_Buffer: 'X'
  • I_Puffer_aktiv: ''
  • I_callback_pf_status_set: Routine, in 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 verarbeitet werden.
  • I_Strukturname: Name der Wörterbuchtabelle
  • Is_Layout: Struktur zum Festlegen des Layouts des Berichts
  • It_fieldcat : interne Tabelle mit der Liste aller Felder und deren Attribute, die gedruckt werden sollen (diese Tabelle kann durch die Funktion automatisch gefüllt werden)
  • It_events: Interne Tabelle mit einer Liste aller möglichen Ereignisse von ALV und ihren entsprechenden Formularnamen.

2. Tabellen:

  • A. t_outtab: interne Tabelle mit den auszugebenden Daten

REUSE_ALV_EVENTS_GET:

Gibt eine Tabelle möglicher Ereignisse für einen Listentyp zurück

1. Importieren:

Et_Events:Die Ereignistabelle wird mit allen möglichen CALLBACK-Ereignissen für den angegebenen Listentyp (Spalte „NAME“) zurückgegeben. Damit Ereignisse vom Callback verarbeitet werden können, muss deren Feld „FORM“ ausgefüllt sein. Wenn das Feld initialisiert ist, wird das Ereignis ignoriert. Der Eintrag kann aus der Ereignistabelle gelesen, das Feld 'FORM' gefüllt und der Eintrag mit Konstanten aus dem Typpool SLIS geändert werden.

2. Exportieren:

I_list_type: 0 = einfache Liste REUSE_ALV_LIST_DISPLAY

1 = hierarchisch-sequenzielle Liste REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = einfache Blockliste REUSE_ALV_BLOCK_LIST_APPEND

3 = hierarchisch-sequenzielle Bausteinliste REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_GRID_DISPLAY

Eine neue Funktion aus der ABAP4.6-Version, um die Ergebnisse in einem Raster statt in einer Vorschau anzuzeigen.

Parameter: wie reuse_alv_list_display

Hinweis: Grid kann keine großen Datenmengen verarbeiten. Funktionen wie Sortieren und Herunterscrollen verbrauchen viele Ressourcen/Zeit, wenn das anzuzeigende Datenvolumen groß ist. Es gibt keine eindeutige Definition, ob bei einer Datenmenge von X eine Liste oder ein Grid verwendet werden soll, aber der Entwickler muss eine Entscheidung auf Grundlage seiner Erfahrung treffen. Wenn Sie sich nicht sicher sind, ist eine 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 hat 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 wie ein einfacher Bericht aus, verfügt jedoch nur über die Funktionen Sortieren und Filtern. Dieser Bericht wird verwendet, wenn Sie mehr als einen Bericht in der Ausgabe anzeigen müssen. Technisch gesehen verwenden wir den Blockbericht von ALV, wenn Sie mehrere interne Tabellen mit Daten haben, die als separate Blöcke angezeigt werden sollen.

Die wichtigen Funktionen zur Erstellung dieses Berichts sind:

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT

Dieser Funktionsbaustein wird verwendet, um den Standard-GUI-Status usw. festzulegen. 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.Exportieren:

  • 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 durch die obige Funktion angehängten Daten an.

Parameter: Alle Parameter sind optional.

Hierarchische Berichte

Die hierarchische Anzeige wird zum Anzeigen verwandter Daten verwendet. Wie Verkaufsauftrags- und Artikeldetails. Hier können Verkaufsauftragsdetails die Kopfdaten sein, während die Artikel im Verkaufsauftrag die Artikeldaten sein können.

Der hierfür verwendete Funktionsbaustein ist

REUSE_ALV_HIERSEQ_LIST_DISPLAY

Exporte:

  • 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 untersten Hierarchieebene enthält.
  • Is_keyinfo: Diese Struktur enthält die Feldnamen der Kopf- und Elementtabelle, die die beiden Tabellen verbinden (gemeinsamer Schlüssel).

Tische

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

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

Varianten anzeigen

  • Mithilfe von Anzeigevarianten werden die Standardeigenschaften einer ALV-Ausgabe wie Sortierkriterien, Filterkriterien, Summierung und Zwischensumme usw. festgelegt
  • Anzeigevarianten können benutzerspezifisch und standardmäßig sein (Standardvarianten können von jedem Benutzer verwendet werden)
  • Welche Anzeigevarianten 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 Selektionsbild eine Option zur Auswahl der zu verwendenden Anzeigevariante bereitstellen

Die allgemeinen Funktionsmodule im Zusammenhang mit der Auswahl/Validierung von Anzeigevarianten sind:

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existence

Das ist alles ABAP – ALV-Programmierung!