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

small query on logic

Former Member
0 Likes
854

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
835

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.

7 REPLIES 7
Read only

Former Member
0 Likes
835

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

Read only

0 Likes
835

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

Read only

Former Member
0 Likes
835

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

Read only

Former Member
0 Likes
835

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.

Read only

Former Member
0 Likes
835

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

Read only

Former Member
0 Likes
836

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.

Read only

Former Member
0 Likes
835

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