Здравствуйте.
Есть Селективный экран, на котором 2 радиобаттона(Рб1, рб2), есть экран на нем СпУпЭ(alv_grid). При выборе рб1 заполняется Тб1 и вывожу alv_grid, при рб2 зап. Тб2 также выводится через тот же alv_grid.
Code:
IF gr_alvgrid IS NOT INITIAL .
FREE gr_alvgrid.
* ENDIF.
IF gr_alvgrid IS INITIAL .
CREATE OBJECT gr_ccontainer
EXPORTING
container_name = gc_custom_control_name "ALV_GRID
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.
ENDIF.
CREATE OBJECT gr_alvgrid
EXPORTING
i_parent = gr_ccontainer
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5.
IF sy-subrc <> 0.
ENDIF.
REFRESH gt_fieldcat.
PERFORM prepare_field_catalog CHANGING gt_fieldcat .
CLEAR gs_layout.
PERFORM build_layout CHANGING gs_layout.
CALL METHOD gr_alvgrid->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_outtab = it_out[]
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4 .
IF sy-subrc <> 0.
ENDIF.
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_user_command FOR gr_alvgrid.
SET HANDLER event_receiver->handle_double_click FOR gr_alvgrid.
SET HANDLER event_receiver->handle_toolbar FOR gr_alvgrid.
CALL METHOD gr_alvgrid->set_toolbar_interactive.
ENDIF.
CALL METHOD cl_gui_control=>set_focus
EXPORTING
control = gr_alvgrid.
первый раз зашел выбрав Рб1 -> все нормально
второй раз зашел выбрав Рб1 -> все нормально отработало, алвшник прорисовался
третий раз зашел выбрав Рб2 -> вместо 2-ой таблицы отобразилась 1 таблица
также и наоборот Рб2->Рб2->Рб1
Честно не пойму где ошибся...