当前位置: 首页 > article >正文

物料描述的特殊字符

MM03查看某料号,有特殊字符,看上去是#

SE16N中并没有显示出来这个特殊字符

 DeBug时可以看到#,复制出来也是#,但其实不是

 ALV中也看不到这个特殊字符

 需要写代码,获取这个编码Unicode

参考:【ABAP系列】SAP ABAP 字符编码与解码、Unicode - SAPmatinal - 博客园

  DATA:xstr           TYPE xstring,
       l_codepage(4)  TYPE n,
       l_encoding(20),
       convout        TYPE REF TO cl_abap_conv_out_ce, "编码
       convin         TYPE REF TO cl_abap_conv_in_ce,
       str            TYPE string.


    LOOP AT gt_marc ASSIGNING <fs_marc>.

      lv_maktx = <fs_marc>-maktx.

      lv_length = strlen( lv_maktx ).
      lv_i = 0.
      DO lv_length TIMES.
        lv_char = lv_maktx+lv_i(1).
        lv_i  = lv_i  + 1.

        IF lv_i = 20.
          lv_i = lv_i.
        ENDIF.

        convout->write( data = lv_char ). " 编码

        xstr =  convout->get_buffer( ). " 获取码流
      ENDDO.
    ENDLOOP.

 获取到编码后,又要把这个解析出来,再用正则判断,物料描述中是不是含有这个特殊字符

  xstr = '02'.
  convin = cl_abap_conv_in_ce=>create( encoding = l_encoding input = xstr )."创建解码对象
  CALL METHOD convin->read IMPORTING data = str."解码
  lv_char = str .

    LOOP AT gt_marc ASSIGNING <fs_marc>.
      PERFORM get_data_matcher USING <fs_marc>-maktx lv_char <fs_marc>-status.
    ENDLOOP.

*&---------------------------------------------------------------------*
*& Form GET_DATA_MATCHER
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> LV_CHAR1
*&---------------------------------------------------------------------*
FORM get_data_matcher USING p_ls_maktx p_ls_char p_ls_status.

  DATA:lv_maktx     TYPE maktx,
       lv_char      TYPE c,
       lv_status(4) TYPE c.

  lv_maktx = p_ls_maktx.
  lv_char = p_ls_char.
  lv_status = p_ls_status.

  IF cl_abap_matcher=>contains(
       pattern = lv_char
       text = lv_maktx
       ignore_case = 'X' ) = abap_true.

    lv_status = icon_led_red.

  ENDIF.

  IF lv_status NE icon_led_red.
    lv_status = icon_led_green.
  ENDIF.

  p_ls_status = lv_status.

ENDFORM.

这个特殊字符的错误会导致EXCEL导不出来

另外一个料号也有特殊字符,看上去似乎是#,ALV同样显示不出来,但是却不影响导出EXCEL

该特殊字符可以用这个获取:cl_abap_char_utilities=>newline.


http://www.kler.cn/a/456873.html

相关文章:

  • Java中实现对象的深拷贝(Deep Copy)
  • 动手做计算机网络仿真实验入门学习
  • 大数据技术(六)—— Hbase集群安装
  • 初识MySQL · 库的操作
  • 并行和并发有什么区别?
  • 计算机网络•自顶向下方法:网络应用原理
  • 关于自编译的一些文件
  • 谈谈 Wi-Fi 的 RTS/CTS 设计
  • 冥想的实践
  • QML学习(二) Qt Quick模块及QtQuick.Controls模块基础组件分类说明
  • 高精度算法:加减乘除 (学习笔记)
  • 强大的接口测试可视化工具:Postman Flows
  • JAVA: 子类“覆盖”父类的成员变量
  • React里使用uuid插件--生成随机的id
  • 大型系统中 Redis 的优化与挑战
  • Ubuntu升级ssh版本到9.8
  • AppAgent 源码 (AndroidController 类 )
  • 【LLM论文日更】| 训练大型语言模型在连续潜在空间中进行推理
  • 服务器被攻击怎么办
  • 如何注册华为云国际版账户:详细步骤指南
  • info There appears to be trouble with your network connection. Retrying
  • YOLOX算法及其改进
  • C语言实现跨主机通讯
  • 6-Gin 路由详解 --[Gin 框架入门精讲与实战案例]
  • 电商项目-数据同步解决方案(三)商品上架同步更新ES索引库
  • vue3使用element-plus,解决 el-table 多选框,选中后翻页再回来选中失效问题