안녕하십니까.
고수님들 도움 요청합니다..
펑션으로 alv 구현해서..
---------------------------------------------------------
FORM user_command USING p_ucomm LIKE sy-ucomm
p_selfield TYPE slis_selfield.
CASE p_ucomm.
WHEN 'CLAIM'.
ALV에 뿌려주는 인터널 테이블의 금액 필드 값 변경후..
p_selfield-refresh = 'X'.
ENDCASE.
---------------------------------------------------------
요렇게 구현을 했는데여..
리프레쉬해도 필드 카달로그에 통화 currency 반영한게 적용이 안되네여..
그래서 금액이 1,234 요렇게 나오지 않고 12.34 요렇게 나오는데여..
아무래도 필드카달로그 다시 읽어와야 할것 같아서 뒤에
필드 카달로그 다시 읽고 alv display 다시 해주면 화면이 두번 생성되고..
다른 방법이 없나여..
class로 구현해야 하나..
답변 부탁드립니다..
댓글 4
-
전컴
2010.02.03 17:54
-
Jonc
2010.02.03 22:38
테스트는 안해봣지만,
단순히 생각했을때, 화폐는 alv 속성중에 하나이고, 이 속성은 콜하면서 카타로그에 지정을 하게 되니,
금액과 , 화폐까지 모두 바뀐다면, 펑션을 다시 콜해서 읽어와야 돼지 않을까요?
데이터도 인터널값만 변경할것이 아니고, db값도 변경해야할것이고,
잠깐 테스트 해보시면 될듯한데..하시고 결과 좀 알려주세요....
-
전컴
2010.02.03 23:05
필드카탈로그에 실제 통화(KRW, RMB, USD, JPY...)를 바로 넣어줄 수 도 있지만,
인터널테이블에 통화 필드를 추가하여, 필드를 지정합니다.
ALV펑션을 다시 콜 할 필요없이,
REFRESH 로직에 데이터가 DB에 있건, 인터널테이블을 Modify 하건,
ALV에 출력될 값을 인터널테이블에 넣어주기만 하면 변경된 값이 ALV에 출력됩니다....
-
abbap
2010.02.04 00:19
전컴님 감사합니다..
그냥 통화가 당연히 KRW라 인터널 테이블에 통화 필드 선언없이 필드카달로그에 CURRENCY를 'KRW'로
강제 지정해서 사용해 왔었는데...
말씀대로 인터널테이블에 통화필드 추가해서 통화 단위 넣어놓고 참조필드로 지정했더니
REFRESH만 해도 금액이 정상적으로 반영되서 나오네여..
그럼 즐밥들 하세요..
Refresh 할 경우 화면이 두번 생성되는 것은, 펑션 ALV를 다시 콜해서 입니다.
Refresh 로직에 데이터만 새로 가져오시고, ALV펑션 부분은 제외시키세요.
금액이 잘못 나오는것은 필드카탈로그 커런시필드, 통화필드를 적용시켜야 하는데
그부분이 잘못 된거 같기도 하고요~
필드카탈로그 부분 소스 올려주시면 다시 봐드리께요~
즐밥하세요~^^