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

Logic correction

Former Member
0 Likes
460

Dear All

I am struck in the following logic. I have a set of GL Accounts whose values are getting populated

in table gt_glaccnts. These values are read from table gt_glaccnts and popultaed in the form of range

gr_glrange_set. Now, the selection screen has a GL account field. If this field is populated at run time,

I need to consider only that range from gt_glaccnts which has this GL, deleting all other ranges. The logic

written below is same. But this is not working. Please suggest where it is going wrong.

Thanks

M A

IF NOT so_saknr[] IS INITIAL.

LOOP AT gt_glaccnts.

gr_glrange_set-sign = 'I'.

gr_glrange_set-option = 'EQ'.

gr_glrange_set-low = gt_glaccnts-from.

gr_glrange_set-high = gt_glaccnts-to.

loop at so_saknr.

if so_saknr-low in gr_glrange_set.

APPEND gr_glrange_set.

endif.

endloop.

ENDLOOP.

else.

LOOP AT gt_glaccnts.

gr_glrange_set-sign = 'I'.

gr_glrange_set-option = 'EQ'.

gr_glrange_set-low = gt_glaccnts-from.

gr_glrange_set-high = gt_glaccnts-to.

APPEND gr_glrange_set.

ENDLOOP.

endif.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
439

Try like this:

LOOP AT gt_glaccnts.

gr_glrange_set-sign = 'I'.

gr_glrange_set-option = 'EQ'.

gr_glrange_set-low = gt_glaccnts-from.

gr_glrange_set-high = gt_glaccnts-to.

loop at so_saknr.

<b>if so_saknr-low <= gt_glaccnts-to and so_saknr-low >= gt_glaccnts-from.</b>

APPEND gr_glrange_set.

endif.

endloop.

ENDLOOP.

3 REPLIES 3
Read only

Former Member
0 Likes
439

if so_saknr-low in gr_glrange_set.

may this line is wrong try giving if so_saknr-low in gr_glrange_set-low. or try using eq

or use a local variable inside the first loop...

Read only

Former Member
0 Likes
440

Try like this:

LOOP AT gt_glaccnts.

gr_glrange_set-sign = 'I'.

gr_glrange_set-option = 'EQ'.

gr_glrange_set-low = gt_glaccnts-from.

gr_glrange_set-high = gt_glaccnts-to.

loop at so_saknr.

<b>if so_saknr-low <= gt_glaccnts-to and so_saknr-low >= gt_glaccnts-from.</b>

APPEND gr_glrange_set.

endif.

endloop.

ENDLOOP.

Read only

Former Member
0 Likes
439

Hi,

IF NOT so_saknr[] IS INITIAL.

LOOP AT gt_glaccnts.
gr_glrange_set-sign = 'I'.
gr_glrange_set-option = 'EQ'.
gr_glrange_set-low = gt_glaccnts-from.
gr_glrange_set-high = gt_glaccnts-to.
read table so_saknr with key so_saknr-low in gr_glrange_set.
if sy-subrc = 0.
APPEND gr_glrange_set.
endif.
ENDLOOP.

else.

LOOP AT gt_glaccnts.
gr_glrange_set-sign = 'I'.
gr_glrange_set-option = 'EQ'.
gr_glrange_set-low = gt_glaccnts-from.
gr_glrange_set-high = gt_glaccnts-to.
APPEND gr_glrange_set.
ENDLOOP.

endif.

Regards

Sudheer