[ABAP] SALV-Table – Zeilen farbig anzeigen

TYPES: BEGIN OF ty_s_sflight,
         fldate	   TYPE s_date,
         planetype TYPE s_planetye,
         seatsmax	 TYPE s_seatsmax,
         seatsocc	 TYPE s_seatsocc,
         color     TYPE lvc_t_scol, " Farbspalte
       END OF ty_s_sflight.

TYPES: ty_it_sflight TYPE STANDARD TABLE OF ty_s_sflight WITH DEFAULT KEY.

START-OF-SELECTION.

  DATA(it_sflight) = VALUE ty_it_sflight( ).

  SELECT fldate,
         planetype,
         seatsmax,
         seatsocc
    INTO CORRESPONDING FIELDS OF TABLE @it_sflight
    FROM sflight.

  TRY.
      DATA: o_alv TYPE REF TO cl_salv_table.

      cl_salv_table=>factory( IMPORTING r_salv_table = o_alv
                              CHANGING  t_table      = it_sflight ).

* Farben in der Tabellen-Spalte 'COLOR' setzen
      LOOP AT it_sflight ASSIGNING FIELD-SYMBOL(<f>).
* Wenn >= 370 Belegte Plätze in der Economy Class
        IF <f>-seatsocc >= 370.
* in die Spalte COLOR wird für jede Tabellen-Zeile eine Farbtabelle eingefügt
          <f>-color = VALUE #( ( color-col = 5  " grün
                                 color-int = 0
                                 color-inv = 0
                               )
                             ).
        ENDIF.
      ENDLOOP.

* Namen der Farbspalte setzen
      o_alv->get_columns( )->set_color_column( 'COLOR' ).

* Grid anzeigen
      o_alv->display( ).
    CATCH cx_root INTO DATA(e_text).
      WRITE: / e_text->get_text( ).
  ENDTRY.

Links