*&---------------------------------------------------------------------* *& Include Z_DYNPRO_REPORT_INC *&---------------------------------------------------------------------* CLASS lcl_dynpro_handler DEFINITION FINAL CREATE PUBLIC . PUBLIC SECTION. METHODS commit_screen . METHODS constructor . TYPE-POOLS abap . METHODS set_input IMPORTING value(im_field_name) TYPE string im_input_mode TYPE abap_bool DEFAULT abap_true . METHODS set_invisible IMPORTING im_field_name TYPE string im_invisible TYPE abap_bool DEFAULT abap_true . METHODS set_output IMPORTING value(im_field_name) TYPE string value(im_output) TYPE abap_bool DEFAULT abap_true . METHODS set_required IMPORTING im_required TYPE abap_bool DEFAULT abap_true value(im_field_name) TYPE string PREFERRED PARAMETER im_required . PRIVATE SECTION. DATA: ci_i_screen TYPE STANDARD TABLE OF screen WITH KEY name . ENDCLASS. "lcl_dynpro_handler DEFINITION *----------------------------------------------------------------------* * CLASS lcl_dynpro_handler IMPLEMENTATION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_dynpro_handler IMPLEMENTATION. METHOD constructor. LOOP AT SCREEN. APPEND screen TO me->ci_i_screen. ENDLOOP. ENDMETHOD. "constructor METHOD set_input. FIELD-SYMBOLS: TYPE screen. LOOP AT ci_i_screen ASSIGNING . IF -name = im_field_name. IF im_input_mode = abap_true. -input = 1. ELSE. -input = 0. ENDIF. ENDIF. ENDLOOP. ENDMETHOD. "set_input METHOD set_invisible. FIELD-SYMBOLS: TYPE screen. LOOP AT ci_i_screen ASSIGNING . IF -name = im_field_name. IF im_invisible = abap_true. -invisible = 1. ELSE. -invisible = 0. ENDIF. ENDIF. ENDLOOP. ENDMETHOD. "set_invisible METHOD set_output. FIELD-SYMBOLS: TYPE screen. LOOP AT ci_i_screen ASSIGNING . IF -name = im_field_name. IF im_output = abap_true. -output = 1. ELSE. -output = 0. ENDIF. ENDIF. ENDLOOP. ENDMETHOD. "set_output METHOD set_required. FIELD-SYMBOLS: TYPE screen. LOOP AT ci_i_screen ASSIGNING . IF -name = im_field_name. IF im_required = abap_true. -required = 1. ELSE. -required = 0. ENDIF. ENDIF. ENDLOOP. ENDMETHOD. "set_required METHOD commit_screen. FIELD-SYMBOLS TYPE screen. LOOP AT SCREEN. READ TABLE ci_i_screen WITH TABLE KEY name = screen-name ASSIGNING . IF sy-subrc IS INITIAL. MODIFY SCREEN FROM . ENDIF. ENDLOOP. ENDMETHOD. "commit_screen ENDCLASS. "lcl_dynpro_handler IMPLEMENTATION