ABAP Keyword Documentation → ABAP − Reference → SAP GUI User Dialogs → Selection Screens → Create Selection Screens
SELECT-OPTIONS
Other versions: 7.31 | 7.40 | 7.54
Syntax
SELECT-OPTIONS selcrit FOR {dobj|(name)}
[
screen_options]
[value_options]
[
NO DATABASE SELECTION]
[
ldb_options].
Effect
This declares a selection criterion selcrit
for a data object dobj
or a type specified in name
. Selection criteria are components of a
selection screen, to which are assigned a
selection table in the ABAP program, as well as two input fields and a pushbutton for multiple selection.
The name of the selection criterion selcrit
is limited to a maximum of 8 characters. This statement is allowed in the global declaration part of
executable programs,
function groups, and
module pools. In function groups and module pools, the statement is only allowed within the definition of a
standalone selection screen. In executable programs, the statement is otherwise automatically assigned to the
standard selection screen.
The statement SELECT-OPTIONS
has the following effect:
-
The statement declares a selection table in the program with the name
selcrit
. A selection table is an internal standard table with header line and standard key. Selection tables can be used to store ranges conditions that join multiple comparison expressions. The content of selection tables can be analyzed in a relational expression with the relational operatorIN
or in a similar expression of aWHERE
condition in ABAP SQL. Selection tables have the same layout as ranges tables and have the following four columns:
sign
of typec
and length 1. The content ofsign
determines for every row whether the result of the condition formulated in the column is included or excluded in the entire resulting set for all rows. Valid values are "I" for include and "E" for exclude.
option
of typec
with length 2.option
contains the selection option for the condition of the row in the form of relational operators. Valid operators are "EQ", "NE", "GE", "GT", "LE", "LT", "CP", and "NP", if the columnhigh
is initial, and "BT", "NB", if column high is not initial. For the options "CP" and "NP", the data type of the columnslow
andhigh
must bec
, and special rules apply to entries on the selection screen.
low
of the data type defined afterFOR
. This column is designated for the comparison value or the lower interval limitation.
high
of the data type defined afterFOR
. This column is designated for the upper interval limitation.
-
Two input fields with the name
selcrit-low
andselcrit-high
are created on the current selection screen using a matching external data type in a new row at positions 35 and 60. The length of the input fields is based upon the length of the data type which is defined afterFOR
. The maximum length of the input fields is 255. The maximum visible length of the input fields is between 10 and 18 (depending on the nesting depth in framed blocks). If the length is greater than the maximum visible length, the content is displayed as movable.
An output field generated automatically is displayed in the first position available to the left of the input field as a label with a length of between 20 and 30 depending on the nesting depth in blocks with frames. The output field contains either the name of theselcrit
selection criterion or the selection text to which the selection criterion is assigned in the text elements of the program. If the user requests field or input help on the output field using the function key F1 or F4, the same output is displayed as if one of the input fields is chosen.
A multiple selection pushbutton is created after the second input field. If this pushbutton is selected, a dialog screen with four tabstrip control pages appears, in which the input fields are again displayed in tabular form in Table Controls. The tabstrip pages are separated based on individual value comparison, interval limitation, and settings for the columnsign
.
Users can select an input field with a double-click on the selection screen or use the dialog screen for multiple selection. On the selection screen, the value of the columnsign
can also be chosen. On the dialog screen for multiple selection, this is done by selecting the respective tabstrip page. If the selection option is not equal to "EQ" or "BT", it is displayed as an icon in front of the first input field. The color of the icon is green if the content of the columnsign
is "I", and red if it is "E".
The selection options "CP" and "NP" can be selected only if the first input field contains one of the wildcard characters "*" or "+". "+" masks a single character, "*" masks any character string, even an empty one. If one of these characters is entered, the selection option is automatically set to "CP". If "CP" is set, and all wildcard characters have been removed, the selection option is automatically set to "EQ" when there is a user action. This limitation does not apply within the program. When the selection table is evaluated, the columnlow
can also contain a string without wildcard characters for the selection options "CP" and "NP".
The attributes of the elements on the selection screen can be influenced with the statementscreen_options
or the statementSELECTION-SCREEN
. -
The first row of the selection table
selcrit
is associated with the input fields on the selection screen. All rows are displayed in the dialog box for multiple selection.
Each time before the selection screen is sent to the selection screen eventATSELECTION-SCREEN OUTPUT
, the content of first row in the selection table is transported to the selection screen, with a conversion routine being executed if required. If the length of the columnslow
andhigh
in the first row of the selection table is greater than 255, the surplus content is cut off on the right. It is only possible for all rows to be transported if the button for multiple selections is selected. A conversion routine might be executed here, and rows might be cut off. Settings for the content of the input fields can be made invalue_options
.
After a user action on the selection screen, the contents of the input fields and the chosen settings are transported to the first row and the header row of the selection table.
After a user action on the dialog box for multiple selections, the contents of all input fields and the chosen settings are transported to the rows of the selection table. These transports convert the content of character-like fields by default into uppercase letters by default, after which a conversion routine is performed, if required. After each transport, various selection screen events are raised.
If a value has been entered in the entry field for the upper intervalhigh
, the system checks whether this value is greater than the lower interval limitlow
following each transport and conversion routine (if performed). If necessary, an error message is sent. This check can be switched off before the selection screen is sent, using the function module RS_SELOPT_NO_INTERVAL_CHECK. -
If selection criteria are defined in the selection include of a logical database, further additions
ldb_options
are necessary or possible. -
If, in an executable program, a selection criterion is defined for a component of a node of the associated
logical database, declared by
TABLES
orNODES
, and the node in question is intended for dynamic selection on the logical database, the selection table is passed (by default) to the logical database, after selection screen processing, where it is handled as a dynamic selection. Furthermore, in this case, the input fields for the corresponding dynamic selection are displayed directly on the selection screen. Therefore the user does not need to select the fields using the Dynamic Selections function. This transfer can be suppressed using the additionNO DATABASE SELECTION
.
Notes
- To avoid undefined system behavior, the header row of a selection table should not be changed in the program. Read access should also be avoided. Instead separate work areas, field symbols, or data references should be used, as always for internal tables.
-
If a selection criterion is supplied with data when calling up an executable program using
SUBMIT
, a conversion routine may be performed for the first row only, while the value of the columnslow
andhigh
will be truncated at position 255 for the first row only. If the selection criterion is declared with the addition NO-DISPLAY, no conversion routine or truncation will be performed for the first row either. - If the type of the selection criterion is a decimal floating point number that does not refer to a data type in ABAP Dictionary, the output style preserve scaling is set for the input field of the selection screen. Here, any trailing zeroes are preserved in the decimal places. If there is a reference to a data type in the ABAP Dictionary, the output style defined there is used.
-
If the type of the selection criteria is a packed number or a
decimal floating point number
defined in ABAP Dictionary, the attribute sign must be set for the type attribute, so that negative numbers can be displayed on the selection screen. This setting is only possible for
domains and not for specifying a built-in type directly for
data elements or structure
components. If a negative number is entered on the selection screen and this property is not set, the
system rejects it with an error message. If the columns
low
orhigh
contain a negative number when the selection screen is called, an non-handleable exception is raised. - If the type of the selection criterion is a decimal floating point number defined in ABAP Dictionary for which the output style "currency amount" is specified, only numbers with the corresponding amount of decimal places can be entered on the selection screen. If a corresponding ABAP data object contains a number with too many decimal places when the selection screen is called, a non-handleable exception is raised. If the output style is "extended currency amount", additional decimal places can be displayed.
-
The columns
sign
andoption
of a selection table declared usingSELECT-OPTIONS
are not related to data types in ABAP Dictionary. In the case of ranges tables defined in ABAP Dictionary, these columns refer to the data elements DDSIGN and DDOPTION.