选择屏幕的收缩实例。

*&---------------------------------------------------------------------*
*& Report  ZTEST33_SELECTIONSCREEN
*&
*&---------------------------------------------------------------------*
*&
*&Author :  Maojian
*&---------------------------------------------------------------------*

REPORT  ztest33_selectionscreen.
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 VISIBLE LENGTH 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 but1.
  com1 = 'Data Expand'.

AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'BUTTON1'.
      IF but1 = '@K1@'.
        WRITE icon_data_area_collapse AS ICON TO but1.
        com1 = 'Data Expand'.
      ELSE.
        WRITE icon_data_area_expand AS ICON TO but1.
        com1 = '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.

你可能感兴趣的:(button)