in src/zgoog_i_bqtr_gen_mass_cds_c01.prog.abap [0:0]
METHOD display_op.
DATA: go_alv TYPE REF TO cl_salv_table,
go_columns TYPE REF TO cl_salv_columns,
go_funcs TYPE REF TO cl_salv_functions,
go_ex TYPE REF TO cx_root,
lo_header TYPE REF TO cl_salv_form_layout_grid,
lo_h_label TYPE REF TO cl_salv_form_label,
lt_colname TYPE salv_t_column_ref,
column TYPE REF TO cl_salv_column,
lv_txt_medium TYPE scrtext_m,
gr_content TYPE REF TO cl_salv_form_element,
lo_cds TYPE REF TO lcl_cdsview_mass_cr.
IF gt_output IS NOT INITIAL.
TRY .
cl_salv_table=>factory(
IMPORTING
r_salv_table = go_alv
CHANGING
t_table = gt_output
).
CREATE OBJECT lo_header.
lo_h_label = lo_header->create_label( row = 1 column = 1 ).
lo_h_label->set_text( 'Title for the ALV' ).
go_alv->set_top_of_list( lo_header ).
CREATE OBJECT lo_cds.
IF lo_cds IS BOUND.
CALL METHOD top_of_page
CHANGING
ir_content = gr_content.
ENDIF.
CALL METHOD go_alv->set_top_of_list( gr_content ).
go_columns = go_alv->get_columns( ).
lt_colname = go_columns->get( ).
LOOP AT lt_colname INTO DATA(ls_colname).
column = go_columns->get_column( to_upper( ls_colname-columnname ) ).
lv_txt_medium = ls_colname-columnname.
column->set_medium_text( lv_txt_medium ).
ENDLOOP.
go_funcs = go_alv->get_functions( ).
go_funcs->set_all( ).
CATCH cx_salv_msg INTO go_ex.
MESSAGE go_ex TYPE 'E'.
CATCH cx_salv_not_found INTO DATA(lo_salv).
DATA(lv_error) = lo_salv->get_text( ).
MESSAGE lv_error TYPE 'E'.
ENDTRY.
ENDIF.
IF gt_output IS NOT INITIAL.
go_alv->display( ).
ENDIF.