* http://zevolving.com/2008/09/salv-table-5-add-header-top-of-page-footer-end-of-page/
* Beispieldaten
SELECT * FROM t000 INTO TABLE @DATA(it_t000).
TRY.
* SALV-Table
DATA: o_salv TYPE REF TO cl_salv_table.
cl_salv_table=>factory( IMPORTING
r_salv_table = o_salv
CHANGING
t_table = it_t000 ).
* Grid-Header
DATA(o_grid_header) = NEW cl_salv_form_layout_grid( ).
* Überschrift
o_grid_header->create_header_information( row = 1
column = 1
text = 'Überschrift'
tooltip = 'Tooltip' ).
* Kursivtext
o_grid_header->create_action_information( row = 2
column = 1
text = 'Action-Überschrift'
tooltip = 'Tooltip' ).
* Fließtext
o_grid_header->create_flow( EXPORTING row = 3 column = 1 )->create_text( text = 'Flow:').
o_grid_header->create_flow( EXPORTING row = 3 column = 2 )->create_text( text = 'Test').
* Groupbox 1
DATA(o_grp_sel) = NEW cl_salv_form_groupbox( header = 'Text 1' ).
o_grid_header->set_element( row = 4 column = 1 r_element = o_grp_sel ).
DATA(o_grp_head_grid) = o_grp_sel->create_grid( ).
o_grp_head_grid->set_grid_lines( if_salv_form_c_grid_lines=>no_lines ).
* Label + Text
DATA(o_label_v) = o_grp_head_grid->create_label( row = 1 column = 1 text = |Jahr:| ).
DATA(o_text_v) = o_grp_head_grid->create_text( row = 1 column = 2 text = |2000| ).
o_label_v->set_label_for( o_text_v ).
* Label + Text
DATA(o_label_l) = o_grp_head_grid->create_label( row = 1 column = 3 text = |Auswahl:| ).
DATA(o_text_l) = o_grp_head_grid->create_text( row = 1 column = 4 text = |X| ).
o_label_l->set_label_for( o_text_l ).
o_salv->set_top_of_list( o_grid_header ).
* Grid-Footer
DATA(o_grid_footer) = NEW cl_salv_form_layout_grid( ).
* Fließtext
o_grid_footer->create_flow( EXPORTING row = 3 column = 1 )->create_text( text = 'Name:').
o_grid_footer->create_flow( EXPORTING row = 3 column = 2 )->create_text( text = 'Horst').
* Label + Text
DATA(o_label_cnt) = o_grid_footer->create_label( row = 1 column = 1 text = |Alter:| ).
DATA(o_text_cnt) = o_grid_footer->create_text( row = 1 column = 2 text = |67| ).
o_label_cnt->set_label_for( o_text_cnt ).
o_salv->set_end_of_list( o_grid_footer ).
* SALV-Table anzeigen
o_salv->display( ).
CATCH cx_root INTO DATA(e_txt).
WRITE: / e_txt->get_text( ).
ENDTRY.