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)

Другие вопросы по тегам