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

About structure...

Former Member
0 Likes
884

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.

1 ACCEPTED SOLUTION
Read only

GirieshM
Active Contributor
0 Likes
838

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

5 REPLIES 5
Read only

GirieshM
Active Contributor
0 Likes
839

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

Read only

Former Member
0 Likes
838

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

Read only

Former Member
0 Likes
838

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

Read only

Former Member
0 Likes
838

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 .

Read only

Former Member
0 Likes
838

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.