A selection screen has Process Before Output, Process After Input, Process On Value Request and Process On Help Request... This is an overview of processing events that apply to selection screens, in time sequence:
INITIALIZATION. AT SELECTION-SCREEN OUTPUT. AT SELECTION-SCREEN ON HELP-REQUEST. AT SELECTION-SCREEN ON VALUE-REQUEST. AT SELECTION-SCREEN. START-OF-SELECTION. END-OF-SELECTION.
INITIALIZATION.
executed first: whenever a program starts, this event is done first, even befor setting up the selection screen hence if there are parameters or select options to be defaulted at runtime, here is where you should do that. Defaults that were set up on thePARAMETER
statement can be overwritten hereAT SELECTION-SCREEN OUTPUT.
when the selection screen is build up, the Process Before Output is done in this event, change the appearance of your parameter fields (e.g. make them read only) hereAT SELECTION-SCREEN ON HELP-REQUEST
andAT SELECTION-SCREEN ON VALUE-REQUEST
will be executed when the selection screen is displayed and the end user presses F1 or F4 on a certain fieldAT SELECTION-SCREEN.
this is where you can check the values entered on the screen, just throw an error if values or combinations of values are not correct, or even when values are missing. This method also allows the ABAP to respond to user menu actions on the selection screen, e.g. through buttons that were put on the application toolbar withSELECTION-SCREEN FUNCTION KEY: 1, 2, 3, 4, 5.
orSELECTION-SCREEN PUSHBUTTON 1(30) pushbut1 USER-COMMAND SIMULATE.
. The fieldSSCRFIELDS-UCOMM.
will hold the action code (okcode).START-OF-SELECTION.
is the first bit of logic that is started after pressing "Execute" (F8) on the selections screen...END-OF-SELECTION
. In regular reporting: when all data selections are done, the gathered informtion is output in some way. Producing output is commonly done in theEND-OF-SELECTION
event.
Would you like to see all of the above events in action ?
REPORT Z_SELECTIONSCREEN_EVENTS. TABLES: mara, SSCRFIELDS. PARAMETERS: p_param modif id MIF. SELECT-OPTIONS: s_matnr FOR mara-matnr. * Allow the end user to press F4 on your parameter field: AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_param. message i123(zum) with 'Value requested...'. * Allow the end user to press F1 on your parameter field: AT SELECTION-SCREEN ON HELP-REQUEST FOR p_param. message i123(zum) with 'Help requested (for field)'. * Allow the end user to press F1 on whole selection screen AT SELECTION-SCREEN ON HELP-REQUEST FOR s_matnr. message i123(zum) with 'Help requested (for field)'. * Allow logic on PROCESS BEFORE OUTPUT for the selection screen * (e.g. to change settings on the fields displayed). AT SELECTION-SCREEN OUTPUT. * E.g.: disable input for the fields with MODIF ID "MIF": loop at screen. CHECK SCREEN-GROUP1 EQ 'MIF'. SCREEN-INPUT = '0'. MODIFY SCREEN. endloop. * Handle menu actions from the selection screen, e.g. pushbuttons * 1 to 5 (FC01 to FC05) or own defined buttons on the screen... AT SELECTION-SCREEN. CASE SSCRFIELDS-UCOMM. when 'FC01'. * Do something ENDCASE. * Last but really first: INITIALIZATION. * Set runtime defaults for your parameters (or select options) here: p_param = 'Y'.