1、当我们用tablelate创建的时候,有时候需要显示多行,这种情况下,行里的文字会进行自动换行,直到行高用完。
2、有一个问题就是:当有多行的时候,第一行如果有空格或者其它特殊情况的时候,第一行并不会填充完,而是自动被分配到下一行了,这种显示结果显然不符合实际的显示需求。
3、没有处理前的效果:
实际上应该把第一行填写完,再填写后面的数据。
4、这种其实就是要处理一下文本的显示,第一,要把需要显示的文本进行格式化,把前面的空格给处理干净,这样才能在Debug的时候,看到具体的内容,否则会有很多的空格难以判断。第二、通过函数:SCMS_STRING_TO_FTEXT,重复排列一下长文本.第三、通过函数:CONVERT_STREAM_TO_ITF_TEXT按自己的文本长度要求进行再分配。
5、通过以上处理后就可以了。
SHIFT is_data-bstkd RIGHT DELETING TRAILING space.
SHIFT is_data-bstkd LEFT DELETING LEADING space.
SHIFT ls_labels-zcustomer_po RIGHT DELETING TRAILING
space
.
SHIFT ls_labels-zcustomer_po LEFT DELETING LEADING space.
*CONCATENATE LS_LABELS-ZCUSTOMER_PO is_data-bstkd
*INTO LV_PO.
DATA:
lt_stram_lines TYPE STANDARD TABLE OF string,
ls_string TYPE string,
lt_text TYPE tline_t.
DATA : length TYPE i.
DATA: itab TYPE TABLE OF char50.
CONCATENATE ls_labels-zcustomer_po
is_data-bstkd
INTO ls_string.
CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
EXPORTING
text = ls_string
IMPORTING
length = length
TABLES
ftext_tab = itab.
LOOP AT itab INTO DATA(ls_tab).
clear:ls_string.
ls_string = ls_tab.
APPEND ls_string to lt_stram_lines.
ENDLOOP.
CALL FUNCTION 'CONVERT_STREAM_TO_ITF_TEXT'
EXPORTING
stream_lines = lt_stram_lines
lf = 'X'
TABLES
itf_text = lv_po.