|
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 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.
ABAP Tips by :
Venkata A Raju Kankipati / Sam Hearn
Fast Links:
Use of Package Size
What's purpose using Package Size in select
statement
Get help for your ABAP problems
Do you have a ABAP Question?
SAP Books
SAP Certification, Functional,
Basis Administration and ABAP Programming Reference Books
ABAP Tips
ABAP Forum for Discussion and Samples
Program Codes for Abapers
Best regards,
SAP Basis, ABAP Programming and Other IMG Stuff
http://www.sap-img.com
All the site contents are Copyright © www.sap-img.com
and the content authors. All rights reserved.
All product names are trademarks of their respective
companies. The site www.sap-img.com is in no way affiliated with
SAP AG.
Every effort is made to ensure the content integrity.
Information used on this site is at your own risk.
The content on this site may not be reproduced
or redistributed without the express written permission of
www.sap-img.com or the content authors.
|