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

fill itab

Former Member
0 Likes
836

HI,

suppose i have itab1 like this with values.

matnr mtart

9882 F

8787 X

I would like to fill itab2 in this fashion.

matnr

mtart

9882

F

8787

X.

anybody tell me how to achieve this??

10 REPLIES 10
Read only

Former Member
0 Likes
814

Use this code.

loop at itab1.
  itab2-field = itab-fld1.
  append itab2.

  itab2-field = itab-fld2.
  append itab2.
endloop.

fld1 and fld2 are columns of itab1.

field is the column of itab2.

Please mark points if the solution was useful.

Manoj

Read only

Former Member
0 Likes
814

1>itab2[] = itab1[] if your internal tables both have exactly the same structure

2> or move 1 by 1 all the feilds from old itab to new

3>u can use move corresponding statement also

4>move statement also

if still its not done paste your code here

thnkx

bhanu

Read only

Former Member
0 Likes
814

Hi,

Loop at itab1.

itab2-matnr = itab1-matnr .

append itab2.

itab2-matnr = itab1-mtart .

append itab2.

endloop.

Read only

Former Member
0 Likes
814

hi


loop at itab1 into wa1.
wa2-matnr=wa1-matnr
wa2-mtart=wa1-mtart
wa2-9882=wa1-9882
wa2-F=wa1-F
wa2-8787=wa1-8787
wa2-X.=wa1-X.

append wa2 to itab2.
clear wa2.

regards

ravish

<b>plz dont forget to reward if helpful</b>

Read only

RaymondGiuseppi
Active Contributor
0 Likes
814

Try something like

  DATA: BEGIN OF itab1 OCCURS 0,
        matnr LIKE mara-matnr,
        ersda LIKE mara-ersda,
        ernam LIKE mara-ernam,
        volum LIKE mara-volum,
        voleh LIKE mara-voleh,
        END OF itab1.
  DATA: BEGIN OF itab2 OCCURS 0,
        walue(80),
  END OF itab2.

  FIELD-SYMBOLS: <fs>.

  SELECT * FROM mara UP TO 5 ROWS
    INTO CORRESPONDING FIELDS OF TABLE itab1.

  LOOP AT itab1.
    DO.
      ASSIGN COMPONENT sy-index OF STRUCTURE itab1 TO <fs>.
      IF sy-subrc <> 0. EXIT. ENDIF.
      WRITE <fs> TO itab2. " or MOVE
      APPEND itab2.
    ENDDO.
  ENDLOOP.

Regards

Read only

0 Likes
814

I add the header in this version

  TYPE-POOLS sydes.

  DATA: BEGIN OF itab1 OCCURS 0,
        matnr LIKE mara-matnr,
        ersda LIKE mara-ersda,
        ernam LIKE mara-ernam,
        volum LIKE mara-volum,
        voleh LIKE mara-voleh,
        END OF itab1.
  DATA: BEGIN OF itab2 OCCURS 0,
        walue(80),
  END OF itab2.

  FIELD-SYMBOLS: <fs>.

  SELECT * FROM mara UP TO 5 ROWS
    INTO CORRESPONDING FIELDS OF TABLE itab1.

* Headers
  DATA t_desc TYPE sydes_desc.
  DESCRIBE FIELD itab1 INTO t_desc.
  LOOP AT t_desc-names.
    CHECK t_desc-names-name <> sy-repid. " program where strcuture
    CHECK t_desc-names-name+0(2) <> '=='. " ref field (unit, curr)
    writet_desc-names-name to itab2. " or MOVE
    APPEND itab2.
  ENDLOOP.
* Fields value  
  LOOP AT itab1.
    DO.
      ASSIGN COMPONENT sy-index OF STRUCTURE itab1 TO <fs>.
      IF sy-subrc <> 0. EXIT. ENDIF.
      WRITE <fs> TO itab2. " or MOVE
      APPEND itab2.
    ENDDO.
  ENDLOOP.

Regards

Read only

0 Likes
814

(sorry to fast) correct version (no header line in subtable)

