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

problem in fetching the code for the line item

Former Member
0 Likes
739

Hi,

I am working on a report in which to display the values corresponding to the line item of a PO.

For, ex, if there are 3 line items 10,140,150 and their condition values such zing,zgrd,zbrd are the condition types consist of different values depending on the line item i.e. 10,140,150.

My problem is when i execute the code the data of 1st line item is correctly fetched but the rest 2 line item data is pasted as it is. only the main pricre changes and the code for zing,zbrd,zgrd remains same as it is in the first line item 10.

plzz proivde me guide lines how to solve this problem.

Here's d code:-


DATA : vspl LIKE konv-kbetr.
DATA : vspl1 LIKE konv-kbetr.
DATA : vkwert LIKE konv-kwert.
DATA: VSPL2 LIKE KONV-kbetr.    "ZING COST
DATA: VSPL3 LIKE KONV-kbetr.    "ZGRD COST
DATA: VSPL4 LIKE KONV-kbetr.    "ZBDL COST

LOOP AT item.
    SELECT kbetr FROM konv INTO item-rate  WHERE knumv = header-knumv AND kposn = item-ebelp
     AND ( kschl = 'ZP00' OR kschl = 'P001' OR kschl = 'PBXX' OR kschl = 'P000' OR kschl = 'PB00' OR kschl = 'ZING' OR kschl = 'ZBRD' OR kschl = 'ZGRD').
      MODIFY item.
   ENDSELECT.
  ENDLOOP.

  LOOP AT item.
    SELECT kwert FROM konv INTO vkwert  WHERE knumv = header-knumv AND kposn = item-ebelp
    AND ( kschl = 'ZP00' OR kschl = 'P001' OR kschl = 'PBXX' OR kschl = 'P000' OR kschl = 'PB00' OR kschl = 'ZING' OR kschl = 'ZBRD' OR kschl = 'ZGRD').
    ENDSELECT.
  ENDLOOP.

 CLEAR : vspl , vspl1 , vspl2 , vspl3 , vspl4.

  LOOP AT item.

    SELECT kbetr FROM konv INTO vspl  WHERE knumv = header-knumv AND kposn = item-ebelp   
   AND  kschl = 'ZCOM'.
    ENDSELECT.

    SELECT kbetr FROM konv INTO vspl1 WHERE knumv = header-knumv AND kposn = item-ebelp 
    AND  kschl = 'ZBR1'.
    ENDSELECT.

*******************Begin - new code added on 14.01.2009******************
    SELECT kbetr FROM konv INTO vspl2 WHERE knumv = header-knumv AND kposn = item-ebelp 
    AND  kschl = 'ZING'.
    ENDSELECT.
    
   SELECT kbetr FROM konv INTO vspl3 WHERE knumv = header-knumv AND kposn = item-ebelp 
   AND  kschl = 'ZGRD'.
    ENDSELECT.
   
   SELECT kbetr FROM konv INTO vspl4 WHERE knumv = header-knumv AND kposn = item-ebelp 
   AND  kschl = 'ZBRL'.
   ENDSELECT.
*******************End - new code added on 14.01.2009******************
  ENDLOOP.

  LOOP AT item.
    item-rate  = item-rate + vspl + vspl1.
*******************Begin - new code added on 14.01.2009******************
    item-rate1 = item-rate1 + vspl2.
    item-rate2 = item-rate2 + vspl3.
    item-rate3 = item-rate3 + vspl4.
********************End - new code added on 14.01.2009*******************
    MODIFY item INDEX sy-tabix TRANSPORTING rate.
*******************Begin -11`` new code added on 14.01.2009******************
    MODIFY item INDEX sy-tabix TRANSPORTING rate1.
    MODIFY item INDEX sy-tabix TRANSPORTING rate2.
    MODIFY item INDEX sy-tabix TRANSPORTING rate3.
*********************End - new code added on 14.01.2009******************
  ENDLOOP.

PLZ PROIVDE ME GUIDLINES HOW TO SOLVE THIS PROBLEM .

Edited by: ricx .s on Jan 19, 2009 10:16 AM

Edited by: Vijay Babu Dudla on Jan 19, 2009 5:22 AM

Hi,

I am working on a report in which to display the values corresponding to the line item of a PO.

For, ex, if there are 3 line items 10,140,150 and their condition values such zing,zgrd,zbrd are the condition types consist of different values depending on the line item i.e. 10,140,150.

My problem is when i execute the code the data of 1st line item is correctly fetched but the rest 2 line item data is pasted as it is. only the main pricre changes and the code for zing,zbrd,zgrd remains same as it is in the first line item 10.

plzz proivde me guide lines how to solve this problem.

Here's d code:-


DATA : vspl LIKE konv-kbetr.
DATA : vspl1 LIKE konv-kbetr.
DATA : vkwert LIKE konv-kwert.
DATA: VSPL2 LIKE KONV-kbetr.    "ZING COST
DATA: VSPL3 LIKE KONV-kbetr.    "ZGRD COST
DATA: VSPL4 LIKE KONV-kbetr.    "ZBDL COST

