Ab und an kommt es zu Anforderungen wo es schön wäre 2 bis X ALV als Ausgabe eines klassischen Reports anzuzeigen. Das natürlich ohne Aufwand. Die einfachste, kürzeste und eleganteste Lösung die ich dafür bis jetzt gefunden habe ist relativ schnell übernehmbar.
FIELD-SYMBOLS <fs_table> TYPE STANDARD TABLE.
DATA(lo_splitter) = NEW cl_gui_splitter_container(
parent = cl_gui_container=>default_screen
no_autodef_progid_dynnr = abap_true
rows = 2
columns = 1 ).
lo_splitter->set_row_height( id = 1 height = 50 ).
DATA(lo_oben) = lo_splitter->get_container( row = 1 column = 1 ).
DATA(lo_unten) = lo_splitter->get_container( row = 2 column = 1 ).
DO 2 TIMES.
IF sy-index = 1.
ASSIGN mt_table1 TO <fs_table>.
ELSEIF sy-index = 2.
ASSIGN mt_table2 TO <fs_table>.
ENDIF.
DATA(lo_container) = SWITCH #( sy-index WHEN 1 THEN lo_oben WHEN 2 THEN lo_unten ).
cl_salv_table=>factory( EXPORTING
r_container = lo_container
IMPORTING
r_salv_table = DATA(lo_salv)
CHANGING
t_table = <fs_table>
).
lo_salv->get_functions( )->set_all( abap_true ).
lo_salv->get_columns( )->set_optimize( abap_true ).
lo_salv->get_display_settings( )->set_list_header(
SWITCH #( sy-index WHEN 1 THEN 'Tabelle 1' WHEN 2 THEN 'Tabelle 2' ) ).
LOOP AT lo_salv->get_columns( )->get( ) ASSIGNING FIELD-SYMBOL(<fs_column>).
DATA(lo_col) = <fs_column>-r_column.
lo_col->set_long_text( |{ lo_col->get_columnname( ) }| ).
ENDLOOP.
lo_salv->display( ).
ENDDO.
cl_abap_list_layout=>suppress_toolbar( ).
WRITE: space.
Sei der Erste der einen Kommentar abgibt