Sunday 8 April 2012

Using SELECT-OPTIONS Stmt With Syntax

The SELECT-OPTIONS statement creates selection criteria for a particular
database field.
SYNTAX:

SELECT-OPTIONS <sel> FOR <f>
                                  [DEFAULT <g> [TO <h>]  [OPTION <op>] SIGN <s>]
                                  [MEMORY ID <pid>]
                                  [LOWER CASE]
                                  [OBLIGATORY]
                                  [NO-DISPLAY]
                                  [MODIF ID <key>]
                                  [NO-EXTENSION]
                                  [NO INTERVALS]
                                  [NO DATABASE SELECTION]

<sel> is the selection name that can have a max of 8 characters.

The above syntax declares a selection table <sel> for the field <f> and also places input fields on the corresponding selection screen.

- DEFAULT <g> - This optional allows to set a single value <g> as a default value.

- DEFAULT <g> TO <h> - This optional allows to set a range selection.

- DEFAULT <g> [TO <h>]  [OPTION <op>] - The additional OPTION basically defines the relational operator.

For single field comparisons, OPTION <op> can be EQ, NE, GE, GT, LE, LT, CP, or NP.
The default value is EQ.

For range selections, OPTION <op> can be BT (Between) or NB (Not In Between).
The default value is BT.


- DEFAULT <g> [TO <h>]  [OPTION <op>] SIGN <s> - The optional SIGN indicates whether the entry is Inclusive(I) or Exclusive (E).

The value of <s> can be I or E.
The default value is I.


- MEMORY ID <pid> - On the selection screen, the SET/GET ID <pid> is assigned to the left range limit of the selection criterion. Remember to specify the memory ID without quotation marks. It can be up to 3 characters long.


- LOWER CASE - This optional accepts input in lowercase.


- OBLIGATORY - This optional is used to make the an entry mandatory. Using this optional makes the user mandatory to enter a value for this selection (in the LOW field).


- NO-EXTENSION - This option restricts user to make entry in one line. When the NO-EXTENSION option is used, the user will not be able to see the pushbutton containing arrows pointing to the right at the far sight.


- NO INTERVALS - This option removes the 'to' field. It  means the selection option is displayed on the selection screen without a 'to' field.. The pushbutton for calling the "Multiple Selection" screen appears immediately after the 'from' field.



EXAMPLES:


SELECT-OPTIONS: s_deldt FOR likp-erdat DEFAULT '20110101' TO '20110202'.
SELECT-OPTIONS: date FOR sy-datum DEFAULT sy-datum.





SELECT-OPTIONS: s_ernam FOR likp-ernam DEFAULT 'NAVEENT' SIGN E NO INTERVALS.




SELECT-OPTIONS: s_ernam FOR likp-ernam .




On pressing ENTER:




SELECT-OPTIONS: s_ernam FOR likp-ernam LOWER CASE.




SELECT-OPTIONS: s_deldt FOR likp-erdat OBLIGATORY.




SELECT-OPTIONS: s_ernam FOR likp-ernam NO INTERVALS.





SELECT-OPTIONS: s_ernam FOR likp-ernam NO-EXTENSION.




SELECT-OPTIONS: s_ernam FOR likp-ernam NO-EXTENSION NO INTERVALS.





SELECTION TABLE:


- SELECT-OPTIONS on the report program initial screen are a convenient way to enter simple or
complex selection criteria. The SELECT-OPTIONS statement creates a selection table which is basically an internal table that holds the selection criteria for that field.

- Selection criteria for each item on a selection screen are stored in a selection table. Selection tables are system generated internal tables that have the following standard field format:

SIGN:

-  It is either I or E, I means to include the found results, E excludes them.

- This field indicates whether the current row of the table is INCLUSIVE (I) or EXCLUSIVE (E). Each row of the internal table represents a particular condition (e.g. BETWEEN 1 & 5).

- The overall condition specified by the selection table is the union of lines marked with sign I (Inclusive), less the union of lines marked with sign E (Exclusive).

OPTION:

- This field holds the relational operator for the current row of the selection table (e.g. "NE" <>).

LOW:

- This field holds the low value for range comparisons. If the comparison is against a single value, this field contains that value.

HIGH:

- This field holds the high value for range comparisons (Only for "BT" option).

EXAMPLE:

I       BT       3        10
I       EQ      2
E      GE      8

The result set of the mentioned selection table is: 2, 3, 4, 5, 6, 7.