unicode 관련되서 찾은 class 인데 정확한 개념을 잡지 못해서
질문 올림니다.
.
어디서 쓰이는 클레스이고 어떻게 쓰이는 클레스 인지 알고 싶습니다.
아래는 패턴을 불러온 형식입니다.
CALL METHOD CL_ABAP_LIST_UTILITIES=>MEMORY_TO_DISPLAY
EXPORTING
MEMORY_DATA = F1
OFFSET_TAB =
* IMPORTING
* DISPLAY_DATA =
* TRUNCATION_POS =
.
* CATCH CX_PARAMETER_INVALID_RANGE .
*ENDTRY.
댓글 4
-
e-abap
2007.05.28 23:00
-
bd
2007.05.30 18:34
CALL METHOD cl_abap_list_utilities=>memory_to_display
EXPORTING memory_data = line
offset_tab = offset_tab
여기서 offset_tab 가 어떤역활을 하는건가용???
APPEND 3 TO offset_tab.
APPEND 8 TO offset_tab
이부분은 주석 처리해도 결과값은 동일하게 나오는대....
-
bd
2007.05.30 19:03
대충 찾았습니다.
offset_tab 은 memory data 가 display data로 넘어 갈때 그 사이에서 output length 값을 지정해 주는 것 같내요.
data 값이 영문/숫자가 아닌 2byte 단위에 한글이나 다른 언어로 테스트 해보시면 아실듯 .
-
bd
2007.05.30 19:33
TYPES T_LINE(100) TYPE C.
DATA: LINE TYPE T_LINE,
DISP_LINE TYPE T_LINE,
TAB TYPE TABLE OF T_LINE.
DATA: OFFSET_TAB TYPE ABAP_OFFSET_TAB.
DATA F1(5). F1 = '①②③④⑤'.
DATA F2(3). F2 = '①②③'.
DATA F3(6). F3 = '①②③④⑤'.
DATA F4(4). F4 = 'ABCD'.
WRITE F1 TO LINE(5).
WRITE F2 TO LINE+6(3).
WRITE F3 TO LINE+10(6).
WRITE F4 TO LINE+17(4).
CALL METHOD CL_ABAP_LIST_UTILITIES=>MEMORY_TO_DISPLAY
EXPORTING
MEMORY_DATA = LINE
OFFSET_TAB = OFFSET_TAB
IMPORTING
DISPLAY_DATA = DISP_LINE
* TRUNCATION_POS =
.
WRITE : / DISP_LINE.
memory data 가 display date로 변경이 됩니다. 음...그런데... 아직도 위에서의 append 한의미를 잘 모르겠네요;;
정확히는 모릅니다...
메모리에 저장되어 있는 값을 화면에 뿌려주기 위한 것으로서
unicode 를 적용한 시스템에서는 데이터 타입을 구분하기 위해서 fragment 단위로 나눠서-gap 으로- 구분하기때문에,
위 클래스의 메소드를 활용해 하나이상의 컬럼으로 구분된 필드를 적당한 위치의 list에 뿌려주기 위한 메소드인거 같습니다.
아래 예제를 한번 테스트해보세요.
REPORT Z05_030 .
TYPES t_line(100) TYPE c.
DATA: line TYPE t_line,
disp_line TYPE t_line,
tab TYPE table of t_line.
DATA: offset_tab TYPE abap_offset_tab.
data : wa like sflight .
APPEND 3 TO offset_tab.
APPEND 8 TO offset_tab.
SELECT * FROM sflight INTO wa.
WRITE wa-carrid TO line(3).
WRITE wa-connid TO line+3(1).
WRITE wa-FLDATE TO line+5(6).
WRITE sy-vline TO line+14(1).
CALL METHOD cl_abap_list_utilities=>memory_to_display
EXPORTING memory_data = line
offset_tab = offset_tab
IMPORTING display_data = disp_line.
WRITE / disp_line.
* write : / wa-CARRID, WA-CONNID, WA-FLDATE.
* endloop.
endselect.