display_op

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.