본문 바로가기

ERP_Work/ABAP

ABAP 한글 특정 자리수 만큼 자르는 펑션

유니코드 Byte 변환


FUNCTION YFRANK_CONV_HANGUL_LEN .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(TEXT)
*"     VALUE(LEN) TYPE  I
*"  EXPORTING
*"     VALUE(OUT_TEXT)
*"     VALUE(OUT_LEN) TYPE  I
*"----------------------------------------------------------------------
  DATA : LV_TELEN TYPE I,
         LV_V_LEN TYPE I.

  CALL METHOD CL_ABAP_LIST_UTILITIES=>DYNAMIC_OUTPUT_LENGTH
    EXPORTING
      FIELD TEXT
    RECEIVING
      LEN   LV_TELEN.
  IF LV_TELEN > LEN.
    LV_TELEN LEN.
  ENDIF.

  OUT_LEN LV_TELEN / 2 .
  DO LEN TIMES.
    IF OUT_LEN >= LV_TELEN.
      EXIT.
    ENDIF.
    OUT_LEN OUT_LEN + 1.
    OUT_TEXT TEXT(OUT_LEN).
    CALL METHOD CL_ABAP_LIST_UTILITIES=>DYNAMIC_OUTPUT_LENGTH
      EXPORTING
        FIELD OUT_TEXT
      RECEIVING
        LEN   LV_V_LEN.
    IF LV_V_LEN >= LEN.
      IF LV_V_LEN > LEN.
        OUT_LEN OUT_LEN 1.
        OUT_TEXT TEXT(OUT_LEN).
      ENDIF.
      EXIT.
    ENDIF.
  ENDDO.

ENDFUNCTION.