Skip to Content
0
Former Member
Apr 28, 2014 at 10:21 AM

Issue while using Collect statement in program

37 Views

Hi friend's,

i have some issue regarding Collect statement..

Issue is somthing like this,i have created a structure and internal table and work area with same type,

u can look in below code..i wann to collect 'enmng' f'ield value whose matnr,charg,mvt type ,aufnr,rsnum are same but rspos and lgort are differnt for this i need to collect 'ENMNG' field value can any one tel me what to do...it not collectng value instead of this it append entire row...

types: begin of ty_resb,

rsnum type resb-rsnum, "Resrvation Number

rspos type resb-rspos, "item position

xloek type resb-xloek, "Item Deleted if = 'X'

matnr type resb-matnr, "Material Number

lgort type resb-lgort, "Storage location 'REJT'

charg type resb-charg, "Batch No

enmng type resb-enmng, "Quantity withdrawn should be greater then '0'

enwrt type resb-enwrt, "Value Withdrawn

aufnr type resb-aufnr, "Order

bwart type resb-bwart, "Movement type

end of ty_resb.

data:tt_resb type table of ty_resb ,

tt_resb1 type table of ty_resb ,

tt_resb2 type standard table of ty_resb ,

**workarea.

ts_resb type ty_resb,

ts_resb2 type ty_resb,

ts_resb1 type ty_resb.

**move data to another internal table

tt_resb1[] = tt_resb[].

sort tt_resb by rsnum rspos matnr charg bwart lgort aufnr .

sort tt_resb1 by rsnum rspos matnr charg bwart lgort aufnr.

DELETE adjacent duplicates from tt_resb comparing rsnum rspos matnr charg bwart lgort aufnr .

DELETE adjacent duplicates from tt_resb1 comparing rsnum rspos matnr charg bwart lgort aufnr.

loop at tt_resb into ts_resb .

clear:ts_resb1,ts_resb2.

read table tt_resb1 into ts_resb1 with key rsnum = ts_resb-rsnum rspos = ts_resb-rspos matnr = ts_resb-matnr

charg = ts_resb-charg aufnr = ts_resb-aufnr binary search.

if ts_resb1-bwart = '261' .

move ts_resb1-aufnr to ts_resb2-aufnr.

move ts_resb1-matnr to ts_resb2-matnr.

move ts_resb1-charg to ts_resb2-charg.

move ts_resb1-bwart to ts_resb2-bwart.

move ts_resb1-enwrt to ts_resb2-enwrt.

move ts_resb1-lgort to ts_resb2-lgort.

move ts_resb1-enmng to ts_resb2-enmng.

collect ts_resb2 into tt_resb2.

endif.

clear ts_resb.

endloop.

Regard's,

shaikh khalid.