Add Default Sorting to ALVgrid report

In order to display an ALV report with specific columns already sorted by default you will need to build a sort catalogue. This is fairly straight forward and is done in the following way:

Step 1. Add data declaration for sort catalogue
Step 2. Add code to build sort catalogue table
Step 3. Update 'gd_tree->set_table_for_first_display' method call to include parameter 'it_sort'

 *  ALV data declarations
  data: it_sortcat     type LVC_T_SORT,
        it_sortcatdb   type LVC_T_SORT.

 perform build_sortcat.
*&----------------------------------------------------------*
*&      Form  build_sortcat
*&----------------------------------------------------------*
*       Build Sort catalog
*-----------------------------------------------------------*
FORM build_sortcat .
  wa_sort-spos      = 1.
  wa_sort-fieldname = 'EBELN'.
  wa_sort-SUBTOT    = 'X'. "subtotals any totals column by this field
*  gd_sortcat-tabname
  APPEND wa_sort TO it_sortcat.
  wa_sort-spos      = 2.
  wa_sort-fieldname = 'EBELP'.
*  gd_sortcat-tabname
  APPEND wa_sort TO it_sortcat.
ENDFORM.                    " build_sortcat


 CALL METHOD gd_tree->set_table_for_first_display
    EXPORTING
      is_layout       = gd_layout
    CHANGING
      it_fieldcatalog = gd_fieldcat
      it_sort         = it_sortcat
      it_outtab       = it_report.

Related Articles

Problems with Screen based ALV using objects
Refresh the data displayed within an ALV object grid