ABAP Alv Grid - событие для щелчка заголовка
Можно ли поймать одно нажатие кнопки в заголовке столбца ALV Grid? Я знаю о возможностях поймать double_click, создать событие для горячей точки на ячейке. Я не нашел пока ни одного клика по заголовку. (Я не хочу предоставлять сортировку или любые другие параметры данных). Единственное, что я нашел, - это событие click_col_header OF cl_gui_alv_grid, но оно защищено, поэтому я не могу предоставить свое действие. Заранее спасибо!
1 ответ
Решение
Ответ дает Рэймонд на форуме SAP ABAP, я добавил фрагмент кода к его ответу, чтобы он был более понятным.
Принцип, короче говоря:
- Установите макет ALV с помощью SGL_CLK_HD = 'X' (это активирует сортировку строк по столбцу, по которому щелкнули)
- Переопределите поведение сортировки с помощью собственного кода, обработав событие BEFORE_USER_COMMAND и установите новую команду с помощью метода SET_USER_COMMAND.
- Определите новое поведение, которое вы хотите во время события USER_COMMAND
- Используйте метод GET_SELECTED_COLUMNS, чтобы узнать, по какому столбцу щелкнули.
(PS: событие CLICK_COL_HEADER никогда не вызывается CL_GUI_ALV_GRID)