现象描述

长文本在SAP的运用主要体现在一些notes的记录,或者一些比较长的文本的存取,比如工作流的审批意见,采购申请和采购订单的附加说明等等。如下图:

处理过程

1:SAP中所有的长文本都存在两张表中:

STXH 长文本的抬头信息

STXL 长文本的明细信息

但是长文本在使用前,需要先进行配置,如果不配置是不可能往表STXH和STXL中写入文本值的。配置在视图V_TTXIDI和视图V_TTXOBI中进行。

SE16维护视图V_TTXOBI

SE16维护视图V_TTXIDI

2:在上图中,找到我们维护了需要写入长文本的对象Z_TEST01,这样,我们就能往对象中写入长文本了,如下图:

3:相应的对长文本进行增加、保存、删除的代码示例如下:

首先是变量的声明

DATA: lines TYPE STANDARD TABLE OF tline ,
      it_line TYPE TABLE OF line,
      header LIKE thead .
DATA: container1 TYPE REF TO cl_gui_custom_container,
      editor1    TYPE REF TO cl_gui_textedit.
DATA: ok_code LIKE sy-ucomm,
      save_ok LIKE sy-ucomm.

长文本的初始化:

IF container1 IS INITIAL.
    CREATE OBJECT:container1 EXPORTING container_name = 'COMMENT1',
                  editor1    EXPORTING parent = container1.
  CALL METHOD editor1->set_statusbar_mode
    EXPORTING
      statusbar_mode = 0.

CALL METHOD editor1->set_toolbar_mode
    EXPORTING
      toolbar_mode = 0.
ENDIF.
  CALL METHOD editor1->set_text_as_stream
    EXPORTING
      text = it_line.

长文本的保存:

REFRESH it_line.
  CALL METHOD editor1->get_text_as_stream
    IMPORTING
      text = it_line.
*--长文本保存
    header-tdobject  = 'Z_TEST01'.     "object
    header-tdname    = '001'.
    header-tdid      = 'LTXT'.
    header-tdspras   = sy-langu.
    CALL FUNCTION 'CONVERT_STREAM_TO_ITF_TEXT'
      EXPORTING
        language    = sy-langu
      TABLES
        text_stream = it_line
        itf_text    = lines.
    CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        header          = header
        savemode_direct = 'X'
      TABLES
        lines           = lines
      EXCEPTIONS
        id              = 1
        language        = 2
        name            = 3
        object          = 4
        OTHERS          = 5.
    CLEAR header.
    REFRESH lines.

长文本的显示:

header-tdobject  = 'Z_TEST01'.     "object
   header-tdname    = '001'.
   header-tdid      = 'LTXT'.
   header-tdspras   = sy-langu.
   CALL FUNCTION 'READ_TEXT'
     EXPORTING
       id                      = header-tdid
       language                = sy-langu
       name                    = header-tdname
       object                  = header-tdobject
     TABLES
       lines                   = lines
     EXCEPTIONS
       id                      = 1
       language                = 2
       name                    = 3
       not_found               = 4
       object                  = 5
       reference_check         = 6
       wrong_access_to_archive = 7
       OTHERS                  = 8.
   CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'
     EXPORTING
       language    = sy-langu
     TABLES
       itf_text    = lines
       text_stream = it_line.
   CALL METHOD editor1->set_statusbar_mode
     EXPORTING
       statusbar_mode = 0.
   CALL METHOD editor1->set_toolbar_mode
     EXPORTING
       toolbar_mode = 0.
   CALL METHOD editor1->set_text_as_stream
     EXPORTING
       text = it_line.
   CALL METHOD editor1->set_readonly_mode
     EXPORTING
       readonly_mode = '1'.

长文本的删除:

header-tdobject  = 'Z_TEST01'.     "object
   header-tdname    = '001'.
   header-tdid      = 'LTXT'.
   header-tdspras   = sy-langu.
  CALL FUNCTION 'DELETE_TEXT'
   EXPORTING
       id                      = header-tdid
       language                = sy-langu
       name                    = header-tdname
       object                  = header-tdobject
*     SAVEMODE_DIRECT       = ' '
*     TEXTMEMORY_ONLY       = ' '
*     LOCAL_CAT             = ' '
*   EXCEPTIONS
*     NOT_FOUND             = 1
*     OTHERS                = 2
          .
  IF sy-subrc <> 0.
   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

在ABAP的长文本操作中,我们是无法直接看到存储的长文本的,只能通过程序读取长文本在界面中显示,这点是和其他类型的变量区别开来的。

