>안녕하세요. 아밥초보입니다. alv 조회형식의 리포트 프로그램에서 하나의 항목에 VA22나 VA02에서 header level -> text -> Form Header Text 에 기입한 내용을 뿌려줘야 되는데 이 텍스트가 일반 컬럼은 아닌것 같은데 몬가 함수를 이용하던 다른 방법으로 뿌려줘야 될거 같은데 방법을 모르겠네요. 아시는 분 도움 좀 부탁드려요.. 제가 초보인 관계로 자세히 갈켜주시면 감사하겠습니다. 수고하세요 !
답변 감사합니다. 자료실을 참고 하여 아래와 같이 구문을 작성 했는데 se37 function builder 에서 동일한 아규먼트 값을 주고 하면 텍스트를 잘 뿌려주는데 밑에 처럼 코딩해서 하면 첨부된 파일 처럼 language 부분에서 type은 맞지 않는다는 식으로 덤프가 나네요. 왜 그럴까요. 꼭 좀 알려 주세요.
DATA: BEGIN OF htext.
INCLUDE STRUCTURE thead.
DATA: END OF htext.
DATA: BEGIN OF ltext OCCURS 50.
INCLUDE STRUCTURE tline.
DATA: END OF ltext.
DATA: BEGIN OF dtext OCCURS 50.
INCLUDE STRUCTURE tline.
DATA: END OF dtext.
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
ID = '0001'
LANGUAGE = 'EN' <----------------- 이부분에서 에러 발생
NAME = '0020000088'
OBJECT = 'VBBK'
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
IMPORTING
HEADER = htext
TABLES
LINES = ltext
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
loop at ltext.
if ltext-tdline ne ''.
move ltext-tdline to dtext-tdline.
endif.
endloop.
loop at dtext.
write:/ dtext-tdline.
endloop.
[수정전]
LANGUAGE = 'EN' <----------------- 이부분에서 에러 발생
[수정후]
LANGUAGE = 'E'
[이유]
FUNCTION READ_TEXT.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(CLIENT) LIKE SY-MANDT DEFAULT SY-MANDT
*" VALUE(ID) LIKE THEAD-TDID
*" VALUE(LANGUAGE) LIKE THEAD-TDSPRAS <======= 1Byte char입니다.
Structure 'THEAD'와 Table 'T002' 해당 필드 선언내역과 데이터를 참조 하십시오.