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