通过 PARAMETERS 和SELECT-OPTIONS 制作的选择屏幕,在运行的时候屏幕上只有一个执行按钮,那么如何在这个按钮旁添加按钮?并且使添加的按钮响应事件,共享一段代码,只需在相应的事件下,添加代码即可!
SELECTION-SCREEN: FUNCTION KEY 1,
FUNCTION KEY 2.
INITIALIZATION.
DATA iconname TYPE iconname.
DATA button_text(20) TYPE c.
DATA quickinfo LIKE smp_dyntxt-quickinfo.
DATA icon_str(255).
iconname = 'ICON_CHANGE'."修改图标
* quickinfo = text-t01.
*更改按钮图标
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = iconname
text = button_text
info = quickinfo
IMPORTING
RESULT = icon_str
EXCEPTIONS
icon_not_found = 1
outputfield_too_short = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
sscrfields-functxt_01 = icon_str.
iconname = 'ICON_DELETE'."删除图标
* quickinfo = text-t01.
*更改按钮图标
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = iconname
text = button_text
info = quickinfo
IMPORTING
RESULT = icon_str
EXCEPTIONS
icon_not_found = 1
outputfield_too_short = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
sscrfields-functxt_02 = icon_str.
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN'FC01'.
MESSAGE 'DELETE!' TYPE 'S'.
WHEN 'FC02'.
MESSAGE 'DISPLAY!' TYPE 'S'.
ENDCASE.