Vielleicht die schnellste Art und Weise eine Ausgabe im ALV-List Format zu erzeugen.
Im Deklarationsbereich:
….
DATA: gr_functions TYPE REF TO cl_salv_functions. „Symbolleiste
DATA: gr_table TYPE REF TO cl_salv_table. „Klasse
DATA: gr_display TYPE REF TO cl_salv_display_settings. „Displayeinstellungen
DATA: gr_columns TYPE REF TO cl_salv_columns_table. „Spaltenmanipulation
DATA: gr_column TYPE REF TO cl_salv_column_table.
DATA: color TYPE lvc_s_colo. „Farbe
DATA: gr_sorts TYPE REF TO cl_salv_sorts. „Sortierung
DATA: gr_agg TYPE REF TO cl_salv_aggregations. „Aggregation
DATA: gr_filter TYPE REF TO cl_salv_filters. „Filter
DATA: gr_layout TYPE REF TO cl_salv_layout. „Layout
DATA: key TYPE salv_s_layout_key.
….
Und am Schluss:
….
* Ausgabe
cl_salv_table=>factory( IMPORTING r_salv_table = gr_table
CHANGING t_table = <<die_interne_tabelle>> ).
* Symbolleiste wird eingeblendet
gr_functions = gr_table->get_functions( ).
gr_functions->set_all( abap_true ).
gr_display = gr_table->get_display_settings( ).
gr_display->set_striped_pattern( cl_salv_display_settings=>true ).
gr_display->set_list_header( ‚Beliebige Überschrift‘ ).
* gr_display->set_fit_column_to_table_size( ‚X‘ ).
* Layout (Layoutänderungen abspeicherbar)
gr_layout = gr_table->get_layout( ).
key-report = sy-repid.
gr_layout->set_key( key ).
gr_layout->set_save_restriction( cl_salv_layout=>restrict_none ).
* Anzeige Tabelle *
gr_table->display( ).
….
Et voilà…
Wenn weitere Funktionen/ Formatierungen etc. gewünscht sind dann findet sich hier eine umfassende Dokumentation dazu.
Im Paket SALV_OM_OBJECTS sind zahlreiche Demoprogramme zusammengefasst die alle Funktionen der Klasse an Beispielen erläutern.