‎2008 Jul 19 12:18 PM
Hi friends,
I have folowing code....
I want to have all datas in my final itab.
TYPES:BEGIN OF ty_tab,
bill_no TYPE zfi_way_bill-bill_no,
issued_on TYPE zfi_way_bill-issued_on,
issued_to TYPE zfi_way_bill-issued_to,
bill_status TYPE zfi_way_bill-bill_status,
END OF ty_tab.
TYPES:BEGIN OF ty_tab1,
mblnr TYPE mkpf-mblnr,
bktxt TYPE mkpf-bktxt,
END OF ty_tab1.
TYPES:BEGIN OF ty_tab2,
lifnr TYPE mseg-lifnr,
END OF ty_tab2.
TYPES:BEGIN OF ty_final,
bill_no TYPE zfi_way_bill-bill_no,
issued_on TYPE zfi_way_bill-issued_on,
issued_to TYPE zfi_way_bill-issued_to,
mblnr TYPE mkpf-mblnr,
bktxt TYPE mkpf-bktxt,
lifnr TYPE mseg-lifnr,
END OF ty_final.
DATA:it_tab TYPE STANDARD TABLE OF ty_tab INITIAL SIZE 0 WITH HEADER LINE,
it_tab1 TYPE STANDARD TABLE OF ty_tab1 INITIAL SIZE 0 WITH HEADER LINE,
it_tab2 TYPE STANDARD TABLE OF ty_tab2 INITIAL SIZE 0 WITH HEADER LINE,
it_final TYPE STANDARD TABLE OF ty_final INITIAL SIZE 0 WITH HEADER LINE.
ELECT bill_no
issued_on
issued_to FROM zfi_way_bill INTO TABLE it_tab WHERE issued_on LE date AND bill_status EQ '1'.
IF NOT IT_TAB[] IS INITIAL.
select mblnr from mkpf into table it_tab1 for all entries in it_tab where bktxt = it_tab-bill_no.
ENDIF.
IF NOT IN_TAB1[] IS INITIAL.
SELECT LIFNR FROM MSEG INTO TABLE IT_TAB2 FOR ALL ENTRIES IN IT_TAB1 WHERE MBLNR = IT_TAB1-MBLNR.
ENDIF.
Loop at it_final.
How can I do it.......
‎2008 Jul 19 12:20 PM
HI
you can use MOVE-CORRESPONDING statement
Loop at itab1[] into wa_itab1.
MOVE-CORRESPONDING <struct1> TO <struct2>.
endloop.
here struct2 will be the final table work area and then append it to the table
in this way you do for the remaining table
I hope this will help you
Regards
Pavan
Edited by: Pavan Bhamidipati on Jul 19, 2008 1:21 PM
‎2008 Jul 19 12:20 PM
HI
you can use MOVE-CORRESPONDING statement
Loop at itab1[] into wa_itab1.
MOVE-CORRESPONDING <struct1> TO <struct2>.
endloop.
here struct2 will be the final table work area and then append it to the table
in this way you do for the remaining table
I hope this will help you
Regards
Pavan
Edited by: Pavan Bhamidipati on Jul 19, 2008 1:21 PM
‎2008 Jul 19 12:22 PM
hi,
check this sample code and do the same in ur case.
LOOP AT it_ekbe.
IF it_ekbe-bewtp EQ 'E'.
it_final_det-text = 'GR'.
-- Get GR Details from Po history and add it to the table.
it_final_det-mblnr = it_ekbe-belnr.
it_final_det-buzei = it_ekbe-buzei.
it_final_det-shkzg = it_ekbe-shkzg.
IF it_ekbe-shkzg = 'H'.
it_final_det-dmbtr = ( it_ekbe-dmbtr ) * -1.
ELSE.
it_final_det-dmbtr = it_ekbe-dmbtr.
ENDIF.
it_final_det-wrbtr_gr = it_ekbe-wrbtr.
it_final_det-menge_gr = it_ekbe-menge.
CLEAR it_mkpf.
READ TABLE it_mkpf WITH KEY mblnr = it_ekbe-belnr
BINARY SEARCH.
it_final_det-blart = it_mkpf-blart.
it_final_det-bldat = it_mkpf-bldat.
it_final_det-mjahr = it_mkpf-mjahr.
CLEAR it_essr.
READ TABLE it_essr WITH KEY ebeln = it_ekpo-ebeln
ebelp = it_ekpo-ebelp.
it_final_det-lblni = it_essr-lblni.
it_final_det-lwert = it_essr-lwert.
CLEAR it_bkpf_we.
READ TABLE it_bkpf_we WITH KEY awkey = it_mkpf-awkey.
it_final_det-belnr_we = it_bkpf_we-belnr.
APPEND it_final_det.
ELSEIF it_ekbe-bewtp = 'Q'.
it_final_det-text = 'IR'.
-- Get GR Details from Po history and add it to the table.
it_final_det-mblnr = it_ekbe-belnr.
it_final_det-buzei = it_ekbe-buzei.
it_final_det-shkzg = it_ekbe-shkzg.
IF it_ekbe-shkzg = 'H'.
it_final_det-dmbtr = ( it_ekbe-dmbtr ) * -1.
ELSE.
it_final_det-dmbtr = it_ekbe-dmbtr.
ENDIF.
it_final_det-wrbtr_gr = it_ekbe-wrbtr.
it_final_det-menge_gr = it_ekbe-menge.
APPEND it_final_det.
ENDIF.
ENDLOOP.
‎2008 Jul 19 12:39 PM
Hi,
Try this code:
TYPES:BEGIN OF ty_tab,
bill_no TYPE zfi_way_bill-bill_no,
issued_on TYPE zfi_way_bill-issued_on,
issued_to TYPE zfi_way_bill-issued_to,
bill_status TYPE zfi_way_bill-bill_status,
END OF ty_tab.
TYPES:BEGIN OF ty_tab1,
mblnr TYPE mkpf-mblnr,
bktxt TYPE mkpf-bktxt,
END OF ty_tab1.
TYPES:BEGIN OF ty_tab2,
mblnr TYPE mkpf-mblnr,
lifnr TYPE mseg-lifnr,
END OF ty_tab2.
TYPES:BEGIN OF ty_final,
bill_no TYPE zfi_way_bill-bill_no,
issued_on TYPE zfi_way_bill-issued_on,
issued_to TYPE zfi_way_bill-issued_to,
mblnr TYPE mkpf-mblnr,
bktxt TYPE mkpf-bktxt,
lifnr TYPE mseg-lifnr,
END OF ty_final.
DATA:it_tab TYPE STANDARD TABLE OF ty_tab INITIAL SIZE 0 WITH HEADER LINE,
it_tab1 TYPE STANDARD TABLE OF ty_tab1 INITIAL SIZE 0 WITH HEADER LINE,
it_tab2 TYPE STANDARD TABLE OF ty_tab2 INITIAL SIZE 0 WITH HEADER LINE,
it_final TYPE STANDARD TABLE OF ty_final INITIAL SIZE 0 WITH HEADER LINE.
ELECT bill_no
issued_on
issued_to FROM zfi_way_bill INTO TABLE it_tab WHERE issued_on LE date AND bill_status EQ '1'.
IF NOT IT_TAB[] IS INITIAL.
select mblnr bktxt from mkpf into table it_tab1 for all entries in it_tab where bktxt = it_tab-bill_no.
ENDIF.
IF NOT IN_TAB1[] IS INITIAL.
SELECT MBLNR LIFNR FROM MSEG INTO TABLE IT_TAB2 FOR ALL ENTRIES IN IT_TAB1 WHERE MBLNR = IT_TAB1-MBLNR.
ENDIF.
sort it_tab1 by bktxt.
sort it_tab2 by MBLNR
loop at it_tab.
it_final-bill_no = it_tab-bill_no.
it_final-issued_on = it_tab-issued_on.
it_final-issued_to = it_tab-iissued_to.
it_final-bktxt = it_tab-bill_no.
read table it_tab1 with key bktxt = it_tab-bill_no
binary search.
if sy-subrc = 0.
it_final-mblnr = it_tab1-mblnr.
read table it_tab2 with key mblnr = it_tab1-mblnr
binary search.
if sy-subrc = 0.
it_final-lifnr = it_tab2-lifnr .
endif.
endif.
append t_final.
endloop.