‎2014 Jan 17 1:54 PM
Hi all.
I have an 2 internal tables. I want inserting data into second internal table inside first. I have a structure but fields data does not properly. Even some fields data doesn't come. What should I do ? This is a part of my code for want.
DATA: BEGIN OF itab OCCURS 0,
bukrs LIKE bkpf-bukrs,
belnr LIKE bkpf-belnr,
gjahr LIKE bkpf-gjahr,
blart LIKE bkpf-blart,
END OF itab.
DATA: BEGIN OF gs_01,
bukrs LIKE bkpf-bukrs,
gjahr LIKE bkpf-gjahr,
blart LIKE bkpf-blart,
belnr LIKE bkpf-belnr,
END OF gs_01.
FORM select .
SELECT * INTO CORRESPONDING FIELDS OF TABLE itab_bkpf FROM bkpf
WHERE bukrs IN so_bukrs AND
belnr IN so_belnr AND
gjahr EQ so_gjahr AND
blart IN so_blart.
ENDFORM. " SELECT "
form GET_DATA .
SELECT * FROM bseg INTO CORRESPONDING FIELDS OF TABLE itab_bkpf
FOR ALL ENTRIES IN itab_bkpf
WHERE belnr EQ itab_bkpf-belnr AND
gjahr EQ itab_bkpf-gjahr AND
hkont IN so_hkont.
endform. " GET_DATA
form TRANSFER .
LOOP AT itab_bkpf INTO itab.
MOVE-CORRESPONDING gs_01 TO itab.
APPEND gs_01 TO itab.
ENDLOOP.
Good days.
‎2014 Jan 17 2:36 PM
Hi Fatih,
I am unable get your requirement clearly but found some mistakes in your code. Example form get_data your internal table storing data from database and in conditions you have mentioned the same table as for all entries table. I have tried to optimize your scenario. Just check it might help you to refer atleast.
TYPES: BEGIN OF ty_tab,
bukrs LIKE bkpf-bukrs,
belnr LIKE bkpf-belnr,
gjahr LIKE bkpf-gjahr,
blart LIKE bkpf-blart,
hkont LIKE bseg-hkont,
END OF ty_tab.
DATA: it_bkpf TYPE TABLE OF ty_tab,
it_bseg TYPE TABLE OF ty_tab,
wa_bkpf TYPE ty_tab,
wa_bseg TYPE ty_tab.
SELECT-OPTIONS: so_bukrs for wa_bseg-bukrs,
so_belnr for wa_bseg-belnr,
so_gjahr for wa_bseg-gjahr,
so_blart for wa_bseg-blart,
so_hkont for wa_bseg-hkont.
START-OF-SELECTION.
PERFORM select.
PERFORM get_data.
*&---------------------------------------------------------------------*
*& Form select
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM select .
SELECT *
FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
WHERE bukrs IN so_bukrs AND
belnr IN so_belnr AND
gjahr EQ so_gjahr AND
blart IN so_blart.
ENDFORM. " SELECT "
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_data .
SELECT * FROM bseg INTO CORRESPONDING FIELDS OF TABLE it_bseg
FOR ALL ENTRIES IN it_bkpf
WHERE belnr EQ it_bkpf-belnr AND
gjahr EQ it_bkpf-gjahr AND
hkont IN so_hkont.
ENDFORM.
With Regards,
Giriesh M
‎2014 Jan 17 2:36 PM
Hi Fatih,
I am unable get your requirement clearly but found some mistakes in your code. Example form get_data your internal table storing data from database and in conditions you have mentioned the same table as for all entries table. I have tried to optimize your scenario. Just check it might help you to refer atleast.
TYPES: BEGIN OF ty_tab,
bukrs LIKE bkpf-bukrs,
belnr LIKE bkpf-belnr,
gjahr LIKE bkpf-gjahr,
blart LIKE bkpf-blart,
hkont LIKE bseg-hkont,
END OF ty_tab.
DATA: it_bkpf TYPE TABLE OF ty_tab,
it_bseg TYPE TABLE OF ty_tab,
wa_bkpf TYPE ty_tab,
wa_bseg TYPE ty_tab.
SELECT-OPTIONS: so_bukrs for wa_bseg-bukrs,
so_belnr for wa_bseg-belnr,
so_gjahr for wa_bseg-gjahr,
so_blart for wa_bseg-blart,
so_hkont for wa_bseg-hkont.
START-OF-SELECTION.
PERFORM select.
PERFORM get_data.
*&---------------------------------------------------------------------*
*& Form select
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM select .
SELECT *
FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
WHERE bukrs IN so_bukrs AND
belnr IN so_belnr AND
gjahr EQ so_gjahr AND
blart IN so_blart.
ENDFORM. " SELECT "
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_data .
SELECT * FROM bseg INTO CORRESPONDING FIELDS OF TABLE it_bseg
FOR ALL ENTRIES IN it_bkpf
WHERE belnr EQ it_bkpf-belnr AND
gjahr EQ it_bkpf-gjahr AND
hkont IN so_hkont.
ENDFORM.
With Regards,
Giriesh M
‎2014 Jan 17 2:52 PM
Thanks a lot. This codes are a part of my all code. It was ispired me but still a cant fix my problem. I'm newbie. By the way some uneccesary tables in my code I know, previously I try something.
""This is all of my code""
TABLES: t001, bseg, bkpf, bsad, bsis, bsid, bsik, bsas, bsak.
TABLES: knb1, kna1, knvv, lfb1, lfa1, t151t.
FIELD-SYMBOLS: <wa_fields> TYPE lvc_s_fcat.
INCLUDE <cl_alv_control>.
DATA: BEGIN OF itab_bkpf OCCURS 0,
bukrs LIKE bkpf-bukrs, "ÅŸirket kodu
belnr LIKE bkpf-belnr, "muhasebe belge numarası
gjahr LIKE bkpf-gjahr, "mali yıl
blart LIKE bkpf-blart, "belge türü
ktokk LIKE lfa1-ktokk,
kdgrp LIKE knvv-kdgrp,
ktext LIKE t151t-ktext,
name1 LIKE kna1-name1,
END OF itab_bkpf.
DATA: BEGIN OF itab OCCURS 0,
bukrs LIKE bkpf-bukrs, "ÅŸirket kodu
belnr LIKE bkpf-belnr, "belge
gjahr LIKE bkpf-gjahr, "mali yıl
blart LIKE bkpf-blart, "belge türü
umskz LIKE bseg-umskz, "ödk göstergesi
kunnr LIKE kna1-kunnr, "müşteri hesabı
ktokd LIKE kna1-ktokd, "hesap grubu
kdgrp LIKE knvv-kdgrp, "müşteri grubu
id LIKE icon-id,
ktokk LIKE lfa1-ktokk, "hesap grubu
ktext LIKE t151t-ktext, "tanım ( ürün tanımı)
hkont LIKE bsis-hkont, "hesap numarası
name1 LIKE kna1-name1, "hesap adı
END OF itab.
DATA: BEGIN OF gs_01,
bukrs LIKE bkpf-bukrs, "ÅŸirket kodu
gjahr LIKE bkpf-gjahr, "mali yıl
blart LIKE bkpf-blart, "belge türü
belnr LIKE bkpf-belnr, "muhasebe belgesinin numarası
END OF gs_01.
DATA: gt_fieldcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo,
ls_cellcolor TYPE lvc_s_scol.
"""""İLK BLOK""""
SELECTION-SCREEN: BEGIN OF BLOCK blok1 WITH FRAME TITLE hsp_turu.
SELECT-OPTIONS: so_bukrs FOR bkpf-bukrs.
SELECT-OPTIONS: so_blart FOR bkpf-blart.
SELECT-OPTIONS: so_umskz FOR bseg-umskz.
SELECT-OPTIONS: so_belnr FOR bkpf-belnr.
PARAMETERS : so_gjahr LIKE bkpf-gjahr.
SELECT-OPTIONS: so_hkont FOR bsis-hkont.
SELECTION-SCREEN: END OF BLOCK blok1.
""""İKİNCİ BLOK""""
SELECTION-SCREEN: BEGIN OF BLOCK blok2 WITH FRAME TITLE trh_tipi.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: r_bltar RADIOBUTTON GROUP gr1 USER-COMMAND scm1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 10(15) text-c01 FOR FIELD r_bltar.
PARAMETERS: r_kytar RADIOBUTTON GROUP gr1.
SELECTION-SCREEN COMMENT 40(15) text-c02 FOR FIELD r_kytar.
PARAMETERS: r_grtar RADIOBUTTON GROUP gr1.
SELECTION-SCREEN COMMENT 70(15) text-c03 FOR FIELD r_grtar.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK blok2.
""""ÜÇÜNCÜ BLOK""""
SELECTION-SCREEN: BEGIN OF BLOCK blok3 WITH FRAME TITLE blge_trh.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: r_bugn RADIOBUTTON GROUP gr2 USER-COMMAND scm2
DEFAULT 'X'.
SELECTION-SCREEN COMMENT (15) text-c04 FOR FIELD r_bugn.
PARAMETERS: r_chafta RADIOBUTTON GROUP gr2.
SELECTION-SCREEN COMMENT 20(15) text-c05 FOR FIELD r_chafta.
PARAMETERS: r_cay RADIOBUTTON GROUP gr2.
SELECTION-SCREEN COMMENT 40(15) text-c06 FOR FIELD r_cay.
PARAMETERS: r_cyil RADIOBUTTON GROUP gr2.
SELECTION-SCREEN COMMENT 60(15) text-c07 FOR FIELD r_cyil.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETER r_diger RADIOBUTTON GROUP gr2 .
SELECTION-SCREEN COMMENT 10(15) text-c08 FOR FIELD r_diger.
SELECT-OPTIONS tarih FOR sy-datlo.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: b_a_k AS CHECKBOX.
SELECTION-SCREEN COMMENT 10(20) text-c09 FOR FIELD b_a_k.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK blok3.
""""SEKMELİ BLOK""""
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
PARAMETERS: p1 TYPE c LENGTH 10,
p2 TYPE c LENGTH 10,
p3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 100.
""""SEKMELERİN OLDUĞU BLOK""""
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: m_h_g AS CHECKBOX.
SELECTION-SCREEN COMMENT 10(21) text-c10 FOR FIELD m_h_g.
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS: so_kunnr FOR knb1-kunnr.
SELECT-OPTIONS: so_ktokd FOR kna1-ktokd.
SELECT-OPTIONS: so_kdgrp FOR knvv-kdgrp.
PARAMETERS: ana_dzn TYPE c,
dty_dzn TYPE c.
SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
SELECT-OPTIONS: so_lifnr FOR lfb1-lifnr.
SELECT-OPTIONS: so_ktook FOR lfa1-ktokk.
SELECTION-SCREEN END OF SCREEN 300.
SELECTION-SCREEN BEGIN OF SCREEN 400 AS SUBSCREEN.
PARAMETERS: s1 TYPE c LENGTH 10,
s2 TYPE c LENGTH 10,
s3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 400.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
TAB (20) button1 USER-COMMAND push1,
TAB (20) button2 USER-COMMAND push2,
TAB (20) button3 USER-COMMAND push3,
TAB (20) button4 USER-COMMAND push4,
END OF BLOCK mytab.
AT SELECTION-SCREEN.
CASE sy-dynnr.
WHEN 1000.
CASE sy-ucomm.
WHEN 'PUSH1'.
mytab-dynnr = 100.
WHEN 'PUSH2'.
mytab-dynnr = 200.
WHEN 'PUSH3'.
mytab-dynnr = 300.
WHEN 'PUSH4'.
mytab-dynnr = 400.
ENDCASE.
ENDCASE.
INITIALIZATION.
button1 = 'Ana Hesap'.
button2 = 'Müşteri Hesabı'.
button3 = 'Satıcı Hesabı'.
button4 = 'Kısıtlamalar'.
mytab-prog = sy-repid.
mytab-dynnr = 200.
mytab-activetab = 'PUSH2'.
hsp_turu = 'Hesap Türü'.
trh_tipi = 'Tarih Tipi'.
blge_trh = 'Belge Tarihi'.
START-OF-SELECTION.
PERFORM select.
PERFORM get_data.
PERFORM transfer.
PERFORM fcatalog.
PERFORM fonksiyon.
FORM fcatalog .
DATA v_fieldcat TYPE lvc_s_fcat.
CLEAR v_fieldcat.
v_fieldcat-fieldname = 'BUKRS'.
v_fieldcat-tabname = 'ITAB'.
v_fieldcat-no_merging = 'X'.
v_fieldcat-coltext = 'Åžirket Kodu'.
APPEND v_fieldcat TO gt_fieldcat.
CLEAR v_fieldcat.
v_fieldcat-fieldname = 'BELNR'.
v_fieldcat-tabname = 'ITAB'.
v_fieldcat-no_merging = 'X'.
v_fieldcat-coltext = 'Belge Numarası'.
APPEND v_fieldcat TO gt_fieldcat.
CLEAR v_fieldcat.
v_fieldcat-fieldname = 'GJAHR'.
v_fieldcat-tabname = 'ITAB'.
v_fieldcat-no_merging = 'X'.
v_fieldcat-coltext = 'Mali Yıl'.
APPEND v_fieldcat TO gt_fieldcat.
CLEAR v_fieldcat.
v_fieldcat-fieldname = 'BLART'.
v_fieldcat-tabname = 'ITAB'.
v_fieldcat-no_merging = 'X'.
v_fieldcat-coltext = 'Belge Türü'.
APPEND v_fieldcat TO gt_fieldcat.
CLEAR v_fieldcat.
v_fieldcat-fieldname = 'HKONT'.
v_fieldcat-tabname = 'ITAB'.
v_fieldcat-no_merging = 'X'.
v_fieldcat-coltext = 'Hesap Numarası'.
APPEND v_fieldcat TO gt_fieldcat.
CLEAR v_fieldcat.
v_fieldcat-fieldname = 'NAME1'.
v_fieldcat-tabname = 'ITAB'.
v_fieldcat-no_merging = 'X'.
v_fieldcat-coltext = 'Hesap Adı'.
APPEND v_fieldcat TO gt_fieldcat.
ENDFORM. " FIELDCATALOGy
FORM fonksiyon .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_top_of_page = 'TOP_OF_PAGE'
I_GRID_TITLE = 'Müşteri Hesap Analiz Raporu'
IS_LAYOUT_LVC = gs_layout
IT_FIELDCAT_LVC = gt_fieldcat
i_default = 'X'
TABLES
t_outtab = itab
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. " FONKSIYON
FORM select .
SELECT * INTO CORRESPONDING FIELDS OF TABLE itab_bkpf FROM bkpf
WHERE bukrs IN so_bukrs AND
belnr IN so_belnr AND
gjahr EQ so_gjahr AND
blart IN so_blart.
ENDFORM. " SELECT "
form GET_DATA .
SELECT * FROM bseg INTO CORRESPONDING FIELDS OF TABLE itab_bkpf
FOR ALL ENTRIES IN itab_bkpf
WHERE belnr EQ itab_bkpf-belnr AND
gjahr EQ itab_bkpf-gjahr AND
hkont IN so_hkont.
endform. " GET_DATA
form TRANSFER .
LOOP AT itab_bkpf INTO itab.
MOVE-CORRESPONDING gs_01 TO itab.
APPEND gs_01 TO itab.
ENDLOOP.
endform. " TRANSFER
‎2014 Jan 17 2:49 PM
Hi,
Check your wrong coding!
- don't use the select * - Use the fields you declared for BSEG BKPF accordingly!
- I don't understand your requirement - why you are writing the two select queries for BKPF only!
- What exactly you required for BSEG!
rg, Kiran
‎2014 Jan 17 2:53 PM
HI Fatih,
Instead of using Select * use the fields you require and also in the second select use
select bukrs
gjahr
blart
belnr
from bseg appending table it_bkpf
it will append the entries into the first internal table itself . no need of using the second internal table .
‎2014 Jan 17 4:39 PM
Hi Fatih,
If you want to move the values from one internal table to another internal table use the below mentioned code.
Loop at tab_1 into wa_tab1.
move-corresponding wa_tab1 to wa_tab2.
append wa_tab2 to it_tab2.
clear wa_tab2.
endloop.
Thanks & Regards,
Imran.