Um eine bessere Lesbarkeit in einem ALV Grid zu erreichen, kann es sinnvoll sein, die Farben (Hintergrund und Schrift) einer Spalte zu verändern. Der folgende Code Abschnitt beschreibt die Vorgehensweise. Die Farbgestaltung wird in der Methode SET_COLUMN_COLOR der Klasse Z_TEST_VIEW implementiert.
Deklaration
CLASS z_test_view DEFINITION.
PUBLIC SECTION.
METHODS set_column_color
IMPORTING
icl_alv TYPE REF TO cl_salv_table
iv_column TYPE lvc_fname
iv_color TYPE int4
iv_intense TYPE int1
iv_inverse TYPE int4 .
ENDCLASS.
Implementation
CLASS z_test_view IMPLEMENTATION.
*----------------------------------------------------------------------*
* Spaltenfarbe setzen
*----------------------------------------------------------------------*
METHOD set_column_color.
DATA: lcl_columns_table TYPE REF TO cl_salv_columns_table,
lcl_column TYPE REF TO cl_salv_column_table,
ls_color TYPE lvc_s_colo.
IF icl_alv IS NOT INITIAL.
TRY.
lcl_columns_table = icl_alv->get_columns( ).
lcl_column ?= lcl_columns_table->get_column( iv_column ).
ls_color-col = iv_color.
ls_color-int = iv_intense.
ls_color-inv = iv_inverse.
IF ls_color IS NOT INITIAL AND
lcl_column IS NOT INITIAL.
lcl_column->set_color( ls_color ).
ENDIF.
CATCH cx_salv_not_found.
ENDTRY.
ENDIF.
ENDMETHOD.
Aufruf
DATA: gcl_alv TYPE REF TO cl_salv_table, " Objektreferenz für ALV Grid
gcl_view type ref to z_test_view, " Objektreferenz auf View Objekt
...
create OBJECT gcl_view.
...
" erzeugen des ALV Objekts
cl_salv_table=>factory(
IMPORTING
r_salv_table = gcl_alv " Referenz auf ALV Grid
CHANGING
t_table = gcl_model->gt_flights ). " Tabelle mit Daten für Ausgabe
...
" Setzen der Farbe für die Spalte PRICE
gcl_view->set_column_color( icl_alv = gcl_alv
iv_column = 'PRICE'
iv_color = 6
iv_intense = 0
iv_inverse = 0 ).
" Ausgabe der Tabelle
gcl_alv->display( ).
Ergebnis

