ABAP
ABAP GRID List Viewer (ALV)
Sök…
Skapa och visa en ALV
Det här exemplet skildrar den enklaste ALV-skapelsen med klassen cl_salv_table och inga ytterligare formateringsalternativ. Ytterligare formateringsalternativ skulle inkluderas efter TRY ENDTRY blocket och före alv->display( ) .
Alla efterföljande exempel som använder ABAP-objektmetoden för ALV-skapande kommer att använda detta exempel som utgångspunkt.
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( ).
Optimera ALV-kolumnbredd
Detta exempel visar hur du optimerar kolumnbredden så att kolumnrubriker och data inte huggas av.
alv->get_columns( )->set_optimize( ).
Dölj kolumner i en ALV
Detta exempel döljer MANDT (klient) från ALV. Observera att parametern som skickas till get_column( ) måste aktiveras för att detta ska fungera.
alv->get_columns( )->get_column( 'MANDT' )->set_visible( if_salv_c_bool_sap=>false ).
Byt namn på kolumnrubriker i en ALV
Kolumntexten kan ändras vid horisontell storlek på en kolumn. Det finns tre metoder för att uppnå detta:
| Metodnamn | Maximal längd på rubriken |
|---|---|
set_short_text | 10 |
set_medium_text | 20 |
set_long_text | 40 |
Följande exempel visar användning av alla tre. Ett column deklareras och instanseras som en referens till resultatet av alv->get_columns( )->get_column( 'DISTID' ) . Kolumnnamnet måste vara med alla stora bokstäver. Detta är så att den här metodkedjan bara kallas en gång i sin inställning, istället för att köras varje gång en kolumnrubrik ändras.
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)' ).
Aktivera ALV-verktygsfältets funktionalitet
Följande metodsamtal möjliggör användning av många avancerade funktioner som sortering, filtrering och export av data.
alv->get_functions( )->set_all( ).
Aktivera alla andra rader i ALV
Denna metod ökar läsbarheten genom att ge rader i rad som växlar bakgrundsfärgskuggning.
alv->get_display_settings( )->set_striped_pattern( if_salv_c_bool_sap=>true ).
Ställa in titeln på en visad ALV
När en ALV visas är titeln överst bara programnamnet. Med denna metod kan användaren ställa in en titel på upp till 70 tecken. Följande exempel visar hur en dynamisk titel kan ställas in som visar antalet poster som visas.
alv->get_display_settings( )->set_list_header( |Flight Schedule - { lines( t_spfli ) } records| ).