Erste Schritte 
Dieses Kapitel beschreibt, wie Sie im einfachsten Fall eine Liste mit selektierten Daten im ALV Grid Control anzeigen. Dazu müssen Sie:
Eine Instanz des ALV Grid Control erzeugen und auf einem Dynpro integrieren.
Die anzuzeigenden Daten selektieren und diese zusammen mit einer Beschreibung der Felder der Instanz übergeben.
Hinweis
Siehe auch Beispielreport BCALV_GRID_DEMO in der Entwicklungsklasse SLIS.
Ein ALV Grid Control wird auf die gleiche Weise instanziiert wie andere Controls:
Deklarieren Sie Referenzvariablen für das ALV Grid Control und den Container. Deklarieren Sie außerdem eine interne Tabelle, die Sie später mit selektierten Daten füllen werden:
Syntax
DATA: grid TYPE REF TO cl_gui_alv_grid, g_custom_container TYPE REF TO cl_gui_custom_container gt_sflight TYPE TABLE OF sflight.
Hinweis
Um ein Control auf einem Dynpro zu integrieren, stehen Ihnen fünf verschiedene Container Controls zur Verfügung. In diesem Beispiel wird das Custom Container Control verwendet.
Legen Sie ein Standard-Dynpro an und markieren Sie im grafischen Screen Painter einen Bereich für das Custom Container Control (Icon mit Buchstaben 'C'). Vergeben Sie für diesen Bereich den Namen CCCONTAINER.
Hinweis
Übung 1: Einen Bereich für ein Control reservieren des Controls Tutorials ist das Markieren eines Bereichs im alphanumerischen Screen Painter erklärt.
Im PBO-Modul des Dynpro müssen Sie nun noch das Container- und ALV Grid Control instanziieren. Dabei binden Sie das Container Control an das Dynpro über den im Screen Painter angelegten Container. Über den Parameter parent legen Sie fest, dass das Container Control dem ALV Grid Control übergeordnet ist:
Syntax
IF g_custom_container IS INITIAL. CREATE OBJECT g_custom_container EXPORTING CONTAINER_NAME = 'CCCONTAINER'. CREATE OBJECT GRID1 EXPORTING I_PARENT = g_custom_container. ENDIF.
Hinweis
Die IF-Abfrage der Referenzvariable g_custom_container stellt sicher, dass die Instanzen nur beim ersten Durchlauf des PBO erzeugt werden.
Achtung
In der Regel müssen Sie mit der Methode cl_gui_cfw=>flush die aufgerufenen Methoden zum Frontend übertragen. Da das Control Framework am Ende des PBO den Flush automatisch durchführt, ist er hier nicht nötig.
Wenn Sie das Programm starten, werden die beiden Instanzen (das Container- und das ALV Grid Control) zwar erzeugt, sind aber nicht sichtbar.
Nachdem Sie ein ALV Grid Control erzeugt haben und es über ein Container Control auf einem Dynpro integriert haben, müssen Sie die Daten und deren Struktur an das ALV Grid Control übergeben:
Füllen Sie die interne Tabelle mit Daten:
Syntax
SELECT * FROM sflight INTO TABLE gt_sflight.
Übergeben Sie die Ausgabetabelle und die Strukturdaten an das ALV Grid Control. Achten Sie wiederum darauf, diese Methode nur einmal nach der Erzeugung des ALV Grid Control aufzurufen:
Syntax
CALL METHOD grid->set_table_for_first_display EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' CHANGING IT_OUTTAB = gt_sflight.
Hinweis
In diesem Fall werden die Strukturdaten über das Data Dictionary bereitgestellt. Das ALV Grid Control ermittelt die Feldinformationen über die Tabelle SFLIGHT und stellt alle Felder der Tabelle dar.