利用类CL_ABAP_ELEMDESCR中的方法GET_C()可以创建动态长的字符串,
当然还可以调用其他方法 GET_I,GET_F,GET_N等等创建动态长的I,F,N类型的数据。
代码:
REPORT ztest_dyn_char.
DATA: lo_dref TYPE REF TO data,
lo_ctype TYPE REF TO cl_abap_elemdescr.
FIELD-SYMBOLS:<fs>.
*创建7位长字符串
lo_ctype = cl_abap_elemdescr=>get_c( 7 ).
CREATE DATA lo_dref TYPE HANDLE lo_ctype.
ASSIGN lo_dref->* TO <fs>.
<fs> = '123456789'.
WRITE <fs>.
运行:超出7位的就被截断不显示了。