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
how to add n no. of internal tables into one final internal tables
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.
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |