오랜만에 Abap 개발을 했는데 이유를 알 수가 없어서 질문 글을 올립니다.
아래와 같이 테스트 ALV GRID 를 만들어서 금액 나 수량 필드에 값을 넣으려고 합니다.
테이블 구조는 그 다음 그림과 같습니다.
금액 이나 수량 필드에 값을 넣고 나면 바로 Dump 화면이 뜹니다.
참조 테이블과 필드 모두 다 선언을 해줬습니다.
*&---------------------------------------------------------------------*
*& Form define_catalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM define_catalog .
CLEAR:gt_fieldcat, gt_fieldcat[].
DATA : ls_fieldcat LIKE lvc_s_fcat.
PERFORM fieldcat_assign USING :
'DDATE' '일자' 'GT_ITAB' 'ZSDT0001' '' '10' '' 'L' '' '' ,
'VKBUR' '영업소' 'GT_ITAB' 'ZSDT0001' 'VKBUR' '6' '' 'L' 'X' '',
'VKBUR_NM' '영업소명' 'GT_ITAB' 'ZSDT0002' 'VKBUR_NM' '20' '' 'L' '' '',
'WRBTR' '금액' 'GT_ITAB' 'ZSDT0001' 'WRBTR' '13' '' 'L' 'X' 'WAERS',
'ZCCNT' '판매건수' 'GT_ITAB' 'ZSDT0001' 'ZCCNT' '10' '' 'L' 'X' 'MEINS',
'ZSLAMT' '매출액(VAT)' 'GT_ITAB' 'ZSDT0001' 'ZSLAMT' '13' '' 'L' 'X' 'WAERS',
'MENGE' '수량1' 'GT_ITAB' 'ZSDT0001' 'MENGE' '13' '' 'L' 'X' 'MEINS',
'ZMENGE' '수량2' 'GT_ITAB' 'ZSDT0001' 'ZMENGE' '13' '' 'L' 'X' 'MEINS'.
ENDFORM. " define_catalog
*&---------------------------------------------------------------------*
*& Form fieldcat_assign
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0204 text
* -->P_0205 text
* -->P_0206 text
* -->P_0207 text
* -->P_0208 text
* -->P_SPACE text
* -->P_0210 text
*----------------------------------------------------------------------*
FORM fieldcat_assign USING pa_fldnm
pa_rddic pa_tabnm
pa_reftab pa_reffield
pa_otlen pa_hotspot
pa_just pa_edit
pa_fd.
DATA: lt_fieldcat TYPE lvc_s_fcat.
ADD 1 TO g_colps.
lt_fieldcat-col_pos = g_colps.
lt_fieldcat-fieldname = pa_fldnm.
lt_fieldcat-tabname = pa_tabnm.
lt_fieldcat-ref_table = pa_reftab.
lt_fieldcat-ref_field = pa_reffield.
lt_fieldcat-coltext = pa_rddic.
lt_fieldcat-scrtext_m = pa_rddic.
lt_fieldcat-outputlen = pa_otlen.
lt_fieldcat-hotspot = pa_hotspot.
lt_fieldcat-just = pa_just.
lt_fieldcat-edit = pa_edit.
IF ( pa_fldnm = 'WRBTR' OR pa_fldnm = 'ZSLAMT' ).
lt_fieldcat-cfieldname = pa_fd.
lt_fieldcat-datatype = 'CURR'.
ELSEIF ( pa_fldnm = 'MENGE' OR pa_fldnm = 'ZMENGE' ).
lt_fieldcat-qfieldname = pa_fd.
lt_fieldcat-datatype = 'QUAN'.
ENDIF.
APPEND lt_fieldcat TO gt_fieldcat.
ENDFORM. " fieldcat_assign
그런데도 저 DUMP 에러가 나오는 이유가 감이 잡히지 않습니다.
changed_data 에도 걸리지 않는 거 보면 제가 선언을 잘못한 거 같은데 알려주세요~
서브루틴이 있는 소스도 첨부합니다.
감사합니다.
금액, 수량 필드에 대해서 해당하는 화폐, 단위를 ALV display 출력필드에 추가(필드카탈로그 항목에 추가)해 보세요.
SAP ALV 표준에서 금액, 수량 필드는 각 화폐, 단위를 가지고 내부에서 컨버젼 등에서 사용하게 되어 있습니다.
(파일 다운로드 할때 도 동일로직 적용 됨)