ABAP读取长文本的方法

SAP中所有的项目文本都存在以下两张数据表中:

1. STXH  抬头项目文本 透明表

2. STXL  明细项目文本   透明表

长文本读取方法

首先在STXH和STXL中根据OBJECT NAME, TEXT ID,TEXT OBJECT查找到需要的文本对象,

然后通过READ_TEXT / READ_TEXT_INLINE函数来读取文本内容。 

以读取交货单文本为例:

1.获取OBJECT NAME, TEXT ID,TEXT OBJECT

2.获取交货单抬头、行项目长文本

 1 FORM read_text USING u_name TYPE tdobname "OBJECT NAME,通常是订单ID&行项目号
 2                      u_tdid TYPE tdid "TEXT ID
 3                      u_tdobject TYPE tdobject "TEXT OBJECT
 4                      u_split TYPE string
 5                CHANGING c_text TYPE string.
 6   DATA: ls_stxh TYPE stxh,
 7         ls_stxl TYPE stxl,
 8         lt_lines TYPE TABLE OF tline WITH HEADER LINE.
 9   IF u_tdobject = 'VBBK'.
10     "STXH 抬头项目文本 透明表
11     SELECT SINGLE * INTO ls_stxh FROM stxh WHERE tdobject = u_tdobject AND tdname = u_name AND tdid = u_tdid AND tdspras = sy-langu.
12   ELSEIF u_tdobject = 'VBBP'.
13     "STXL 明细项目文本 透明表
14     SELECT SINGLE * INTO ls_stxl FROM stxl WHERE tdobject = u_tdobject AND tdname = u_name AND tdid = u_tdid AND tdspras = sy-langu.
15   ELSE.
16     "sy-subrc = 0.
17   ENDIF.
18   IF sy-subrc = 0.
19     CALL FUNCTION 'READ_TEXT'
20       EXPORTING
21 *       CLIENT                        = SY-MANDT
22         id                            = u_tdid
23         language                      = '1'
24         name                          = u_name
25         object                        = u_tdobject
26 *       ARCHIVE_HANDLE                = 0
27 *       LOCAL_CAT                     = ' '
28 *     IMPORTING
29 *       HEADER                        =
30 *       OLD_LINE_COUNTER              =
31       TABLES
32         lines                         = lt_lines[]
33 *     EXCEPTIONS
34 *       ID                            = 1
35 *       LANGUAGE                      = 2
36 *       NAME                          = 3
37 *       NOT_FOUND                     = 4
38 *       OBJECT                        = 5
39 *       REFERENCE_CHECK               = 6
40 *       WRONG_ACCESS_TO_ARCHIVE       = 7
41 *       OTHERS                        = 8
42               .
43     IF sy-subrc = 0.
44 * Implement suitable error handling here
45       CLEAR c_text.
46       LOOP AT lt_lines.
47         CONCATENATE c_text lt_lines-tdline INTO c_text SEPARATED BY u_split.  "解决回车事件 space
48         CLEAR lt_lines.
49       ENDLOOP.
50       CONDENSE c_text NO-GAPS.
51     ENDIF.
52   ENDIF.
53 ENDFORM.                    "READ_TEXT

 

转载于:https://www.cnblogs.com/hulianfei/p/7046864.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值