Список возможных значений стилей можно или даже нужно брать из инклуда <CL_ALV_CONTROL>.
Вариант 1:
Стиль для столбца можно указать в филд-каталоге (LVC_T_FCAT) в полях:
STYLE
STYLE2
STYLE3
STYLE4
Пример:
ls_fcat-style = ALV_STYLE_COLOR_INT_BACKGROUND + ALV_STYLE_ALIGN_CENTER_CENTER.
Вариант 2:
Если необходимо чтобы разные стили были у разных произвольных ячеек, то в стуктуру вашей внутренней таблицы для ALV придется ввести поле типа LVC_T_STYL. В нем будет заполняться таблица стилей для каждой ячейки выбранной строки.
Структура этой таблицы выглядит так:
FIELDNAME TYPE LVC_FNAME,
STYLE TYPE LVC_STYLE,
STYLE2 TYPE LVC_STYLE,
STYLE3 TYPE LVC_STYLE,
STYLE4 TYPE LVC_STYLE,
MAXLEN TYPE INT4.
И собственно заполняется так же как и в филд-каталоге, только для каждой ячейки каждой строки вашей внутренней таблицы для ALV. Важно, таблица стилей должна заполняться так, чтобы в результате получилась таблица отсортированная по FIELDNAME.
Ну и в конце концов необходимо указать имя поля с таблицей стилей в лэйаут ALV (LVC_S_LAYO).
Пример:
tcalend_g_layo-sel_mode = 'A'.
tcalend_g_layo-stylefname = 'CELLTAB'.
Сюда я буду сохранять всякие куски кода, конфигов, ссылки, чтобы в один прекрасный день когда мне это снова понадобится - не вспоминать судорожно где и когда я это применял.
27 апреля 2011 г.
ABAP: стили ячеек в ALV GRID.
Подписаться на:
Комментарии к сообщению (Atom)
Дописал бы ещё:
ОтветитьУдалить- какие ALV_STYLE_* существуют и где их смотреть.
- почему 4 поля STYLE*, чем они отличаются?
- если надо выделить всю строку - обязательно все ячейки упоминать в LVC_T_STYL?
Ответы на первые 2 вопроса лежат в инклуде CL_ALV_CONTROL, там указаны все константы и разделены на блоки для каждой переменной, надо просто заглянуть в инклуд.
ОтветитьУдалитьНа второй вопрос, видимо да, если надо что-то именно в стиле поменять для всей строки, а не только цвет, то надо будет заполнять для всех ячеек.
Если надо выделить только цветом, то можно сделать по другому, проще.
Это в какой версии SAP имеется такой инклуд CL_ALV_CONTROL интересно??
ОтветитьУдалитьКонстанты лежат в самом классе CL_GUI_ALV_GRID.
MC_STYLE4_LINK
MC_STYLE4_LINK_NO
MC_STYLE_BUTTON
MC_STYLE_DISABLED
MC_STYLE_ENABLED
MC_STYLE_F4
MC_STYLE_F4_NO
MC_STYLE_HOTSPOT
MC_STYLE_HOTSPOT_NO
MC_STYLE_NO_DELETE_ROW
Этот комментарий был удален автором.
ОтветитьУдалить"Это в какой версии SAP имеется такой инклуд CL_ALV_CONTROL" - обрезались символы открытия закрытия тега
ОтветитьУдалить