欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【转载】ABAP自定义长文本的处理

发布时间:2025/3/20 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【转载】ABAP自定义长文本的处理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

  • STXH 长文本的抬头信息
  • STXL 长文本的明细信息

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

配置在视图V_TTXIDI和视图V_TTXOBI中进行。

前台事务代码:SE75

 

保存之后,双击“ZSD001”进入维护ID。

 

 

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

变量的声明

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_modeEXPORTINGstatusbar_mode = 0.CALL METHOD editor1->set_toolbar_modeEXPORTINGtoolbar_mode = 0. ENDIF.CALL METHOD editor1->set_text_as_streamEXPORTINGtext = it_line.

长文本的保存

  REFRESH it_line.CALL METHOD editor1->get_text_as_streamIMPORTINGtext = it_line. *--长文本保存header-tdobject  = 'Z_TEST01'.     "objectheader-tdname    = '001'.header-tdid      = 'LTXT'.header-tdspras   = sy-langu.CALL FUNCTION 'CONVERT_STREAM_TO_ITF_TEXT'EXPORTINGlanguage    = sy-languTABLEStext_stream = it_lineitf_text    = lines.CALL FUNCTION 'SAVE_TEXT'EXPORTINGheader          = headersavemode_direct = 'X'TABLESlines           = linesEXCEPTIONSid              = 1language        = 2name            = 3object          = 4OTHERS          = 5.CLEAR header.REFRESH lines.

长文本的显示

   header-tdobject  = 'Z_TEST01'.     "objectheader-tdname    = '001'.header-tdid      = 'LTXT'.header-tdspras   = sy-langu.CALL FUNCTION 'READ_TEXT'EXPORTINGid                      = header-tdidlanguage                = sy-languname                    = header-tdnameobject                  = header-tdobjectTABLESlines                   = linesEXCEPTIONSid                      = 1language                = 2name                    = 3not_found               = 4object                  = 5reference_check         = 6wrong_access_to_archive = 7OTHERS                  = 8.CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'EXPORTINGlanguage    = sy-languTABLESitf_text    = linestext_stream = it_line.CALL METHOD editor1->set_statusbar_modeEXPORTINGstatusbar_mode = 0.CALL METHOD editor1->set_toolbar_modeEXPORTINGtoolbar_mode = 0.CALL METHOD editor1->set_text_as_streamEXPORTINGtext = it_line.CALL METHOD editor1->set_readonly_modeEXPORTINGreadonly_mode = '1'.

长文本的删除

header-tdobject  = 'Z_TEST01'.     "objectheader-tdname    = '001'.header-tdid      = 'LTXT'.header-tdspras   = sy-langu.CALL FUNCTION 'DELETE_TEXT'EXPORTINGid                      = header-tdidlanguage                = sy-languname                    = header-tdnameobject                  = 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-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.

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

总结

以上是生活随笔为你收集整理的【转载】ABAP自定义长文本的处理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。