‎2007 Sep 07 12:01 PM
HI EXPERTS .
COULD YOU PLZ TELL ME HOW TO FILTER THE DATA OF INTERNAL TABLE
BASED ON THE SELECTION SCREEN VALUES.
THE BELOW CODE IS NOT WORKING .
CAN YOU TELL ME WITH READ STATEMENT.
LOOP AT IT_MAIN1.
IF ( IT_MAIN1-TDLNR = S_TDLNR ) AND
(IT_MAIN1-ROUTE = S_ROUTE ).
APPEND IT_MAIN1 TO IT_FINAL.
ENDIF.
ENDLOOP.
THANKS
SURESH
‎2007 Sep 07 12:03 PM
<b>LOOP AT IT_MAIN1 WHERE TDLNR IN S_TDLNR AND
ROUTE IN S_ROUTE .</b>
APPEND IT_MAIN1 TO IT_FINAL.
ENDIF.
ENDLOOP.
‎2007 Sep 07 12:05 PM
HI THANKS TO YOUR RESPONCE.
BUT IN OUR PROJECT AS PER THE CODING STD'S ,
LOOP WITH WHERE CONDITION IS RESTRICTED .
COULD YOU PLZ GIVE ME ONE MORE IDEA.
THANKS
‎2007 Sep 07 12:05 PM
Hello,
Try this
LOOP AT IT_MAIN1 WHERE TDLNR = S_TDLNR AND ROUTE = S_ROUTE .
APPEND IT_MAIN1 TO IT_FINAL.
ENDLOOP.
Regards,
LIJO
‎2007 Sep 07 12:05 PM
Hello Suresh,
LOOP AT IT_MAIN1.
IF ( IT_MAIN1-TDLNR <b>IN</b> S_TDLNR ) AND
(IT_MAIN1-ROUTE <b>IN</b> S_ROUTE ).
APPEND IT_MAIN1 TO IT_FINAL.
ENDIF.
ENDLOOP.
Select option is an internal table with for fields: sign, option, low and high.
you need to check the value in the internal table.
U can use IT_MAIN1-TDLNR = S_TDLNR-LOW. (If you enter the value in left field of select option.), But it is not suggestable.
Or else.. U can validate this in loop statement itself.
LOOP AT IT_MAIN1 where IT_MAIN1-TDLNR <b>IN</b> S_TDLNR AND
IT_MAIN1-ROUTE <b>IN</b> S_ROUTE .
APPEND IT_MAIN1 TO IT_FINAL.
ENDLOOP.
Reward If Helpful.
Regards
--
Sasidhar Reddy Matli.
Message was edited by:
Sasidhar Reddy Matli
‎2007 Sep 07 12:06 PM
Hi Sursh ,
Try following code ,
LOOP AT IT_MAIN1.
IF ( IT_MAIN1-TDLNR = S_TDLNR-LOW OR
IT_MAIN1-TDLNR = S_TDLNR-HIGH )
AND
(IT_MAIN1-ROUTE = S_ROUTE-LOW OR
IT_MAIN1-ROUTE = S_ROUTE-HIGH ).
APPEND IT_MAIN1 TO IT_FINAL.
ENDIF.
ENDLOOP.
‎2007 Sep 07 12:09 PM
LOOP AT IT_MAIN1.
<b>read table s_tdlnr with key tdlnr = it_main1-tdlnr.</b>
if sy-subrc eq 0.
<b>read table s_route with key route = it_main1-route.</b>
if sy-subrc eq 0.
APPEND IT_MAIN1 TO IT_FINAL.
ENDIF.
endif.
ENDLOOP.
‎2007 Sep 07 12:14 PM
hi,
try like this,
THIS BELOW CODE ONLY WORKS WHEN IT_MAIN1 IS A INTERNAL TABLE WITH HEADER LINE.
LOOP AT IT_MAIN1 WHERE TDLNR = S_TDLNR AND ROUTE = S_ROUTE .
IF SY-SUBRC EQ 0.
APPEND IT_MAIN1 TO IT_FINAL.
ELSE.
MESSAGE 'NO RECORDS FOUND' TYPE 'I'.
ENDIF.
ENDLOOP.
IF HELPFUL REWARD SOME POINTS.
WITH REGARDS,
SURESH ALURI.
‎2007 Sep 07 12:24 PM
Hi Suresh,
For select-options, you should use IN instead of equal sign.
Try this.
LOOP AT IT_MAIN1.
IF ( IT_MAIN1-TDLNR <b>IN</b> S_TDLNR ) AND
(IT_MAIN1-ROUTE <b>IN</b> S_ROUTE ).
APPEND IT_MAIN1 TO IT_FINAL.
ENDIF.
ENDLOOP.
or you can try using below code.
DELETE IT_MAIN1
WHERE TDLNR NOT IN S_TDLNR
OR ROUTE NOT IN S_ROUTE.
APPEND LINES OF IT_MAIN1 TO IT_FINAL.