Использование иконок в интерфейсе

Товарищ недавно подходил, спрашивал не знаю ли я, как сделать светофор при выводе данных в TABLE CONTROL. Почесал я голову, и сказал два волшебных слова – SE16 и ICON. А теперь по-подробнее…

Список иконок

Каждая иконка – на самом деле это некоторый код, например для светофора:

@08@, @09@, @0A@

Эти иконки вполне успешно копируются в буфер обмена в виде кодов.

Сам код иконки здесь увидеть достаточно проблематично, ибо SAP превращает его в иконку.

Впрочем, для этой цели есть программка SHOWICON, которая показывает эти коды (без служебных знаков @).

SAP показывает код вместо иконки в нескольких случаях:

  • если он находится не в начале целой строки вывода (внутри или в конце строки)
  • если он находится в поле, открытом для ввода
  • если он находится в ABAP-редакторе

 

Иконки вполне можно использовать и в ABAP-списках:

Вывод иконки на экран - текст програмы

Вывод иконки на экран - результат

Вот ещё вполне забавная иллюстрация использования этого трюка. Изменяем и просматриваем документ:

Изменение и просмотр документа

Смотрим список документов:

Иконка в списке документов

 

Возвращаясь к началу, товарищу надо было только присвоить требуемые коды в поля вывода или приклеить их в начало какого-нибудь расшифровающего поля.

* * *

Однако с кодами не совсем удобно работать – для повышения читабельности следует использовать правильно именованные константы. Для этого свои инклюды не обязательно плодить, есть страндартный пул ICON.

Включаем пул в программу:

type-pools: icon.

Там уже эти иконки объявлены в виде констант примерно в таком виде:

ICON_4 ICON_GREEN_LIGHT       ‘@08@’."  Green light; positive
ICON_4 ICON_YELLOW_LIGHT      ‘@09@’."  Yellow light; neutral
ICON_4 ICON_RED_LIGHT         ‘@0A@’."  Red light; negative

Имя константы совпадает с именем иконки в таблице.

И все константы можно использовать в нашей программе:

if …
      gt_stats-status = icon_red_light. 
endif.
if …
      gt_stats-status = icon_yellow_light. 
endif.

Программа с текстовыми именами иконок читается гораздо легче чем с кодами.

* * *

Что же ещё…

Если подходящих иконок нет,  и вам хочется свою иконку подсунуть – то данный подход вам вообще никак не поможет. Я предполагаю, что сами иконки “прошиты” в самом SAP GUI.

Comment (1)

  1. Код иконки можно увидеть в программе showicon, столбец внутр

Добавить комментарий

Ваш адрес email не будет опубликован.