Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  User Dialogs →  Dynpros →  ABAP Statements for Screens →  LOOP AT SCREEN 

Screens, Dynamic Screen Modification

The example shows how to modify screen fields at runtime.

Other versions: 7.31 | 7.40 | 7.54

Source Code

REPORT demo_dynpro_modify_simple .

DATA: ok_code TYPE sy-ucomm,
      save_ok TYPE sy-ucomm.

DATA flag(1) TYPE c.

CALL SCREEN 100.

MODULE status_0100 OUTPUT.
  SET PF-STATUS 'SCREEN_100'.
  LOOP AT SCREEN INTO DATA(screen_wa).
    IF screen_wa-group1 = 'MOD'.
      IF flag = ' '.
        screen_wa-input = '0'.
      ELSEIF flag = 'X'.
        screen_wa-input = '1'.
      ENDIF.
      MODIFY SCREEN FROM screen_wa.
    ENDIF.
  ENDLOOP.
ENDMODULE.

MODULE cancel.
  LEAVE PROGRAM.
ENDMODULE.

MODULE user_command_0100 INPUT.
  save_ok = ok_code.
  CLEAR ok_code.
  CASE save_ok.
    WHEN 'TOGGLE'.
      IF flag = ' '.
        flag = 'X'.
      ELSEIF flag = 'X'.
        flag = ' '.
      ENDIF.
  ENDCASE.
ENDMODULE.

Description

The static next screen number of screen 100 is 100. The input and output fields have been copied from the structure DEMO_CONN of the ABAP Dictionary. The bottom-most four input and output fields are assigned to the modification group MOD. The screen flow logic is as follows:

PROCESS BEFORE OUTPUT.
  MODULE status_0100.
PROCESS AFTER INPUT.
  MODULE cancel AT EXIT-COMMAND.
  MODULE user_command_0100.

In GUI status SCREEN_100, the function code TOGGLE is linked to a pushbutton. When the program is called, the bottommost four input and output fields are displayed as not ready for input since the variable flag initially contains a blank. The user can switch the ready-for-input status on and off using Display/Change.

Program DEMO_DYNPRO_MODIFY_SCREEN demonstrates further dynamic screen modifications.