‎2007 Sep 06 10:28 AM
hi,
loop at i_vbrp where werks not in ('2300','2301','2302','2303').
do some thing
Endloop.
how do I implement the same this is throwing an error.
Similar way I have to loop,
I tried Using RANGES also not working.
please help me.
Points assured.
regards,
Prabhu
‎2007 Sep 06 10:49 AM
data: begin of i_vbrp occurs 0.
include structure vbrp.
data: end of i_vbrp.
loop at i_vbrp where not ( werks eq '1001' or werks eq '1002' or werks eq '1003' or werks eq '1004' ).
endloop.
‎2007 Sep 06 10:35 AM
Hi,
try this
loop at i_vbrp where werks ne '2300'
werks ne '2301'
werks ne '2302'
werks ne '2303'.
do some thing
Endloop.
data: begin of itab occurs 0,
field(3) type c,
field1(3) type c,
end of itab.
itab-field = '123'.
itab-field1 = '231'.
append itab.
clear: itab.
itab-field = '124'.
itab-field1 = '230'.
append itab.
clear: itab.
itab-field = '127'.
itab-field1 = '241'.
append itab.
clear: itab.
loop at itab where field ne '124' and field ne '127'.
write:/ itab-field, itab-field1.
endloop.
regards,
Venkatesh
‎2007 Sep 06 10:46 AM
hi venkatesh,
Thanx,
this will not work if werks = 2300
if give OR or AND it will not work. since one condition is passed but other fails.
loop at i_vbrp where werks ne '2300'
werks ne '2301'
werks ne '2302'
werks ne '2303'.
do some thing
Endloop.
Second is also not possible since i am looping a internal table which is not eq to some value.
regards,
Prabhu
‎2007 Sep 06 10:37 AM
gt_value-werks = 2300
append gt_value.
gt_value-werks = 2301
append gt_value.
gt_value-werks = 2302
append gt_value.
gt_value-werks = 2303
append gt_value.
loop at i_vbrp.
read table gt_value with key werks EQ i_vbrp-werks.
if sy-subrc NE 0.
do some thing
endif.
endloop.
Reward points if helpful
‎2007 Sep 06 10:37 AM
Hi
If the numbers which dont want to pick are continuous then u can use
loop at itab where field1 < 2300 and field1 > 2305.
endloop.
‎2007 Sep 06 10:38 AM
Hi,
better try this
data: begin of itab occurs 0,
field(3) type c,
field1(3) type c,
end of itab.
ranges: r for itab-field.
r-sign = 'E'.
r-option = 'EQ'.
r-low = '123'.
append r.
itab-field = '123'.
itab-field1 = '231'.
append itab.
clear: itab.
itab-field = '124'.
itab-field1 = '230'.
append itab.
clear: itab.
itab-field = '127'.
itab-field1 = '241'.
append itab.
clear: itab.
loop at itab where field in r.
write:/ itab-field, itab-field1.
endloop.
regards,
Venkatesh
‎2007 Sep 06 10:49 AM
data: begin of i_vbrp occurs 0.
include structure vbrp.
data: end of i_vbrp.
loop at i_vbrp where not ( werks eq '1001' or werks eq '1002' or werks eq '1003' or werks eq '1004' ).
endloop.
‎2007 Sep 06 11:26 AM
Hi prabhu,
It will working with ranges .....
Ranges : r_werks for vbak-werks.
r_werks-low = '2300'.
append r_werks.
r_werks-low = '2301'.
append r_werks.
r_werks-low = '2302'.
append r_werks.
r_werks-low = '2303'.
append r_werks.
while looping that internal table use as below
loop at itab where werks in r_werks.
endloop.
<u><i><b>Reward points if it useful. Which boost us help others.</b></i></u>
if you want to cross check just execute this program.
&----
*& Report YTEMOP1
*&
&----
*&
*&
&----
REPORT YTEMOP1.
tables : vbap.
data itab like vbap occurs 0 with header line.
select-options : s_werks for vbap-werks.
ranges : r_werks for vbap-werks.
r_werks-low = '1000'.
r_werks-option = 'NE'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = 'SG01'.
r_werks-option = 'NE'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = 'S320'.
r_werks-option = 'NE'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = 'S330'.
r_werks-option = 'NE'.
r_werks-sign = 'I'.
append r_werks.
select * from vbap into table itab.
loop at itab where werks in r_werks.
***statements here
endloop.
<u><i><b>Reward points if it useful. Which boost us help others.</b></i></u>
Regards
Sreenivasa sarma