‎2008 Aug 03 9:37 PM
Gurus,
I have following situation:
BELNR.........ITEM..........AMT
1567.............0001.........23.4
1540.............0001.........10.0
1590............ 0002.........24.5
1590.............0003.........45.8
1456.............0002..........10.0
1356.............0004..........23.0
1356.............0006..........45.7
Now the if the item numbers are not numbered sequentially for document numbers in a internal table starting from 0001 then I want to renumber them and modify the internal table as follows:
BELNR.........ITEM..........AMT
1567.............0001.........23.4
1540.............0001.........10.0
1590............ 0001.........24.5
1590.............0002.........45.8
1456.............0001..........10.0
1356.............0001..........23.0
1356.............0002..........45.7
Please suggest.
‎2008 Aug 03 9:47 PM
> BELNR.........ITEM..........AMT
>
> 1567.............0001.........23.4
> 1540.............0001.........10.0
> 1590............ 0002.........24.5
> 1590.............0003.........45.8
> 1456.............0002..........10.0
> 1356.............0004..........23.0
> 1356.............0006..........45.7
>
data: item type posnr,
wa like line of it_tab,
w_item type posnr.
sort it_tab by belnr.
it_tmp = it_tab.
loop at it_tmp.
wa = it_tmp.
wa_item = it_tmp-posnr.
at new belnr.
item = '0001'.
endat.
wa-posnr = item.
modify it_tab from wa transporting item where belnr = wa-belnr and
posnr = w_item.
item = item + 1.
endloop.
‎2008 Aug 03 9:47 PM
> BELNR.........ITEM..........AMT
>
> 1567.............0001.........23.4
> 1540.............0001.........10.0
> 1590............ 0002.........24.5
> 1590.............0003.........45.8
> 1456.............0002..........10.0
> 1356.............0004..........23.0
> 1356.............0006..........45.7
>
data: item type posnr,
wa like line of it_tab,
w_item type posnr.
sort it_tab by belnr.
it_tmp = it_tab.
loop at it_tmp.
wa = it_tmp.
wa_item = it_tmp-posnr.
at new belnr.
item = '0001'.
endat.
wa-posnr = item.
modify it_tab from wa transporting item where belnr = wa-belnr and
posnr = w_item.
item = item + 1.
endloop.
‎2008 Aug 04 5:38 AM
Hi,
Check the below code.
REPORT zb_item1_sdn.
TYPES: BEGIN OF ty_data,
belnr TYPE belnr,
posnr TYPE posnr,
END OF ty_data.
DATA: it_data TYPE STANDARD TABLE OF ty_data,
wa_data TYPE ty_data,
l_belnr TYPE belnr.
START-OF-SELECTION.
wa_data-belnr = '1567'.
wa_data-posnr = '0001'.
APPEND wa_data TO it_data.
CLEAR:wa_data.
wa_data-belnr = '1540'.
wa_data-posnr = '0001'.
APPEND wa_data TO it_data.
CLEAR:wa_data.
wa_data-belnr = '1590'.
wa_data-posnr = '0002'.
APPEND wa_data TO it_data.
CLEAR:wa_data.
wa_data-belnr = '1590'.
wa_data-posnr = '0003'.
APPEND wa_data TO it_data.
CLEAR:wa_data.
wa_data-belnr = '1456'.
wa_data-posnr = '0002'.
APPEND wa_data TO it_data.
CLEAR:wa_data.
wa_data-belnr = '1356'.
wa_data-posnr = '0004'.
APPEND wa_data TO it_data.
CLEAR:wa_data.
wa_data-belnr = '1356'.
wa_data-posnr = '0005'.
APPEND wa_data TO it_data.
CLEAR:wa_data.
data: l_posnr type posnr value '0001',
l_posnr_add type posnr,
flg_first type char1.
sort it_Data by belnr posnr.
LOOP AT it_data INTO wa_data.
IF wa_data-belnr = l_belnr.
IF wa_data-posnr = '0001' AND flg_first <> space.
wa_data-posnr = l_posnr.
l_posnr_add = l_posnr.
flg_first = 'X'.
ELSE.
l_posnr_add = l_posnr_add + 1.
wa_data-posnr = l_posnr_add.
CLEAR flg_first.
ENDIF.
l_belnr = wa_data-belnr.
ELSE.
clear l_posnr_add.
IF wa_data-posnr = '0001' AND flg_first <> space.
wa_data-posnr = l_posnr.
l_posnr_add = l_posnr.
flg_first = 'X'.
ELSE.
l_posnr_add = l_posnr_add + 1.
wa_data-posnr = l_posnr_add.
CLEAR flg_first.
ENDIF.
l_belnr = wa_data-belnr.
ENDIF.
modify it_data from wa_data transporting posnr.
clear: wa_data.
ENDLOOP.
END-OF-SELECTION.
Regards,
Boobalan S
‎2008 Aug 04 6:04 AM
Hi,
Declare a another internala table with same type like itab1,itab2.
data w_item(4) type n.
sort itab1 by belnr.
loop at itab1 into wa.
at new belnr.
w_item = '0001'.
endat.
wa-item = w_item.
w_item = w_item + 1.
append wa to itab2.
endloop.
regards,
Jagadeesh.
‎2008 Aug 04 6:23 AM
try like the code below:
loop at itab into wa.
AT NEW ITEM.
w_item = '0001'.
ENDAT.
wa-item = w_item.
modify table itab index sy-tabix from wa.
w_item = w_item + 1.
endloop.With luck,
Pritam.
‎2008 Aug 04 6:30 AM
Data idx type sy-tabix.
Loop at it_doc.
idx = sy-tabix.
at new belnr.
l_item = '0001'
endat.
it_doc-itam= l_item.
modify it_doc index idx.
l_item = l_item + 1.
Endloop.
Regards
rajesh
‎2008 Aug 04 6:42 AM