长文本
长文本
现象描述
长文本在SAP的运用主要体现在一些notes的记录,或者一些比较长的文本的存取,比如工作流的审批意见,采购申请和采购订单的附加说明等等。如下图
处理过程
长文本表:
SAP中所有的长文本都存在两张表中
- STXH 长文本的抬头信息
- STXL 长文本的明细信息
配置
SE16维护视图V_TTXOBI
长文本在使用前,需要先进行配置,如果不配置是不可能往表STXH和STXL中写入文本值的。配置在视图V_TTXIDI和视图V_TTXOBI中进行。
SE16维护视图V_TTXIDI
写入测试
在上图中,找到我们维护了需要写入长文本的对象Z_TEST01,这样,我们就能往对象中写入长文本了,如下图
长文本增删改
**首先是变量的声明**
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的长文本操作中,我们是无法直接看到存储的长文本的,只能通过程序读取长文本在界面中显示
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hblog!