TYPE-POOLS sydes.

  DATA: BEGIN OF itab1 OCCURS 0,
        matnr LIKE mara-matnr,
        ersda LIKE mara-ersda,
        ernam LIKE mara-ernam,
        volum LIKE mara-volum,
        voleh LIKE mara-voleh,
        END OF itab1.
  DATA: BEGIN OF itab2 OCCURS 0,
        walue(80),
  END OF itab2.

  FIELD-SYMBOLS: <fs>.

  SELECT * FROM mara UP TO 5 ROWS
    INTO CORRESPONDING FIELDS OF TABLE itab1.

* Headers
  DATA: t_desc TYPE sydes_desc,
        l_name LIKE LINE OF t_desc-names.
  DESCRIBE FIELD itab1 INTO t_desc.
  LOOP AT t_desc-names INTO l_name.
    CHECK l_name-name <> sy-repid. " program where strcuture
    CHECK l_name-name+0(2) <> '=='. " ref field (unit, curr)
    WRITE l_name-name TO itab2. " or MOVE
    APPEND itab2.
  ENDLOOP.
* Fields value
  LOOP AT itab1.
    DO.
      ASSIGN COMPONENT sy-index OF STRUCTURE itab1 TO <fs>.
      IF sy-subrc <> 0. EXIT. ENDIF.
      WRITE <fs> TO itab2. " or MOVE
      APPEND itab2.
    ENDDO.
  ENDLOOP.

Regards

Read only

Former Member
0 Likes
814

Hello,

Check this COde.

DATA: BEGIN OF itab1 OCCURS 0,
        f1 TYPE char10,
        f2 TYPE char10,
      END OF itab1.

DATA: wa_tab1 LIKE LINE OF itab1.

DATA: BEGIN OF itab2 OCCURS 0,
        f1 TYPE char10,
      END OF itab2.

DATA: wa_tab2 LIKE LINE OF itab2.

CLEAR wa_tab1.
wa_tab1-f1 = '1111'.
wa_tab1-f2 = 'A'.
APPEND wa_tab1 TO itab1.

CLEAR wa_tab1.
wa_tab1-f1 = '2222'.
wa_tab1-f2 = 'B'.
APPEND wa_tab1 TO itab1.

CLEAR wa_tab1.
wa_tab1-f1 = '3333'.
wa_tab1-f2 = 'C'.
APPEND wa_tab1 TO itab1.

CLEAR wa_tab1.
wa_tab1-f1 = '4444'.
wa_tab1-f2 = 'D'.
APPEND wa_tab1 TO itab1.

LOOP AT itab1 INTO wa_tab1.
  WRITE:/ wa_tab1-f1,
          wa_tab1-f2.
ENDLOOP.

LOOP AT itab1 INTO wa_tab1.
  wa_tab2-f1 = wa_tab1-f1.
  APPEND wa_tab2 TO itab2.

  wa_tab2-f1 = wa_tab1-f2.
  APPEND wa_tab2 TO itab2.

ENDLOOP.

WRITE:/ '*****************'.
LOOP AT itab2 INTO wa_tab2.
  WRITE:/ wa_tab2-f1.
ENDLOOP.

Regards,

Deepu.K

Read only

Former Member
0 Likes
814

Hi try this one...........

REPORT ytest1 line-count 20(10).

data: begin of itab1 occurs 0,

t1(10),

t2(10),

end of itab1.

itab1-t1 = '1000 f1' .

itab1-t2 = '1001 f2' .

append itab1.

data : q type c value ' '.

data: begin of itab2 occurs 0,

t3(10),

t4(10),

t5(10),

t6(10),

end of itab2.

loop at itab1.

split itab1-t1 at q into itab2-t3 itab2-t4.

split itab1-t2 at q into itab2-t5 itab2-t6.

append itab2.

endloop.

loop at itab2.

write: / itab2-t3,

itab2-t4,

itab2-t5,

itab2-t6.

endloop.

rewards point if it is helpful

regards,

Mohit

Read only

Former Member
0 Likes
814

HI mamtha,

AT END OF matnr.

LOOP AT int1 WHERE matnr = int2matnr.

CLEAR int_final1.

MOVE int1_matnr TO int2-matnr.

MOVE int2-matnr TO int2-mtart.

CLEAR int2

APPEND int_final1.

CLEAR int1

ENDLOOP.

ENDAT.

Kishore reddy