Перед началом разработки я ищу стандартный способ сделать что-то вроде этого: мне нужно реализовать удобный для пользователя способ упорядочивания строк таблицы в стандартной сетке Dynpro ALV. Думаю, это должно выглядеть как форма, в которой определены столбцы фильтров, как это реализовано, например, в стандартном функциональном модуле LVC_FILTER
.
Измените порядок строк таблицы удобным для пользователя способом
comment
Признаюсь, я даже не понимаю вопроса. Сбой парсера.
- person vwegert   schedule 03.02.2015
comment
Эй, vwegert. Я даже не читаю ничего, заканчивающегося знаком вопроса.
- person icbytes   schedule 03.02.2015
comment
Есть ли стандартная функция или библиотека sap, которая изменяет порядок строк таблицы с помощью перетаскивания? Или требовалось что-то получше, чем стрелки вверх и вниз.
- person IvanRyazanov   schedule 03.02.2015
comment
Строки таблицы, как и во внутренней таблице, можно сортировать только с помощью кода, по крайней мере, если мы игнорируем отсортированные таблицы. Но элементы управления пользовательского интерфейса, такие как сетка ALV, позволяют сортировать как по коду, так и по пользовательским настройкам.
- person Dirk Trilsbeek   schedule 03.02.2015
comment
В некоторых случаях правильный порядок не соответствует простой таблице сортировки. Только пользователь знает как строки перестановки.
- person IvanRyazanov   schedule 03.02.2015
Ответы (1)
Нет, стандартного функционала для этого нет. Однако вы можете сделать это (сортировка таблицы вручную путем перетаскивания) программно, вставив / удалив строки itab во время выполнения. Это может быть реализовано с использованием стандартных событий ALV: ondrag
, ondrop
и ondropcomplete
. Попробуйте эти образцы кода для реализации методов:
method handle_grid_ondrag.
data: data_object type ref to drag_drop_object,
help_row like line of gt_outtab. "#EC NEEDED
read table gt_outtab_2 into help_row index es_row_no-row_id.
create object data_object.
move es_row_no-row_id to data_object->index.
read table gt_outtab_2 into data_object->wa_test index
es_row_no-row_id.
e_dragdropobj->object = data_object.
endmethod.
_
method handle_grid_ondrop.
data: data_object type ref to drag_drop_object,
drop_index type i,
help_row like line of gt_outtab. "#EC NEEDED
delete gt_outtab_2 index data_object->index.
insert data_object->wa_test into gt_outtab_2 index e_row-index
endmethod.
_
method handle_grid_ondropcomplete.
if data_cel = ' '.
call method grid->refresh_table_display.
endif.
endmethod.
Обратитесь к образцу программы BCALV_TEST_DRAG_DROP_02
, если у вас возникнут трудности.
person
Suncatcher
schedule
24.12.2015