AT SELECTION-SCREEN - selscreen_event
Short Reference
ABAP Syntax ... { OUTPUT }
| { ON {para|selcrit} }
| { ON END OF selcrit }
| { ON BLOCK block }
| { ON RADIOBUTTON GROUP group }
| { }
| { ON {HELP-REQUEST|VALUE-REQUEST}
FOR {para|selcrit-low|selcrit-high} }
| { ON EXIT-COMMAND }.
ABAP_ALTERNATIVES:
1 ... OUTPUT
2 ... ON {para|selcrit}
3 ... ON END OF selcrit
4 ... ON BLOCK block
5 ... ON RADIOBUTTON GROUP group
6 ... { }
7
... ON {HELP-REQUEST|VALUE-REQUEST} FOR
{para|selcrit-low|selcrit-high}
8 ... ON EXIT-COMMAND
What does it do? These additions allow individual evaluation of specific
elements of the selection screens
of the program. The information as to which selection has triggered the
event is contained in the system field sy-dynnr .
ABAP_ALTERNATIVE_1 ... OUTPUT
What does it do? This event is triggered by the dynpro event
PBO of a selection screen. In the event block,
the selection screen can be prepared using assignments to the data
objects of parameters and selection criteria and using dynamic screen
modifications.
Latest notes: The assignments to input fields in the event block AT
SELECTION-SCREEN OUTPUT always affect the selection screen and
overwrite the user input from previous displays of the same selection
screen. Assignments in the event blocks
LOAD-OF-PROGRAM or INITIALIZATION
, on the other hand, only have an effect the first time the program
starts.
ABAP_ALTERNATIVE_2 ... ON {para|selcrit}
What does it do? This event is triggered by the dynpro event
PAI of a selection screen if the content of the
input field of a parameter para or a line of a
selection criterion selcrit
was passed to the ABAP program. The user input can be checked in
this event block. Sending a warning or an
error message in the event block makes
the fields para and selcrit ready for input again.
No parameter that is defined as a radio button can be specified. For
this purpose, the addition ON RADIOBUTTON GROUP is provided.
Latest notes: If a user action takes place in the dialog box for the
multiple selection of a selection criterion selcrit , the entries
of the selection table are passed to
the program, line by line. For each line, the event AT
SELECTION-SCREEN ON selcrit is triggered.
ABAP_ALTERNATIVE_3 ... ON END OF selcrit
What does it do? This event is triggered after the selection table
selcrit has been fully passed to the program after a user action in
the dialog box for the multiple selection has taken place. The entire s
election table can be checked in this event block.
ABAP_ALTERNATIVE_4 ... ON BLOCK block
What does it do? This event is triggered by the dynpro event PAI of a
selection screen if all the input fields of a block block of the
selection screen were passed to the ABAP program. The user input can be
checked in the event block. Sending a warning or an error message in the
event block makes all the fields of the block block ready for
input again.
ABAP_ALTERNATIVE_5 ... ON RADIOBUTTON GROUP group
What does it do? This event is triggered by the dynpro event
PAI of a selection screen if all the fields of a
radio button group group of the selection screen were passed to
the ABAP program. The user input can be checked in this event block.
Sending a warning or
error message in the event block makes
all the radio buttons of the group group ready for input again.
Latest notes: The individual fields of a radio button group are not
passed individually and do not trigger the event AT SELECTION-SCREEN
ON par .
ABAP_ALTERNATIVE_6 ... { }
What does it do? The event AT SELECTION-SCREEN itself is triggered
as the last event of selection screen processing if all the input values
were passed to the program. All user input can be checked in this event
block. Sending a warning or an error message in the event block makes
all the screen fields ready for input once again.
ABAP_ALTERNATIVE_7 ... ON { HELP-REQUEST | VALUE-REQUEST } FOR
{para|selcrit-low|selcrit-high}
What does it do? The two events ON HELP-REQUEST and ON
VALUE-REQUEST are triggered by the dynpro events
POH and POV of a selection
screen if, for the input field of a parameter para or one of the
input fields of a selection
criterion selcrit , the field help F1 or the input help
F4 was called. Other
selection events are not triggered.
In the event blocks, a self-defined field or input field can be
programmed, which overrides any helps defined in ABAP Dictionary.
Latest notes: These event blocks can only be implemented for fields of
the selection screen that are defined in the same ABAP program and not
in any associated logical database .
The events for the field help and input help do not transport data
between the selection screen and the ABAP program. As with general
dynpros , suitable function modules such as
RS_SELECTIONSCREEN_READ and RS_SELECTIONSCREEN_UPDATE must
be used for this. The parameters and selection criteria changed for the
input help are transported to the selection screen.
ABAP_ALTERNATIVE_8 ... ON EXIT-COMMAND
What does it do? This event is triggered if the user has called one of the
functions Back , Exit , or Cancel . Any cleanup
actions can be executed in this event block.
Example ABAP Coding This executable
program defines a standard selection screen and a further selection
screen. In the event blocks AT SELECTION-SCREEN , the input in the
selection screens can be specially handled using the evaluation of the
name p_carrid and the dynpro number
in sy-dynnr .
REPORT demo_at_selection_screen.
* Global data
DATA: spfli_tab TYPE TABLE OF spfli,
spfli_wa LIKE LINE OF spfli_tab.
* Selection screens
PARAMETERS p_carrid TYPE spfli-carrid.
SELECTION-SCREEN BEGIN OF SCREEN 500.
SELECT-OPTIONS s_conn FOR spfli_wa-connid.
SELECTION-SCREEN END OF SCREEN 500.
* Handling selection screen events
AT SELECTION-SCREEN ON p_carrid.
IF p_carrid IS INITIAL.
MESSAGE 'Please enter a value' TYPE 'E'.
ENDIF.
AUTHORITY-CHECK OBJECT 'S_CARRID'
ID 'CARRID' FIELD p_carrid
ID 'ACTVT' FIELD '03'.
IF sy-subrc = 4.
MESSAGE 'No authorization for carrier' TYPE 'E'.
ELSEIF sy-subrc <(><<)>> 0.
MESSAGE 'Error in authority check' TYPE 'A'.
ELSE.
IF sy-ucomm = 'ONLI'.
CALL SELECTION-SCREEN '0500'.
ENDIF.
ENDIF.
AT SELECTION-SCREEN.
IF sy-dynnr = '0500'.
IF s_conn IS INITIAL.
MESSAGE 'Please enter values' TYPE 'W'.
ELSE.
SELECT *
FROM spfli
INTO TABLE spfli_tab
WHERE carrid = p_carrid AND
connid IN s_conn.
IF sy-subrc <(><<)>> 0.
MESSAGE 'No flights found' TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
* Main program
START-OF-SELECTION.
...
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved