Понадобилось дать возможность на селективном экране выбирать значение из таблицы по которому не было средства поиска. Что бы не создавать его — поискал готовое решение:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
SELECT-OPTIONS: s_werks FOR t001w-werks NO INTERVALS NO-EXTENSION MEMORY ID wrk, s_vcstc FOR zsnt_lgort-vcstc NO INTERVALS NO-EXTENSION. AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vcstc-low. PERFORM f4_vcstc CHANGING s_vcstc-low. FORM f4_vcstc CHANGING cv_vcstc. DATA: BEGIN OF lt_lgort OCCURS 0, vcstc TYPE zvcstc, " Номер vcstn TYPE zvcstn, " Описание END OF lt_lgort, ls_lgort LIKE LINE OF lt_lgort, lt_return LIKE ddshretval OCCURS 0 WITH HEADER LINE, ls_return LIKE LINE OF lt_return. SELECT DISTINCT vcstc vcstn INTO TABLE lt_lgort FROM zmy_lgort WHERE werks IN s_werks ORDER BY vcstc. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'VCSTC' "Ключевое поле dynpprog = sy-cprog "Программа dynpnr = sy-dynnr "Номер экрана dynprofield = 'S_VCSTC' "Поле Select-options stepl = 0 window_title = 'Выберите виртуальный склад' value_org = 'S' "Возврат значения: C: ячейки/S: структуры multiple_choice = ' ' display = 'F' callback_program = ' ' callback_form = ' ' TABLES value_tab = lt_lgort return_tab = lt_return EXCEPTIONS parameter_error = 1 no_values_found = 2 OTHERS = 3. READ TABLE lt_return INTO ls_return INDEX 1. ENDFORM. "f4_vcstc |