Abap-Smartforms中如何去掉开头的中文文本
比如我们的客户是:匈牙利Best Fruit co.我们希望去掉开头的匈牙利三个字,而输出后面的英文,如何做呢?
"截取非中文字符串 添加 2014-3-5
DATA: l_uccp TYPE i, "转化为ASCIId后的整数值
l_lenth TYPE i, "字符串长度
l_pos TYPE i, "非中文字符开始的位置
l_rest TYPE i, "字符串剩余的长度
l_temp(2) TYPE c, "暂存单个字符
l_left(100) TYPE c."暂存字符串
l_txt = l_left."假设字符串现在在l_left中
l_lenth = strlen( l_txt ).
l_pos = 0.
DO.
CALL FUNCTION 'TEXT_SPLIT' "分割文本 依次检测每个字符的编码
EXPORTING
length = 1
text = l_left
IMPORTING
line = l_temp
rest = l_left.
CALL METHOD cl_abap_conv_out_ce=>uccpi "转化为对应的整数
EXPORTING
char = l_temp
RECEIVING
uccp = l_uccp.
l_pos = l_pos + 1. "位置+1
IF l_uccp < 19968. "在19968~40959 为中文 此时出现别的文字
exit.
ENDIF.
ENDDO.
l_pos = l_pos - 1. "有一个偏移量
l_rest = l_lenth - l_pos.
l_txt = l_txt+l_pos(l_rest).
注意,在smartforms中第一个函数的参数length为1,而在报表中开发时则设为2