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

Combining three itabs....

Former Member
0 Likes
541

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.......

1 ACCEPTED SOLUTION
Read only

bpawanchand
Active Contributor
0 Likes
521

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

3 REPLIES 3
Read only

bpawanchand
Active Contributor
0 Likes
522

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

Read only

GauthamV
Active Contributor
0 Likes
521

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.

Read only

Former Member
0 Likes
521

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.