08-18-2010 6:29 PM
data : begin of idata,
field1 type XX,
field2 type XXX,
field3 type XXXX,
field4 type XXXX
end of idata.
data : begin of idata1,
field1 type XX,
field2 type XXX,
field3 type XXXX,
field4 type XXXX,
field5 type XXXX,
end of idata1.
internal table idata is filled like
idata is filled as
1 2 3 4
1 2 3 6
i want idata1 as
I want it as
1 2 3 4 6
08-18-2010 7:43 PM
Hi Have a look at the below code snippet, It gives the output as 12346.
REPORT ztext_editor .
DATA : BEGIN OF idata OCCURS 1,
field1 TYPE C,
field2 TYPE C,
field3 TYPE C,
field4 TYPE C,
END OF idata.
DATA : BEGIN OF idata1 OCCURS 1,
field1 TYPE C,
field2 TYPE C,
field3 TYPE C,
field4 TYPE C,
field5 TYPE C,
END OF idata1.
idata-field1 = 1.
idata-field2 = 2.
idata-field3 = 3.
idata-field4 = 4.
append idata.
idata-field1 = 1.
idata-field2 = 2.
idata-field3 = 3.
idata-field4 = 6.
append idata.
LOOP AT IDATA.
IF IDATA1[] IS INITIAL.
APPEND IDATA TO IDATA1.
ELSE.
READ TABLE IDATA1 WITH KEY FIELD1 = IDATA-FIELD1
FIELD2 = IDATA-FIELD2
FIELD3 = IDATA-FIELD3.
MOVE IDATA-FIELD4 TO IDATA1-FIELD5.
APPEND IDATA1.
ENDIF.
ENDLOOP.
DELETE IDATA1 INDEX 1.
LOOP AT IDATA1.
WRITE 😕 IDATA1-FIELD1,
IDATA1-FIELD2,
IDATA1-FIELD3,
IDATA1-FIELD4,
IDATA1-FIELD5.
ENDLOOP.
Close the thread if it solves your query.
Regards
Abhii
08-18-2010 7:03 PM
Hi ,
You can compare the first three fields, if they are same then fill the second internal table with the fifth field. move the first record as it is.
Regards,
Venkat Appikonda
08-18-2010 7:18 PM
Hi,
Take another internal table with single field. Loop at first internal table and append data in each field of first internal table as record in newly created internal table.
Sort the new internal table, loop on it and transfer each record into each field in idata1 internal table.
- Santosh
08-18-2010 7:43 PM
Hi Have a look at the below code snippet, It gives the output as 12346.
REPORT ztext_editor .
DATA : BEGIN OF idata OCCURS 1,
field1 TYPE C,
field2 TYPE C,
field3 TYPE C,
field4 TYPE C,
END OF idata.
DATA : BEGIN OF idata1 OCCURS 1,
field1 TYPE C,
field2 TYPE C,
field3 TYPE C,
field4 TYPE C,
field5 TYPE C,
END OF idata1.
idata-field1 = 1.
idata-field2 = 2.
idata-field3 = 3.
idata-field4 = 4.
append idata.
idata-field1 = 1.
idata-field2 = 2.
idata-field3 = 3.
idata-field4 = 6.
append idata.
LOOP AT IDATA.
IF IDATA1[] IS INITIAL.
APPEND IDATA TO IDATA1.
ELSE.
READ TABLE IDATA1 WITH KEY FIELD1 = IDATA-FIELD1
FIELD2 = IDATA-FIELD2
FIELD3 = IDATA-FIELD3.
MOVE IDATA-FIELD4 TO IDATA1-FIELD5.
APPEND IDATA1.
ENDIF.
ENDLOOP.
DELETE IDATA1 INDEX 1.
LOOP AT IDATA1.
WRITE 😕 IDATA1-FIELD1,
IDATA1-FIELD2,
IDATA1-FIELD3,
IDATA1-FIELD4,
IDATA1-FIELD5.
ENDLOOP.
Close the thread if it solves your query.
Regards
Abhii