去除SAP中的一些特殊字符

来源:互联网 发布:java线程共享数据 编辑:程序博客网 时间:2024/04/28 14:51

      换行符,TAB KEY的表示

在数据文件输出的时候,有时候需要使各个字段间用TAB KEY进行分割。

那么,TAB KEYABAP中是如何表示的,就是写入一个TAB KEY吗?

事实上,在类对象CL_ABAP_CHAR_UTILITIES中已经事先定义好了如换行符,TAB KEY等。

CR_LF                   换行符

HORIZONTAL_TAB          水平方向的TAB KEY

VERTICAL_TAB            竖直方向的TAB KEY

FORM_FEED               改页

例: CONCATENATE COL1 COL2 CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO …

 

      换行符TAB KEYDB保存

换行符TAB KEYSAPDB中被存为#“。

虽然被保存为#,但在报表中仍能正常显示。

如果是Excle中有换行, 则被存储为双引号.


      换行符,TAB KEY等的置换处理

换行符,TAB KEY等的置换不能简单的用REPLACE命令进行处理。

正确的处理如下:

FORM remove_cr_lf  USING    p_str.
  DATAtcodepage TYPE cpcodepage.
  CALL FUNCTION 'NLS_GET_FRONTEND_CP'
    EXPORTING
      langu                 sy-langu
      fetype                'MS'
    IMPORTING
      frontend_codepage     tcodepage
    EXCEPTIONS
      illegal_syst_codepage 1
      no_frontend_cp_found  2
      internal_or_db_error  3
      OTHERS                4.

  CALL FUNCTION 'SCP_REPLACE_STRANGE_CHARS'
    EXPORTING
      intext            p_str
      inter_cp          tcodepage
      replacement       32     等于space, ASC
    IMPORTING
      outtext           p_str
    EXCEPTIONS
      invalid_codepage  1
      codepage_mismatch 2
      internal_error    3
      cannot_convert    4
      fields_not_type_c 5
      OTHERS            6.
ENDFORM                   REMOVE_CR_LF

0 0
原创粉丝点击