ABAP
ABAP GRID List Viewer (ALV)
Zoeken…
Een ALV maken en weergeven
Dit voorbeeld toont de meest eenvoudige ALV-creatie met behulp van de klasse cl_salv_table en geen extra opmaakopties. Extra opmaakopties zouden worden opgenomen na het blok TRY ENDTRY en vóór de methode-aanroep alv->display( ) .
Alle volgende voorbeelden die de ABAP Objects-benadering voor het maken van ALV gebruiken, zullen dit voorbeeld als uitgangspunt gebruiken.
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( ).
Optimaliseer de ALV-kolombreedte
Dit voorbeeld laat zien hoe de kolombreedte te optimaliseren, zodat kolomkoppen en gegevens niet worden afgekapt.
alv->get_columns( )->set_optimize( ).
Kolommen verbergen in een ALV
In dit voorbeeld wordt het MANDT (client) verborgen voor de ALV. Merk op dat de parameter die wordt doorgegeven aan get_column( ) met een hoofdletter moet worden geschreven om dit te laten werken.
alv->get_columns( )->get_column( 'MANDT' )->set_visible( if_salv_c_bool_sap=>false ).
Wijzig de kolomkoppen in een ALV
De kolomtekst kan veranderen bij de horizontale grootte van een kolom. Er zijn drie methoden om dit te bereiken:
| Methodenaam | Maximale lengte van de koers |
|---|---|
set_short_text | 10 |
set_medium_text | 20 |
set_long_text | 40 |
Het volgende voorbeeld toont het gebruik van alle drie. Een column object wordt aangegeven en geïnstantieerd als een verwijzing naar het resultaat van alv->get_columns( )->get_column( 'DISTID' ) . De kolomnaam moet in hoofdletters worden vermeld. Dit is zo dat deze methode chaining slechts één keer wordt aangeroepen in plaats van te worden uitgevoerd in plaats van elke keer dat een kolomkop wordt gewijzigd.
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)' ).
ALV-werkbalkfunctionaliteit inschakelen
Met de volgende methode-aanroep kunnen veel geavanceerde functies worden gebruikt, zoals sorteren, filteren en exporteren van gegevens.
alv->get_functions( )->set_all( ).
Elke andere rij striping inschakelen in ALV
Deze methode verhoogt de leesbaarheid door opeenvolgende rijen afwisselend achtergrondkleur te geven.
alv->get_display_settings( )->set_striped_pattern( if_salv_c_bool_sap=>true ).
De titel van een weergegeven ALV instellen
Wanneer een ALV wordt weergegeven, is de titel bovenaan alleen de programmanaam. Met deze methode kan de gebruiker een titel van maximaal 70 tekens instellen. Het volgende voorbeeld laat zien hoe een dynamische titel kan worden ingesteld die het aantal weergegeven records weergeeft.
alv->get_display_settings( )->set_list_header( |Flight Schedule - { lines( t_spfli ) } records| ).