Skip to Content
0
Former Member
Jul 21, 2008 at 08:50 AM

loop inside a loop.

36 Views

hi ,

i hav used loop(w_cdpos) inside the same loop, so it is showing error, is there any alternate solution for this. pls send me hard code.

SELECT * FROM cdhdr INTO TABLE w_cdhdr

WHERE objectclas = 'KRED'

AND objectid = w_lfa1-lifnr

AND udate IN c_date

AND change_ind = 'I'.

SELECT * FROM cdpos INTO TABLE w_cdpos

FOR ALL ENTRIES IN w_cdhdr

WHERE objectclas = 'KRED'

AND objectid = w_lfa1-lifnr

AND tabname = 'LFBK'

AND changenr = w_cdhdr-changenr .

loop at w_cdpos. (giv me alternate solution)

IF sy-dbcnt GT 1 .

SORT w_cdpos BY changenr ASCENDING .

CLEAR w_result .

w_result-lifnr = w_lfa1-lifnr .

w_result-fname = 'BANK' .

w_result-ddtext = text-001 .

LOOP AT w_cdpos.(giv me alternate solution)

ws_cdpos = w_cdpos .

AT NEW changenr .

IF w_result-value_old IS INITIAL .

w_result-value_old = ws_cdpos-tabkey+13(57) .

ELSE .

w_result-value_new = ws_cdpos-tabkey+13(57) .

ENDIF .

ENDAT .

AT END OF changenr .

IF w_result-value_old IS NOT INITIAL

AND w_result-value_new IS NOT INITIAL .

w_result-value_old = w_result-value_new .

CLEAR w_result-value_new .

ENDIF .

ENDAT .

MOVE-CORRESPONDING ws_cdpos TO w_result.

APPEND w_result .

ENDLOOP.

ENDIF .

endloop.