아밥초보입니다....
CONVERSION_EXIT_ALPHA_OUTPUT
함수를 사용하면 숫자앞의 0이 제거되는걸로 아는데 필드를 넣고 필드로 받는 로직으로 알고있습니다.(틀린것일수도,,)
문제는 IT_LIST테이블에서 필드 6개의 값들을 함수를 사용하여 0을제거하려는데요,,
function 6번을 부르는것은 좀 이상한것같은데 테이블안의 원하는필드를 fuction한번만 호출하여 사용할순없나요??
DATA : BEGIN OF IT_LIST OCCURS 0,
VKORG LIKE LIKP-VKORG,
ZFCIVNO LIKE ZTECI-ZFCIVNO, <----------- 6개 필드입니다.
ZFCIVDT LIKE ZTECI-ZFCIVDT,
SIGNI LIKE VTTK-SIGNI,
KUNAG LIKE ZTECI-KUNAG, <--------------
TKNUM LIKE VTTK-TKNUM, <--------------
TPNUM LIKE VTTP-TPNUM, <--------------
VBELN LIKE LIPS-VBELN, <--------------
POSNR LIKE LIPS-POSNR, <--------------
MATNR LIKE LIPS-MATNR,
VRKME LIKE LIPS-VRKME,
LFIMG LIKE LIPS-LFIMG,
WAERK LIKE LIKP-WAERK,
KZWI6 LIKE LIPS-KZWI6,
END OF IT_LIST.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_LIST-POSNR
IMPORTING
OUTPUT = IT_LIST-POSNR.
지금은 이것을 각 필드별로 6번썻음.
좀 도와주세요,,,
댓글 5
-
버미!
2010.11.17 19:34
-
MadMax
2010.11.17 19:34
각 필드별로 써야 합니다. 참고하세요...
-
gogo
2010.11.17 19:59
각 필드별로 하는게 맞구요..대신 로직이 좀 지저분해질테니 PERFORM문을 만들어서
사용하심 될거 같습니다.
< 예시 >
PERFORM CONVERSION_OUTPUT USING IT_LIST-POSNR
CHANGING IT_LIST-POSNR.
-
버미!
2010.11.17 20:06
단순히 0을 제거하는 목적이라면 해당 필드의 타입이 Char 인경우 pack을 쓰시면 되고,
Num 타입이라면 님이 알고계신 펑션을 쓰시면 됩니다.
아니면 Num 타입일경우 Char 타입 변수에 넣으시고 pack을 쓰시면 되고요
DATA : lv_vbeln TYPE vbap-vbeln,
lv_posnr TYPE vbap-posnr,
lv_posnr_c type char6.
lv_vbeln = '0001234567'.
lv_posnr = '000010'.
PACK : lv_vbeln TO lv_vbeln,
lv_posnr TO lv_posnr,
lv_posnr TO lv_posnr_c.
WRITE:/'Sales Order : ', lv_vbeln,
/'Item Num : ', lv_posnr,
/'Item Char : ', lv_posnr_c. -
맑은하늘
2010.11.17 22:12
ㅎㅎ .. type-1 연습이면 write 로 출력하실 것 같은데요.
write 구문중에서 conversion_exit 적용하는 구문이 있어요.
궂이 펑션 사용하지 않고 write 로 conversion_exit 을 적용할 수 있습니다.
예) write it_list-posnr using edit mask '==ALPHA'.
write 로 출력을 하신다면 참고해 보세요.
이유가 뭘까요? ALV에서 0을 제거해서 보여주길 원하는 가요? 아님 다른 이유가?
그 이유를 알려주시면 그에 대한 적절한 답변이 달릴거 같네요..