07-03-2007 10:18 PM
hallow
i wont to use in like this ut it bring me all time errors what is wrong
IF <wa_lcl_pers_tab>-infty IN ( '0000' , '0001' , '0002' , '0003' , '0004' , '0005' ).
endif.
07-03-2007 10:24 PM
use range option
ranges r_werks for marc-werks.
r_werks-low = '0000'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0001'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0002'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0003'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0004'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0005'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
IF <wa_lcl_pers_tab>-infty IN r_werks.-> use like this
Thanks
Seshu
07-03-2007 10:24 PM
use range option
ranges r_werks for marc-werks.
r_werks-low = '0000'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0001'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0002'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0003'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0004'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
r_werks-low = '0005'.
r_werks-option = 'EQ'.
r_werks-sign = 'I'.
append r_werks.
IF <wa_lcl_pers_tab>-infty IN r_werks.-> use like this
Thanks
Seshu
07-03-2007 10:25 PM
Hi,
- Define a range using statement RANGES, e.g. r_values.
- Pass values one after another to r_values along with sign, options, low. Don't pass high value, keep it initial.i.e.
CLEAR r_values.
r_values-sign = 'EQ'.
r_values-option = 'I'.
r_values-low = '0000'.
APPEND r_values.
- Repeat second step for all values.
- Use this range in your IF, i.e
IF <wa_lcl_pers_tab>-infty IN r_values.
<b>OR</b>
IF <wa_lcl_pers_tab>-infty = '0000'
OR <wa_lcl_pers_tab>-infty = '0001'
OR <wa_lcl_pers_tab>-infty = '0002'
OR <wa_lcl_pers_tab>-infty = '0003'
OR <wa_lcl_pers_tab>-infty = '0004'
OR <wa_lcl_pers_tab>-infty = '0005'.
ENDIF.
Reward points if the answer is helpful.
Regards,
Mukul
07-03-2007 10:29 PM
IN like you had can be used in SELECT statement not in IF statement. Try using a range or do something like this.
IF <wa_lcl_pers_tab>-infty EQ '0000' OR
<wa_lcl_pers_tab>-infty EQ '0001' OR
<wa_lcl_pers_tab>-infty EQ '0002' OR
<wa_lcl_pers_tab>-infty EQ '0003' OR
<wa_lcl_pers_tab>-infty EQ '0004' OR
<wa_lcl_pers_tab>-infty EQ '0005' ).
ENDIF.
07-03-2007 10:41 PM
Check the IF Condition statement :
IF <f> = <f11> OR <f> = <f 12> OR <f> = ...
<Statement block>
ELSEIF <f> = <f21> OR <f> = <f 22> OR <f> =...
<Statement block>
ELSEIF <f> = <f21> OR <f> = <f 22> OR <f> =...
<statement block>
ELSEIF <f> = ...
...
ELSE.
<statement block>
ENDIF.
Thanks
Seshu
07-03-2007 11:57 PM
I think you can only us the "IN" with a discrete list within a Select e.g.
select *
into table gt_sbook
from sbook
where class not in ('C','F','Y').
otherwise use a range, as suggested above.