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

report

Former Member
0 Likes
458

Hi Experts

i have to validate the selection screen like this :

select-option: s_matnr have lower range and higher range.

the logic developed by me is :

AT SELECTION SCREEN ON s_matnr.

SELECT matnr

FROM mara

INTO TABLE itab

WHERE matnr IN s_matnr.

IF sy-subrc <> 0.

MESSAGE exxx.

ENDIF.

but this is validating only the lower value, plse help me how validata upper (high) value.

it is allowing any kind of value in the upper range.

with regards

aaryaa

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
444

Hi Madhu,

If you want to validate a range, first of all it is not advisable, because purpose of a range would be lost. What if you have valid number 2 and 5.

Then user might enter S_MATNR as between 1 and 10.

The output should show 2 and 5, but since your program validates 1 and 10, it would not proceed

Anyway, if you still want to validate both then do this:


loop at s_matnr.
select single matnr from mara into v_matnr
where matnr eq s_matnr-low.
if sy-subrc ne 0. return error. endif.
check s_matnr-high is not initial.
select single matnr from mara into v_matnr
where matnr eq s_matnr-high.
if sy-subrc ne 0. return error. endif.
endloop.

Cheers,

Aditya

3 REPLIES 3
Read only

Former Member
0 Likes
445

Hi Madhu,

If you want to validate a range, first of all it is not advisable, because purpose of a range would be lost. What if you have valid number 2 and 5.

Then user might enter S_MATNR as between 1 and 10.

The output should show 2 and 5, but since your program validates 1 and 10, it would not proceed

Anyway, if you still want to validate both then do this:


loop at s_matnr.
select single matnr from mara into v_matnr
where matnr eq s_matnr-low.
if sy-subrc ne 0. return error. endif.
check s_matnr-high is not initial.
select single matnr from mara into v_matnr
where matnr eq s_matnr-high.
if sy-subrc ne 0. return error. endif.
endloop.

Cheers,

Aditya

Read only

Former Member
0 Likes
444

declare itab with header line.

also a variable say flag.

data flag.

AT SELECTION SCREEN ON s_matnr.
SELECT matnr
FROM mara
INTO  itab
WHERE matnr IN s_matnr.
endselect.
IF sy-subrc <> 0.
move 'X' to flag.
ENDIF.
if flag is not initial.
message
endif.

cheers,

Will.

Read only

Former Member
0 Likes
444

Try this,

AT SELECTION SCREEN ON s_matnr.

SELECT matnr

FROM mara

INTO TABLE itab

WHERE matnr in( s_matnr-low s_matnr-high )

or matnr between s_matnr-low and s_matnr-high .

IF sy-subrc 0.

MESSAGE exxx.

ENDIF.