У меня есть два диалога, один из которых вызывает другой. Чтобы уточнить, что я имею в виду, давайте посмотрим на первый диалог:
Как видно на экране, он содержит ALV. Когда я нажму на строку, откроется второе диалоговое окно:
Когда я закрываю второе диалоговое окно, я хочу вызвать PBO на первом экране, чтобы выполнить повторную визуализацию ALV. Как заархивировать это?
Обновление
Код, вызывающий второй экран:
METHOD handle_double_click.
FIELD-SYMBOLS <lt_task> TYPE STANDARD TABLE.
FIELD-SYMBOLS <ls_task> TYPE any.
FIELD-SYMBOLS <ls_clicked_data> TYPE any.
DATA(lo_task_provider) = lcl_alv_task_provider=>get_instance( ).
DATA(lt_task) = lo_task_provider->c_gt_data.
ASSIGN lt_task->* TO <lt_task>.
IF sy-subrc <> 0 OR <lt_task>[] IS INITIAL.
RETURN.
ENDIF.
CREATE DATA lo_task_provider->c_gs_clicked_data LIKE LINE OF <lt_task>.
ASSIGN lo_task_provider->c_gs_clicked_data->* TO <ls_clicked_data>.
READ TABLE <lt_task> ASSIGNING <ls_task> INDEX e_row.
<ls_clicked_data> = <ls_task>.
zdp2_planning_split = me->fill_splitt_info( <ls_task> ).
DATA(ls_planning_split_alv) = VALUE zdp2_planning_split_alv( matnr = zdp2_planning_split-matnr
lfdat = zdp2_planning_split-lfdat
sollmng = zdp2_planning_split-sollmng
meins = zdp2_planning_split-meins ).
DATA(lt_planning_split_alv) = VALUE zdp2_planning_split_alv_t( ).
INSERT ls_planning_split_alv INTO TABLE lt_planning_split_alv.
lcl_alv_split_provider=>get_instance( )->insert_data( lt_planning_split_alv ).
CALL SCREEN '0100' STARTING AT 8 8.
ENDMETHOD.
Обновление
Я думаю, что картинки не проясняют, что я имею в виду. Теперь это должно быть лучше:
Первый модальный вызов второй модальный. Когда второй модальный режим закроется, ALV на первом экране следует обновить. Я не могу обновить его, потому что PBO на первом экране не выполняется после закрытия второго модального окна.