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

How to write this syntax

Former Member
0 Likes
771

I need to check

it_bseg-mwskz is in between ( 'C0','C1', 'C2', 'C3', ...'C9' )

or it_bseg-mwskz is in between ( 'E0','E1', 'E2', 'E3', ...'E9' )

or it_bseg-mwskz = 'MP'.

then set flag as true....

how to write this sytax

6 REPLIES 6
Read only

Former Member
0 Likes
707

hI

if ( it_bseg-mwskz between 'C0' AND 'C9' ) OR

( it_bseg-mwskz between 'E0' AND 'E9' )

or it_bseg-mwskz = 'MP'.

Read only

Former Member
0 Likes
707

Hi,

Try this..

IF ( IT_BSEG-MWSKZ BETWEEN 'C0' AND 'C9' )

OR

( IT_BSEG-MWSKZ BETWEEN 'E1' AND 'E9' )

OR

( IT_BSEG-MWSKZ = 'MP' ).

FLAG = 'X'.

ENDIF.

THanks,

Naren

Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
707

You could use a range....

tables: bseg.



ranges: r_mwskz1 for bseg-mwskz.
ranges: r_mwskz2 for bseg-mwskz.
ranges: r_mwskz3 for bseg-mwskz.

r_mwskz1-sign   = 'I'.
r_mwskz1-option = 'BT'.
r_mwskz1-low    = 'C0'.
r_mwskz1-high   = 'C9'.
append r_mwskz1.

r_mwskz2-sign   = 'I'.
r_mwskz2-option = 'BT'.
r_mwskz2-low    = 'E0'.
r_mwskz2-high   = 'E9'.
append r_mwskz2.

r_mwskz3-sign   = 'I'.
r_mwskz3-option = 'EQ'.
r_mwskz3-low    = 'MP'.
append r_mwskz3.

if it_bseg-mwskz in r_mwskz1
  or it_bseg-mwskz in r_mwskz2
  or it_bseg-mwskz in r_mwskz3.


endif.

Regards,

Rich Heilman

Read only

Former Member
0 Likes
707

Hi

write the following code

ranges: r_mwskz for bseg-mwskz ocuurs 5,

r_mwskz1 for bseg-mwskz occurs 5 .

r_mwskz-sign = 'I'.

r_mwskz-option = 'EQ'.

r_mwskz-low = 'C0'.

append r_mwskz.

r_mwskz-sign = 'I'.

r_mwskz-option = 'EQ'.

r_mwskz-low = 'C1'.

append r_mwskz.

r_mwskz-sign = 'I'.

r_mwskz-option = 'EQ'.

r_mwskz-low = 'C2'.

append r_mwskz.

r_mwskz-sign = 'I'.

r_mwskz-option = 'EQ'.

r_mwskz-low = 'C3'.

append r_mwskz.

r_mwskz1-sign = 'I'.

r_mwskz1-option = 'EQ'.

r_mwskz1-low = 'E0'.

append r_mwskz1.

r_mwskz1-sign = 'I'.

r_mwskz1-option = 'EQ'.

r_mwskz1-low = 'E1'.

append r_mwskz1.

r_mwskz1-sign = 'I'.

r_mwskz1-option = 'EQ'.

r_mwskz1-low = 'E2'.

append r_mwskz1.

r_mwskz1-sign = 'I'.

r_mwskz1-option = 'EQ'.

r_mwskz1-low = 'E3'.

append r_mwskz1.

select mwskz from bseg into corresponding fields of itab where mwskz in r_mwskz OR

mwskz1 in r_mwskz1 OR

mwskz = 'MP'.

if sy-subrc = 0.

flag = 1.

endif.

endselect.

reward points if helpful

Regs

Manas Ranjan Panda

Read only

Former Member
0 Likes
707

Hi ,

Use IN Operator.

it_bseg-mwskz IN('C0','C1', 'C2', 'C3', ...'C9')

or it_bseg-mwskz IN ('E0','E1', 'E2', 'E3', ...'E9').

Cheers

Read only

Clemenss
Active Contributor
0 Likes
707

Hi,

ABAP IN operator works only with ABAP ranges or range tables.

<pre>

data:

lr_mskz type range oif mwskz.

perform append_range using:

'ICP' 'C+' '' changing lr_mskz,

'ICP' 'E+' '' changing lr_mskz,

'IEQ' 'MP' '' changing lr_mskz.

  • This works if all C and E MWSKZ are cobined with letter

  • and digit, it fails if there is like 'AA' or 'CX'

  • In that case you must 'IEQ' all of them.

if it_bseg-mwskz in lr_mwskz.

  • set flag or what else

endif.

...

&----


*& Form append_range

&----


  • append selection range for any range type (c) Clemen Li

----


FORM append_range USING p_signopt TYPE c

p_low TYPE any

p_high TYPE any

CHANGING pt_range TYPE table.

FIELD-SYMBOLS:

<range> TYPE ANY,

<sign> TYPE ANY,

<option> TYPE ANY,

<low> TYPE ANY,

<high> TYPE ANY.

DATA:

l_ref TYPE REF TO data.

CREATE DATA l_ref LIKE LINE OF pt_range.

ASSIGN l_ref->* TO <range>.

CHECK sy-subrc = 0.

ASSIGN COMPONENT 'SIGN' OF STRUCTURE <range> TO <sign>.

CHECK sy-subrc = 0.

ASSIGN COMPONENT 'OPTION' OF STRUCTURE <range> TO <option>.

CHECK sy-subrc = 0.

ASSIGN COMPONENT 'LOW' OF STRUCTURE <range> TO <low>.

CHECK sy-subrc = 0.

ASSIGN COMPONENT 'HIGH' OF STRUCTURE <range> TO <high>.

CHECK sy-subrc = 0.

<sign> = p_signopt(1).

<option> = p_signopt+1(2).

<low> = p_low.

<high> = p_high.

APPEND <range> TO pt_range.

ENDFORM. " append_range

</pre>

Regards,

Clemens