1 长文本及其应用场景
1.1 长文本
长文本是为了方便用户输入带格式的文本或是输入比较多的文本(比如填入意见等)。如下图所示:
图1-1
1.2 应用场景
应用场景包括填入意见,需要带格式的文本,输入较多的文本等等。
2 配置长文本对象
配置长文本对象,需要在相关的表里完成相应的配置。
2.1 相关的表视图
(1) V_TTXOBI(有效文本对象)
(2) V_TTXIDI(允许的文本标识符)
2.2 配置示例
配置需要按照顺序完成,首先维护视图V_TTXOBI,其次维护视图V_TTXIDI。
(1) 维护V_TTXOBI
图2-1
(2) 维护V_TTXIDI
图2-2
3 长文本的存取
长文本存取是通过相关的函数完成的。由于长文本的特殊性,因此其存取有如下的一些特点和要求。
3.1 长文本存储
(1) 相关变量定义
data: text_tab1 like standard table of line.
其中text_tab1是保存输入的文本内容。
data: lines type standard table of tline,
header like thead .
定义tline类型内表和定义thead的结构。
(2) 读取文本控件的内容
call method editor1->get_text_as_stream
importing
text = text_tab1.
获取到文本控件的内容保存到text_tab1中。
(3) 函数CONVERT_STREAM_TO_ITF_TEXT
实现文本的转换(SAPscript text conversions),将内表text_tab1转换为lines
(4) 函数SAVE_TEXT
实现文本的保存SAPscript: Save text
(5) 代码片段如下:
*--获取文本内容
call method editor1->get_text_as_stream
importing
text = text_tab1.
*--长文本保存
header-tdobject = 'ZWF_PM010'. "object
header-tdname = zwfpm010-ltxtid. "文本序号
header-tdid = 'LTXT'.
header-tdspras = sy-langu.
call function 'CONVERT_STREAM_TO_ITF_TEXT'
exporting
language = sy-langu
tables
text_stream = text_tab1
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.
3.2 长文本读取
(1) 函数CONVERT_ITF_TO_STREAM_TEXT
实现文本的转换(SAPscript text conversions),将lines转换为内表text_tab1
(2) 函数READ_TEXT
实现文本的读取SAPscript: Read text
(3) 设置文本控件的内容
call method editor1->set_text_as_stream
exporting
text = text_tab1.
将内表text_tab1内容设置到文本控件中。
(4) 代码片段如下:
*--长文本读取
header-tdobject = 'ZWF_PM010'. "object
header-tdname = zwfpm010-ltxtid.
header-tdid = 'LTXT'.
header-tdspras = sy-langu.
call function 'READ_TEXT'
exporting
* CLIENT = sy-langu
id = header-tdid
language = sy-langu
name = header-tdname
object = header-tdobject
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
* IMPORTING
* HEADER =
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
.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
call function 'CONVERT_ITF_TO_STREAM_TEXT'
exporting
language = sy-langu
tables
itf_text = lines
text_stream = text_tab1.
*--设置控件内容
call method editor1->set_text_as_stream
exporting
text = text_tab1.