1、获取长文本
常用的方式就是通过READ_TEXT函数获取长文本,且每次只能获得一行数据,在报表中将会严重拖慢查询速度。
所以,此处介绍如何通过后台表查询长文本
"-----------------------------@斌将军----------------------------- TYPES:BEGIN OF ty_stxl_raw, clustr TYPE stxl-clustr, clustd TYPE stxl-clustd, END OF ty_stxl_raw. TYPES:BEGIN OF ty_ltext, tdname TYPE stxl-tdname, tdid TYPE stxl-tdid, ltext TYPE string, END OF ty_ltext. TYPES:BEGIN OF ty_string, line TYPE char255, END OF ty_string. DATA:lt_tline TYPE TABLE OF tline, ls_tline TYPE tline, lt_stxl_raw TYPE TABLE OF ty_stxl_raw, ls_stxl_raw TYPE ty_stxl_raw, lt_ltext TYPE TABLE OF ty_ltext, ls_ltext TYPE ty_ltext, lt_string TYPE TABLE OF ty_string. "查询长文本表 SELECT stxl~relid, stxl~tdobject, stxl~tdname, stxl~tdid, stxl~tdspras, stxl~srtf2, stxl~clustr, stxl~clustd FROM stxh INNER JOIN stxl ON stxh~tdobject = stxl~tdobject AND stxh~tdname = stxl~tdname AND stxh~tdid = stxl~tdid AND stxh~tdspras = stxl~tdspras INTO TABLE @DATA(lt_stxl) WHERE stxh~tdobject = 'EKPO' AND stxh~tdid IN ( 'F01','F03','F04' ) AND stxh~tdspras = @sy-langu AND stxh~tdname = '410000148200010' AND stxl~relid = 'TX'. "解码为字符串 LOOP AT lt_stxl INTO DATA(ls_stxl). REFRESH:lt_stxl_raw,lt_tline,lt_string. CLEAR:ls_stxl_raw. ls_stxl_raw-clustr = ls_stxl-clustr. ls_stxl_raw-clustd = ls_stxl-clustd. APPEND ls_stxl_raw TO lt_stxl_raw. "对长文本进行解码 IMPORT tline = lt_tline FROM INTERNAL TABLE lt_stxl_raw. "对特殊符号的转换 CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT' TABLES itf_text = lt_tline text_stream = lt_string. "获得订单对应的多个长文本 CLEAR:ls_ltext. LOOP AT lt_string INTO DATA(ls_string). ls_ltext-ltext = ls_ltext-ltext && ls_string-line. ENDLOOP. ls_ltext-tdname = ls_stxl-tdname. ls_ltext-tdid = ls_stxl-tdid. APPEND ls_ltext TO lt_ltext. CLEAR:ls_stxl. ENDLOOP. "-----------------------------@斌将军-----------------------------
2、特殊符号
在长文本中如果出现"<"等特殊符号,会被转换成"<(><<)>",当遇到这些特殊符号被转换,取出后,可以通过函数CONVERT_ITF_TO_STREAM_TEXT处理一下,使用方法参考上面代码
3、底表查不到长文本
有时会发现,长文本框中分明有值,但是在STXH、STXL中找不到对应的记录,READ_TEXT函数也查询不到结果,
但是在下边有一行说明,“从何处采用文本”
这是因为配置了此长文本默认从采购订单中带出对应的物料描述,可以通过事务代码:SPRO确认配置,路径如图所示
选择对应的长文本类型,可以看到从以下地方自动获取文本作为长文本
此页面的语言为英语 翻译为中文(简体)- 中文(简体)
- 中文(繁体)
- 丹麦语
- 乌克兰语
- 乌尔都语
- 亚美尼亚语
- 俄语
- 保加利亚语
- 克罗地亚语
- 冰岛语
- 加泰罗尼亚语
- 匈牙利语
- 卡纳达语
- 印地语
- 印尼语
- 古吉拉特语
- 哈萨克语
- 土耳其语
- 威尔士语
- 孟加拉语
- 尼泊尔语
- 布尔语(南非荷兰语)
- 希伯来语
- 希腊语
- 库尔德语
- 德语
- 意大利语
- 拉脱维亚语
- 挪威语
- 捷克语
- 斯洛伐克语
- 斯洛文尼亚语
- 旁遮普语
- 日语
- 普什图语
- 毛利语
- 法语
- 波兰语
- 波斯语
- 泰卢固语
- 泰米尔语
- 泰语
- 海地克里奥尔语
- 爱沙尼亚语
- 瑞典语
- 立陶宛语
- 缅甸语
- 罗马尼亚语
- 老挝语
- 芬兰语
- 英语
- 荷兰语
- 萨摩亚语
- 葡萄牙语
- 西班牙语
- 越南语
- 阿塞拜疆语
- 阿姆哈拉语
- 阿尔巴尼亚语
- 阿拉伯语
- 韩语
- 马尔加什语
- 马拉地语
- 马拉雅拉姆语
- 马来语
- 马耳他语
- 高棉语