Сюда я буду сохранять всякие куски кода, конфигов, ссылки, чтобы в один прекрасный день когда мне это снова понадобится - не вспоминать судорожно где и когда я это применял.
Один из способов добавить свою кнопку в toolbar на SELECTION-SCREEN.
*--------------------------------------------------------------* * Объявляем специальную системную * структуру для работы с экраном TABLES: sscrfields. * Объявляем структуру которую будем * использовать для формирования текстов для кнопок DATA: functxt TYPE smp_dyntxt.
SELECT-OPTIONS... PARAMETERS... * Активируем кнопку номер 1 SELECTION-SCREEN FUNCTION KEY1. * в этом событии создаем кнопку и записываем * ее в sscrfields AT SELECTION-SCREEN OUTPUT. functxt-icon_id = icon_create. functxt-quickinfo = 'Создать'. functxt-icon_text = 'Создать'. MOVE funcxt TO sscrfields-functxt_01.
* Обрабатываем реакцию на нажатие кнопки AT SELECTION-SCREEN. CASE sscrfields-ucomm. WHEN'FC01'. "тут происходит что-то важное "и тут "и еще немного тут ENDCASE. *--------------------------------------------------------------*
Для этого надо заполнить таблицу типа ALV_T_QINF. В ней для каждого значения которому необходима подсказка заполнить поля: TYPE - тип, VALUE - значение, TEXT - текст подсказки.
Тип берется из констант класса cl_salv_tooltip:
- C_TYPE_ICON,
- C_TYPE_SYMBOL,
- C_TYPE_COLOR,
- C_TYPE_EXCEPTION,
- C_TYPE_TREE_STYLE.
Потом необходимо передать эту таблицу в методе SET_TABLE_FOR_FIRST_DISPLAY во входном параметре IT_EXCEPT_QINFO.
Пример:
DATA: l_t_qinf TYPE ALV_T_QINF. DATA: l_s_qinf TYPE ALV_S_QINF.
DATA: LS_COL_INFO TYPE LVC_S_COL,
LS_ROW_INFO TYPE LVC_S_ROW.
* Получаем информацию о текущей позиции скролла CALL METHOD req_grid->GET_SCROLL_INFO_VIA_ID IMPORTING
ES_ROW_INFO = LS_ROW_INFO
ES_COL_INFO = LS_COL_INFO.
* нужно для того чтобы не вываливалось в дамп * после вызова предыдущего метода CALL METHOD CL_GUI_CFW=>FLUSH EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.
* Указываем индекс нужной нам строки
LS_ROW_INFO-INDEX = lv_index.
* Устанавливаем скролл в нужную позицию CALL METHOD req_grid->SET_SCROLL_INFO_VIA_ID EXPORTING
IS_ROW_INFO = LS_ROW_INFO
IS_COL_INFO = LS_COL_INFO.
* нужно для того чтобы не вываливалось в дамп * после вызова предыдущего метода CALL METHOD CL_GUI_CFW=>FLUSH EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2. Подробнее...