Надо использовать cl_gui_docking_container.
Code:
REPORT zz.
START-OF-SELECTION.
DATA cont TYPE REF TO CL_GUI_DOCKING_CONTAINER.
CREATE OBJECT CONT
exporting
PARENT = CL_GUI_CUSTOM_CONTAINER=>DEFAULT_SCREEN
REPID = sy-REPID
DYNNR = '0100'
EXTENSION = 9999
exceptions
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6
.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
SELECT *
INTO TABLE @DATA(lt)
FROM adrc
UP TO 100 ROWS.
cl_salv_table=>FACTORY(
exporting
R_CONTAINER = cont
importing
R_SALV_TABLE = DATA(salv)
changing
T_TABLE = lt
).
* catch CX_SALV_MSG. "
salv->DISPLAY( ).
call SCREEN 100.
Создать пустой экран и пример будет работать. Обработки кнопок самостоятельно естественно