ABAP
ABAP GRID List Viewer (ALV)
Suche…
ALV erstellen und anzeigen
In diesem Beispiel wird die einfachste ALV-Erstellung mit der Klasse cl_salv_table und ohne zusätzliche Formatierungsoptionen dargestellt. Zusätzliche Formatierungsoptionen werden nach dem TRY ENDTRY Block und vor dem alv->display( ) Methode alv->display( ) .
Alle nachfolgenden Beispiele, die den ABAP Objects-Ansatz für die ALV-Erstellung verwenden, verwenden dieses Beispiel als Ausgangspunkt.
DATA: t_spfli TYPE STANDARD TABLE OF spfli,
alv TYPE REF TO cl_salv_table,
error_message TYPE REF TO cx_salv_msg.
" Fill the internal table with example data
SELECT * FROM spfli INTO TABLE t_spfli.
" Fill ALV object with data from the internal table
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = alv
CHANGING
t_table = t_spfli ).
CATCH cx_salv_msg INTO error_message.
" error handling
ENDTRY.
" Use the ALV object's display method to show the ALV on the screen
alv->display( ).
Optimieren Sie die ALV-Spaltenbreite
In diesem Beispiel wird veranschaulicht, wie die Spaltenbreite optimiert wird, damit Spaltenüberschriften und Daten nicht abgeschnitten werden.
alv->get_columns( )->set_optimize( ).
Spalten in einem ALV ausblenden
In diesem Beispiel wird das MANDT Feld (Client) vor dem ALV MANDT . Beachten Sie, dass der an get_column( ) Parameter get_column( ) muss , damit dies funktioniert.
alv->get_columns( )->get_column( 'MANDT' )->set_visible( if_salv_c_bool_sap=>false ).
Umbenennen von Spaltenüberschriften in einem ALV
Der Spaltentext kann sich bei der horizontalen Größenänderung einer Spalte ändern. Dafür gibt es drei Methoden:
| Methodenname | Maximale Länge der Überschrift |
|---|---|
set_short_text | 10 |
set_medium_text | 20 |
set_long_text | 40 |
Das folgende Beispiel zeigt die Verwendung aller drei. Ein column deklariert wird und als Hinweis auf das Ergebnis der instantiierten alv->get_columns( )->get_column( 'DISTID' ) - alv->get_columns( )->get_column( 'DISTID' ) . Der Spaltenname muss aus Großbuchstaben bestehen. Dies ist so, dass diese Methodenverkettung nur einmal in ihrer Instanziierung aufgerufen wird, anstatt jedes Mal ausgeführt zu werden, wenn eine Spaltenüberschrift geändert wird.
DATA column TYPE REF TO cl_salv_column.
column = alv->get_columns( )->get_column( 'DISTID' ).
column->set_short_text( 'Dist. Unit' ).
column->set_medium_text( 'Unit of Distance' ).
column->set_long_text( 'Mass Unit of Distance (kms, miles)' ).
Aktivieren Sie die ALV-Symbolleistenfunktionalität
Der folgende Methodenaufruf ermöglicht die Verwendung vieler erweiterter Funktionen wie Sortieren, Filtern und Exportieren von Daten.
alv->get_functions( )->set_all( ).
Alle anderen Zeilenstreifen in ALV aktivieren
Diese Methode erhöht die Lesbarkeit, indem aufeinanderfolgende Zeilen abwechselnd die Hintergrundfarbschattierung anzeigen.
alv->get_display_settings( )->set_striped_pattern( if_salv_c_bool_sap=>true ).
Titel eines angezeigten ALV einstellen
Wenn ein ALV angezeigt wird, ist der Titel ganz oben nur der Programmname. Mit dieser Methode kann der Benutzer einen Titel mit bis zu 70 Zeichen festlegen. Das folgende Beispiel zeigt, wie ein dynamischer Titel festgelegt werden kann, der die Anzahl der angezeigten Datensätze anzeigt.
alv->get_display_settings( )->set_list_header( |Flight Schedule - { lines( t_spfli ) } records| ).