안녕하십니까?
아래의 로직에서 보시면
loop at it_result .
AT NEW month .
l_count = l_count + 1.
lv_flag = 'X'.
ENDAT.
IF lv_flag EQ 'X'.
MOVE-CORRESPONDING it_result TO alv_result.
ENDIF.
CLEAR lv_count.
DO 3 TIMES .
lv_count = lv_count + 1.
PERFORM conversion_exit_alpha_input CHANGING lv_count.
CONCATENATE 'ALV_RESULT-FIELD' l_count
lv_count INTO lv_fname.
ASSIGN (lv_fname) TO <fs_field>.
CASE lv_fname+18(2).
WHEN '01'.
<fs_field> = it_result-fkimg.
WHEN '02'.
<fs_field> = it_result-netwr.
WHEN '03'.
<fs_field> = it_result-netwr_loc.
ENDCASE.
ENDDO.
APPEND alv_result.
CLEAR alv_result.
endloop.
moth 값이 200712 -> 200801 로 변경이 되면
l_conunt 값을 1로 초기화 하게 로직을 짯는데요.
변경이 되도 로직을 안타네요.. 왜 이렇죠? 흑흑..
도움 부탁 드리겠습니다.
댓글 4
-
storyroom.net™
2008.10.20 23:18
-
슈퍼아밥퍼가되련다
2008.10.21 00:04
제가 글을 잘못 쓴거 같습니다.
at new month 해서 새로운 값이 나오면 +1 을 하게 한겁니다.
근데 문제는 새로운 월 값이 나와도 +1을 하고 같은 값이라도 계속 +1을 하고 있씁니다.
그것이 문제 입나다.. 도와 주세요
-
storyroom.net™
2008.10.21 01:50
쪽지로 요청하신 내용을 간단히 주석 달아서 한번 적어봤습니다.
이해해 도움이 되셨으면 좋겠습니다.
month 의 필드 위치가 중요합니다. 해당 필드에 at new를 걸어도 앞쪽에 있는 필드의 값이 변경되면 at new를 타게 됩니다.
at new를 하기 전에는 반드시 sort 하셔야하고 itab선언 하실때 필드의 순서도 확인하셔야 정확한 값이 나옵니다..
-
드라곤
2009.02.03 19:31
감사합니다.
l_count 값을 초기화 하도록 로직을 짰다고 말씀을 하시는데 초기화가 아니라 누적되고 있는데요...
At new month 안에 있는 l_count = l_count + 1 을 clear l_count 로 고치시면 될듯 합니다. ^^
work area 선언 안하실려구 lv_flag 에 값을 주는것 같네여 ^^
lv_flag 값도 초기화 해주지 않으면 한번 X 값이 들어간뒤에 계속 저기 move-corresponding 탈텐데요...
CLEAR 선언부분들을 다시 한번 확인해 보시면 되겠습니다 ^^