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

Header , Item itab

Former Member
0 Likes
668

in my Intenal table i have data like this

Matnr werks maktx menge

A1 602 Tea 1

A1 602 Milk 3

but i want like this.

A1 602 Tea 1 Milk 3

maktx and menge on last line which is not comman

if duplicate matnr then it should come once.

Point assued

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
640

Hi,

check this program jim.

REPORT  zsrwq  LINE-SIZE 300. 

DATA: wa_matnr LIKE mara-matnr,
      wa_werks LIKE marc-werks.

DATA: BEGIN OF t_mara OCCURS 0,
         matnr LIKE mara-matnr,
         werks LIKE marc-werks,
         maktx LIKE makt-maktx,
         menge TYPE c,
      END OF t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 602.
t_mara-maktx = 'Milk'.
t_mara-menge = '1'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 602.
t_mara-maktx = 'tea'.
t_mara-menge = '3'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 602.
t_mara-maktx = 'Coffee'.
t_mara-menge = '9'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 601.
t_mara-maktx = 'cotton'.
t_mara-menge = '8'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 601.
t_mara-maktx = 'lenin'.
t_mara-menge = '6'.
APPEND t_mara.

LOOP AT t_mara.
  IF t_mara-matnr = wa_matnr AND
     t_mara-werks = wa_werks.
    WRITE:  t_mara-maktx,
             t_mara-menge.
  ELSE.
    WRITE:/ t_mara-matnr,
           t_mara-werks ,
           t_mara-maktx,
           t_mara-menge.
  ENDIF.
  MOVE: t_mara-matnr TO wa_matnr,
        t_mara-werks TO wa_werks.
ENDLOOP.

reward if helpful

raam

Hi,

check this program jim.

REPORT  zsrwq  LINE-SIZE 300. 

DATA: wa_matnr LIKE mara-matnr,
      wa_werks LIKE marc-werks.

DATA: BEGIN OF t_mara OCCURS 0,
         matnr LIKE mara-matnr,
         werks LIKE marc-werks,
         maktx LIKE makt-maktx,
         menge TYPE c,
      END OF t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 602.
t_mara-maktx = 'Milk'.
t_mara-menge = '1'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 602.
t_mara-maktx = 'tea'.
t_mara-menge = '3'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 602.
t_mara-maktx = 'Coffee'.
t_mara-menge = '9'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 601.
t_mara-maktx = 'cotton'.
t_mara-menge = '8'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 601.
t_mara-maktx = 'lenin'.
t_mara-menge = '6'.
APPEND t_mara.

LOOP AT t_mara.
  IF t_mara-matnr = wa_matnr AND
     t_mara-werks = wa_werks.
    WRITE:  t_mara-maktx,
             t_mara-menge.
  ELSE.
    WRITE:/ t_mara-matnr,
           t_mara-werks ,
           t_mara-maktx,
           t_mara-menge.
  ENDIF.
  MOVE: t_mara-matnr TO wa_matnr,
        t_mara-werks TO wa_werks.
ENDLOOP.

reward if helpful

raam

4 REPLIES 4
Read only

Former Member
0 Likes
640

Hi,

Use nested loop statements.

LOOP AT HEADER where <condition>.

LOOP AT ITEM where <condition>.

-


ENDLOOP. "item loop

ENDLOOP. "header loop

Reward,if useful.

Thanks,

Chandu

Read only

Former Member
0 Likes
641

Hi,

check this program jim.

REPORT  zsrwq  LINE-SIZE 300. 

DATA: wa_matnr LIKE mara-matnr,
      wa_werks LIKE marc-werks.

DATA: BEGIN OF t_mara OCCURS 0,
         matnr LIKE mara-matnr,
         werks LIKE marc-werks,
         maktx LIKE makt-maktx,
         menge TYPE c,
      END OF t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 602.
t_mara-maktx = 'Milk'.
t_mara-menge = '1'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 602.
t_mara-maktx = 'tea'.
t_mara-menge = '3'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 602.
t_mara-maktx = 'Coffee'.
t_mara-menge = '9'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 601.
t_mara-maktx = 'cotton'.
t_mara-menge = '8'.
APPEND t_mara.

t_mara-matnr = 'A1' .
t_mara-werks = 601.
t_mara-maktx = 'lenin'.
t_mara-menge = '6'.
APPEND t_mara.

LOOP AT t_mara.
  IF t_mara-matnr = wa_matnr AND
     t_mara-werks = wa_werks.
    WRITE:  t_mara-maktx,
             t_mara-menge.
  ELSE.
    WRITE:/ t_mara-matnr,
           t_mara-werks ,
           t_mara-maktx,
           t_mara-menge.
  ENDIF.
  MOVE: t_mara-matnr TO wa_matnr,
        t_mara-werks TO wa_werks.
ENDLOOP.

reward if helpful

raam

Read only

Former Member
0 Likes
640

hai

jim kelly,

This simple logic fulfill ur requirement.

DATA: wa_matnr like mara-matnr,

wa_werks like mara-werks.

Loop at t_itab1 into fs_itab1.

if fs_itab1-matnr = wa_matnr and

fs_itab1-werks = wa_werks.

write: fs_itab1-maktx,

fs_itab1-mange.

else.

write:fs_itab1-matnr,

fs_itab1-werks,

fs_itab1-maktx,

fs_itab1-mange.

endif.

move fs_itab1-matnr to wa_matnr,

fs_itab1-werks to wa_werks.

endloop.

If useful , reward points.

thank you,

G.V.K.Prasad

Edited by: PRASAD GVK on Apr 19, 2008 9:23 AM

Read only

Former Member
0 Likes
640

Thanks K Redd..

Perfect logic...

10 point has been given.