PROGRAM:
TABLES:MARA.
DATA:OK_CODE TYPE SY-UCOMM,
SAVE_CODE TYPE SY-UCOMM,
BUT1 TYPE CHAR255 VALUE '@KI@',
SCR_NUM TYPE SY-DYNNR VALUE '0110'. "INITIAL STATE
*DEFINED OF SUBSCREEN 110
SELECTION-SCREEN :BEGIN OF SCREEN 110 AS SUBSCREEN,
BEGIN OF BLOCK ONE WITH FRAME.
SELECT-OPTIONS:
S_MATNR FOR MARA-MATNR,
S_MEINS FOR MARA-MEINS.
SELECTION-SCREEN:END OF BLOCK ONE,
END OF SCREEN 110.
*DEFINED OF SUBSCREEN 120
SELECTION-SCREEN:BEGIN OF SCREEN 120 AS SUBSCREEN,
COMMENT 1(20) TEXT-001,
END OF SCREEN 120.
START-OF-SELECTION.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'STATUS_100'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
OK_CODE = SY-UCOMM.
SAVE_CODE = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_CODE.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
LEAVE PROGRAM.
WHEN 'BUT1'.
IF SCR_NUM <> '0120'.
SCR_NUM = '0120'.
ELSE.
SCR_NUM = '0110'.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module MODIFY_SCREEN OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE MODIFY_SCREEN OUTPUT.
* SET THE ICON OF BUTTON
* only the inner format is worked
IF SCR_NUM = '0120'.
BUT1 = '@K1@'. "spread of subscreen
ELSE.
BUT1 = '@K2@'. "shrink of subscreen
ENDIF.
ENDMODULE. " MODIFY_SCREEN OUTPUT
PBO AND PAI:
PROCESS BEFORE OUTPUT.
CALL SUBSCREEN SUBSCREEN1 INCLUDING SY-REPID SCR_NUM.
MODULE STATUS_0100.
MODULE MODIFY_SCREEN.
PROCESS AFTER INPUT.
CALL SUBSCREEN SUBSCREEN1.
MODULE USER_COMMAND_0100.