2008 Aug 29 2:55 PM
Hi all,
I am displaying MBLNR BWART LFBNR from MSEG into an itab where BWART = '150 ' .
suppose i have data like this
MBLNR BWART LFBNR
11111 150 12345
22222 333 11111
33333 333 44444
12345 333 67678
so, i want to delete 11111 (because its BWART = 150) and its corresponding LFBNR value ie 12345 from MBLNR..
i e after the deletion my ITAB have
MBLNR BWART LFBNR
22222 333 11111
33333 333 44444
How do i do that ?
Krupali..
2008 Aug 29 3:03 PM
Try this.
TYPES: BEGIN OF ttab,
mblnr TYPE string,
bwart TYPE string,
lfbnr TYPE string,
END OF ttab.
DATA: itab TYPE TABLE OF ttab.
DATA: wa LIKE LINE OF itab.
DATA: wa_tmp LIKE LINE OF itab.
wa-mblnr = '11111'.
wa-bwart = '150'.
wa-lfbnr = '12345'.
APPEND wa TO itab.
wa-mblnr = '22222'.
wa-bwart = '333'.
wa-lfbnr = '11111'.
APPEND wa TO itab.
wa-mblnr = '33333'.
wa-bwart = '333'.
wa-lfbnr = '44444'.
APPEND wa TO itab.
wa-mblnr = '12345'.
wa-bwart = '333'.
wa-lfbnr = '67678'.
APPEND wa TO itab.
LOOP AT itab INTO wa
WHERE bwart = '150'.
READ TABLE itab INTO wa_tmp WITH KEY mblnr = wa-lfbnr.
IF sy-subrc = 0.
DELETE TABLE itab FROM wa_tmp.
ENDIF.
DELETE TABLE itab FROM wa.
ENDLOOP.
LOOP AT itab INTO wa.
WRITE:/ wa-mblnr, wa-bwart, wa-lfbnr.
ENDLOOP.Regards,
Rich Heilman
Hi all,
I am displaying MBLNR BWART LFBNR from MSEG into an itab where BWART = '150 ' .
suppose i have data like this
MBLNR BWART LFBNR
11111 150 12345
22222 333 11111
33333 333 44444
12345 333 67678
so, i want to delete 11111 (because its BWART = 150) and its corresponding LFBNR value ie 12345 from MBLNR..
i e after the deletion my ITAB have
MBLNR BWART LFBNR
22222 333 11111
33333 333 44444
How do i do that ?
Krupali..
2008 Aug 29 2:59 PM
hi,
I would do in two steps:
1. LOOP AT itan WHERE bwart = '150'.
==> collect relevant doc. numbers into another itab (let's say itab2) + delete that line
ENDLOOP.
2. LOOP AT itab2.
READ TABLE itab WITH key mblnr = itab2-mblnr.
IF sy-subrc EQ 0.
==> delete the line from itab
ENDIF.
ENDLOOP.
hope this helps
ec
2008 Aug 29 3:03 PM
Try this.
TYPES: BEGIN OF ttab,
mblnr TYPE string,
bwart TYPE string,
lfbnr TYPE string,
END OF ttab.
DATA: itab TYPE TABLE OF ttab.
DATA: wa LIKE LINE OF itab.
DATA: wa_tmp LIKE LINE OF itab.
wa-mblnr = '11111'.
wa-bwart = '150'.
wa-lfbnr = '12345'.
APPEND wa TO itab.
wa-mblnr = '22222'.
wa-bwart = '333'.
wa-lfbnr = '11111'.
APPEND wa TO itab.
wa-mblnr = '33333'.
wa-bwart = '333'.
wa-lfbnr = '44444'.
APPEND wa TO itab.
wa-mblnr = '12345'.
wa-bwart = '333'.
wa-lfbnr = '67678'.
APPEND wa TO itab.
LOOP AT itab INTO wa
WHERE bwart = '150'.
READ TABLE itab INTO wa_tmp WITH KEY mblnr = wa-lfbnr.
IF sy-subrc = 0.
DELETE TABLE itab FROM wa_tmp.
ENDIF.
DELETE TABLE itab FROM wa.
ENDLOOP.
LOOP AT itab INTO wa.
WRITE:/ wa-mblnr, wa-bwart, wa-lfbnr.
ENDLOOP.Regards,
Rich Heilman
2008 Aug 29 3:10 PM
Loop at itab1 into wa_itab1 where bwart = 150.
move itab1-lfbnr to gv_lfbnr.
delete itab1 from wa_itab1.
clear wa_itab1.
read table itab1 into wa_itab1 with key lfbnr = gv_lfbnr.
if sy-subrc = 0.
delete itab1 from wa_itab1..
endloop.
Thanks,
Sandeep.
2008 Aug 31 7:44 AM
Hi all,
i got the solution
tables: mseg.
TYPES: BEGIN OF t_mseg,
mblnr TYPE mseg-mblnr,
bwart TYPE mseg-bwart,
lfbnr TYPE mseg-lfbnr,
END OF t_mseg.
DATA: itab_mseg TYPE TABLE OF t_mseg.
DATA: w_mseg type t_mseg.
select mblnr bwart lfbnr from mseg INTO TABLE itab_mseg.
LOOP AT itab_mseg INTO w_mseg.
WRITE:/ SY-TABIX, w_mseg-mblnr, 27 w_mseg-bwart, 35 w_mseg-lfbnr.
ENDLOOP.
types: BEGIN OF t1_mseg,
mblnr TYPE mseg-mblnr,
bwart TYPE mseg-bwart,
lfbnr TYPE mseg-lfbnr,
end of t1_mseg.
data: itab2 TYPE TABLE OF t1_mseg,
w2 TYPE t1_mseg.
*select mblnr bwart lfbnr FROM mseg into table itab2 WHERE bwart = '102'.
LOOP AT itab2 INTO w2.
WRITE:/ SY-TABIX, w2-mblnr, 27 w2-bwart, 35 w2-lfbnr.
ENDLOOP.
select mblnr bwart lfbnr FROM mseg into table itab2 WHERE bwart = '102'.
LOOP AT itab2 INTO w2.
WRITE:/ SY-TABIX, w2-mblnr, 27 w2-bwart, 35 w2-lfbnr.
ENDLOOP.
LOOP at itab_mseg INTO w_mseg.
READ TABLE itab2 INTO w2 with KEY mblnr = w_mseg-mblnr." and
lfbnr = w_mseg-lfbnr.
if sy-subrc = 0.
delete itab_mseg.
endif.
endloop.
*LOOP AT itab_mseg INTO w_mseg.
WRITE:/ SY-TABIX, w_mseg-mblnr, 27 w_mseg-bwart, 35 w_mseg-lfbnr.
ENDLOOP.
LOOP at itab_mseg INTO w_mseg.
READ TABLE itab2 INTO w2 with KEY lfbnr = w_mseg-lfbnr." and
lfbnr = w_mseg-lfbnr.
if sy-subrc = 0.
delete itab_mseg.
endif.
endloop.
LOOP AT itab_mseg INTO w_mseg.
WRITE:/ SY-TABIX, w_mseg-mblnr, 27 w_mseg-bwart, 35 w_mseg-lfbnr.
ENDLOOP.