Back to Blog
ABAPALVReports

ALV Reports in ABAP: From Classic to Modern Implementation

Build professional ALV (ABAP List Viewer) reports using both classic function modules and the modern CL_SALV_TABLE class.

A

Admin

Monday, 9 February 2026

What is ALV?

ALV (ABAP List Viewer) is SAP's standard framework for displaying data in a tabular format. It provides built-in features like sorting, filtering, totals, export to Excel, and print functionality.

Modern ALV with CL_SALV_TABLE

The SALV (Simple ALV) model provides a clean, object-oriented approach:

DATA: lo_alv    TYPE REF TO cl_salv_table,
      lt_data   TYPE STANDARD TABLE OF sflight.

SELECT * FROM sflight INTO TABLE lt_data UP TO 100 ROWS.

TRY.
    cl_salv_table=>factory(
      IMPORTING r_salv_table = lo_alv
      CHANGING  t_table      = lt_data ).

    " Enable standard ALV functions
    lo_alv->get_functions( )->set_all( abap_true ).

    " Set column texts
    DATA(lo_columns) = lo_alv->get_columns( ).
    lo_columns->set_optimize( abap_true ).

    " Display
    lo_alv->display( ).
  CATCH cx_salv_msg INTO DATA(lx_msg).
    MESSAGE lx_msg TYPE 'E'.
ENDTRY.

Adding Events

" Register for double-click
DATA(lo_events) = lo_alv->get_event( ).
SET HANDLER lcl_handler=>on_double_click FOR lo_events.

Classic vs Modern ALV

FeatureClassic (REUSE_ALV)Modern (CL_SALV)
ApproachFunction ModulesObject Oriented
FlexibilityHigherSimpler API
Editable GridYesLimited
MaintenanceLegacyRecommended

Best Practices

  • Use CL_SALV_TABLE for new development
  • Optimize column widths with set_optimize
  • Add meaningful column headers and tooltips
  • Use variants for user-customizable layouts