Skip to Content
0
Former Member
Jun 06, 2009 at 11:47 AM

Jusitification of IF statement in code

57 Views

Hi,

I am working on a code win which i have to display that if the storage location is scrap i.e.(SC01,SC02,SC03,SC04) then it will display the data other wise it will make MGEIG EQ 0.

i am facing the problem at if statement where i had mentioned that if this storage location is not of scrap then it should be zero but it is nod ing so.

Please provide me guidelines as how do i achieve this functionality in my code.

here's the code:-


SELECT A~PRUEFLOS B~MBLNR C~LGORT FROM QALS AS A
INNER JOIN QAMB AS B ON B~PRUEFLOS = A~PRUEFLOS "AND B~ZEILE = A~ZEILE
INNER JOIN MSEG AS C ON C~MBLNR = B~MBLNR AND C~MJAHR = B~MJAHR
INTO  TABLE ITSC "(l_PRUEFLOS , l_MBLNR, l_LGORT)
FOR ALL ENTRIES IN STIT
WHERE A~PRUEFLOS EQ STIT-PRUEFLOS." AND ( LGORT = 'SC01' OR LGORT = 'SC02' OR LGORT = 'SC03' OR LGORT = 'SC04' )." AND A~ZEILE EQ STIT-ZEILE. AND ( LGORT = 'SC01' OR LGORT = 'SC02' OR LGORT = 'SC03' OR LGORT = 'SC04' ).

SORT ITSC BY PRUEFLOS.
ITSC1[] = ITSC[].
SORT ITSC1 BY LGORT.

LOOP AT STIT.

 IF STIT-MGEIG GE 0.
*LOOP AT ITSC1 WHERE PRUEFLOS EQ STIT-PRUEFLOS.

 READ TABLE ITSC1 WITH KEY PRUEFLOS = STIT-PRUEFLOS.

  w_tabx = sy-tabix.
  L_lgort = ITSC1-LGORT.

IF L_LGORT NE 'SC01' OR L_LGORT NE 'SC02' OR L_LGORT NE 'SC03' OR l_LGORT NE 'SC04' .
* IF ( L_LGORT NE  'SC01' OR 'SC02' OR 'SC03' OR 'SC04' ).

  STIT-MGEIG = 0.

  MODIFY stit INDEX w_tabx  TRANSPORTING mgeig.

endif.

*ENDLOOP.
ENDIF.
modify stit.
clear w_tabx.
clear l_LGORT.
ENDLOOP.

SORT STIT BY MATNR MGEIG.

LOOP AT STIT.
  WRITE:/ STIT-PRUEFLOS,STIT-CHARG,STIT-LGORTCHARG,STIT-MGEIG.
ENDLOOP.