BeispieldokumentationErste Schritte Dieses Dokument in der Navigationsstruktur finden

 

Dieses Kapitel beschreibt, wie Sie im einfachsten Fall eine Liste mit selektierten Daten im ALV Grid Control anzeigen. Dazu müssen Sie:

  1. Eine Instanz des ALV Grid Control erzeugen und auf einem Dynpro integrieren.

  2. Die anzuzeigenden Daten selektieren und diese zusammen mit einer Beschreibung der Felder der Instanz übergeben.

    Hinweis Hinweis

    Siehe auch Beispielreport BCALV_GRID_DEMO in der Entwicklungsklasse SLIS.

    Ende des Hinweises
Ein ALV Grid Control anlegen

Ein ALV Grid Control wird auf die gleiche Weise instanziiert wie andere Controls:

  1. 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 Syntax

    1. 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.
    Ende des Codes

    Hinweis 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.

    Ende des Hinweises
  2. 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 Hinweis

    Übung 1: Einen Bereich für ein Control reservieren des Controls Tutorials ist das Markieren eines Bereichs im alphanumerischen Screen Painter erklärt.

    Ende des Hinweises
  3. 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 Syntax

    1. 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.
    Ende des Codes

Hinweis Hinweis

Die IF-Abfrage der Referenzvariable g_custom_container stellt sicher, dass die Instanzen nur beim ersten Durchlauf des PBO erzeugt werden.

Ende des Hinweises

Achtung 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.

Ende der Warnung.

Wenn Sie das Programm starten, werden die beiden Instanzen (das Container- und das ALV Grid Control) zwar erzeugt, sind aber nicht sichtbar.

Eine Liste im ALV Grid Control anzeigen

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:

  1. Füllen Sie die interne Tabelle mit Daten:

    Syntax Syntax

    1. SELECT * FROM sflight INTO TABLE gt_sflight.
    Ende des Codes
  2. Ü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 Syntax

    1. CALL METHOD grid->set_table_for_first_display
      	EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'
      	CHANGING IT_OUTTAB = gt_sflight.
    Ende des Codes

Hinweis 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.

Ende des Hinweises