利用类CL_ABAP_ELEMDESCR中的方法GET_C()可以创建动态长的字符串,
<img class="alignnone size-full wp-image-4036" src="http://www.baidusap.com/wp-content/uploads/2017-03-21_14-19-32.png" alt="" width="849" height="486" srcset="http://www.baidusap.com/wp-content/uploads/2017-03-21_14-19-32.png 849w, http://www.baidusap.com/wp-content/uploads/2017-03-21_14-19-32-740x424.png 740w, http://www.baidusap.com/wp-content/uploads/2017-03-21_14-19-32-768x440.png 768w" sizes="(max-width: 849px) 100vw, 849px" />当然还可以调用其他方法 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位的就被截断不显示了。