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

转载于:https://www.cnblogs.com/mrbourne/p/9959495.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值