In this tutorial we will learn how to apply colors to a column in ALV report using CL_SALV_TABLE.
To apply column color,
- Get the list of all columns of ALV using GET_COLUMNS().
- Choose a particular column by calling the method GET_COLUMN().
- Apply color by using the method SET_COLOR().
Classes used: CL_SALV_TABLE, CL_SALV_COLUMNS_TABLE, CL_SALV_COLUMN_TABLE.
Create a program in SE38 and copy the below code.
REPORT zsl_oop_alv_row_color.
*----------------------------------------------------------------------*
* Add colors to columns in ALV report using factory
* class CL_SALV_TABLE *
*----------------------------------------------------------------------*
* www.saplearners.com *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_sflight DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_sflight DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF lty_sflight,
carrid TYPE s_carr_id,
connid TYPE s_conn_id,
fldate TYPE s_date,
price TYPE s_price,
currency TYPE s_currcode,
planetype TYPE s_planetye,
seatsmax TYPE s_seatsmax,
seatsocc TYPE s_seatsocc,
END OF lty_sflight.
METHODS: get_sflight_data,
get_alv_instance,
display.
DATA: lo_alv TYPE REF TO cl_salv_table,
gt_sflight TYPE STANDARD TABLE OF lty_sflight.
ENDCLASS. "lcl_sflight DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_sflight IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_sflight IMPLEMENTATION.
* Get SFLIGHT data
METHOD get_sflight_data.
SELECT carrid connid fldate price currency planetype seatsmax
seatsocc INTO TABLE me->gt_sflight
FROM sflight.
ENDMETHOD. "get_sflight_data
* Get ALV instance
METHOD get_alv_instance.
TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = lo_alv
CHANGING
t_table = gt_sflight.
CATCH cx_salv_msg.
ENDTRY.
ENDMETHOD. "get_alv_instance
* Display ALV
METHOD display.
CALL METHOD lo_alv->display.
ENDMETHOD. "display
ENDCLASS. "lcl_sflight IMPLEMENTATION
START-OF-SELECTION.
DATA: lo_cl_sflight TYPE REF TO lcl_sflight,
lo_columns TYPE REF TO cl_salv_columns_table,
lo_column_price TYPE REF TO cl_salv_column_table,
ls_color TYPE lvc_s_colo.
CREATE OBJECT lo_cl_sflight.
* Get the Data for ALV report
lo_cl_sflight->get_sflight_data( ).
* Get ALV instance
lo_cl_sflight->get_alv_instance( ).
*// To apply color to the particular column in ALV
*// 1. Get List of columns
CALL METHOD lo_cl_sflight->lo_alv->get_columns
RECEIVING
value = lo_columns.
*// 2. Pick the particular column to color it
lo_column_price ?= lo_columns->get_column( 'PRICE' ).
*// 3. Apply Color
ls_color-col = 3.
ls_color-int = 1.
*ls_color-INV =
CALL METHOD lo_column_price->set_color
EXPORTING
value = ls_color.
* Display ALV report
lo_cl_sflight->display( ).
Output without Color:
Output with Color:
Please feel free to comment and let us know your feedback. Subscribe for more updates
If you liked it, please share it! Thanks!

Click here to join our channel and stay updated with the latest tutorials and updates.
Like us on Facebook and follow us on Twitter
.