Когда Вы сталкиваетесь с задачей предоставить пользователю возможность выбирать одно (или несколько) значений из внутренних таблиц на экране выбора (или на экранах) можно воспользоваться удобным классом-оберткой CL_RECA_GUI_F4_POPUP, вместо написания например средств поиска. С помощью данного класса мы можем определить заголовок всплывающего окна с данными, фильтры, отображаемые поля, сортировки и многое другое.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
REPORT zf4_gui_help. DATA: gt_spfli TYPE spfli_tab, " Вн. таблица из которой происходит выбор данных gt_res_tab TYPE spfli_tab, " Данные с выбранными значениями go_f4 TYPE REF TO CL_RECA_GUI_F4_POPUP. PARAMETERS: p_test TYPE spfli-connid. INITIALIZATION. SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_test. PERFORM get_help. FORM get_help. FIELD-SYMBOLS: <fs_rec> TYPE spfli. CLEAR gt_res_tab. IF go_f4 IS NOT BOUND. go_f4 = cl_reca_gui_f4_popup=>factort_grid( id_title = 'Заголовок' " Заголовок окна if_multi = abap_false " Единичный выбор it_f4value = gt_spfli " Вн. таблица с данными ). ENDIF. go_f4->display( IMPORTING ET_RESULT = gt_res_tab ). READ TABLE gt_res_tab INDEX 1 ASSIGNING <fs_rec>. CHECK sy-subrc EQ 0 AND <fs_rec> IS ASSIGNED. p_test = <fs_rec>-connid. ENDFORM. |