‎2008 May 30 9:47 AM
how to add n no. of internal tables into one final internal tables
‎2008 May 30 9:51 AM
hi,
you can use append lines statement
Append lines of int_fligh1 to int_fligh2.
reward if helpful
prasanth
‎2008 May 30 9:49 AM
hi mahimaa,
move-corresponding statement will help to move the values from internal table to other internal table.
Regards...
Arun.
‎2008 May 30 9:50 AM
‎2008 May 30 9:51 AM
Hi ,
see below code, you may get idea about merging internal tables.
&----
*& Report Z_VER_RPG4
*&
&----
*&
*&
&----
REPORT Z_VER_RPG4.
tables : kna1,
vbak,
vbap,
vbep.
types: begin of typ_kna1,
kunnr type kunnr,
name1 type name1,
land1 type land1,
end of typ_kna1.
types: begin of typ_vbak,
vbeln type vbeln,
erdat type erdat,
netwr type netwr,
kunnr type kunnr,
end of typ_vbak.
types: begin of typ_vbap,
vbeln type vbeln,
posnr type posnr,
matnr type matnr,
kwmeng type kwmeng,
vrkme type vrkme,
end of typ_vbap.
types : begin of typ_vbep,
vbeln type vbeln,
posnr type posnr,
etenr type etenr,
bmeng type bmeng,
vrkme type vrkme,
end of typ_vbep.
types: begin of typ_final,
kunnr type kunnr,
vbeln type vbeln,
posnr type posnr,
etenr type etenr,
matnr type matnr,
kwmeng type kwmeng,
vrkme type vrkme,
end of typ_final.
data : it_kna1 type standard table of typ_kna1 initial size 1,
it_vbak type standard table of typ_vbak initial size 1,
it_vbap type standard table of typ_vbap initial size 1,
it_vbep type standard table of typ_vbep initial size 1,
it_final type standard table of typ_final initial size 1,
wa_kna1 type typ_kna1,
wa_vbak type typ_vbak,
wa_vbap type typ_vbap,
wa_vbep type typ_vbep,
wa_final type typ_final.
*parameters : p_name(21) modif id abc.
select-options: s_kunnr for kna1-kunnr matchcode object DEBI.
top-of-page.
write:/ 'stop' color 4.
start-of-selection.
select kunnr name1 land1
from kna1
into table it_kna1
where kunnr in s_kunnr.
if sy-subrc eq 0.
sort it_kna1.
else.
message ' not found records' type 'E'.
endif.
if it_kna1[] is not initial.
select vbeln erdat netwr kunnr
from vbak
into table it_vbak
for all entries in it_kna1
where kunnr eq it_kna1-kunnr.
if sy-subrc eq '0'.
sort it_vbak.
else.
message 'Not found records in order level' type 'E'.
endif.
endif.
if it_vbak[] is not initial.
select vbeln posnr matnr kwmeng vrkme
from vbap
into table it_vbap
for all entries in it_vbak
where vbeln eq it_vbak-vbeln.
if sy-subrc eq '0'.
sort it_vbap.
else.
message 'not found records in item level' type 'E'.
endif.
endif.
if it_vbap[] is not initial.
select vbeln posnr etenr bmeng vrkme
from vbep
into table it_vbep
for all entries in it_vbap
where vbeln eq it_vbap-vbeln
and posnr eq it_vbap-posnr.
if sy-subrc eq 0.
sort it_vbep.
else.
message 'not found records in schedule level' type 'E'.
endif.
endif.
end-of-selection.
loop at it_vbep into wa_vbep.
READ TABLE it_vbap INTO wa_vbap WITH KEY vbeln = wa_vbep-vbeln.
if sy-subrc eq 0.
READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln.
if sy-subrc eq 0.
READ TABLE it_kna1 INTO wa_kna1 WITH KEY kunnr = wa_vbak-kunnr.
if sy-subrc eq 0.
wa_final-kunnr = wa_kna1-kunnr.
wa_final-vbeln = wa_vbak-vbeln.
wa_final-posnr = wa_vbap-posnr.
wa_final-etenr = wa_vbep-etenr.
wa_final-matnr = wa_vbap-matnr.
wa_final-kwmeng = wa_vbap-kwmeng.
wa_final-vrkme = wa_vbap-vrkme.
append wa_final to it_final.
endif.
endif.
endif.
endloop.
Regards,
Vishvesh
if helpful, rewards it.
‎2008 May 30 9:51 AM
Loop at itab1.
read table itab2 with key field1 = itab1-field1.
read table itab3 with key field1 = itab1-field1.
read table itab4 with key field1 = itab1-field1.
itab5-field1 = itab1-field1.
itab5-field2 = itab1-field2.
itab5-field3 = itab1-field3.
modify itab5.
endloopl.
‎2008 May 30 9:51 AM
hi,
you can use append lines statement
Append lines of int_fligh1 to int_fligh2.
reward if helpful
prasanth
‎2008 May 30 9:52 AM
Hi,
Just goo through the looping part which is nothing but reading other internal tables into final
&----
*& Report YVCHIERSEQASS4 *
*& *
&----
*& *
*& *
&----
REPORT yvchierseqass4 .
TYPE-POOLS:slis.
TABLES: sscrfields.
DATA:t_vbak TYPE STANDARD TABLE OF vbak INITIAL SIZE 0,
t_kna1 TYPE STANDARD TABLE OF kna1 INITIAL SIZE 0,
t_likp TYPE STANDARD TABLE OF likp INITIAL SIZE 0,
t_lips TYPE STANDARD TABLE OF lips INITIAL SIZE 0,
t_vbap TYPE STANDARD TABLE OF vbap INITIAL SIZE 0,
t_vbep TYPE STANDARD TABLE OF vbep INITIAL SIZE 0,
it_lips TYPE STANDARD TABLE OF lips INITIAL SIZE 0,
w_vbak TYPE vbak,
w_likp TYPE likp,
w_kna1 TYPE kna1,
w_lips TYPE lips,
w_vbap TYPE vbap,
w_vbep TYPE vbep,
iw_lips TYPE lips,
g_vbeln TYPE vbak-vbeln,
w_fieldcat TYPE slis_fieldcat_alv,
t_fieldcat TYPE slis_t_fieldcat_alv,
w_keyinfo TYPE slis_keyinfo_alv.
TYPES:BEGIN OF ty_output,
vbeln TYPE vbeln_va,
ernam TYPE ernam,
vgbel TYPE vgbel,
kunnr TYPE kunag,
name1 TYPE name1,
vkorg TYPE vkorg,
lfart TYPE lfart,
END OF ty_output.
DATA:w_output TYPE ty_output,
t_output TYPE TABLE OF ty_output.
TYPES:BEGIN OF i_output,
vbeln TYPE vbeln_va,
posnr TYPE posnr,
vgbel TYPE vgbel,
matnr TYPE matnr,
etenr TYPE etenr,
lfrel TYPE lfrel,
ernam TYPE ernam,
matkl TYPE matkl,
END OF i_output.
DATA:iw_output TYPE i_output,
it_output TYPE TABLE OF i_output.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS:s_vbeln FOR g_vbeln.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN: FUNCTION KEY 1.
...
DATA: link TYPE TABLE OF tline .
AT SELECTION-SCREEN.
IF sscrfields-ucomm = 'FC01'.
CALL FUNCTION 'HELP_OBJECT_SHOW'
EXPORTING
dokclass = 'DE'
doklangu = sy-langu
dokname = 'YDOC'
DOKTITLE = ' '
CALLED_BY_PROGRAM = ' '
CALLED_BY_DYNP = ' '
CALLED_FOR_TAB = ' '
CALLED_FOR_FIELD = ' '
CALLED_FOR_TAB_FLD_BTCH_INPUT = ' '
MSG_VAR_1 = ' '
MSG_VAR_2 = ' '
MSG_VAR_3 = ' '
MSG_VAR_4 = ' '
CALLED_BY_CUAPROG = ' '
CALLED_BY_CUASTAT =
SHORT_TEXT = ' '
CLASSIC_SAPSCRIPT = ' '
TABLES
links = link
EXCEPTIONS
OBJECT_NOT_FOUND = 1
SAPSCRIPT_ERROR = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
INITIALIZATION.
DATA: lv_id TYPE icon.
SELECT SINGLE * FROM icon INTO lv_id WHERE name = 'ICON_INFORMATION' .
MOVE lv_id-internal TO sscrfields-functxt_01.
CLEAR:w_vbak,
w_likp,
w_kna1,
w_vbap,
w_vbep,
w_lips,
iw_lips.
REFRESH:t_vbak,
t_likp,
t_kna1,
t_vbap,
t_vbep,
t_lips,
it_lips.
START-OF-SELECTION.
PERFORM sub_get_vbak.
PERFORM sub_get_lips.
PERFORM sub_get_likp.
PERFORM sub_get_kna1.
PERFORM sub_get_output.
PERFORM sub_get_vbap.
PERFORM sub_get_vbep.
PERFORM sub_get_itlips.
PERFORM sub_get_item.
PERFORM sub_disp_output.
*PERFORM IDISP.
FORM sub_get_vbak.
SELECT * FROM vbak INTO TABLE t_vbak WHERE vbeln IN s_vbeln.
ENDFORM. "SUB_GET_VBAK
&----
*& Form SUB_GET_LIPS
&----
text
----
FORM sub_get_lips.
SELECT * FROM lips INTO TABLE t_lips FOR ALL ENTRIES IN t_vbak WHERE
vgbel = t_vbak-vbeln.
ENDFORM. "SUB_GET_LIPS
&----
*& Form SUB_GET_LIKP
&----
text
----
FORM sub_get_likp.
SELECT * FROM likp INTO TABLE t_likp FOR ALL ENTRIES IN t_lips WHERE
vbeln = t_lips-vbeln.
ENDFORM. "SUB_GET_LIKP
&----
*& Form SUB_GET_KNA1
&----
text
----
FORM sub_get_kna1.
SELECT * FROM kna1 INTO TABLE t_kna1 FOR ALL ENTRIES IN t_vbak WHERE
kunnr = t_vbak-kunnr.
ENDFORM. "SUB_GET_KNA1
&----
*& Form SUB_GET_OUTPUT
&----
text
----
FORM sub_get_output.
LOOP AT t_vbak INTO w_vbak.
w_output-vbeln = w_vbak-vbeln.
w_output-ernam = w_vbak-ernam.
w_output-kunnr = w_vbak-kunnr.
READ TABLE t_lips INTO w_lips WITH KEY vgbel = w_vbak-vbeln.
*W_OUTPUT-VBELN = W_LIPS-VBELN.
IF sy-subrc = 0.
*W_OUTPUT-VGBEL = W_LIPS-VGBEL.
READ TABLE t_likp INTO w_likp WITH KEY vbeln = w_lips-vbeln.
IF sy-subrc = 0.
w_output-vkorg = w_likp-vkorg.
w_output-lfart = w_likp-lfart.
ENDIF.
ENDIF.
READ TABLE t_kna1 INTO w_kna1 WITH KEY kunnr = w_vbak-kunnr.
IF sy-subrc = 0.
w_output-name1 = w_kna1-name1.
ENDIF.
APPEND w_output TO t_output.
CLEAR w_output.
ENDLOOP.
*LOOP AT T_LIPS INTO W_LIPS.
*W_OUTPUT-VGBEL = W_LIPS-VGBEL.
*CLEAR W_VBAK.
*READ TABLE T_VBAK INTO W_VBAK WITH KEY VGBEL = W_LIPS-VGBEL.
*IF SY-SUBRC = 0.
*W_OUTPUT-VBELN = W_VBAK-VBELN.
*W_OUTPUT-ERNAM = W_VBAK-ERNAM.
*W_OUTPUT-KUNNR = W_VBAK-KUNNR.
*ENDIF.
*CLEAR W_LIKP.
*READ TABLE T_LIKP INTO W_LIKP WITH KEY VBELN = W_LIPS-VBELN.
*IF SY-SUBRC = 0.
*W_OUTPUT-VKORG = W_LIKP-VKORG.
*W_OUTPUT-LFART = W_LIKP-LFART.
*ENDIF.
*CLEAR W_KNA1.
*READ TABLE T_KNA1 INTO W_KNA1 WITH KEY KUNNR = W_VBAK-KUNNR.
*IF SY-SUBRC = 0.
*W_OUTPUT-NAME1 = W_KNA1-NAME1.
*ENDIF.
*APPEND W_OUTPUT TO T_OUTPUT.
*CLEAR W_OUTPUT.
*ENDLOOP.
*
ENDFORM. "SUB_GET_OUTPUT
*FORM DISP.
*
*LOOP AT T_OUTPUT INTO W_OUTPUT.
*WRITE:/ W_OUTPUT-VBELN,W_OUTPUT-ERNAM,W_OUTPUT-VGBEL,W_OUTPUT-KUNNR,
*W_OUTPUT-LFART,W_OUTPUT-VKORG,W_OUTPUT-NAME1.
*ENDLOOP.
*
*ENDFORM.
*****************ITEM DATA*************************************
FORM sub_get_vbap.
SELECT * FROM vbap INTO TABLE t_vbap FOR ALL ENTRIES IN t_vbak WHERE
vbeln = t_vbak-vbeln.
ENDFORM. "SUB_GET_VBAP
&----
*& Form SUB_GET_VBEP
&----
text
----
FORM sub_get_vbep.
SELECT * FROM vbep INTO TABLE t_vbep FOR ALL ENTRIES IN t_vbap WHERE
vbeln = t_vbap-vbeln.
ENDFORM. "SUB_GET_VBEP
&----
*& Form SUB_GET_ITLIPS
&----
text
----
FORM sub_get_itlips.
SELECT * FROM lips INTO TABLE it_lips FOR ALL ENTRIES IN t_vbap WHERE
vgbel = t_vbap-vbeln.
ENDFORM. "SUB_GET_ITLIPS
&----
*& Form SUB_GET_ITEM
&----
text
----
FORM sub_get_item.
LOOP AT t_vbap INTO w_vbap.
iw_output-vbeln = w_vbap-vbeln.
iw_output-posnr = w_vbap-posnr.
iw_output-vgbel = w_vbap-vgbel.
CLEAR w_lips.
READ TABLE it_lips INTO iw_lips WITH KEY vgbel = w_vbap-vbeln.
IF sy-subrc = 0.
iw_output-matnr = iw_lips-matnr.
iw_output-ernam = iw_lips-ernam.
iw_output-matkl = iw_lips-matkl.
ENDIF.
CLEAR w_vbep.
READ TABLE t_vbep INTO w_vbep WITH KEY vbeln = w_vbap-vbeln.
IF sy-subrc = 0.
iw_output-etenr = w_vbep-etenr.
iw_output-lfrel = w_vbep-lfrel.
ENDIF.
APPEND iw_output TO it_output.
CLEAR iw_output.
ENDLOOP.
ENDFORM. "SUB_GET_ITEM
&----
*& Form SUB_DISP_OUTPUT
&----
text
----
FORM sub_disp_output.
**********HEADER HEADINGS********************
w_fieldcat-col_pos = 1.
w_fieldcat-fieldname = 'VBELN'.
w_fieldcat-seltext_m = 'SALESORDER'.
w_fieldcat-tabname = 't_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 2.
w_fieldcat-fieldname = 'ERNAM'.
w_fieldcat-seltext_m = 'ERNAME'.
w_fieldcat-tabname = 't_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 3.
w_fieldcat-fieldname = 'KUNNR'.
w_fieldcat-seltext_m = 'KUNNR'.
w_fieldcat-tabname = 't_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 4.
w_fieldcat-fieldname = 'VKORG'.
w_fieldcat-seltext_m = 'VKORG'.
w_fieldcat-tabname = 't_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 5.
w_fieldcat-fieldname = 'LFART'.
w_fieldcat-seltext_m = 'LFART'.
w_fieldcat-tabname = 't_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 6.
w_fieldcat-fieldname = 'NAME1'.
w_fieldcat-seltext_m = 'NAME'.
w_fieldcat-tabname = 't_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
************ITEM HEADINGS****************
w_fieldcat-col_pos = 1.
w_fieldcat-fieldname = 'POSNR'.
w_fieldcat-seltext_m = 'SALES ITEM'.
w_fieldcat-tabname = 'it_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 2.
w_fieldcat-fieldname = 'VGBEL'.
w_fieldcat-seltext_m = 'VGBEL'.
w_fieldcat-tabname = 'it_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 3.
w_fieldcat-fieldname = 'MATNR'.
w_fieldcat-seltext_m = 'MAT GROUP'.
w_fieldcat-tabname = 'it_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 4.
w_fieldcat-fieldname = 'ERNAM'.
w_fieldcat-seltext_m = 'ERNAM'.
w_fieldcat-tabname = 'it_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 5.
w_fieldcat-fieldname = 'MATKL'.
w_fieldcat-seltext_m = 'MATKL'.
w_fieldcat-tabname = 'it_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 6.
w_fieldcat-fieldname = 'ETENR'.
w_fieldcat-seltext_m = 'ETENR'.
w_fieldcat-tabname = 'it_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 7.
w_fieldcat-fieldname = 'LFREL'.
w_fieldcat-seltext_m = 'LFREL'.
w_fieldcat-tabname = 'it_output'.
APPEND w_fieldcat TO t_fieldcat.
CLEAR w_fieldcat.
w_keyinfo-header01 = 'VBELN'.
w_keyinfo-item01 = 'VBELN'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
i_callback_program = sy-cprog
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT =
it_fieldcat = t_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
i_tabname_header = 't_output' "T_OUTPUT
i_tabname_item = 'it_output' "IT_OUTPUT
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
is_keyinfo = w_keyinfo
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab_header = t_output
t_outtab_item = it_output.
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "SUB_DISP_OUTPUT
.
‎2008 May 30 9:52 AM
use move-corresponding statement if they dont have same structure and move statement if they have same structure
‎2008 May 30 9:53 AM
Hi,
After each of your internal table, loop on it and append the fields of this internal table to your final internal table.Similarly do for the rest of your internal tables.
‎2008 May 30 9:54 AM
hi here i had adder 4 internal tables in to one internal table..
report ztest.
tables:pa0002,pa0008,pa0021,pa0041.
data: begin of itab occurs 0,
pernr like pa0002-pernr,
vorna like pa0002-vorna,
nachn like pa0002-nachn,
end of itab.
data: begin of itab1 occurs 0,
pernr like pa0008-pernr,
begda like pa0008-begda,
stvor like pa0008-stvor,
ansal like pa0008-ansal,
end of itab1.
data :begin of itab2 occurs 0,
pernr like pa0021-pernr,
favor like pa0021-favor,
fanam like pa0021-fanam,
end of itab2.
data:begin of itab3 occurs 0,
pernr like pa0041-pernr,
dar01 like pa0041-dar01,
dat01 like pa0041-dat01,
end of itab3.
data:begin of final occurs 0,
pernr like pa0002-pernr,
vorna like pa0002-vorna,
nachn like pa0002-nachn,
begda like pa0008-begda,
stvor like pa0008-stvor,
ansal like pa0008-ansal,
favor like pa0021-favor,
fanam like pa0021-fanam,
dar01 like pa0041-dar01,
dat01 like pa0041-dat01,
end of final.
select-options:s_pernr for pa0002-pernr.
select pernr
vorna
nachn
from pa0002
into table itab
where pernr in s_pernr.
select pernr
begda
stvor
ansal
from pa0008
into table itab1
for all entries in itab
where pernr = itab-pernr.
select pernr
favor
fanam
from pa0021
into table itab2
for all entries in itab1
where pernr = itab1-pernr.
select pernr
dar01
dat01
from pa0041
into table itab3
for all entries in itab2
where pernr = itab2-pernr.
loop at itab.
final-pernr = itab-pernr.
final-vorna = itab-vorna.
final-nachn = itab-nachn.
read table itab1 with key pernr = itab-pernr.
final-begda = itab1-begda.
final-stvor = itab1-stvor.
final-ansal = itab1-ansal.
read table itab2 with key pernr = itab1-pernr.
final-favor = itab2-favor.
final-fanam = itab2-fanam.
read table itab3 with key pernr = itab2-pernr.
final-dar01 = itab3-dar01 .
final-dat01 = itab3-dat01.
append final.
clear final.
endloop.
loop at final.
write:final-pernr ,
final-vorna ,
final-nachn ,
final-begda ,
final-stvor ,
final-ansal ,
final-favor ,
final-fanam ,
final-dar01 ,
final-dat01 .
endloop.