• 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 = ''来判断了,这个就会判断成功

    感觉很神奇

  • 相关阅读:
    rand()和srand()
    advanced regression to predict housing prices
    数学建模
    python的对数
    八月总结——人工智能初学者
    看到的不错的项目
    学习笔记(七): Logistic Regression
    学习笔记(六): Regularization for Simplicity
    An Intuitive Explanation of Convolutional Neural Networks
    CentOS7的mysql5.7-rpm.bundle方式安装
  • 原文地址:https://www.cnblogs.com/jingqing/p/9437132.html
Copyright © 2020-2023  润新知