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

Range

Former Member
0 Likes
765

Hi friends,

Please let me know the difference between select-option and Range???

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
662

Hi

Both Select-options and Ranges are used to accept some range of values for a particular field which we declare.

We declare seelct-options on selection screen where as Ranges are decalre in the program

syntax is same in both cases we use s_kunnr for kna1-kunnr like.

In both cases a selection table(internal tables) with 4 fields like SIGN, OPTION, LOW and HIGH is created and the values are stored in it.

Generaly we use select-options to give a sequence of values i.e from 100 to 200 like that, where as we use ranges to store some numbers which are not in sequence, like 100, 159,245,1223, 4567 etc.

Reward points if useful

Regards

Anji

6 REPLIES 6
Read only

Former Member
0 Likes
662
Read only

Former Member
0 Likes
662

Hi Reema,

Select-options is used for taking input from user on selection screen while Ranges are used for defining range at selection screen so that user can enter values within that range. mainly ranges are used for restricting user from certain values.

Reward points if helpful.

Regards,

Hemant

Read only

Former Member
0 Likes
662

hi,

Difference Between Select-Options & Ranges

What are the difference between SELECT-OPTIONS & RANGES?

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 zdummy. 
tables: mara. 
select-options: matnr for mara-matnr. 
start-of-selection. 
loop at matnr. 
write: / matnr-sign, 
           matnr-option, 
           matnr-low, 
           matnr-high. 
endloop.

Regards

Reshma

Read only

former_member196280
Active Contributor
0 Likes
662

Ranges are similar to Select-options.

1) in select-options it give an advantage to user to enter his selection. No display it acts as ranges but some disadvantages are there if you create variant for select options and modify the code.

But depending on your requirement you should use them.

Regards,

SaiRam

Read only

Former Member
0 Likes
662

hi Reema,

Refer this thread

Read only

Former Member
0 Likes
663

Hi

Both Select-options and Ranges are used to accept some range of values for a particular field which we declare.

We declare seelct-options on selection screen where as Ranges are decalre in the program

syntax is same in both cases we use s_kunnr for kna1-kunnr like.

In both cases a selection table(internal tables) with 4 fields like SIGN, OPTION, LOW and HIGH is created and the values are stored in it.

Generaly we use select-options to give a sequence of values i.e from 100 to 200 like that, where as we use ranges to store some numbers which are not in sequence, like 100, 159,245,1223, 4567 etc.

Reward points if useful

Regards

Anji