gracias a la propuesta de @borja87 sobre utilizar la clase CL_SALV_TABLE para crear un Reporte ALV, les dejo este pequeño programa que servirá como guía, utilizando la tabla MARA.:
*&---------------------------------------------------------------------*
*& Report ZAHM_ALV_TABLE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zahm_alv_table.
DATA:
it_mara TYPE STANDARD TABLE OF mara.
START-OF-SELECTION.
SELECT * FROM mara INTO TABLE it_mara UP TO 100 ROWS.
PERFORM mostrar_alv USING it_mara 'Tabla MARA'.
*&---------------------------------------------------------------------*
*& Form MOSTRAR_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM mostrar_alv USING p_itab TYPE STANDARD TABLE p_titulo TYPE data.
DATA: alv TYPE REF TO cl_salv_table,
display_settings TYPE REF TO cl_salv_display_settings,
message TYPE REF TO cx_salv_msg,
functions TYPE REF TO cl_salv_functions_list.
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = alv
CHANGING
t_table = p_itab ).
CATCH cx_salv_msg INTO message.
" error handling
ENDTRY.
"mostrar titulo al reporte
display_settings = alv->get_display_settings( ).
display_settings->set_striped_pattern( if_salv_c_bool_sap=>true ).
display_settings->set_list_header( p_titulo ).
"Agregar la barra de herramientas
functions = alv->get_functions( ).
functions->set_all( ).
"desplegar el reporte
alv->display( ).
ENDFORM. " MOSTRAR_ALV
Saludos!,
Armando Hernandez Mateu.