apetrenko написал:
Danila написал:
apetrenko написал:
Можно.
Правда я делал Drag & Drop в пределах 1го ALV. Но не вижу причин почему бы это не работало между 2мя ALV например.
Речь и идёт об одной ALV. Т. е. строки перетаскиваются в пределах одной таблицы.
Однако, при выборе и перетаскивании строки не удаётся отловить это событие вообще. Как это можно сделать?
Вы приведите код. может подскажем в чем проблемма.
расскажите по пунктам что и как Вы делали. По кускам кода
Привожу тестовый вариант программы.
Код следующий:
_____________________________________________________________
CALL SCREEN 100.
*********************************************************
FORM fill_fcat.
DATA: wa_fcat TYPE lvc_s_fcat.
REFRESH it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'GROUP'.
wa_fcat-tabname = 'IT_TAB_MAIN'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'TEXT'.
wa_fcat-tabname = 'IT_TAB_MAIN'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-edit = 'X'.
wa_fcat-tech = 'X'.
APPEND wa_fcat TO it_fcat.
ENDFORM. "fill_fcat
*********************************************************
FORM fill_layo.
* wa_layo-zebra = 'X'.
ENDFORM. "fill_layo
*********************************************************
CREATE OBJECT obj_cont
EXPORTING
container_name = 'AREA'.
CREATE OBJECT obj_alv
EXPORTING
i_parent = obj_cont.
PERFORM fill_fcat.
PERFORM fill_layo.
CALL METHOD obj_alv->set_table_for_first_display
EXPORTING
is_layout = wa_layo
CHANGING
it_outtab = it_tab_main
it_fieldcatalog = it_fcat
it_sort = it_sort.
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_double_click FOR obj_alv.
SET HANDLER event_receiver->drag_drop FOR obj_alv.
__________________________________________________________________________________________________________________________
Т. е. отображается ALV таблица.
В ней по умолчанию есть возможность перетаскивания строк, т. е. напрмер 10-ю вставить перетащить мышью и она расположится, например между 3-й и 4-й

Собственно, Drag & Drop.
Нужно сделать проверку-подтверждение, при перетаскивании строки.
Отловить это событие не удаётся.
__________________________________________________________________________________________________________________________
CLASS lcl_event DEFINITION.
PUBLIC SECTION.
* Обработка double_click
METHODS:
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column.
* Обработка Drag&Drop
METHODS:
drag_drop
FOR EVENT ??? "(В классе CL_GUI_ALV_GRID есть несколько событий, которые, судя по
названию относятся к работе Drag & Drop, однако ни одно из них не срабатывает при перетаскивании строки)
OF cl_gui_alv_grid.
ENDCLASS. "lcl_event DEFINITION
__________________________________________________________________________________________________________________________
В этом и проблемма...