‎2007 Nov 14 1:30 PM
Hi all.
I have the fallowing problem:
One internal table it_vbrp_month with fields MATNR WERKS MONTH QUANTITY LIFNR.
Another internal table it_mara with fields MATNR WERKS LIFNR.
The difference between these 2 tables is:
Number of materials in it_mara is allways equal or greater than it_vbrp_month.
I have to populate another table (it_final) with information from it_vbrp_month but i have to insert also the materials that were not found in IT_VBRP_MONTH. ( 0 quantity) and in quantity field to put 0 amount.
IT_FINAL has MATNR WERKS MONTH LIFNR and other fields.
How can i do that?
Thank you,
Cristian.
‎2007 Nov 14 1:55 PM
Hmm...sorry if i seem a little bit confused. Perhaps is better to put the tables and code here.
TABLE it_vbrp_luna
matnr LIKE vbrp-matnr,
werks LIKE vbrp-werks,
matkl LIKE vbrp-matkl,
luna(2) TYPE c,
denumire_luna LIKE t247-ltx,
an(4) TYPE c,
fkimg LIKE vbrp-fkimg,
netwr LIKE vbrp-netwr,
marja_valorica_luna TYPE p DECIMALS 2,
marja_procent_luna TYPE p DECIMALS 2.
TABLE it_mara
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
matkl LIKE mara-matkl,
werks LIKE marc-werks,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1.
TABLE it_final
matnr LIKE vbrp-matnr,
werks LIKE vbrp-werks,
matkl LIKE vbrp-matkl,
maktx LIKE makt-maktx,
werks LIKE marc-werks,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1.
luna(2) TYPE c, (month)
denumire_luna LIKE t247-ltx,
an(4) TYPE c, (year)
fkimg LIKE vbrp-fkimg,
netwr LIKE vbrp-netwr,
marja_valorica_luna TYPE p DECIMALS 2,
marja_procent_luna TYPE p DECIMALS 2.
So. IT_FINAL is the final table before ALV display.
I populate IT_FINAL with data from IT_VBRP_LUNA.
But...there are materials in it_mara that are not in it_vbrp_luna.
I have to insert those articles also in IT_FINAL and the quantity and other information regarding cost of good sold, etc are 0.
The code is the following:
LOOP AT it_vbrp_luna INTO wa_vbrp_luna.
wa_final-luna = wa_vbrp_luna-denumire_luna.
wa_final-anul = wa_vbrp_luna-an.
wa_final-matnr = wa_vbrp_luna-matnr.
wa_final-werks = wa_vbrp_luna-werks.
wa_final-matkl = wa_vbrp_luna-matkl.
wa_final-umsgvo = wa_vbrp_luna-netwr.
wa_final-vkmng = wa_vbrp_luna-fkimg.
wa_final-marja_valorica = wa_vbrp_luna-marja_valorica_luna.
wa_final-marja_procent = wa_vbrp_luna-marja_procent_luna.
APPEND wa_final TO it_final.
CLEAR wa_final.
ENDLOOP.
All materials from it_vbrp_luna are inserted.
Now i have to insert materials from it_mara that are not in it_vbrp_luna.
Here, i am stuck.
Thank you.
‎2007 Nov 14 1:35 PM
Hi Cristian,
do like this
loop at it_mara into wa_mara.
wa_final-mara = wa_mara-matnr.
read table it_vbrp_month into wa_vbrp_month with key matnr = wa_mara-matnr.
if sy-subrc = 0.
move all remaining fields to wa_final.
endif.
append wa_final to it_final.
clear wa_final.
endloop.
Reward points if it helps,
Satish
‎2007 Nov 14 1:36 PM
Hi,
Use
Move-corresponding it_vbrp_month to it_final.
if you use this key word where you want to assign the values, then the identical named fields' values of one itab can be transferred to other itab easily.
Thanks.
‎2007 Nov 14 1:39 PM
Hi,
Try This out ,
Surely It will help you....
DATA : wa_final LIKE it_final. "Create a work area.
LOOP AT it_vbrp_month.
READ TABLE it_mara WITH KEY matnr = t_vbrp_month-matnr BINARY SEARCH.
IF sy-subrc <> 0.
wa_final-matnr = it_mara-matnr.
*write all fields one by one
at the end
Append wa_final to it_final.
endif.
wa_final-matnr = it_vbrp_month-matnr.
*write all fields one by one
at the end
Append wa_final to it_final.
endloop.
Ask for any doubt.
<b>Reward if useful.
Thanks
Rohit </b>
‎2007 Nov 14 1:55 PM
Hmm...sorry if i seem a little bit confused. Perhaps is better to put the tables and code here.
TABLE it_vbrp_luna
matnr LIKE vbrp-matnr,
werks LIKE vbrp-werks,
matkl LIKE vbrp-matkl,
luna(2) TYPE c,
denumire_luna LIKE t247-ltx,
an(4) TYPE c,
fkimg LIKE vbrp-fkimg,
netwr LIKE vbrp-netwr,
marja_valorica_luna TYPE p DECIMALS 2,
marja_procent_luna TYPE p DECIMALS 2.
TABLE it_mara
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
matkl LIKE mara-matkl,
werks LIKE marc-werks,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1.
TABLE it_final
matnr LIKE vbrp-matnr,
werks LIKE vbrp-werks,
matkl LIKE vbrp-matkl,
maktx LIKE makt-maktx,
werks LIKE marc-werks,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1.
luna(2) TYPE c, (month)
denumire_luna LIKE t247-ltx,
an(4) TYPE c, (year)
fkimg LIKE vbrp-fkimg,
netwr LIKE vbrp-netwr,
marja_valorica_luna TYPE p DECIMALS 2,
marja_procent_luna TYPE p DECIMALS 2.
So. IT_FINAL is the final table before ALV display.
I populate IT_FINAL with data from IT_VBRP_LUNA.
But...there are materials in it_mara that are not in it_vbrp_luna.
I have to insert those articles also in IT_FINAL and the quantity and other information regarding cost of good sold, etc are 0.
The code is the following:
LOOP AT it_vbrp_luna INTO wa_vbrp_luna.
wa_final-luna = wa_vbrp_luna-denumire_luna.
wa_final-anul = wa_vbrp_luna-an.
wa_final-matnr = wa_vbrp_luna-matnr.
wa_final-werks = wa_vbrp_luna-werks.
wa_final-matkl = wa_vbrp_luna-matkl.
wa_final-umsgvo = wa_vbrp_luna-netwr.
wa_final-vkmng = wa_vbrp_luna-fkimg.
wa_final-marja_valorica = wa_vbrp_luna-marja_valorica_luna.
wa_final-marja_procent = wa_vbrp_luna-marja_procent_luna.
APPEND wa_final TO it_final.
CLEAR wa_final.
ENDLOOP.
All materials from it_vbrp_luna are inserted.
Now i have to insert materials from it_mara that are not in it_vbrp_luna.
Here, i am stuck.
Thank you.
‎2007 Nov 14 2:05 PM
Hi,
Try This out ,
Surely It will help you....
LOOP AT it_vbrp_month into wa_vbrp_month.
READ TABLE it_mara WITH KEY matnr = wa_vbrp_month-matnr BINARY SEARCH.
IF sy-subrc <> 0.
wa_final-luna = it_mara-denumire_luna.
wa_final-anul = it_mara-an.
wa_final-matnr = it_mara-matnr.
wa_final-werks = it_mara-werks.
wa_final-matkl =it_mara-matkl.
wa_final-umsgvo = it_mara-netwr.
wa_final-vkmng = it_mara-fkimg.
wa_final-marja_valorica = it_mara-marja_valorica_luna.
wa_final-marja_procent = it_mara-marja_procent_luna
Append wa_final to it_final.
else.
wa_final-matnr = it_vbrp_month-matnr.
wa_final-luna = wa_vbrp_luna-denumire_luna.
wa_final-anul = wa_vbrp_luna-an.
wa_final-matnr = wa_vbrp_luna-matnr.
wa_final-werks = wa_vbrp_luna-werks.
wa_final-matkl = wa_vbrp_luna-matkl.
wa_final-umsgvo = wa_vbrp_luna-netwr.
wa_final-vkmng = wa_vbrp_luna-fkimg.
wa_final-marja_valorica = wa_vbrp_luna-marja_valorica_luna.
wa_final-marja_procent = wa_vbrp_luna-marja_procent_luna
Append wa_final to it_final.
endif.
endloop.
finaly u have it_final with all fields from it_vbrp_month and all fields from it_mara which are not in it_vbrp_month.
Tell me if nay problem.
Reward if useful
Rohit G