Как динамически установить подсказку к кнопке, текст и значок одновременно?

У меня есть кнопка на экране пула модулей. Мне нужно изменить значок, всплывающую подсказку и текст динамически в зависимости от логики / условия. Я могу успешно изменить значок и текст, но не могу изменить все три вещи (значок, текст и всплывающую подсказку) вместе.

Пример кода PBO:

Data but(30) type c." here but is the name of button in screen.
write 'icon xxx' as ICON to but.
Concatenate but 'click here' into but separated by space.

Он не устанавливает значение всплывающей подсказки, которая должна отображать "Пожалуйста, нажмите здесь, чтобы продолжить". Как я могу это сделать?

1 ответ

Вместо этого используйте ICON_CREATE FM.

Вот пример того, как изменить все три атрибута на лету:

PARAMETERS: p_icon  TYPE icon_d MATCHCODE OBJECT h_icon,
            p_text  TYPE string,
            p_toolt TYPE string.

SELECTION-SCREEN BEGIN OF SCREEN 500.
SELECTION-SCREEN PUSHBUTTON 49(30) but USER-COMMAND ret.
SELECTION-SCREEN END OF SCREEN 500.

AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'ONLI'.
       CALL FUNCTION 'ICON_CREATE'
        EXPORTING
          name       = p_icon
          text       = p_text
          info       = p_toolt
          add_stdinf = 'X'
        IMPORTING
          result     = but.
      CALL SELECTION-SCREEN 500.
    WHEN 'RET'.
      LEAVE TO SCREEN 0.
    WHEN OTHERS.
  ENDCASE.
Другие вопросы по тегам