2007 Jun 26 7:16 AM
hi
i m getting problem in loop.
in loop itab1.
i want to select data from konv i compare konv~knumv = itab1-knumv.
but in itab1-knumv no data is cmoing .
please help me.
LOOP AT ITAB.
READ TABLE ITAB1 WITH KEY EBELN = ITAB-EBELN.
IF ITAB1-EBELN = ITAB-EBELN.
IF sy-subrc eq 0.
ITAB1-EBELN = ITAB-EBELN.
ITAB1-LIFNR = ITAB-LIFNR.
ITAB1-EBELP = ITAB-EBELP.
ITAB1-BELNR = ITAB-BELNR.
ITAB1-KNUMV = ITAB-KNUMV.
ITAB1-NAME1 = ITAB-NAME1.
ITAB1-NAME2 = ITAB-NAME2.
ITAB1-GJAHR = ITAB-GJAHR.
modify itab1 index sy-tabix.
endif.
loop at itab1.
<b>select * from konv into corresponding fields of itab
for all entries in itab1
where knumv = itab1-knumv and
kposn = itab1-ebelp.</b>
READ TABLE ITAB1 .
WITH KEY KNUMV = ITAB-KNUMV.
IF ITAB-KSCHL = 'NAVS' OR ITAB-KSCHL = 'NAVM'.
ITAB1-KBETR = ITAB-KBETR.
modify ITAB1 transporting KBETR
where KNUMV = ITAB1-KNUMV .
ELSEIF ITAB-KSCHL = 'FRA1' OR ITAB-KSCHL = 'FRC1'
OR ITAB5-KSCHL = 'FRB1'.
ITAB1-KWERT = ITAB-KWERT.
modify ITAB1 transporting KBETR
where KNUMV = ITAB1-KNUMV .
ENDIF.
modify itab.
endselect.
ENDLOOP.
endloop.
Thanks in advanced.
2007 Jun 26 7:22 AM
Hi
First fetch the data from EKKO and EKPo into ITAB
then
if not itab[] is initial.
select * from KONV into table ITAb1
for all entries in itab
where knumv = itab-knumv and
kposn = itab-ebelp.
endif.
loop at itab.
move-corresponding itab Data to final ITAB3.
read table itab1 with key knumv = itab-knumv
kposn = itab-ebelp.
if sy-subrc = 0.
<move the data to final ITAB3>
endif.
append ITAb3.
cklear ITAb3.
endloop.
use the ITAB3 table for your data display.
Reward points for useful Answers
Regards
Anji
Hi
First fetch the data from EKKO and EKPo into ITAB
then
if not itab[] is initial.
select * from KONV into table ITAb1
for all entries in itab
where knumv = itab-knumv and
kposn = itab-ebelp.
endif.
loop at itab.
move-corresponding itab Data to final ITAB3.
read table itab1 with key knumv = itab-knumv
kposn = itab-ebelp.
if sy-subrc = 0.
<move the data to final ITAB3>
endif.
append ITAb3.
cklear ITAb3.
endloop.
use the ITAB3 table for your data display.
Reward points for useful Answers
Regards
Anji
2007 Jun 26 7:18 AM
Hi,
Sepeare the two loops
You can construct the itab1 first in one loop and then you can run a loop over the itab1 to execute another loop.
Regards,
Sesh
2007 Jun 26 7:21 AM
Hi,
You are looping itab and inside that you are writing the contents of knov into the same itab.That part needs to be changed.
select * from konv into corresponding fields of itab
for all entries in itab1
where knumv = itab1-knumv and
kposn = itab1-ebelp.
Moreover you are using for all entries for the entire itab1.So no need of loop at itab1 before that.
2007 Jun 26 7:21 AM
hi,
write ur code like this,
add <b>table</b> keyword in select statement.
if not itab1[] is initial.
select * from konv into corresponding fields of <b>table</b> itab
for all entries in itab1
where knumv = itab1-knumv and
kposn = itab1-ebelp.
endif.
reward points if useful,
regards,
seshu.
2007 Jun 26 7:22 AM
Hi
First fetch the data from EKKO and EKPo into ITAB
then
if not itab[] is initial.
select * from KONV into table ITAb1
for all entries in itab
where knumv = itab-knumv and
kposn = itab-ebelp.
endif.
loop at itab.
move-corresponding itab Data to final ITAB3.
read table itab1 with key knumv = itab-knumv
kposn = itab-ebelp.
if sy-subrc = 0.
<move the data to final ITAB3>
endif.
append ITAb3.
cklear ITAb3.
endloop.
use the ITAB3 table for your data display.
Reward points for useful Answers
Regards
Anji
2007 Jun 26 9:02 AM
HI ANJI ,
AS U TOLD I DID BUT WHAT IS HAPPENING .
I AM SELECTING DATA FROM KONV ON BASED ON ITAB-KNUMV AND ITAB-EBEPL.
IN KONV TABLE AGAINST KNUMV AND EBELP FOR ONE LINE ITEM NUMBER OF KSCHL CONDITION SO HERE WHAT IS HAPPENING
NO DATA IS COMING FOR KONV-KBETR AND KONV-KWERT.
CODE IS BELOW .
PLEASE HELP ME .
I WILL BE VERY THANKFULL TO U .
DATA: BEGIN OF itab OCCURS 0,
EBELN LIKE EKKO-EBELN,
KNUMV LIKE EKKO-KNUMV,
LIFNR LIKE EKKO-LIFNR,
EBELP LIKE KONV-KPOSN,
NETWR LIKE EKPO-NETWR,
NETPR LIKE EKPO-NETPR,
END OF itab.
DATA: BEGIN OF ITAB3 OCCURS 0,
EBELN LIKE EKKO-EBELN,
KNUMV LIKE EKKO-KNUMV,
LIFNR LIKE EKKO-LIFNR,
EBELP LIKE EKPO-EBELP,
NETWR LIKE EKPO-NETWR,
NETPR LIKE EKPO-NETPR,
KSCHL LIKE KONV-KSCHL,
KBETR LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT,
END OF ITAB3.
DATA: BEGIN OF ITAB1 OCCURS 0,
KPOSN LIKE KONV-KPOSN,
KNUMV LIKE KONV-KNUMV,
KSCHL LIKE KONV-KSCHL,
KBETR LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT, " THIS IS FOR FREIGHT
END OF ITAB1.
PERFORM GET_DATA.
PERFORM CALL_ALV_GRID.
FORM GET_DATA.
SELECT AEBELN ALIFNR AKNUMV BEBELP BNETWR BNETPR
FROM EKKO AS A
INNER JOIN EKPO AS B ON AEBELN = BEBELN
INTO CORRESPONDING FIELDS OF TABLE itab
WHERE B~BUKRS = 'GSPL' .
if not itab[] is initial.
select * from KONV into CORRESPONDING FIELDS OF TABLE ITAB1
for all entries in itab
where knumv = itab-knumv and
kposn = itab-ebelp.
endif.
loop at itab.
ITAB3-EBELN = ITAB-EBELN.
ITAB3-EBELP = ITAB-EBELP.
ITAB3-KNUMV = ITAB-KNUMV.
ITAB3-LIFNR = ITAB-LIFNR.
ITAB3-NETWR = ITAB-NETWR.
ITAB3-NETPR = ITAB-NETPR.
read table itab1 with key knumv = itab-knumv
kposn = itab-ebelp.
if sy-subrc = 0.
ITAB3-KSCHL = ITAB1-KSCHL.
IF ITAB3-KSCHL = 'NAVS' OR ITAB3-KSCHL = 'NAVM'.
ITAB3-KBETR = ITAB3-KBETR.
modify ITAB3 transporting KBETR
where KNUMV = ITAB3-KNUMV AND EBELP = ITAB3-EBELP .
ELSEIF ITAB3-KSCHL = 'FRA1' OR ITAB3-KSCHL = 'FRC1' OR
ITAB3-KSCHL = 'FRB1'.
ITAB3-KWERT = ITAB3-KWERT.
modify ITAB3 transporting KWERT
where KNUMV = ITAB3-KNUMV AND EBELP = ITAB3-EBELP .
ENDIF.
endif.
append itab3.
clear itab3.
endloop.
THANKS. PLEASE HELP
2007 Jun 26 8:05 AM
hi laxman,
LOOP AT ITAB.
READ TABLE ITAB1 WITH KEY EBELN = ITAB-EBELN.
IF ITAB1-EBELN = ITAB-EBELN.
IF sy-subrc eq 0.
ITAB1-EBELN = ITAB-EBELN.
ITAB1-LIFNR = ITAB-LIFNR.
ITAB1-EBELP = ITAB-EBELP.
ITAB1-BELNR = ITAB-BELNR.
ITAB1-KNUMV = ITAB-KNUMV.
ITAB1-NAME1 = ITAB-NAME1.
ITAB1-NAME2 = ITAB-NAME2.
ITAB1-GJAHR = ITAB-GJAHR.
modify itab1 index sy-tabix.
endif.
<<< ENDLOOP <<
loop at itab1.
<<<< APPPENDING CORRESPONIDG FIELDS OF <<<<<<
select * from konv into corresponding fields of itab
for all entries in itab1
where knumv = itab1-knumv and
kposn = itab1-ebelp.
READ TABLE ITAB1 .
WITH KEY KNUMV = ITAB-KNUMV.
IF ITAB-KSCHL = 'NAVS' OR ITAB-KSCHL = 'NAVM'.
ITAB1-KBETR = ITAB-KBETR.
modify ITAB1 transporting KBETR
where KNUMV = ITAB1-KNUMV .
ELSEIF ITAB-KSCHL = 'FRA1' OR ITAB-KSCHL = 'FRC1'
OR ITAB5-KSCHL = 'FRB1'.
ITAB1-KWERT = ITAB-KWERT.
modify ITAB1 transporting KBETR
where KNUMV = ITAB1-KNUMV .
ENDIF.
modify itab.
endselect.
ENDLOOP.
<<< DELETE ENDLOOP HERE >>>>endloop.
STILL PROBLEM PLEAS GET BACK TO ME
REWARD IF USEFUL
THANKS
NAVEEN
| User | Count |
|---|---|
| 5 | |
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |