000000000000009862
000000000000009922
BT1589
BT4883
BT6082
material code에 이런 데이터가 공존하고 있습니다.
이것을 아래와 같이
숫자는 앞에 0을 제외하고 나오게 하고 문자가 포함된 것은 그냥 그대로 나오게
바뀌어 ALV에 표현하는 방법을 알고 싶습니다..
9862
9922
BT1589
BT4883
BT6082
댓글 11
-
버미!
2010.05.28 16:59
ALV로 뿌려주기 전에 데이타 가공할 때 Conxxx-ALPHA 관련 함수 있으니 찾아보시면 금방 해결하실 겁니다. ^^ -
맑은하늘
2010.05.28 18:02
해당 필드카탈로그에 CONVEXIT 필드에 ALPHA 라고 넣어주세요. -
crazybarthez
2010.05.28 18:50
윗분들이 다 설명하셨네요;;; 버미님 이 알려주신 펑션은 참고로 INPUT은 0을 넣어주고 OUTPUT은 0을 빼주는역할을 합니다.
-
모포
2010.05.28 19:11
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = gt_data-MATNR
IMPORTING
OUTPUT = gt_data-MATNR.
이렇게 코딩을 했는데 먹히질 않고 계속 0이 앞에 붙어서 나옵니다.
참고로 gt_dat는
DATA: gt_data TYPE STANDARD TABLE OF ty_data with header line
이렇게 앞에 선언해 놨습니다.
gt_data 를 LOOP 돌리면서 function을 call 해야하는 건가요?
-
맑은하늘
2010.05.28 19:15
루프 돌리셔서 컨버젼 할 필요없구요. 그냥 gt_fieldcat-convexit = 'ALPHA'. 만 하시면 되요.
input/output에 모두 적용됩니다.
loop at gt_fieldcat.
case gt_fieldcat-fieldname.
when 'MATNR'. gt_fieldcat-convexit = 'ALPHA'.
....
endcase.
....
modify gt_fieldcat.
endloop.
-
모포
2010.05.28 19:55
맑은하늘님 답변주셔서 감사합니다. 계속 문제가 발생하네요..
DATA: gt_data TYPE STANDARD TABLE OF ty_data with header line,
i_fldcat TYPE slis_t_fieldcat_alv,
wa_fldcat TYPE slis_fieldcat_alv.
.......................
loop at i_fldcat.
case i_fldcat.
when 'MATNR'. i_fldcat-convexit = 'ALPHA'.
endcase.
modify i_fldcat.
endloop.
가르쳐주신 코드를 넣고 코드체크를 해보니
Internal table "I_FLDCAT" has no Header line - specification of one of
the additions "INTO wa", "ASSIGNING", "REFERENCE INTO", "TRANSPORTING NO FIELDS" is req
라는 에러코드가 떨어집니다.
-
맑은하늘
2010.05.28 21:46
i_fldcat 는 헤더라인이 없는 internal 테이블로 선언이 되어있네요.
i_fldcat 선언에 with header line 을 붙여주시거나
loop at i_fldcat into wa_fldcat 로 하셔서
case wa_fldcat-fieldname.
when 'MATNR'. wa_fldcat-convexit = 'ALPHA'.
....
modify i_fldcat from wa_fldcat.
endloop.
로 바꿔주시면 될 거예요.
-
모포
2010.05.28 22:12
첫번째 방법, 두번째 방법대로 하니 아래 에러가 납니다.
The data object "WA_FLDCAT" has no component called "CONVEXIT", but
there is a component called "NO_CONVEXT".
-
맑은하늘
2010.05.29 02:11
아... reuse 군요. 죄송합니다. 잘 안쓰다보니 그냥 alv 인줄 알았습니다.
reuse 에는 convexit 이 없네요.
윗 분들 말씀처럼 데이터를 바꾸시던지
아니면 해당 필드에 대한 reference field 를 지정하시면 될 것 같네요.
ref_field, ref_name 에 matnr 에 대한 테이블 필드, 즉,
ref_fieldname = 'MATNR'.
ref_tabname = 'MARA'. 를 하시면
MARA-MATNR 필드 속성을 참조하게 되어 conversion exit 'ALPHA' 를
타게 될지도 모르겠네요.
거듭 지문을 자세히 보지 못해 혼란을 드려 죄송합니다.
-
맑은하늘
2010.05.29 02:12
아... no_convext 는 현재 필드에 설정되어 있는 convesion exit 을 쓰지 않겠다는 말입니다. ^^ -
모포
2010.05.29 03:18
감사합니다.. 덕분에 해결했습니다..땡큐요