文字列をバイトで切る
lv_len = cl_abap_list_utilities⇒dynamic_output_length ( lv_matnr_text)
lv_matnr_textバイト数はlv_len格納する
方法②
FORM f_text_split USING iv_input TYPE any
iv_len TYPE i ”切るバイト数
CHANGING cv_output TYPE any.
DATA:
lv_char TYPE string,
lv_len TYPE i,
lv_st3 type i,
lv_str TYPE i.
CHECK:
iv_input IS NOT INITIAL AND
iv_len IS NOT INITIAL.
lv_str = strlen( iv_input ).
DO.
IF lv_str >= sy-index.
lv_char = iv_input+0(sy-index).
CALL METHOD cl_abap_list_utilities=>dynamic_output_length
EXPORTING
field = lv_char
RECEIVING
len = lv_len.
IF lv_len >= iv_len.
"文字バイト数と分割数同じ場合
if lv_len = iv_len.
cv_output = lv_char.
ELSE.
"文字バイト数が分割数より大きい場合
lv_st3 = sy-index - 1.
lv_char = iv_input+0(lv_st3).
cv_output = lv_char.
ENDIF.
EXIT.
ENDIF.
ELSE.
cv_output = iv_input.
EXIT.
ENDIF.
ENDDO.

浙公网安备 33010602011771号