zoukankan      html  css  js  c++  java
  • 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 = ''来判断了,这个就会判断成功

    感觉很神奇

  • 相关阅读:
    MOSS中的User的Title, LoginName, DisplayName, SID之间的关系
    如何在Network Monitor中高亮间隔时间过长的帧?
    SharePoint服务器如果需要安装杀毒软件, 需要注意什么?
    如何查看SQL Profiler? 如何查看SQL死锁?
    什么是Telnet
    The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain.
    Windows SharePoint Service 3.0的某个Web Application无搜索结果
    网络连接不上, 有TCP错误, 如果操作系统是Windows Server 2003, 请尝试一下这里
    在WinDBG中查看内存的命令
    The virtual machine could not be started because the hypervisor is not running
  • 原文地址:https://www.cnblogs.com/jingqing/p/9437132.html
Copyright © 2011-2022 走看看