ABAP 中的換行符以及日期格式的特殊情況


1、換行符

當通過EXCEL上傳獲取數據的時候,常常會無意中帶有換行符,換行符在DEBUG的時候我們會看到其會在字符串前后家雙引號記憶在字符串后加#,也就是會變成“XXX#”這樣,當然你通過CA等方式判斷是否包含#這個字符的時候,是會判斷失敗的,那要怎么判斷呢

做如下定義:

DATA: crlf(2TYPE c.

crlf = cl_abap_char_utilities=>cr_lf.

crlf其實就是換行符,debug可以看到其是兩個#,也就是##,然后再通過lv_str ca crlf的方式去判斷,就會判斷成功

如果需要去除#,則需要如下FORM,當然這個FORM也只能將帶#的字符串中的#變成空格,所以如果要變成純字符串,還需要對其中的空格及雙引號進行處理

FORM remove_cr_lf  USING    p_str.
  DATA: tcodepage 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.

 

 

2、日期的特殊情況

當通過EXCEL上傳導入日期格式的數據時,系統常常會將數據變成既不是INITIAL又不是’00000000‘,DEBUG看到的卻是空值,通過CLEAR處理則會變成’00000000‘

所以這個時候如何判斷這個日期字段是否有值呢,就只能用  lv_date = ''來判斷了,這個就會判斷成功

 

感覺很神奇


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM