REPORT YY_TEST2.
TABLES sscrfields.
DATA: ok_code
TYPE sy-ucomm.
DATA functxt
TYPE smp_dyntxt.
INCLUDE .
PARAMETERS: p_b(1) TYPE c NO-DISPLAY.
SELECTION-SCREEN: FUNCTION KEY 1.
SELECTION-SCREEN PUSHBUTTON /1(20) pb_1
USER-COMMAND uc_pb1 MODIF ID gp1.
SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME TITLE test001 .
PARAMETERS: p_1 MODIF ID gp2.
SELECTION-SCREEN END OF BLOCK b0.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE test002.
PARAMETERS: p_2 MODIF ID gp2.
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION.
p_b = 'X'.
functxt-icon_id = icon_expand.
sscrfields-functxt_01 = functxt.
* Set Icon for Pushbutton
CONCATENATE icon_collapse: 'PUSHBUTTON' INTO pb_1 .
AT SELECTION-SCREEN.
ok_code = sy-ucomm.
CASE ok_code.
*Open/close individual block functions
WHEN 'FC01'.
IF functxt-icon_id = icon_collapse.
functxt-icon_id = icon_expand.
CONCATENATE icon_expand: '' INTO sscrfields-functxt_01 .
ELSE.
functxt-icon_id = icon_collapse.
CONCATENATE icon_collapse: '' INTO sscrfields-functxt_01 .
ENDIF.
WHEN 'UC_PB1'.
IF p_b = 'X'.
CLEAR p_b.
" Change Icon for Pushbutton
" CONCATENATE icon_expand: 'PUSHBUTTON' INTO pb_1 .
call function 'ICON_CREATE'
exporting
name = 'ICON_EXPAND'
text = 'PUSHBUTTON'
importing
result = pb_1
exceptions
icon_not_found = 1
outputfield_too_short = 2
others = 3.
ELSE.
p_b = 'X'.
" Change Icon for Pushbutton
CONCATENATE icon_collapse: 'PUSHBUTTON' INTO pb_1 .
ENDIF.
ENDCASE.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'GP2'.
IF p_b = ''.
screen-active = '0'.
MODIFY SCREEN.
ELSE.
screen-active = '1'.
MODIFY SCREEN.
ENDIF.
WHEN OTHERS.
CONTINUE.
ENDCASE.
ENDLOOP.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25465231/viewspace-714861/
,如需转载,请注明出处,否则将追究法律责任。