Как динамически установить подсказку к кнопке, текст и значок одновременно?
У меня есть кнопка на экране пула модулей. Мне нужно изменить значок, всплывающую подсказку и текст динамически в зависимости от логики / условия. Я могу успешно изменить значок и текст, но не могу изменить все три вещи (значок, текст и всплывающую подсказку) вместе.
Пример кода 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.