zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    贴图UV动画
    编辑器开发读取LIGHTMAP的脚本
    一个角色旋转身体在向前行走的代码
    第一周
    《大道至简》读后感
    第二周
    Easyui,好的设计思路
    有关反射
    Easyui表格的行编辑
    冒泡排序
  • 原文地址:https://www.cnblogs.com/mrbourne/p/9959495.html
Copyright © 2011-2022 走看看