안녕하세요 아밥 초보생입니다.
실력이 많이 부족해서 도움을 받고자 이렇게 질문 드립니다.
ALV로 INSERT 프로그램을 만들고 있습니다.
부족한 실력에 SLIS를 뒤죽박죽 같다붙여서 나름대로
밑의 로직을 가지고 ALV스크린에 나타날수 있도록 하는데는
성공했습니다. 근데 ALV스크린에서 특정 필드를 가지고 edit 를
하고 싶은데 특정 필드를 어떻게 가져와야 할지를 잘 몰라서 애를먹고
있습니다. 해당 필드는 WAERS와 TAXPE 이구요.
edit 로직은 밑에 로직인데요 ls_fcat 에는 데이터가 없다고 나옵니다.
해당필드를 가져오는 방법을 알고 싶은데 도움좀 부탁드립니다.
edit 로직은 이렇습니다. 밑에 로직은 ls_fcat에 데이터가 없다고 error가 납니다.
*----------------------------------------------------------*
form bugase_data .
LOOP AT pt_fieldcat into ls_fcat.
IF ls_fcat-waers = 'KRW'.
ELSE.
"NO-ACTION.
ENDIF.
IF ls_fcat-waers IS INITIAL.
MESSAGE e001(01) WITH '커런시 설정을 하시오'.
ELSE.
IF ls_fcat-taxpe IS NOT INITIAL.
REPLACE '%' WITH ' ' INTO ls_fcat-taxpe.
ls_fcat-taxpr = ls_fcat-suppr * ls_fcat-taxpe / 100.
ls_fcat-t_taxpr = ls_fcat-suppr + ls_fcat-taxpr.
REPLACE ' ' WITH '%' INTO ls_fcat-taxpe.
modify pt_fieldcat from ls_fcat.
ELSE.
MESSAGE e001(00) WITH '항목별 세액을 선택하세요'.
ENDIF.
ENDIF.
ENDLOOP.
endform.
*-----------------------------------------------------------*
참고로 밑에 로직은 ALV 스크린을 구현한 로직입니다.
*-----------------------------------------------------------*
DATA : pt_fieldcat type lvc_t_fcat,
ls_fcat type lvc_s_fcat.
*-----------------------------------------------------------*
START-OF-SELECTION.
perform build_fieldcat.
*-----------------------------------------------------------*
form build_fieldcat.
call function 'LVC_FIELDCATALOG_MERGE'
exporting
i_structure_name = 'zsc_s_001'
changing
ct_fieldcat = pt_fieldcat.
loop at pt_fieldcat into ls_fcat.
if ls_fcat-fieldname eq 'BUIBD'
or ls_fcat-fieldname eq 'BLANS'
or ls_fcat-fieldname eq 'WAERS'
or ls_fcat-fieldname eq 'ARMCD'
or ls_fcat-fieldname eq 'MCCOD'
or ls_fcat-fieldname eq 'BLANK'
or ls_fcat-fieldname eq 'SUPPR'
or ls_fcat-fieldname eq 'TAXPR'
or ls_fcat-fieldname eq 'TAXPE'
or ls_fcat-fieldname eq 'T_COST1'
or ls_fcat-fieldname eq 'T_COST2'.
ls_fcat-edit = 'X'.
ls_fcat-checktable = '!'.
modify pt_fieldcat from ls_fcat.
endif.
endloop.
endform.
*-----------------------------------------------------------*
function에서 'zsc_s_001' -> 대문자로 바꿔서 넣어보시길~^^
소문자하고 대문자를 구별해서 인식합니다...