LOOP AT item.
    SELECT kbetr FROM konv INTO item-rate  WHERE knumv = header-knumv AND kposn = item-ebelp
     AND ( kschl = 'ZP00' OR kschl = 'P001' OR kschl = 'PBXX' OR kschl = 'P000' OR kschl = 'PB00' OR kschl = 'ZING' OR kschl = 'ZBRD' OR kschl = 'ZGRD').
      MODIFY item.
   ENDSELECT.
  ENDLOOP.

  LOOP AT item.
    SELECT kwert FROM konv INTO vkwert  WHERE knumv = header-knumv AND kposn = item-ebelp
    AND ( kschl = 'ZP00' OR kschl = 'P001' OR kschl = 'PBXX' OR kschl = 'P000' OR kschl = 'PB00' OR kschl = 'ZING' OR kschl = 'ZBRD' OR kschl = 'ZGRD').
    ENDSELECT.
  ENDLOOP.

 CLEAR : vspl , vspl1 , vspl2 , vspl3 , vspl4.

  LOOP AT item.

    SELECT kbetr FROM konv INTO vspl  WHERE knumv = header-knumv AND kposn = item-ebelp   
   AND  kschl = 'ZCOM'.
    ENDSELECT.

    SELECT kbetr FROM konv INTO vspl1 WHERE knumv = header-knumv AND kposn = item-ebelp 
    AND  kschl = 'ZBR1'.
    ENDSELECT.

*******************Begin - new code added on 14.01.2009******************
    SELECT kbetr FROM konv INTO vspl2 WHERE knumv = header-knumv AND kposn = item-ebelp 
    AND  kschl = 'ZING'.
    ENDSELECT.
    
   SELECT kbetr FROM konv INTO vspl3 WHERE knumv = header-knumv AND kposn = item-ebelp 
   AND  kschl = 'ZGRD'.
    ENDSELECT.
   
   SELECT kbetr FROM konv INTO vspl4 WHERE knumv = header-knumv AND kposn = item-ebelp 
   AND  kschl = 'ZBRL'.
   ENDSELECT.
*******************End - new code added on 14.01.2009******************
  ENDLOOP.

  LOOP AT item.
    item-rate  = item-rate + vspl + vspl1.
*******************Begin - new code added on 14.01.2009******************
    item-rate1 = item-rate1 + vspl2.
    item-rate2 = item-rate2 + vspl3.
    item-rate3 = item-rate3 + vspl4.
********************End - new code added on 14.01.2009*******************
    MODIFY item INDEX sy-tabix TRANSPORTING rate.
*******************Begin -11`` new code added on 14.01.2009******************
    MODIFY item INDEX sy-tabix TRANSPORTING rate1.
    MODIFY item INDEX sy-tabix TRANSPORTING rate2.
    MODIFY item INDEX sy-tabix TRANSPORTING rate3.
*********************End - new code added on 14.01.2009******************
  ENDLOOP.

PLZ PROIVDE ME GUIDLINES HOW TO SOLVE THIS PROBLEM .

Edited by: ricx .s on Jan 19, 2009 10:16 AM

Edited by: Vijay Babu Dudla on Jan 19, 2009 5:22 AM

3 REPLIES 3
Read only

Former Member
0 Likes
684

Hi,

Clear item.

Regards,

Prashant.

Read only

0 Likes
684

hi,

where do i use clear statement in item ? i mean to say that where should i do it either in the variables or in select statement. actually i am modifying the code which was created by someone else.

Read only

Former Member
0 Likes
684

Hello,

Why are you looping at the same internal table so many times, you could probably perform everything within one loop instead.


DATA : vspl LIKE konv-kbetr.
DATA : vspl1 LIKE konv-kbetr.
DATA : vkwert LIKE konv-kwert.
DATA: VSPL2 LIKE KONV-kbetr. "ZING COST
DATA: VSPL3 LIKE KONV-kbetr. "ZGRD COST
DATA: VSPL4 LIKE KONV-kbetr. "ZBDL COST

field-symbols <fs>.

LOOP AT item assigning <fs>.

SELECT kbetr FROM konv INTO <fs>-rate WHERE knumv = header-knumv AND kposn = item-ebelp
AND ( kschl = 'ZP00' OR kschl = 'P001' OR kschl = 'PBXX' OR kschl = 'P000' OR kschl = 'PB00' OR kschl = 'ZING' OR kschl = 'ZBRD' OR kschl = 'ZGRD').
MODIFY item.
ENDSELECT.



SELECT kwert FROM konv INTO vkwert WHERE knumv = header-knumv AND kposn = item-ebelp
AND ( kschl = 'ZP00' OR kschl = 'P001' OR kschl = 'PBXX' OR kschl = 'P000' OR kschl = 'PB00' OR kschl = 'ZING' OR kschl = 'ZBRD' OR kschl = 'ZGRD').
ENDSELECT.
ENDLOOP.

CLEAR : vspl , vspl1 , vspl2 , vspl3 , vspl4.



SELECT kbetr FROM konv INTO vspl WHERE knumv = header-knumv AND kposn = item-ebelp 
AND kschl = 'ZCOM'.
ENDSELECT.

SELECT kbetr FROM konv INTO vspl1 WHERE knumv = header-knumv AND kposn = item-ebelp 
AND kschl = 'ZBR1'.
ENDSELECT.

*******************Begin - new code added on 14.01.2009******************
SELECT kbetr FROM konv INTO vspl2 WHERE knumv = header-knumv AND kposn = item-ebelp 
AND kschl = 'ZING'.
ENDSELECT.

SELECT kbetr FROM konv INTO vspl3 WHERE knumv = header-knumv AND kposn = item-ebelp 
AND kschl = 'ZGRD'.
ENDSELECT.


SELECT kbetr FROM konv INTO vspl4 WHERE knumv = header-knumv AND kposn = item-ebelp 
AND kschl = 'ZBRL'.
ENDSELECT.
*******************End - new code added on 14.01.2009******************


<fs>-rate = <fs>-rate + vspl + vspl1.
*******************Begin - new code added on 14.01.2009******************
<fs>-rate1 = item-rate1 + vspl2.
<fs>-rate2 = item-rate2 + vspl3.
<fs>-rate3 = item-rate3 + vspl4.

ENDLOOP.

Also, use field-symbols and use loop at itab assigning addition so that you can directly change the contents of the table without using modify statment.

regards,

Advait