2009 Jan 19 9:00 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
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
2009 Jan 19 9:29 AM
2009 Jan 19 9:47 AM
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.
2009 Jan 19 9:30 AM
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
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |