Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Ranges Vs Select-options

Former Member
14,947

Hi friends

What is the difference between Ranges and Select-options...

Thanks

Suren

7 REPLIES 7
Read only

Former Member
0 Likes
4,207

Hello,

Select-options are screen elements and Ranges is a data type that describe select-options.

Regards,

Read only

0 Likes
4,207

Hi,

Select-oprions are used in selecton screens.

Both have the same structure.

Sign

options

low

high

Regards,

Fernando

Read only

Former Member
0 Likes
4,207

Hi,

Here both SELECT-OPTIONS & RANGES works for the same purpose. They both are used for the range selection from selection screen. The main diff. between them is, while we use SELECT-OPTIONS system implicitly creates the select options internal table which contains the fields of SIGN,OPTION,LOW & HIGH. But in case of RANGES, this internal table should be defined explicitly.

Eg. to SELECT-OPTIONS :

-


REPORT YARSELECT.

TABLES YTXLFA1.

SELECT-OPTIONS : VENDOR FOR YTXLFA1-LIFNR.

INITIALIZATION.

VENDOR-LOW = 1000. " It specifies the range starting value.

VENDOR-HIGH = 2000. " It specifies the range ending value.

VENDOR-OPTION = 'BT'. " specifies ranges value is in between.

VENDOR-SIGN = 'I'. "specifies both inclussive.

APPEND VENDOR.

- - - -

- - - -

SELECT LIFNR LAND1 NAME1 FROM LFA1 INTO TABLE ITAB

WHERE LIFNR IN VENDOR.

Eg. to RANGES:

-


REPORT YARRANGE.

TABLES YTXLFA1.

RANGES: VENDOR FOR YTXFLA1-LIFNR.

- - - -

- - - --

- - - -

SELECT LIFNR LAND1 NAME1 FROM LFA1 INTO TABLE ITAB

WHERE LIFNR IN VENDOR.

Here with RANGES user has to design an internal table with fields -

SIGN,OPTION,LOW and HIGH EXPLICITLY.

-


>

Example:

select-options: bukrs for zstock-bukrs.

Should the user fill in 'ABFI' in BUKRS on the selection screen, BUKRS will look like this:

IEQABFI

This is because BUKRS is set as a table as follows:

begin of bukrs occurs 0,

SIGN(1) type c,

OPTION(2) type c,

LOW like bukrs,

HIGH like bukrs,

end of bukrs.

Now, when you create the following range, it will have the exact same fields set inside its table:

Ranges: bukrs for zstock-bukrs.

The difference is, because ranges doesn't show on the selection screen, you will have to fill it yourself, meaning you will have to fill bukrs-sign, bukrs-option, bukrs-low & bukrs-high all manually.

Some tips:

Sign is always I (for Include) or E (for Exclude)

Option can be a whole range, which includes:

EQ (Equal)

BT (Between))

CP (Contain Pattern)

So let's say you want to have the range check for all company codes not starting with AB, you will set your code as follow:

ranges: bukrs for zstock-bukrs.

bukrs-sign = 'E'. "Exclude

bukrs-option = 'CP'. "Pattern

bukrs-low = 'AB*'. "Low Value

bukrs-high = ''. "High Value

append bukrs.

Always remember to APPEND your range when you fill it, as the WHERE clause checks against the lines of the range table, not against the header line.

Hope this explains it well enough.

-


>

What does SIGN "I" & "E" mean?

The "I" stands for Include, and the "E" for Exclude.

The easiest way to learn how the range selections work is, create the following dummy program:

report dummy.

tables: mara.

select-options: matnr for mara-matnr.

start-of-selection.

loop at matnr.

write: / matnr-sign,

matnr-option,

matnr-low,

matnr-high.

endloop.

Run this program, and fill in a lot of junk into MATNR. Fill in some includes, some excludes, some ranges, etc., and you will soon realise how the system builds ranges (select-options). Once you know that, you can fill your own ranges quickly and efficiently.

Thanks,

Ramalakshmi

<REMOVED BY MODERATOR>

Edited by: Alvaro Tejada Galindo on Apr 30, 2008 1:36 PM

Read only

Former Member
0 Likes
4,207

Hi Surendrenath,

Here both SELECT-OPTIONS & RANGES works for the same purpose. They both are used for the range selection from selection screen.

The main diff. between them is, while we use SELECT-OPTIONS system implicitly creates the select options internal table which contains the fields of SIGN,OPTION,LOW and HIGH.

But in case of RANGES, this internal table should be defined explicitly.

Eg. to SELECT-OPTIONS :

REPORT YARSELECT. 
TABLES YTXLFA1. 
SELECT-OPTIONS : VENDOR FOR YTXLFA1-LIFNR. 
INITIALIZATION. 
VENDOR-LOW    =   1000.               " It specifies the range starting value. 
VENDOR-HIGH    =   2000.               " It specifies the range ending value. 
VENDOR-OPTION  =  'BT'.                " specifies ranges value is in between. 
VENDOR-SIGN      = 'I'.                     "specifies both inclussive. 

APPEND VENDOR. 

- - - - 
- - - - 
SELECT LIFNR LAND1 NAME1 FROM LFA1 INTO TABLE ITAB  
WHERE LIFNR IN VENDOR.

Eg. to RANGES:

REPORT YARRANGE. 
TABLES YTXLFA1. 
RANGES: VENDOR FOR YTXFLA1-LIFNR. 

- - - -  
- - - -- 
- - - -  

SELECT LIFNR LAND1 NAME1 FROM LFA1 INTO TABLE ITAB  
WHERE LIFNR IN VENDOR.

Here with RANGES user has to design an internal table with fields -

SIGN,OPTION,LOW and HIGH EXPLICITLY.

<REMOVED BY MODERATOR>

raam

Edited by: Alvaro Tejada Galindo on Apr 30, 2008 1:37 PM

Read only

former_member156446
Active Contributor
0 Likes
4,207

u should have known the diff from the previous posts...

but given a chance use select - options compared to ranges...

ranges will reduce the performance... ranges is like a table again, inherited into the select statement...

Read only

Former Member
0 Likes
4,207

check this thread.

Read only

Former Member
0 Likes
4,207

hi!

A ranges table type is a special case of a table type. A ranges table type describes the structure of an internal table for administering complex areas, i.e. the type of an internal ranges table in the ABAP program.

Ranges tables can be used for example in logical conditions (IN operators) in the SELECT, IF, WHILE and CHECK statements or to pass data to selection tables.

The row type of a ranges table type has a fixed structure. The row type consists of the 4 components SIGN (sign), OPTION (comparison operator), LOW (lower limit) and HIGH (upper limit) in this order.

The type of components LOW and HIGH is defined by an elementary associated type. It can be defined by specifying a data element or by directly defining the data type, number of places and if necessary the number of decimal places.

A ranges table type always has Standard table access mode and a standard key that is non-unique.

The main diff. between them is, while we use SELECT-OPTIONS system implicitly creates the select options internal table which contains the fields of SIGN,OPTION,LOW & HIGH. But in case of RANGES, this internal table should be defined explicitly

<REMOVED BY MODERATOR>

Edited by: Alvaro Tejada Galindo on Apr 30, 2008 4:03 PM