ABAP程序中关于长文本的处理方法的更多相关文章

  1. ABAP报表中负值展示问题的处理方法

    现象描述 在使用ABAP报表展示数据的时候会涉及到金额类字段,在手动计算金额的时候,有时会发生存在负值而无法正常展示的情况.  处理过程 ABAP报表的数据展示常用的方法有两种,分别是表控制和ALV ...

  2. 在微信小程序中使用富文本转化插件wxParse

    在微信小程序中我们往往需要展示一些丰富的页面内容,包括图片.文本等,基本上要求能够解析常规的HTML最好,由于微信的视图标签和HTML标签不一样,但是也有相对应的关系,因此有人把HTML转换做成了一个 ...

  3. c#程序中对密码进行加密的方法

    在ADO.NET中,向数据库添加数据时,怎样对数据中的密码进行加密?(也就是说在数据表中也看不到用户的密 码,只是一些经过编译后的字符串,以防止数据库管理员利用用户的密码进行非法操作.)    首先, ...

  4. C#控制台或应用程序中两个多个Main()方法的可行性方案

    大多数初级程序员或学生都认为在C#控制台或应用程序中只能有一个Main()方法.但是事实上是可以有多个Main()方法的. 在C#控制台或应用程序中,在多个类中,且每个类里最多只能存在一个Main() ...

  5. C#控制台或应用程序中两个多个Main()方法的设置

    大多数初级程序员或学生都认为在C#控制台或应用程序中只能有一个Main()方法.但是事实上是可以有多个Main()方法的. 在C#控制台或应用程序中,在多个类中,且每个类里最多只能存在一个Main() ...

  6. 在数据库中sql查询很快,但在程序中查询较慢的解决方法

    在写java的时候,有一个方法查询速度比其他方法慢很多,但在数据库查询很快,原来是因为程序中使用参数化查询时参数类型错误的原因 select * from TransactionNo, fmis_Ac ...

  7. 微信小程序中获取高度及设备的方法

    由于js中可以采用操纵dom的方法来获取页面元素的高度,可是在微信小程序中不能操纵dom,经过查找之后发现仅仅只有以下几个方法可以获取到高度 wx.getSystemInfoSync().window ...

  8. ABAP 程序中退出操作

    CHECK. 1)CHECK 后面要跟一个表达式,当表达式值为假(false)时,CHECK发生作用,退出循环(LOOP)或处理程序(Processing Block). 2)如果CHECK出现在循环 ...

  9. ABAP程序中退出操作(CHECK, EXIT, RETURN, LEAVE PROGRAM)

    这里总结一下几个常用的退出操作:  CHECK.(SAP官方推荐只在循环中使用) 1)CHECK 后面要跟一个表达式,当表达式值为假(false)时,CHECK发生作用,退出循环(LOOP)或处理程序 ...

随机推荐

  1. JavaScript-遍历数组

    遍历数组:依次访问数组中每个元素 for(var i=0; i<arr.length;i++){ arr[i] //当前数组 } <!DOCTYPE html> <html&g ...

  2. 斯坦福第十八课:应用实例:图片文字识别(Application Example: Photo OCR)

    18.1  问题描述和流程图 18.2  滑动窗口 18.3  获取大量数据和人工数据 18.4  上限分析:哪部分管道的接下去做 18.1  问题描述和流程图

  3. log4j2自定义输出线程环境信息

    在配置日志的输出格式的时候,我们可以按照内置的规则输出日志,但是有时候需要及时输出我们自定义的信息,这时需要借助ThreadContext类. ThreadContext类类似于MDC和NDC,它是一 ...

  4. Subsets 子集系列问题 leetcode

    子集系列问题: Coding 问题中有时会出现这样的问题:给定一个集合,求出这个集合所有的子集(所谓子集,就是包含原集合中的一部分元素的集合). 或者求出满足一定要求的子集,比如子集中元素总和为定值, ...

  5. OFM管理

    OMF:oracle management files 作用:不用指定文件的路径大小名字 OMF管理数据文件:db_create_file_dest 传统方式:SQL>create tables ...

  6. Xshell 使用心得

    会话日志,记住指令 默认情况下,它是不会像bash一样记住指令的,要开启指令记忆功能,按下面的操作: FTP

  7. 360浏览器下jquery.validate.unobtrusive的日期验证问题

    今天在招聘频道(job.cnblogs.com)遭遇这样一个问题——在360浏览器下,在一个表单验证中,虽然输入了有效的日期,却总是提示日期格式错误,见下图: 而在Chrome/Safari/Fire ...

  8. IP协议

    因特网协议(Internet Protocol, IP)是Internet的核心协议之一, 工作在网络层.IP协议提供节点间的寻址,路由以及顺序控制, 流量控制等服务. IP协议分为IPv4和IPv6 ...

  9. 从源代码的角度聊聊java中StringBuffer、StringBuilder、String中的字符串拼接

    长久以来,我们被教导字符串的连接最好用StringBuffer.StringBuilder,但是我们却不知道这两者之间的区别.跟字符串相关的一些方法中总是有CharSequence.StringBuf ...

  10. [Java Web整合开发王者归来·刘京华] 1、 Java Web开发

      目录: 1.Web技术简介 2.动态网站与静态网站 3.Java Web开发模式 4.JavaScript简介 1.Web技术简介 PS: 最近还有更凶残的技术,即整个操作系统都是基于Web的,如 ...