屏幕的展开和折叠"/>
ALV 选择屏幕的展开和折叠
方式一:使用COMMENT关键字。
REPORT ztest_collapse.TYPE-POOLS icon.
TABLES mara.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME .PARAMETERS p_werks TYPE werks.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN PUSHBUTTON 1(4) but1 USER-COMMAND button1 VISIBLELENGTH 2.SELECTION-SCREEN COMMENT 6(20) com1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME .SELECT-OPTIONS:s_matnr FOR mara-matnr MODIF ID bl1,s_groes FOR mara-groes MODIF ID bl1.
SELECTION-SCREEN END OF BLOCK b2 .INITIALIZATION.WRITE icon_data_area_expand AS ICON TO but11 = 'DATA EXPAND'.AT SELECTION-SCREEN.CASE sy-ucomm.WHEN 'BUTTON1'.IF but1 = '@K1@'.WRITE icon_data_area_collapse AS ICON TO but11 = 'DATA COLLAPSE'.ELSE.WRITE icon_data_area_expand AS ICON TO but11 = 'DATA EXPAND'.ENDIF.ENDCASE.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN.IF but1 = '@K2@' AND screen-group1 = 'BL1'.screen-active = 0.MODIFY SCREEN.ENDIF.ENDLOOP.
运行效果:
方法二:使用Function Module: ICON_CREATE.
REPORT ztest_collapse2.TYPE-POOLS icon.
TABLES mara.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME .PARAMETERS p_werks TYPE werks.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN PUSHBUTTON 1(40) but1 USER-COMMAND button1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME .SELECT-OPTIONS:s_matnr FOR mara-matnr MODIF ID bl1,s_groes FOR mara-groes MODIF ID bl1.
SELECTION-SCREEN END OF BLOCK b2 .INITIALIZATION.CALL FUNCTION 'ICON_CREATE'EXPORTINGname = icon_data_area_collapsetext = 'Data Expand'info = 'Data Expand'
* ADD_STDINF = 'X'IMPORTINGresult = but1EXCEPTIONSicon_not_found = 1outputfield_too_short = 2OTHERS = 3.IF sy-subrc <> 0.
* Implement suitable error handling hereENDIF.AT SELECTION-SCREEN.CASE sy-ucomm.WHEN 'BUTTON1'.IF but1(03) = '@K1'.CALL FUNCTION 'ICON_CREATE'EXPORTINGname = icon_data_area_collapsetext = 'Data Expand'info = 'Data Expand'
* ADD_STDINF = 'X'IMPORTINGresult = but1EXCEPTIONSicon_not_found = 1outputfield_too_short = 2OTHERS = 3.IF sy-subrc <> 0.
* Implement suitable error handling hereENDIF.ELSE.CALL FUNCTION 'ICON_CREATE'EXPORTINGname = icon_data_area_expandtext = 'Data Collapse'info = 'Data Collapse'
* ADD_STDINF = 'X'IMPORTINGresult = but1EXCEPTIONSicon_not_found = 1outputfield_too_short = 2OTHERS = 3.IF sy-subrc <> 0.
* Implement suitable error handling hereENDIF.ENDIF.ENDCASE.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN.IF but1(03) = '@K2' AND screen-group1 = 'BL1'.screen-active = 0.MODIFY SCREEN.ENDIF.ENDLOOP.
运行效果:
更多推荐
ALV 选择屏幕的展开和折叠
发布评论