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
| Feature | Classic (REUSE_ALV) | Modern (CL_SALV) |
|---|---|---|
| Approach | Function Modules | Object Oriented |
| Flexibility | Higher | Simpler API |
| Editable Grid | Yes | Limited |
| Maintenance | Legacy | Recommended |
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