ALV
ABAP List Viewer wird verwendet, um die Lesbarkeit und Funktionalität der Ausgabe des Reports zu verbessern. Wir können mit verschiedene Möglichkeiten, wie mit Typ ALV entwickeln pool Mitteilungshost oder mithilfe der Cl_GUI_ALV_GRID-Klasse. Im Falle von Objekt-orientiertes Konzept ist das Control Framework erforderlich, da sie globale Klassen für verschiedene Funktionalitäten.CL_GUI_ALV_GRID
Es ist die Wrapper-Klasse implementiert ALV Grid-Funktionalität für die Anzeige der Liste zu kapseln. ALV Grid Control ist ein flexibles Werkzeug, das folgende Möglichkeiten bietet:
- Zum Erstellen und Anzeigen von Listen interaktive, nicht hierarchische und Modern-Design.
- Bietet typische Liste Funktionen wie Sortieren, Filtern, summierende etc..
- Stellt allgemeine Liste Operationen und kann durch benutzerdefinierte Optionen verbessert werden.
Grundkomponenten für ALV Grid Control erforderlich sind:
- Listendaten: Daten aufgeführt werden werden in eine interne Tabelle aufgefüllt. Diese Tabelle kann jede flache Art
- Feldkatalog: Dies ist eine interne Tabelle, die die Liste der Felder gemäß Spezifikation enthält. Es umfasst einige weitere Informationen zu Anzeigeoptionen für jede Spalte angezeigt werden. Es muss auf die Wörterbuchtyp verwiesen werden “ LVC_T_FCAT ” während der Arbeitsbereich Typ sein wird “ LVC_S_FCAT ”. Funktion "Lvc_fieldcatalog_merge" kann auch verwendet werden, um Feldkatalog Strukturnamen übergeben Sie beim Abrufen.
- Container: Container ist ein Speicherbereich, in dem die Liste angezeigt wird. Sollte es der Typ “ CL_GUI_CUSTOM_CONTAINER ”. Andere Containerklassen sind:
- CL_GUI_DOCKING_CONTAINER - für die Anzeige von mehreren ALV ’ s mithilfe von Methoden wie z. B. Dock_at_left, Dock_at_right, Dock_at_top, Dock_at_bottom. Interne Tabellen können in diesen Containern angezeigt werden.
- CL_GUI_EASY_SPLITTER_CONTAINER - für die Anzeige zwei ALV-Raster auf Schirm, ist Container aufgeteilt in zwei Container mit dieser Klasse.
- CL_GUI_DIALOGBOX_CONTAINER-dies ist bei interaktiven ALV, verwendet in dem Detail-Liste im Dialogfeld angezeigt wird. Diese Funktionalität finden Sie unter Beispiel BCALV_GRID_02.
- Layout Struktur: Es ist eine Struktur allgemeine Layout-Optionen für das Gitter angeben. Mit dieser Struktur können wir allgemeine Anzeigeoptionen, Raster anpassen, Summenoptionen, Farbanpassungen usw. festlegen. Die Layout-Struktur muss vom Typ “ LVC_S_LAYO ”.
- Ereignishandler: Zur Behandlung von Ereignissen, müssen wir definiert und implementiert eine Ereignishandlerklasse, ausgelöst durch die ALV Grid-Instanz. Nach ALV Grid-Instanz erstellen, müssen wir eine Instanz dieses Event-Handler-Klasse zur Ereignisbehandlung ALV Grid registrieren.
Verschiedene Ereignisse sind wie folgt-
- Print_Top_Of_Page: Verwendet für Header. Handler ist ‘ SET HANDLER ’.
- Print_End_Of_Page: Verwendet für Fußzeilen. Handler ist ‘ SET HANDLER ’.
- OnDrag: Dieses Ereignis wird benutzt um ‘ Fetch ’ Informationen aus der Quelle des Ziehvorgangs.
- OnDrop: Dieses Ereignis wird verwendet, um die gezogene Informationen in Kombination mit Ablagequelle verwenden. Hier sollte geprüft werden, ob der Vorgang erfolgreich war.
- Aktionen: Dieses Ereignis wird verwendet, um den Zustand zu ändern, nachdem eine erfolgreiche drag & drop-Vorgang. Zum Beispiel: die verwendete interne Tabelle aktualisieren, wenn eine Zeile verschoben wurde.HINWEIS: Drag & Drop-Funktionalität finden Sie in diesen standard Beispiele-BCALV_DND_01-schleppen ALV-Zeile Baum-Ordner
BCALV_DND_02 - Drag Icons von Baum zu Zeilen des Rasters
BCALV_DND_03 - Drag & Drop auf Zellen des Rasters
BCALV_DND_04-Drag & Drop innerhalb ALV Grid Control
BCALV_GRID_DND_TREE-ALV Grid: Drag & Drop mit ALV-Baum
BCALV_GRID_DND_TREE_SIMPLE-ALV Grid: Drag & Drop mit ALV-Baum (einfach)- Zusätzliche Daten: Einige zusätzliche Features von ALV Grid auslösen können wir haben einige zusätzlichen Daten als Parameter übergeben. Z. B. erste Sortierung Kriterium (Klasse verwendet ist LVC_S_SORT), Buttons deaktiviert sein, GUI-Status und Titel etc..
Allgemeine Erklärungen und Schritte, Objekt-orientierte ALV erstellen:
- Fügen Sie benutzerdefiniertes Steuerelement auf dem Bildschirm mit Bezug zu Container.
Zum Beispiel:
Daten: Gc_custom_control_name Typ Scrfname Wert 'Cc_alv'.- Objekt der Klasse CL_GUI_CUSTOM_CONTAINER für Container zu erstellen.
Zum Beispiel:
Ob_custom Typverweis auf Cl_gui_custom_container.
Erstellen von Objekt ob_custom
Exportieren
Containername = ‘ CONTAINER ’.- Erstellen Sie Objekt der Klasse CL_GUI_ALV_GRID für die Umsetzung von Grid in oben Container.
Zum Beispiel:
Ob_grid Typverweis auf Cl_gui_grid_display.
Erstellen von Objekt ob_grid
Exportieren
I_parent = Ob_custom.- Füllen Sie die interne Tabelle, die Sie im Raster anzeigen möchten.
Zum Beispiel:
Diese interne Tabelle wird mit Daten aus Sflight gefüllt.
Daten: T_sflight standard Typtabelle Sflight.- Rufen Sie den Bildschirm, der Custom Container enthält, die beim PBO des Bildschirms getan wird.
- SET_TABLE_FOR_FIRST_DISPLAY-Methode CL_GUI_ALV_GRID-Klasse wird verwendet, um die Anzeige der Ausgabe.
Zum Beispiel:
CALL METHOD Ob_grid - > Set_table_for_first_display
Exportieren
I_structure_name = ‘ SFLIGHT ’
Is_layout = Gs_layout
Ändern
It_outtab = T_SFLIGHT]
It_fieldcatalog = Gt_fieldcat
Ausnahmen
Invalid_parameter_combination = 1
Program_error = 2
Too_many_lines = 3
andere = 4.Beispiel für Docking-Steuerelementcontainer unter Verwendung der Object-Oriented ALV
Schritt 1:
Erstellen Sie zwei Docking Container für zwei Raster mit folgenden Code.
Daten: r_grid1 TYPE REF TO Cl_gui_alv_grid,
r_grid2 Typ REF TO Cl_gui_alv_grid,
g_dock1 Typ REF TO Cl_gui_docking_container,
g_dock2 Typ REF TO Cl_gui_docking_container,Wenn g_dock1 ist erste.
CREATE OBJECT g_dock1
EXPORTIEREN
REPID = Sy-Repid
DYNNR = Sy-Dynnr
Seite = g_dock1 - > Dock_at_left
Erweiterung = 300.
CREATE OBJECT r_grid1
EXPORTIEREN
I_parent = g_dock1.
ENDIF.Wenn g_dock2 ist erste.
CREATE OBJECT g_dock2
EXPORTIEREN
REPID = Sy-Repid
DYNNR = Sy-Dynnr
Seite = g_dock2 - > Dock_at_bottom
Erweiterung = 100.
CREATE OBJECT r_grid2
EXPORTIEREN
I_parent = g_dock2.
ENDIF.Schritt 2:
Zwei interne Tabellen nehmen und sie mit den gewünschten Daten auffüllen.
Zum Beispiel:
It_tab, It_count.Auch Ausfüllen der Feldkatalog mit entsprechenden Strukturen der interne Tabellen.
Schritt 3:
Interne Tabelle It_tab auf Raster-r_grid1 festgelegt.
IF It_tab [] ersten ist.
CALL METHOD r_grid1 - > Set_table_for_first_display
EXPORTIEREN
Is_layout = gs_layout
ÄNDERN
It_outtab = it_tab
It_fieldcatalog = Gt_fieldcat.
ENDIF.Schritt 4:
Interne Tabelle It_count auf Raster-r_grid2 festgelegt.
Wenn nicht It_count [] ersten ist.
CALL METHOD r_grid2 - > Set_table_for_first_display
EXPORTIEREN
Is_layout = Gs_layout
ÄNDERN
It_outtab = It_count
It_fieldcatalog = gt_fieldcat1.
ENDIF.
Screen-Shots für ALV-Ausgang zum Anzeigen von zwei interner Tabellen in zwei verschiedenen Docking Container zusammen mit Auswahl-Bildschirm:Wir können mehr als eine interne Tabelle auf einem Bildschirm als Selektionsbild im Gegensatz zu ALV mit Typ-Pool Mitteilungshost anzeigen.
Wir können auch Datensätze filtern, dem Ausgabe-Optionsbild positionieren und den Bericht wie folgt ausführen:
Klicken Sie auf Ausführen
Weitere Filtration ist möglich, indem Sie eingeben z. B. 1000-Werk in über Bildschirm
ArchitectSAP Solutions
SAP. Gestrafft.
SAP ECC, HR, SCM und NetWeaver Beratung, Implementierung, Outsourcing, Offshore-Support und SAP-Beratungshaus Dienstleistungen für SAP-Kunden aus verschiedenen Branchen weltweit.
Haben Sie eine Frage zu SAP? Schreiben Sie an unsere SAP-Architekt: AskTheArchitect@architectsap.com
(Wir versprechen eine unverbindliche Beratung Antworten)




