Когда Вы сталкиваетесь с задачей предоставить пользователю возможность выбирать одно (или несколько) значений из внутренних таблиц на экране выбора (или на экранах) можно воспользоваться удобным классом-оберткой 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. |
было интересно, спасибо,
но пытаюсь разобраться,
что лучше?
специально сравнивал окошко средства поиска с этим,
преимущества сомнительны,
главный плюс в том, что создается кодом,
ну это для тех кому не нравится словарь
обычное средство поиска делается элементарно ,
тут же нужно помнить как минимум название класса
Любую задачу можно решить множеством методов, знание этих методов помогает подобрать оптимальное решение.
Средство поиска создается не сложно и в случае когда оно используется во множестве программ, будет конечно лучше использовать его. Опять же средство поиска можно легко встроить в WDP.
Но в данном конкретном примере, данные могут генерироваться программно, на много ли проще сделать такое в СП?
>>> на много ли проще сделать такое в СП?
вся литература посвящена тому как делать это в СП
этому учат в курсах BC
мне очень понравилось это решение
и вообще любое, где кодом программируются диалоги,
постоянно ищу информацию об этом
(ее почти нет)
А есть ли возможность к средству поиску из словаря, подцепить динамически сформированные данные, без использования sh exit?
да, Ваш способ для этого идеален
применение найдено
не ломая, думаю ни как
ps
смысла нет, перемешивать код с тем, от чего вообще пытаюсь избавиться…
В моей системе нет такого типа CL_RECA_GUI_F4_POPUP, как его создать и что должно быть внутри?
Использовать стандартный ФМ для выбора значений из внутренней таблицы.
CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’