Auto Width Adjust in ALV grid display

Problem: 
Suppose the field descriptions is long and every time user need to adjust the width manually in ALV grid output

Solution:
Set colwidth_optimize in layout of ALV grid display

Data Declarations required: 

 wa_fieldlayout  TYPE    slis_layout_alv,



Assignment / Populating : 
There are many options available for field layout. Just select colwidth_optimize by assigning value as 'X'.
  wa_fieldlayout-colwidth_optimize = 'X'.
 Just assign this value before calling ALV grid display. Or you can also create a subroutine for the same.

Usage :
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "call function for alv grid display
     EXPORTING
       i_callback_program                =  sy-cprog
       it_fieldcat                       =  it_fieldcat[]
       it_sort                           =  it_sortcat[]
       is_layout                         =  wa_fieldlayout
       i_callback_top_of_page            =  lv_top_of_page
       i_callback_user_command           =  lv_callback
      TABLES
        t_outtab                          = it_final
     EXCEPTIONS
       program_error                     = 1
       OTHERS                            = 2
              .

 Just pass the field layout variable to is_layout. That’s it :) the width of each column will be auto adjusted accordingly.