Show TOC
AT
SELECTION-SCREEN
AT - Events on
selection screens
Basic form
AT
SELECTION-SCREEN.
Additions:
Effect
This event
only makes sense in reports, i.e. in programs set to type 1 in the attributes.
Type 1 programs are started via a logical database and always have a selection
screen where the user can specify the database selections.
The event is processed when the selection screen has been processed (at the
end of PAI).
If an error message (MESSAGE Emnr ) is sent during the event, all
fields on the selection screen become ready for input.
After further user input, AT SELECTION-SCREEN is executed
again.
Note
You should
only perform very expensive checks with AT SELECTION-SCREEN if the
program is then started (not every time the user presses ENTER). Here, you can
read the system field SSCRFIELDS-UCOMM (provided a statement
TABLES SSCRFIELDS exists). If the field has one of the values
'ONLI' (= Execute) or 'PRIN' (= Execute and Print), the report
is then started, i.e. the selection screen is closed and the processing
continues with
START-OF-SELECTION. Remember that the
selection screen (and thus also
AT SELECTION-SCREE N) is also
processed in variant maintenance and with
- SUBMIT VIA JOB . You can determine which
of these applies by calling the function module RS_SUBMIT_INFO.
- The AT SELECTION SCREEN ... events are implemented internally as
FORM routines. All data objects created
using
DATA
are therefore local - only recognized and addressable within the event. This
also applies to
GET events.
-
Effect
This event is assigned to the selection screen fields corresponding to
the report parameter or selection criterion psel .
If the report starts an error dialog at this point, precisely these fields
become ready for input.
Effect
For each selection criterion sel on the selection screen, you
can call a further screen by pressing a pushbutton. On this screen, you can
enter any number of single values and ranges for the selection criterion
sel.
When this screen has been processed (i.e. at the end of PAI for this screen),
the event AT SELECTION-SCREEN ON END OF sel is executed.
At this point, all the values entered are available in the internal table
sel.
Effect
In this addition, the field psel_low_high is either the name
of a report parameter or of the form sel-LOW or sel-HIGH,
where sel is the name of a selection criterion. The effect of this is
twofold:
- The possible entries pushbutton for F4 appears beside the
appropriate field.
-
) or selection options (
SELECT-OPTIONS
). For database-specific parameters or selection options, you can achieve the
same effect by using the addition VALUE-REQUEST FOR ... with the key
word PARAMETERS or SELECT-OPTIONS in the include
DBxyzSEL (where xyz = name of logical database). In this case, you must
program the possible entries in the database program SAPDBxyz .
Effect
As with the addition ON VALUE-REQUEST the field
psel_low_high is either the name of a report parameter or of the form
sel-LOW or sel-HIGH, where sel is the name of a
selection criterion. When the user presses F1 on the relevant field,
the subsequent processing block is executed. You can thus implement a
self-programmed help for the input/output fields of the selection screen. If
the program contains such an event and the user presses F1 , the
system processes this rather than displaying the documentation of the
Dictionary field - even if the report parameter or the selection option with
LIKE or FOR points to a Dictionary field.
This addition is only allowed with report-specific parameters (
PARAMETERS
) or selection options (
SELECT-OPTIONS
). For database-specific parameters or selection options, you can achieve the
same effect by using the addition HELP-REQUEST FOR ... with the key
word PARAMETERS or SELECT-OPTIONS in the include
DBxyzSEL (where xyz = name of logical database). In this case, you must
program the help in the database program SAPDBxyz.
Note
If psel_low_high is a PARAMETER or a
SELECT-OPTION, the event AT SELECTION-SCREEN ON psel_low_high is
also executed if the user presses F1 on the text field of
psel_low_high or on a comment belonging to psel_low_high (
SELECTION-SCREEN COMMENT ... FOR FIELD
psel_low_high).
Effect
This event is assigned to the radio button groups on the selection
screen defined by PARAMETERS par RADIOBUTTON GROUP radi .
If the report starts an error dialog at this point, precisely these fields of
the radio button group radi become ready for input again.
Effect
This event is assigned to the blocks on the selection screen defined
by SELECTION-SCREEN BEGIN/END OF BLOCK block .
If the report starts an error dialog at this point, precisely these fields of
the block block become ready for input again.
Note
In which sequence are the events AT SELECTION-SCREEN ON psel
..., AT SELECTION-SCREEN ON RADIOBUTTON GROUP ... , AT
SELECTION-SCREEN ON BLOCK ..., AT SELECTION-SCREEN
processed?
The AT SELECTION-SCREEN ON psel ... events assigned to the
parameters or selection options are executed in the sequence they are declared
in the program, i.e. in the sequence they appear on the selection screen.
The events assigned to the radio button groups are executed according to the
first parameter of the radio button group.
The events assigned to the blocks are executed "from the inside to the
outside".
Example
SELECT-OPTIONS SEL0 FOR SY-TVAR0.
SELECTION-SCREEN BEGIN OF BLOCK BL0.
SELECT-OPTIONS SEL1 FOR SY-TVAR1.
SELECTION-SCREEN BEGIN OF BLOCK BL1.
PARAMETERS P0 RADIOBUTTON GROUP RADI.
PARAMETERS P1 RADIOBUTTON GROUP RADI.
SELECTION-SCREEN BEGIN OF BLOCK BL2.
PARAMETERS P3.
SELECTION-SCREEN END OF BLOCK BL2.
SELECT-OPTIONS SEL2 FOR SY-TVAR2.
SELECTION-SCREEN END OF BLOCK BL1.
SELECTION-SCREEN END OF BLOCK BL0.
Sequence:
AT SELECTION-SCREEN ON...
SEL0
SEL1
RADIOBUTTON GROUP RADI
P3
BLOCK BL2
SEL2
BLOCK BL1
BLOCK BL0
AT SELECTION-SCREEN is executed at the very end.
Effect
This event is executed at PBO of the selection screen every time the
user presses ENTER - in contrast to
INITIALIZATION . Therefore, this event
is not suitable for setting selection screen default values. Also, since
AT SELECTION-SCREEN OUTPUT is first executed after the variant is
imported (if a variant is used) and after adopting any values specified under
SUBMIT in the
WITH clause,
changing the report parameters or the selection options in
AT
SELECTION-SCREEN OUTPUT would destroy the specified values.
Here, however, you can use
LOOP AT SCREEN or
MODIFY SCREEN to change the
input/output attributes of selection screen fields.
Example
Output all fields of the SELECT-OPTION NAME
highlighted:
SELECT-OPTIONS NAME FOR SY-REPID MODIF ID XYZ.
...
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CHECK SCREEN-GROUP1 = 'XYZ'.
SCREEN-INTENSIFIED = '1'.
MODIFY SCREEN.
ENDLOOP.
The addition MODIF ID XYZ to the key word SELECT-OPTIONS assigns all fields of the selection
option NAME to a group you can read in the field
SCREEN-GROUP1. At PBO of the selection screen, all these fields are then
set to highlighted.
Effect
This event is processed when an exit command is triggered on the
selection screen, that is, a command after which there are no field checks or
PAI processing. These are usually the events "Back", "Cancel", and "Exit".
Note
This event is normally only triggered by "system" pushbuttons. Be
careful when using it, so as not to interrupt the system processes.
Additional help
Selection Screen Processing