zoukankan      html  css  js  c++  java
  • BW特殊字符处理函数

    FUNCTION zfm_bi_invlid_character.
    *"----------------------------------------------------------------------
    *"*"本地接口:
    *"  IMPORTING
    *"     REFERENCE(STR_IN) TYPE  STRING
    *"  EXPORTING
    *"     REFERENCE(STR_OUT) TYPE  STRING
    *"----------------------------------------------------------------------
      DATA: zbgms(1000TYPE .
      DATA: intbgms TYPE i.
      DATA: bufferbgms TYPE xstring,
            hex_00     TYPE VALUE '00',
            hex_01     TYPE VALUE '01',
            hex_02     TYPE VALUE '02',
            hex_03     TYPE VALUE '03',
            hex_04     TYPE VALUE '04',
            hex_05     TYPE VALUE '05',
            hex_06     TYPE VALUE '06',
            hex_07     TYPE VALUE '07',
            hex_08     TYPE VALUE '08',
            hex_09     TYPE VALUE '09',
            hex_0a     TYPE VALUE '0A',
            hex_0b     TYPE VALUE '0B',
            hex_0c     TYPE VALUE '0C',
            hex_0d     TYPE VALUE '0D',
            hex_0e     TYPE VALUE '0E',
            hex_0f     TYPE VALUE '0F',
            hex_10     TYPE VALUE '10',
            hex_11     TYPE VALUE '11',
            hex_12     TYPE VALUE '12',
            hex_13     TYPE VALUE '13',
            hex_14     TYPE VALUE '14',
            hex_15     TYPE VALUE '15',
            hex_16     TYPE VALUE '16',
            hex_17     TYPE VALUE '17',
            hex_18     TYPE VALUE '18',
            hex_19     TYPE VALUE '19',
            hex_1a     TYPE VALUE '1A',
            hex_1b     TYPE VALUE '1B',
            hex_1c     TYPE VALUE '1C',
            hex_1d     TYPE VALUE '1D',
            hex_1e     TYPE VALUE '1E',
            hex_1f     TYPE VALUE '1F',
            hex_sp     TYPE VALUE '20',
            conv1      TYPE REF TO cl_abap_conv_out_ce,
            conv2      TYPE REF TO cl_abap_conv_in_ce.

      zbgms = str_in.
     TRANSLATE zbgms TO UPPER CASE.
      intbgms strlen( zbgms ).

      conv1 = cl_abap_conv_out_ce=>create(
      encoding 'UTF-8'
      endian 'L'
      ).

      CALL METHOD conv1->writedata = zbgms n = intbgms ).
      bufferbgms = conv1->get_buffer).

    *   用空格(hex_sp)替换字符(hex_0A)#和!@(hex_0D);介于 HEX00 和 HEX1F 之间的十六位格式的字符替换为空
      REPLACE ALL OCCURRENCES OF hex_00 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_01 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_02 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_03 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_04 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_05 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_06 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_07 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_08 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_09 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_0a IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_0b IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_0c IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_0d IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_0e IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_0f IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_10 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_11 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_12 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_13 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_14 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_15 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_16 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_17 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_18 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_19 IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_1a IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_1b IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_1c IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_1d IN bufferbgms WITH hex_sp IN BYTE MODE.
      REPLACE ALL OCCURRENCES OF hex_1e IN bufferbgms WITH hex_sp IN BYTE MODE.   
    REPLACE ALL OCCURRENCES OF hex_1f IN bufferbgms WITH hex_sp IN BYTE MODE.

    *   class cl_abap_conv_in_ce definition load.   conv2 
    = cl_abap_conv_in_ce=>create(   
    encoding 'UTF-8'   endian 
    'L'   
    input = bufferbgms   
    ).   

    CALL METHOD conv2->read(     
    EXPORTING       n    
    = intbgms     
    IMPORTING       
    data = zbgms              
    ).   


    SHIFT zbgms LEFT DELETING LEADING ' '.
    *     SHIFT zbgms RIGHT DELETING TRAILING ' '.

    * The only # sign is not permitted   
    IF strlen( zbgms 1.     
    IF zbgms(1'#'.       zbgms
    (1' '.     
    ENDIF.   
    ENDIF.

    *  Exclamation mark is not permitted as a first symbol of the field  content   
    IF zbgms(1'!'.     zbgms
    (1' '.   
    ENDIF.   str_out 

    = zbgms.

    ENDFUNCTION.

  • 相关阅读:
    SQL 多组数据中取每一组最新的数据
    HTML 滚动显示数据
    EasyUI datagrid-export 将datagrid的数据导出至Excel-解决科学计数法
    C#连接SAP并下载工单资料【生产系统与ERP对接】
    BAPI_TRANSACTION_COMMIT
    生产追溯系统-Raspberry Pi帮助我们节省大量硬件成本,助力信息化建设
    YII2 使用phpexcel(干货)
    ThinkPHP 文件上传到阿里云OSS上(干货)
    mysql与mycat搭建实现集群与读写分离
    mysql 表分区技术
  • 原文地址:https://www.cnblogs.com/xmqlv20081008/p/7815366.html
Copyright © 2011-2022 走看看